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

# Form Submission

> Event payload details and trigger documentation for Form Submission data from Typeform

<img src="https://mintcdn.com/morfhealth/EU2WCxuXGIUQcziR/images/typeform.svg?fit=max&auto=format&n=EU2WCxuXGIUQcziR&q=85&s=ecb5303a282d5a3536e1984425d6d780" alt="images/typeform.svg" width="24" height="24" data-path="images/typeform.svg" />

# Events

## Triggering Webhook Types

The following event types are associated with the Form Submission event payload from Typeform.

* `Typeform Form Submitted`

<RequestExample>
  ```json Example theme={null}
  {
    "event_id": "01KBYWTTXW2SXX86TBH2SGNCCS",
    "event_type": "form_response",
    "form_response": {
      "answers": {
        "field_ref_1": "answer_value",
        "field_ref_2": true,
        "field_ref_3": 42
      },
      "answers_detailed": {
        "key": null,
        "value": {
          "boolean": true,
          "choice": {
            "id": "pBVm1w4quPjA",
            "label": "Student",
            "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
          },
          "choices": {
            "choices": [
              {
                "id": "pBVm1w4quPjA",
                "label": "Student",
                "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
              }
            ]
          },
          "date": "2025-12-08",
          "email": "foo@gmail.com",
          "field": {
            "id": "OaXBBv3uqDiV",
            "ref": "2e644ba6-3a52-4895-b100-b061c6af0331",
            "type": "short_text"
          },
          "number": 8,
          "phone_number": "123-456-7890",
          "text": "Foo",
          "type": "text",
          "url": "https://morf.health"
        }
      },
      "definition": {
        "endings": [
          {
            "attachment": {
              "href": "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif",
              "type": "image"
            },
            "id": "DefaultTyScreen",
            "properties": {
              "button_mode": "default_redirect",
              "button_text": "Create a *typeform*",
              "share_icons": false,
              "show_button": true
            },
            "ref": "default_tys",
            "title": "Thanks for completing this typeform",
            "type": "thankyou_screen"
          }
        ],
        "fields": [
          {
            "allow_multiple_selections": true,
            "allow_other_choice": true,
            "choices": [
              {
                "id": "pBVm1w4quPjA",
                "label": "Student",
                "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
              }
            ],
            "id": "OaXBBv3uqDiV",
            "properties": {},
            "ref": "2e644ba6-3a52-4895-b100-b061c6af0331",
            "title": "What's your first name?",
            "type": "short_text"
          }
        ],
        "id": "V5UCKg7t",
        "settings": {
          "partial_responses_to_all_integrations": true
        },
        "title": "My new form"
      },
      "ending": {
        "attachment": {
          "href": "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif",
          "type": "image"
        },
        "id": "DefaultTyScreen",
        "properties": {
          "button_mode": "default_redirect",
          "button_text": "Create a *typeform*",
          "share_icons": false,
          "show_button": true
        },
        "ref": "default_tys",
        "title": "Thanks for completing this typeform",
        "type": "thankyou_screen"
      },
      "form_id": "V5UCKg7t",
      "landed_at": "2025-12-08T11:50:39Z",
      "submitted_at": "2025-12-08T11:51:29Z",
      "token": "oe6ruwcl8fzlmvqj5eih5oe6ruwc8vc0",
      "variables": {
        "is_active": true,
        "score": 42,
        "user_id": "12345"
      }
    }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Description theme={null}
  {
    "event_id": "Unique event ID",
    "event_type": "Event type",
    "form_response": {
      "answers": "Form answers submitted by the respondent, simplified to be a simple mapping of field references to single values",
      "answers_detailed": {
        "key": null,
        "value": {
          "boolean": "Boolean answer value",
          "choice": {
            "id": "Choice ID",
            "label": "Choice label/text",
            "ref": "Choice reference UUID"
          },
          "choices": {
            "choices": {
              "id": "Choice ID",
              "label": "Choice label/text",
              "ref": "Choice reference UUID"
            }
          },
          "date": "Date answer value (YYYY-MM-DD format)",
          "email": "Email answer value",
          "field": {
            "id": "Field ID this answer corresponds to",
            "ref": "Field reference UUID",
            "type": "Field type"
          },
          "number": "Number answer value",
          "phone_number": "Phone number answer value",
          "text": "Text answer value",
          "type": "Answer type (text, email, phone_number, url, boolean, number, date, choice, choices)",
          "url": "URL answer value"
        }
      },
      "definition": {
        "endings": {
          "attachment": {
            "href": "Attachment URL",
            "type": "Attachment type (e.g., image)"
          },
          "id": "Ending screen ID",
          "properties": {
            "button_mode": "Button mode on ending screen",
            "button_text": "Button text on ending screen",
            "share_icons": "Whether to show share icons on ending screen",
            "show_button": "Whether to show button on ending screen"
          },
          "ref": "Ending screen reference",
          "title": "Ending screen title",
          "type": "Ending screen type"
        },
        "fields": {
          "allow_multiple_selections": "Whether the field allows multiple selections",
          "allow_other_choice": "Whether the field allows 'other' choice",
          "choices": {
            "id": "Choice ID",
            "label": "Choice label/text",
            "ref": "Choice reference UUID"
          },
          "id": "Field ID",
          "properties": "Field properties",
          "ref": "Field reference UUID",
          "title": "Field question/title",
          "type": "Field type (e.g., short_text, email, multiple_choice)"
        },
        "id": "Form definition ID",
        "settings": {
          "partial_responses_to_all_integrations": "Whether partial responses are sent to all integrations"
        },
        "title": "Form title"
      },
      "ending": {
        "attachment": {
          "href": "Attachment URL",
          "type": "Attachment type (e.g., image)"
        },
        "id": "Ending screen ID",
        "properties": {
          "button_mode": "Button mode on ending screen",
          "button_text": "Button text on ending screen",
          "share_icons": "Whether to show share icons on ending screen",
          "show_button": "Whether to show button on ending screen"
        },
        "ref": "Ending screen reference",
        "title": "Ending screen title",
        "type": "Ending screen type"
      },
      "form_id": "Form ID",
      "landed_at": "Time when the respondent landed on the form",
      "submitted_at": "Time when the form was submitted",
      "token": "Response token",
      "variables": "Form variables passed to or set within the form, indexed by variable key"
    }
  }
  ```
</ResponseExample>

### Payload Field Details

<ResponseField name="Form Submission" type="Event Payload">
  <Expandable title="fields" defaultOpen="true">
    <ResponseField name="event_id" type="string" required>
      Unique event ID

      ```json CEL theme={null}
      event_id
      ```

      ```json Example theme={null}
      "01KBYWTTXW2SXX86TBH2SGNCCS"
      ```
    </ResponseField>

    <ResponseField name="event_type" type="string" required>
      Event type

      ```json CEL theme={null}
      event_type
      ```

      ```json Example theme={null}
      "form_response"
      ```
    </ResponseField>

    <ResponseField name="form_response" type="object" required>
      Form response data

      ```json CEL theme={null}
      form_response
      ```

      ```json Example theme={null}
      {
      "answers": {
      "field_ref_1": "answer_value",
      "field_ref_2": true,
      "field_ref_3": 42
      },
      "answers_detailed": {
      "key": null,
      "value": {
      "boolean": true,
      "choice": {
        "id": "pBVm1w4quPjA",
        "label": "Student",
        "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
      },
      "choices": {
        "choices": [
          {
            "id": "pBVm1w4quPjA",
            "label": "Student",
            "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
          }
        ]
      },
      "date": "2025-12-08",
      "email": "foo@gmail.com",
      "field": {
        "id": "OaXBBv3uqDiV",
        "ref": "2e644ba6-3a52-4895-b100-b061c6af0331",
        "type": "short_text"
      },
      "number": 8,
      "phone_number": "123-456-7890",
      "text": "Foo",
      "type": "text",
      "url": "https://morf.health"
      }
      },
      "definition": {
      "endings": [
      {
        "attachment": {
          "href": "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif",
          "type": "image"
        },
        "id": "DefaultTyScreen",
        "properties": {
          "button_mode": "default_redirect",
          "button_text": "Create a *typeform*",
          "share_icons": false,
          "show_button": true
        },
        "ref": "default_tys",
        "title": "Thanks for completing this typeform",
        "type": "thankyou_screen"
      }
      ],
      "fields": [
      {
        "allow_multiple_selections": true,
        "allow_other_choice": true,
        "choices": [
          {
            "id": "pBVm1w4quPjA",
            "label": "Student",
            "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
          }
        ],
        "id": "OaXBBv3uqDiV",
        "properties": {},
        "ref": "2e644ba6-3a52-4895-b100-b061c6af0331",
        "title": "What's your first name?",
        "type": "short_text"
      }
      ],
      "id": "V5UCKg7t",
      "settings": {
      "partial_responses_to_all_integrations": true
      },
      "title": "My new form"
      },
      "ending": {
      "attachment": {
      "href": "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif",
      "type": "image"
      },
      "id": "DefaultTyScreen",
      "properties": {
      "button_mode": "default_redirect",
      "button_text": "Create a *typeform*",
      "share_icons": false,
      "show_button": true
      },
      "ref": "default_tys",
      "title": "Thanks for completing this typeform",
      "type": "thankyou_screen"
      },
      "form_id": "V5UCKg7t",
      "landed_at": "2025-12-08T11:50:39Z",
      "submitted_at": "2025-12-08T11:51:29Z",
      "token": "oe6ruwcl8fzlmvqj5eih5oe6ruwc8vc0",
      "variables": {
      "is_active": true,
      "score": 42,
      "user_id": "12345"
      }
      }
      ```
    </ResponseField>

    <ResponseField name="form_response.form_id" type="string" required>
      Form ID

      ```json CEL theme={null}
      form_response.form_id
      ```

      ```json Example theme={null}
      "V5UCKg7t"
      ```
    </ResponseField>

    <ResponseField name="form_response.token" type="string" required>
      Response token

      ```json CEL theme={null}
      form_response.token
      ```

      ```json Example theme={null}
      "oe6ruwcl8fzlmvqj5eih5oe6ruwc8vc0"
      ```
    </ResponseField>

    <ResponseField name="form_response.landed_at" type="timing.v1.Timestamp" required>
      Time when the respondent landed on the form

      ```json CEL theme={null}
      form_response.landed_at
      ```

      ```json Example theme={null}
      "2025-12-08T11:50:39Z"
      ```
    </ResponseField>

    <ResponseField name="form_response.submitted_at" type="timing.v1.Timestamp" required>
      Time when the form was submitted

      ```json CEL theme={null}
      form_response.submitted_at
      ```

      ```json Example theme={null}
      "2025-12-08T11:51:29Z"
      ```
    </ResponseField>

    <ResponseField name="form_response.definition" type="object" required>
      Form definition including fields and structure

      ```json CEL theme={null}
      form_response.definition
      ```

      ```json Example theme={null}
      {
      "endings": [
      {
      "attachment": {
        "href": "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif",
        "type": "image"
      },
      "id": "DefaultTyScreen",
      "properties": {
        "button_mode": "default_redirect",
        "button_text": "Create a *typeform*",
        "share_icons": false,
        "show_button": true
      },
      "ref": "default_tys",
      "title": "Thanks for completing this typeform",
      "type": "thankyou_screen"
      }
      ],
      "fields": [
      {
      "allow_multiple_selections": true,
      "allow_other_choice": true,
      "choices": [
        {
          "id": "pBVm1w4quPjA",
          "label": "Student",
          "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
        }
      ],
      "id": "OaXBBv3uqDiV",
      "properties": {},
      "ref": "2e644ba6-3a52-4895-b100-b061c6af0331",
      "title": "What's your first name?",
      "type": "short_text"
      }
      ],
      "id": "V5UCKg7t",
      "settings": {
      "partial_responses_to_all_integrations": true
      },
      "title": "My new form"
      }
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.id" type="string" required>
      Form definition ID

      ```json CEL theme={null}
      form_response.definition.id
      ```

      ```json Example theme={null}
      "V5UCKg7t"
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.title" type="string" required>
      Form title

      ```json CEL theme={null}
      form_response.definition.title
      ```

      ```json Example theme={null}
      "My new form"
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.fields" type="[]object" required>
      Form field definitions

      ```json CEL theme={null}
      form_response.definition.fields
      ```

      ```json Example theme={null}
      [
      {
      "allow_multiple_selections": true,
      "allow_other_choice": true,
      "choices": [
      {
        "id": "pBVm1w4quPjA",
        "label": "Student",
        "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
      }
      ],
      "id": "OaXBBv3uqDiV",
      "properties": {},
      "ref": "2e644ba6-3a52-4895-b100-b061c6af0331",
      "title": "What's your first name?",
      "type": "short_text"
      }
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.fields.map(x, x.id)" type="[]string" required>
      Mapped array of: Field ID

      ```json CEL theme={null}
      form_response.definition.fields.map(x, x.id)
      ```

      ```json Example theme={null}
      [
      "OaXBBv3uqDiV"
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.fields.map(x, x.ref)" type="[]string" required>
      Mapped array of: Field reference UUID

      ```json CEL theme={null}
      form_response.definition.fields.map(x, x.ref)
      ```

      ```json Example theme={null}
      [
      "2e644ba6-3a52-4895-b100-b061c6af0331"
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.fields.map(x, x.type)" type="[]string" required>
      Mapped array of: Field type (e.g., short\_text, email, multiple\_choice)

      ```json CEL theme={null}
      form_response.definition.fields.map(x, x.type)
      ```

      ```json Example theme={null}
      [
      "short_text"
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.fields.map(x, x.title)" type="[]string" required>
      Mapped array of: Field question/title

      ```json CEL theme={null}
      form_response.definition.fields.map(x, x.title)
      ```

      ```json Example theme={null}
      [
      "What's your first name?"
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.fields.map(x, x.properties)" type="[]bool" required>
      Mapped array of: Field properties

      ```json CEL theme={null}
      form_response.definition.fields.map(x, x.properties)
      ```

      ```json Example theme={null}
      [
      {}
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.fields.map(x, x.allow_other_choice)" type="[]bool" required>
      Mapped array of: Whether the field allows 'other' choice

      ```json CEL theme={null}
      form_response.definition.fields.map(x, x.allow_other_choice)
      ```

      ```json Example theme={null}
      [
      true
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.fields.map(x, x.allow_multiple_selections)" type="[]bool" required>
      Mapped array of: Whether the field allows multiple selections

      ```json CEL theme={null}
      form_response.definition.fields.map(x, x.allow_multiple_selections)
      ```

      ```json Example theme={null}
      [
      true
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.fields.map(x, x.choices)" type="[]bool" required>
      Mapped array of: Available choices for the field

      ```json CEL theme={null}
      form_response.definition.fields.map(x, x.choices)
      ```

      ```json Example theme={null}
      [
      [
      {
      "id": "pBVm1w4quPjA",
      "label": "Student",
      "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
      }
      ]
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.endings" type="[]object" required>
      Form ending screen definitions

      ```json CEL theme={null}
      form_response.definition.endings
      ```

      ```json Example theme={null}
      [
      {
      "attachment": {
      "href": "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif",
      "type": "image"
      },
      "id": "DefaultTyScreen",
      "properties": {
      "button_mode": "default_redirect",
      "button_text": "Create a *typeform*",
      "share_icons": false,
      "show_button": true
      },
      "ref": "default_tys",
      "title": "Thanks for completing this typeform",
      "type": "thankyou_screen"
      }
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.endings.map(x, x.id)" type="[]string" required>
      Mapped array of: Ending screen ID

      ```json CEL theme={null}
      form_response.definition.endings.map(x, x.id)
      ```

      ```json Example theme={null}
      [
      "DefaultTyScreen"
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.endings.map(x, x.ref)" type="[]string" required>
      Mapped array of: Ending screen reference

      ```json CEL theme={null}
      form_response.definition.endings.map(x, x.ref)
      ```

      ```json Example theme={null}
      [
      "default_tys"
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.endings.map(x, x.title)" type="[]string" required>
      Mapped array of: Ending screen title

      ```json CEL theme={null}
      form_response.definition.endings.map(x, x.title)
      ```

      ```json Example theme={null}
      [
      "Thanks for completing this typeform"
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.endings.map(x, x.type)" type="[]string" required>
      Mapped array of: Ending screen type

      ```json CEL theme={null}
      form_response.definition.endings.map(x, x.type)
      ```

      ```json Example theme={null}
      [
      "thankyou_screen"
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.endings.map(x, x.properties)" type="[]bool" required>
      Mapped array of: Ending screen properties

      ```json CEL theme={null}
      form_response.definition.endings.map(x, x.properties)
      ```

      ```json Example theme={null}
      [
      {
      "button_mode": "default_redirect",
      "button_text": "Create a *typeform*",
      "share_icons": false,
      "show_button": true
      }
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.endings.map(x, x.attachment)" type="[]bool" required>
      Mapped array of: Ending screen attachment (e.g., image)

      ```json CEL theme={null}
      form_response.definition.endings.map(x, x.attachment)
      ```

      ```json Example theme={null}
      [
      {
      "href": "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif",
      "type": "image"
      }
      ]
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.settings" type="object">
      Form settings

      ```json CEL theme={null}
      form_response.definition.settings
      ```

      ```json Example theme={null}
      {
      "partial_responses_to_all_integrations": true
      }
      ```
    </ResponseField>

    <ResponseField name="form_response.definition.settings.partial_responses_to_all_integrations" type="bool">
      Whether partial responses are sent to all integrations

      ```json CEL theme={null}
      form_response.definition.settings.partial_responses_to_all_integrations
      ```

      ```json Example theme={null}
      true
      ```
    </ResponseField>

    <ResponseField name="form_response.answers" type="object" required>
      `HI` `ID` `PII` Form answers submitted by the respondent, simplified to be a simple mapping of field references to single values

      ```json CEL theme={null}
      form_response.answers
      ```

      ```json Example theme={null}
      {
      "field_ref_1": "answer_value",
      "field_ref_2": true,
      "field_ref_3": 42
      }
      ```
    </ResponseField>

    <ResponseField name="form_response.answers_detailed" type="Map<string,dynamic (any)>" required>
      `HI` `ID` `PII` Detailed form answers submitted by the respondent, indexed by field reference

      ```json CEL theme={null}
      form_response.answers_detailed
      ```

      ```json Example theme={null}
      {
      "key": null,
      "value": {
      "boolean": true,
      "choice": {
      "id": "pBVm1w4quPjA",
      "label": "Student",
      "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
      },
      "choices": {
      "choices": [
        {
          "id": "pBVm1w4quPjA",
          "label": "Student",
          "ref": "50a3bd14-b93f-43f6-80c1-94e39aa654ef"
        }
      ]
      },
      "date": "2025-12-08",
      "email": "foo@gmail.com",
      "field": {
      "id": "OaXBBv3uqDiV",
      "ref": "2e644ba6-3a52-4895-b100-b061c6af0331",
      "type": "short_text"
      },
      "number": 8,
      "phone_number": "123-456-7890",
      "text": "Foo",
      "type": "text",
      "url": "https://morf.health"
      }
      }
      ```
    </ResponseField>

    <ResponseField name="form_response.ending" type="object">
      Ending screen shown to the respondent

      ```json CEL theme={null}
      form_response.ending
      ```

      ```json Example theme={null}
      {
      "attachment": {
      "href": "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif",
      "type": "image"
      },
      "id": "DefaultTyScreen",
      "properties": {
      "button_mode": "default_redirect",
      "button_text": "Create a *typeform*",
      "share_icons": false,
      "show_button": true
      },
      "ref": "default_tys",
      "title": "Thanks for completing this typeform",
      "type": "thankyou_screen"
      }
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.id" type="string">
      Ending screen ID

      ```json CEL theme={null}
      form_response.ending.id
      ```

      ```json Example theme={null}
      "DefaultTyScreen"
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.ref" type="string">
      Ending screen reference

      ```json CEL theme={null}
      form_response.ending.ref
      ```

      ```json Example theme={null}
      "default_tys"
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.title" type="string">
      Ending screen title

      ```json CEL theme={null}
      form_response.ending.title
      ```

      ```json Example theme={null}
      "Thanks for completing this typeform"
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.type" type="string">
      Ending screen type

      ```json CEL theme={null}
      form_response.ending.type
      ```

      ```json Example theme={null}
      "thankyou_screen"
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.properties" type="object">
      Ending screen properties

      ```json CEL theme={null}
      form_response.ending.properties
      ```

      ```json Example theme={null}
      {
      "button_mode": "default_redirect",
      "button_text": "Create a *typeform*",
      "share_icons": false,
      "show_button": true
      }
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.properties.button_text" type="string">
      Button text on ending screen

      ```json CEL theme={null}
      form_response.ending.properties.button_text
      ```

      ```json Example theme={null}
      "Create a *typeform*"
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.properties.show_button" type="bool">
      Whether to show button on ending screen

      ```json CEL theme={null}
      form_response.ending.properties.show_button
      ```

      ```json Example theme={null}
      true
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.properties.share_icons" type="bool">
      Whether to show share icons on ending screen

      ```json CEL theme={null}
      form_response.ending.properties.share_icons
      ```

      ```json Example theme={null}
      false
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.properties.button_mode" type="string">
      Button mode on ending screen

      ```json CEL theme={null}
      form_response.ending.properties.button_mode
      ```

      ```json Example theme={null}
      "default_redirect"
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.attachment" type="object">
      Ending screen attachment (e.g., image)

      ```json CEL theme={null}
      form_response.ending.attachment
      ```

      ```json Example theme={null}
      {
      "href": "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif",
      "type": "image"
      }
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.attachment.type" type="string">
      Attachment type (e.g., image)

      ```json CEL theme={null}
      form_response.ending.attachment.type
      ```

      ```json Example theme={null}
      "image"
      ```
    </ResponseField>

    <ResponseField name="form_response.ending.attachment.href" type="string">
      Attachment URL

      ```json CEL theme={null}
      form_response.ending.attachment.href
      ```

      ```json Example theme={null}
      "https://public-assets.typeform.com/public/admin/2dpnUBBkz2VN.gif"
      ```
    </ResponseField>

    <ResponseField name="form_response.variables" type="object" required>
      `HI` `ID` `PII` Form variables passed to or set within the form, indexed by variable key

      ```json CEL theme={null}
      form_response.variables
      ```

      ```json Example theme={null}
      {
      "is_active": true,
      "score": 42,
      "user_id": "12345"
      }
      ```
    </ResponseField>
  </Expandable>
</ResponseField>
