# 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](https://docs.formsort.com/flow-content-data-format) of the flow
* Uploads include any [files](https://docs.formsort.com/adding-questions-and-content/question-reference/file-upload), [images](https://docs.formsort.com/adding-questions-and-content/question-reference/image-upload), or [signatures](https://docs.formsort.com/adding-questions-and-content/question-reference/signature)
* [Analytics events](https://docs.formsort.com/integrations/getting-data-out/analytics) 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](https://docs.formsort.com/integrations/integration-reference/bigquery), [Google Sheets](https://docs.formsort.com/integrations/integration-reference/google-sheets), [PostgresSQL](https://docs.formsort.com/integrations/integration-reference/postgresql), [Redshift](https://docs.formsort.com/integrations/integration-reference/redshift), and [Webhooks](https://docs.formsort.com/integrations/integration-reference/webhooks) can be configured to receive answer payloads *only*. At the [submission frequency](https://docs.formsort.com/integrations/getting-data-out/submission-frequencies) 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](https://docs.formsort.com/integrations/integration-reference/bigquery), [Redshift](https://docs.formsort.com/integrations/integration-reference/redshift), and [Webhooks](https://docs.formsort.com/integrations/integration-reference/webhooks) 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](https://docs.formsort.com/integrations/integration-reference/amplitude), [Google Analytics](https://docs.formsort.com/integrations/integration-reference/google-analytics), [Google Tag Manager](https://docs.formsort.com/integrations/integration-reference/google-tag-manager), and [Segment](https://docs.formsort.com/integrations/integration-reference/segment) 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](https://docs.formsort.com/integrations/getting-data-out/analytics) for more information.

## Receiving uploads

[Amazon S3](https://docs.formsort.com/integrations/integration-reference/s3) and [Google Cloud Storage](https://docs.formsort.com/integrations/integration-reference/google-cloud-storage) can be configured to receive uploads, such as from [file upload](https://docs.formsort.com/adding-questions-and-content/question-reference/file-upload), [image upload](https://docs.formsort.com/adding-questions-and-content/question-reference/image-upload), or [signature](https://docs.formsort.com/adding-questions-and-content/question-reference/signature) 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.
