# Set up integrations

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;

{% hint style="info" %}
For any changes in the Integrations tab to be reflected in your flow/variant, you must republish after changes are made.
{% 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](/integrations/getting-data-out/analytics.md).

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.

## Sending answers

[BigQuery](/integrations/integration-reference/bigquery.md), [Redshift](/integrations/integration-reference/redshift.md), and [Webhooks](/integrations/integration-reference/webhooks.md) can be configured to receive answer payloads. 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:\
\
1\. 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. \
\
2\. 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?**

Answers passed in via URL parameter or POST body will be included in all answer payloads regardless of the step order.
{% endhint %}

{% hint style="info" %}
**Sending data to a Google Spreadsheet**

Spreadsheets are not databases, and have a slew of problems when you treat them as such, however, we recognize their usefulness, particularly when getting a new project up to speed.

Formsort has a first-party integration with Google Sheets. See more in our [Google Sheets documentation.](/integrations/integration-reference/google-sheets.md)
{% endhint %}

## Viewing and testing webhook payloads

When you set up a webhook, you can view a sample answer payload in the Webhooks tab once you select a submission frequency. More about submission frequencies [here](/integrations/getting-data-out/submission-frequencies.md).

{% embed url="<https://www.loom.com/share/91b67af476504342935d938d7e6014b7>" %}

## 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. The answer itself will contain the S3/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/core-concepts/formsort-quickstart-guides/set-up-integrations.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.
