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

# Typeform

> Turn Typeform submissions into records, conversations, and automation triggers.

## What it does

Connecting Typeform gives you a **Form Submitted** trigger: every time someone
completes one of your forms, Custral receives the response and can act on it:
create or update a record, start a [sequence](/automation/sequences/overview),
assign a task, or open a conversation.

Use it when your forms already live in Typeform. If you don't have that
investment, Custral's own [forms](/comms/forms/overview) write straight to your
objects with no integration to maintain.

## Connect

<Steps>
  <Step title="Authorize Typeform">
    Go to **Settings → Integrations**, choose **Typeform**, and complete the
    OAuth consent screen with the Typeform account that owns the forms.
  </Step>

  <Step title="Grant form access">
    Custral requests `forms:read` and `forms:write`. Read to receive responses
    and list your forms, write to register the delivery hook on the form you
    pick.
  </Step>

  <Step title="Build a workflow on the trigger">
    In [Workflows](/automation/workflows/overview), add a trigger, choose
    **Typeform → Form Submitted**, and pick which form fires it.
  </Step>
</Steps>

## Configure

Map the form's answers onto your schema in the workflow's action step, each
Typeform field becomes a variable you can drop into a create-record or
update-record action. A field you don't map is simply ignored.

<Tip>
  Map the respondent's **email** onto an [Email property](/data/properties/text/email).
  That's what lets Custral match the submission to an existing contact instead of
  creating a duplicate, and what lets replies thread back to the same person.
</Tip>

## Resources synced

| Resource      | Custral surface                                          |
| ------------- | -------------------------------------------------------- |
| Form          | Selectable on the **Form Submitted** trigger             |
| Form response | The trigger payload. Each answer available as a variable |

## Limitations

* The integration is **inbound only**: Custral reacts to submissions but doesn't
  create or edit Typeform forms.
* Only submissions that arrive **after** you connect fire the trigger. Existing
  responses aren't backfilled, export and [import](/start/onboarding/migration)
  those instead.
* File-upload answers arrive as links to Typeform, not as
  [File properties](/data/properties/general/file).

## Troubleshooting

| Symptom                               | Likely cause                                     | What to check                                                        |
| ------------------------------------- | ------------------------------------------------ | -------------------------------------------------------------------- |
| The trigger never fires               | The workflow is saved but not enabled            | Enable the workflow; a draft doesn't receive events                  |
| Fires, but fields are empty           | The form was edited after the workflow was built | Reopen the trigger, reselect the form, and re-map the changed fields |
| Submissions create duplicate contacts | No email field is mapped, so nothing matches     | Map the email answer to an Email property                            |
| Only some forms are available         | The connected Typeform account doesn't own them  | Reconnect with the owning account, or have the form shared to it     |

## Disconnect

Disconnect from **Settings → Integrations**. Workflows built on the trigger stop
firing but are preserved, reconnecting the same account resumes them. Records
already created stay.

## See also

* [Forms](/comms/forms/overview): Custral's built-in forms.
* [Workflows](/automation/workflows/overview): acting on the trigger.
