> For the complete documentation index, see [llms.txt](https://docs.rooks.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rooks.ai/response-destinations.md).

# Response Destinations

Use Destinations to send form responses from Rooks to another system automatically.

Rooks currently connects to external tools through webhooks. A webhook sends response data as JSON to a URL provided by the receiving system.

{% hint style="success" icon="square-check" %}
Rooks continues storing responses when a destination is connected.
{% endhint %}

### Destination templates

You can create reusable integration templates at the workspace level when several forms need to send data to the same system.

To create:

1. Navigate to **Workspace settings** <i class="fa-arrow-right">:arrow-right:</i> **Destinations** <i class="fa-arrow-right">:arrow-right:</i> **Create destination**.
2. Enter a unique **Slug**, a complete **Destination URL** (including `https://`), and configure the delivery and payload options.
3. Select **Save**.

Once the form is saved, you can open the template’s options menu, select **Connect form**, and choose the form you want to connect. Alternatively, open the form’s **Destinations** page and select **Add destination** <i class="fa-arrow-right">:arrow-right:</i> **Pick from templates**.

### Create a destination

Destinations can also be configured separately for each form.

1. Open the form in your workspace and select **Responses** <i class="fa-arrow-right">:arrow-right:</i> **Destination** <i class="fa-arrow-right">:arrow-right:</i> **Add destination**.
2. Configure and save the destination.

You can connect more than one destination to the same form.

{% hint style="warning" icon="square-exclamation" %}
Forms must be published (or republished) for changes to **Destinations** to take effect.
{% endhint %}

### Choose when responses are sent

Use **Submission frequency** to control when Rooks sends data.

By default, data is sent when the person completes the form, however additional additional send frequencies are available:

* After each completed page
* When the form is completed or appears to have been abandoned

Sending data before completion means the receiving system may receive multiple updates for the same person. Use the responder’s unique ID to associate those updates.

Rooks retries failed webhook deliveries for up to 12 hours. Fixing the receiving system during that period may allow queued deliveries to succeed without another form submission.

### Configure the response format

The destination editor includes several optional formatting controls:

* **Responder UUID alias** changes the field name used for the response’s unique identifier.
* **Nest answers** groups the form answers under a single `answers` field.
* **Include variable descriptions in payload** adds descriptions for the included response fields.
* **Receive as key-value pairs** sends answers as a list of key-and-value entries. This option is available when **Nest answers** is enabled.

### Sign webhook payloads

Payload signing allows the receiving system to verify that webhook requests came from your Rooks workspace.

To enable it:

1. Set **Security** to **Sign payloads**.
2. Open the workspace’s **Settings**.
3. Select **Security**.
4. Copy the **Webhook Signing Key**.
5. Provide the key securely to the person configuring verification in the receiving system.

{% hint style="warning" icon="square-exclamation" %}
The signing key applies across the workspace. Rotating it can interrupt any destination that still uses the previous key, so update all receiving endpoints when the key changes.
{% endhint %}

### Edit or disconnect a destination

Open the destination’s options menu to:

* Select **Edit** and change a destination created directly on the form.
* Select **Disconnect** to stop using the destination for that form.

After making the change, select **Publish** when prompted.
