> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Form response

> Starts when one Tally form receives a submitted response.

`tally.onFormResponse` starts when one Tally form receives a `FORM_RESPONSE` webhook.

## Example

```ts automations/tally-on-form-response.automation.ts theme={null}
import { automation } from "automate.ax"
import { tally } from "automate.ax/tally"

export default automation("Inspect Tally responses", () => {
  const response = tally.onFormResponse({ formId: "form-id" })

  tally.getFormSubmission({
    formId: response.data.formId,
    submissionId: response.data.submissionId,
  })
})
```

## Inputs

`formId` is required and limits the managed webhook to one Tally form. Pass `account` to select a named Tally connection.

## Delivery behavior

Automate.ax creates a signed `FORM_RESPONSE` webhook, verifies `Tally-Signature` against the exact request body, and deduplicates retries by Tally event ID. Tally retries failed deliveries after 5 minutes, 30 minutes, 1 hour, 6 hours, and 1 day. Each authenticated delivery starts an ordinary root context.

## Output

Returns `eventId`, `eventType`, `createdAt`, and `data`. The data includes response, submission, and respondent IDs; the form ID and name; submission time; typed response fields; and optional PDF and preview URLs.
