# Typeform (/integrations/typeform)





{/* MANUAL-CONTENT-START:intro */}

Use [Typeform](https://www.typeform.com/) in Sim to retrieve form responses, download submitted files, and get form insights. Switch to trigger mode to start a workflow when a form is submitted. The integration requires an API key.

{/* MANUAL-CONTENT-END */}

## Use the block [#usage-instructions]

Retrieve responses, download files, and get form insights. Use trigger mode to start a workflow when a form is submitted. Requires API Key.

## Actions [#actions]

### Typeform Responses [#typeform-responses]

Retrieve form responses from Typeform

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `formId` | string | Yes | Typeform form ID (e.g., "abc123XYZ") |
  | `apiKey` | string | Yes | Typeform Personal Access Token |
  | `pageSize` | number | No | Number of responses to retrieve (e.g., 10, 25, 50) |
  | `before` | string | No | Cursor token for fetching the next page of older responses |
  | `after` | string | No | Cursor token for fetching the next page of newer responses |
  | `since` | string | No | Retrieve responses submitted after this date (e.g., "2024-01-01T00:00:00Z") |
  | `until` | string | No | Retrieve responses submitted before this date (e.g., "2024-12-31T23:59:59Z") |
  | `completed` | string | No | Filter by completion status (e.g., "true", "false", "all") |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `total_items` | number | Total number of responses |
  | `page_count` | number | Total number of pages available |
  | `items` | array | Array of response objects with response\_id, submitted\_at, answers, and metadata |
</ReferenceDetails>

### Typeform Files [#typeform-files]

Download files uploaded in Typeform responses

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `formId` | string | Yes | Typeform form ID (e.g., "abc123XYZ") |
  | `responseId` | string | Yes | Response ID containing the files (e.g., "resp\_xyz789") |
  | `fieldId` | string | Yes | Unique ID of the file upload field |
  | `filename` | string | Yes | Filename of the uploaded file |
  | `inline` | boolean | No | Whether to request the file with inline Content-Disposition |
  | `apiKey` | string | Yes | Typeform Personal Access Token |

  #### Output [#output-1]

  | Parameter | Type | Description |
  | - | - | - |
  | `fileUrl` | string | Direct download URL for the uploaded file |
  | `file` | file | Downloaded file stored in execution files |
  | `contentType` | string | MIME type of the uploaded file |
  | `filename` | string | Original filename of the uploaded file |
</ReferenceDetails>

### Typeform Insights [#typeform-insights]

Retrieve insights and analytics for Typeform forms

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `formId` | string | Yes | Typeform form ID (e.g., "abc123XYZ") |
  | `apiKey` | string | Yes | Typeform Personal Access Token |

  #### Output [#output-2]

  | Parameter | Type | Description |
  | - | - | - |
  | `fields` | array | Analytics data for individual form fields |
  | ↳ `dropoffs` | number | Number of users who dropped off at this field |
  | ↳ `id` | string | Unique field ID |
  | ↳ `label` | string | Field label |
  | ↳ `ref` | string | Field reference name |
  | ↳ `title` | string | Field title/question |
  | ↳ `type` | string | Field type (e.g., short\_text, multiple\_choice) |
  | ↳ `views` | number | Number of times this field was viewed |
  | `form` | object | Form-level analytics and performance data |
  | ↳ `platforms` | array | Platform-specific analytics data |
  | ↳ `average_time` | number | Average completion time for this platform |
  | ↳ `completion_rate` | number | Completion rate for this platform |
  | ↳ `platform` | string | Platform name (e.g., desktop, mobile) |
  | ↳ `responses_count` | number | Number of responses from this platform |
  | ↳ `total_visits` | number | Total visits from this platform |
  | ↳ `unique_visits` | number | Unique visits from this platform |
  | ↳ `summary` | object | Overall form performance summary |
  | ↳ `average_time` | number | Overall average completion time |
  | ↳ `completion_rate` | number | Overall completion rate |
  | ↳ `responses_count` | number | Total number of responses |
  | ↳ `total_visits` | number | Total number of visits |
  | ↳ `unique_visits` | number | Total number of unique visits |
</ReferenceDetails>

### Typeform List Forms [#typeform-list-forms]

Retrieve a list of all forms in your Typeform account

<ReferenceDetails>
  #### Input [#input-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Typeform Personal Access Token |
  | `search` | string | No | Search query to filter forms by title (e.g., "Customer Feedback") |
  | `page` | number | No | Page number for pagination (e.g., 1, 2, 3) |
  | `pageSize` | number | No | Number of forms per page (e.g., 10, 25, 50, max: 200) |
  | `workspaceId` | string | No | Filter forms by workspace ID (e.g., "ws\_abc123") |

  #### Output [#output-3]

  | Parameter | Type | Description |
  | - | - | - |
  | `total_items` | number | Total number of forms in the account |
  | `page_count` | number | Total number of pages available |
  | `items` | array | Array of form objects with id, title, created\_at, last\_updated\_at, settings, theme, and \_links |
</ReferenceDetails>

### Typeform Get Form [#typeform-get-form]

Retrieve complete details and structure of a specific form

<ReferenceDetails>
  #### Input [#input-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Typeform Personal Access Token |
  | `formId` | string | Yes | Form unique identifier (e.g., "abc123XYZ") |

  #### Output [#output-4]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Form unique identifier |
  | `title` | string | Form title |
  | `type` | string | Form type (form, quiz, etc.) |
  | `settings` | object | Form settings including language, progress bar, etc. |
  | `theme` | object | Theme reference |
  | `workspace` | object | Workspace reference |
  | `fields` | array | Array of form fields/questions |
  | `welcome_screens` | array | Array of welcome screens (empty if none configured) |
  | `thankyou_screens` | array | Array of thank you screens |
  | `created_at` | string | Form creation timestamp (ISO 8601 format) |
  | `last_updated_at` | string | Form last update timestamp (ISO 8601 format) |
  | `published_at` | string | Form publication timestamp (ISO 8601 format) |
  | `_links` | object | Related resource links including public form URL |
</ReferenceDetails>

### Typeform Create Form [#typeform-create-form]

Create a new form with fields and settings

<ReferenceDetails>
  #### Input [#input-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Typeform Personal Access Token |
  | `title` | string | Yes | Form title |
  | `type` | string | No | Form type (default: "form"). Options: "form", "quiz" |
  | `workspaceId` | string | No | Workspace ID to create the form in (e.g., "ws\_abc123") |
  | `fields` | json | No | Array of field objects defining the form structure. Each field needs: type, title, and optional properties/validations |
  | `settings` | json | No | Form settings object (language, progress\_bar, etc.) |
  | `themeId` | string | No | Theme ID to apply to the form |

  #### Output [#output-5]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Created form unique identifier |
  | `title` | string | Form title |
  | `type` | string | Form type |
  | `settings` | object | Form settings object |
  | `theme` | object | Theme reference |
  | `workspace` | object | Workspace reference |
  | `fields` | array | Array of created form fields (empty if none added) |
  | `welcome_screens` | array | Array of welcome screens (empty if none configured) |
  | `thankyou_screens` | array | Array of thank you screens |
  | `_links` | object | Related resource links including public form URL |
</ReferenceDetails>

### Typeform Update Form [#typeform-update-form]

Update an existing form using JSON Patch operations

<ReferenceDetails>
  #### Input [#input-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Typeform Personal Access Token |
  | `formId` | string | Yes | Form unique identifier to update (e.g., "abc123XYZ") |
  | `operations` | json | Yes | Array of JSON Patch operations (RFC 6902). Each operation needs: op (add/remove/replace), path, and value (for add/replace) |

  #### Output [#output-6]

  | Parameter | Type | Description |
  | - | - | - |
  | `message` | string | Success confirmation message |
</ReferenceDetails>

### Typeform Delete Form [#typeform-delete-form]

Permanently delete a form and all its responses

<ReferenceDetails>
  #### Input [#input-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Typeform Personal Access Token |
  | `formId` | string | Yes | Form unique identifier to delete (e.g., "abc123XYZ") |

  #### Output [#output-7]

  | Parameter | Type | Description |
  | - | - | - |
  | `deleted` | boolean | Whether the form was successfully deleted |
  | `message` | string | Deletion confirmation message |
</ReferenceDetails>

## Triggers [#triggers]

A trigger starts a workflow when a supported event occurs in this service.

### Typeform Webhook [#typeform-webhook]

Trigger workflow when a Typeform submission is received

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `formId` | string | Yes | The unique identifier for your Typeform. Find it in the form URL or form settings. |
  | `apiKey` | string | Yes | Required to automatically register the webhook with Typeform. Get yours at [https://admin.typeform.com/account#/section/tokens](https://admin.typeform.com/account#/section/tokens) |
  | `secret` | string | No | A secret string used to verify webhook authenticity. Highly recommended for security. Generate a secure random string (min 20 characters recommended). |
  | `includeDefinition` | boolean | No | Include the complete form structure (questions, fields, endings) in your workflow variables. Note: Typeform always sends this data, but enabling this makes it accessible in your workflow. |

  #### Output [#output-8]

  | Parameter | Type | Description |
  | - | - | - |
  | `event_id` | string | Unique identifier for this webhook event |
  | `event_type` | string | Type of event (always "form\_response" for form submissions) |
  | `form_id` | string | Typeform form identifier |
  | `token` | string | Unique response/submission identifier |
  | `submitted_at` | string | ISO timestamp when the form was submitted |
  | `landed_at` | string | ISO timestamp when the user first landed on the form |
  | `calculated` | object | Calculated values from the form |
  | ↳ `score` | number | Calculated score value |
  | `variables` | array | Array of dynamic variables |
  | ↳ `key` | string | Variable key |
  | ↳ `number` | number | Numeric value (if type is number) |
  | ↳ `text` | string | Text value (if type is text) |
  | `hidden` | object | Hidden fields passed to the form (e.g., UTM parameters) |
  | `answers` | array | Array of respondent answers (only includes answered questions) |
  | ↳ `text` | string | Text answer value |
  | ↳ `email` | string | Email answer value |
  | ↳ `number` | number | Number answer value |
  | ↳ `boolean` | boolean | Boolean answer value |
  | ↳ `date` | string | Date answer value (ISO format) |
  | ↳ `url` | string | URL answer value |
  | ↳ `file_url` | string | File URL answer value |
  | ↳ `choice` | object | Single choice answer |
  | ↳ `id` | string | Choice ID |
  | ↳ `ref` | string | Choice reference |
  | ↳ `label` | string | Choice label |
  | ↳ `choices` | object | Multiple choices answer |
  | ↳ `ids` | array | Array of choice IDs |
  | ↳ `refs` | array | Array of choice refs |
  | ↳ `labels` | array | Array of choice labels |
  | ↳ `field` | object | Field reference |
  | ↳ `id` | string | Field ID |
  | ↳ `ref` | string | Field reference |
  | `definition` | object | Form definition (only included when "Include Form Definition" is enabled) |
  | ↳ `id` | string | Form ID |
  | ↳ `title` | string | Form title |
  | ↳ `fields` | array | Array of form fields |
  | ↳ `id` | string | Field ID |
  | ↳ `ref` | string | Field reference |
  | ↳ `title` | string | Field title |
  | ↳ `endings` | array | Array of form endings |
  | `ending` | object | Ending screen information |
  | ↳ `id` | string | Ending screen ID |
  | ↳ `ref` | string | Ending screen reference |
  | `raw` | object | Complete original webhook payload from Typeform |
</ReferenceDetails>
