# Form answers and events

Formsort can send three types of responder data to your endpoints - **answers**, **uploads**, and **analytics events**.&#x20;

* Answers contain the [full answers schema](/flow-content-data-format.md) of the flow
* Uploads include any [files](/adding-questions-and-content/question-reference/file-upload.md), [images](/adding-questions-and-content/question-reference/image-upload.md), or [signatures](/adding-questions-and-content/question-reference/signature.md)
* [Analytics events](/integrations/getting-data-out/analytics.md) capture the meta data of a responders journey through a flow

From the **Integrations** tab, you can configure where you were will send data, the shape of submission data, and the frequency with which data is sent. &#x20;

## Assured delivery

To reduce the possibility of data loss, any unsuccessful call to your integrations will be retried up to 13 times in an exponential backdown fashion, starting with a wait of 1 second and delaying the last retry to about 2.5 hours. Formsort's timeout for the first retry is currently set to 15 seconds.

{% hint style="info" %}
It's worth noting here that while we can guarantee at-least-once delivery, we cannot guarantee only-once delivery. All integration targets should be designed with idempotency in mind, and any targets that don't receive the webhook payload before the 15 second wait expires will receive a retry until successful. Receiving a duplicate answer submission should not adversely affect processing.
{% endhint %}

## Sending answers

[BigQuery](/integrations/integration-reference/bigquery.md), [Google Sheets](/integrations/integration-reference/google-sheets.md), [PostgresSQL](/integrations/integration-reference/postgresql.md), [Redshift](/integrations/integration-reference/redshift.md), and [Webhooks](/integrations/integration-reference/webhooks.md) can be configured to receive answer payloads *only*. At the [submission frequency](/integrations/getting-data-out/submission-frequencies.md) that you define, the entire answer payload will be sent to the integration.

Due to the distributed nature of our system, there are a couple of factors you should consider when setting up [BigQuery](/integrations/integration-reference/bigquery.md), [Redshift](/integrations/integration-reference/redshift.md), and [Webhooks](/integrations/integration-reference/webhooks.md) integrations:

* Ordering of answer submissions is not guaranteed. This can be particularly noticeable when you use a submission frequency of “Every Step”. For example, if steps are completed in quick succession, ordering of your submissions may not exactly match completion order.&#x20;
* While we guarantee at-least-once delivery of all answer submissions, regardless of frequency, **we cannot guarantee only-once delivery**. All integration targets should be designed with idempotency in mind. Receiving a duplicate answer submission should not adversely affect processing.

{% hint style="info" %}
**When does passed in data get sent?**

Externally-provided answers passed in via URL parameter or POST body will be available in all answer payloads as soon as the flow is loaded, regardless of the step order.
{% endhint %}

## Sending analytics events

[Amplitude](/integrations/integration-reference/amplitude.md), [Google Analytics](/integrations/integration-reference/google-analytics.md), [Google Tag Manager](/integrations/integration-reference/google-tag-manager.md), and [Segment](/integrations/integration-reference/segment.md) can be configured to receive **analytics events**.

The analytics destinations can also receive answer payloads. You must opt-in to this when configuring them in the integrations editor by toggling "Send answers" on.

See our section on [analytics events](/integrations/getting-data-out/analytics.md) for more information.

## Receiving uploads

[Amazon S3](/integrations/integration-reference/s3.md) and [Google Cloud Storage](/integrations/integration-reference/google-cloud-storage.md) can be configured to receive uploads, such as from [file upload](/adding-questions-and-content/question-reference/file-upload.md), [image upload](/adding-questions-and-content/question-reference/image-upload.md), or [signature](/adding-questions-and-content/question-reference/signature.md) questions. Image files are uploaded to these endpoints directly and at the time the responder uploads the file, in the course of completing your form.&#x20;

The answers payload value for these types of questions will be the S3 or GCS URL of the uploaded asset.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.formsort.com/integrations/getting-data-out.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
