Typeform integration summary

Stitch’s Typeform integration replicates data using the Typeform Create and Responses APIs. Refer to the Schema section for a list of objects available for replication.

Typeform feature snapshot

A high-level look at Stitch's Typeform (v2) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Released on September 29, 2022

Supported by

Stitch

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-typeform

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Supported

Column selection

Supported

Select all

Supported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Typeform

Step 1: Generate a Typeform API token

  1. Sign into your Typeform account.
  2. Click the user menu (your icon) in the top right corner of the page.
  3. In the menu, click My Account.
  4. On the page that displays, click Personal tokens on the left side of the page.
  5. The Personal tokens page will display. Click the Generate a new token button.
  6. Enter a Token name. For example: Stitch
  7. In the Scopes section, click Custom scopes.
  8. In the list that displays, select the Read option for the following permissions:
    • Accounts
    • Forms
    • Images
    • Responses
    • Themes
    • Workspaces
  9. Click Generate token.
  10. A window with the token will display. Copy the token somewhere handy, as you’ll need it to complete the setup. Note: Typeform will only display the token once. If you close this window, you’ll need to re-generate the token.

Step 2: Retrieve Typeform form IDs

Stitch’s Typeform will retrieve data only for the forms you specify in the Integration Settings page. In this step, you’ll retrieve the IDs of the forms you want Stitch to replicate.

  1. In your Typeform account, navigate back to your workspaces.
  2. On the workspace page, click on a form you want to include in Stitch. This should open the form’s edit page.
  3. Look at the URL of the page in your browser. It should be similar to https://admin.typeform.com/form/FrZ6iD/create. The string between form/ and /create is the form’s ID. In this example, the ID is FrZ6iD.
  4. Copy the form ID somewhere handy.
  5. Repeat steps 2-4 for every form you want to include in Stitch.

Step 3: Add Typeform as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Typeform icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Typeform” would create a schema called stitch_typeform in the destination. Note: Schema names cannot be changed after you save the integration.

  5. In the API Token field, paste the Typeform API token you generated in Step 1.
  6. In the Forms field, enter a comma-separated list of the form IDs you retrieved in Step 2. For example:
    • Single form: FrZ6iD
    • Multiple forms: FrZ6iD,f8nzFM

Step 4: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your Typeform integration. This means that:

  • For tables using Key-based Incremental Replication, data equal to or newer than this date will be replicated to your destination.
  • For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your destination.

Change this setting if you want to replicate data beyond Typeform’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 5: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Typeform integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 6: Set objects to replicate

The last step is to select the tables and columns you want to replicate. Learn about the available tables for this integration.

Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.

For Typeform integrations, you can select:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab

  5. Click the Finalize Your Selections button at the bottom of the page to save your data selections.

Initial and historical replication jobs

After you finish setting up Typeform, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Typeform table reference

Replication Method :

Key-based Incremental

Replication Key :
Primary Key :

landing_id : question_id

API endpoint :

Retrieve responses

The answers table contains info about the answers submitted for the forms specified in the Integration Settings page. Note: There is no replication key for this table, it uses the replication key submitted_at from its parent stream submitted_landings.

landing_id
STRING

The ID for the form landing.

Reference:

submitted_at
DATE-TIME

The time that the form response was submitted in ISO 8601 format, UTC time.

question_id
STRING

The question ID.

Reference:

answer
STRING

data_type
STRING

The field type of the question. Possible values are:

  • choice
  • choices
  • date
  • email
  • url
  • file_url
  • number
  • boolean
  • text
  • payment

ref
STRING

type
STRING


Replication Method :

Key-based Incremental

Replication Key :

last_updated_at

Primary Key :

id

API endpoint :

Retrieve forms

The forms table contains info about the forms (public and private) that are accesible by the user who authorized the integration in Stitch.

id
STRING

The form ID.

Reference:

last_updated_at
STRING

The time of the last update in the form.

self
OBJECT

The URL for the typeform.

href
STRING

forms (table), self (attribute)

settings
OBJECT

is_public
BOOLEAN

is_trial
BOOLEAN

forms (table), settings (attribute)

theme
OBJECT

The URL for the theme the typeform uses.

href
STRING

forms (table), theme (attribute)

title
STRING

The title of the form.

type
STRING

_links
OBJECT

created_at
DATE-TIME

The time the form was created.


Replication Method :

Full Table

Primary Key :

form_id : question_id

API endpoint :

Retrieve form

The questions table contains a list of question titles and IDs that can be used to link to answers.

form_id
STRING

The form ID.

Reference:

question_id
STRING

The question ID.

Reference:

ref
STRING

The readable name used to reference the question field.

title
STRING

The unique name assigned to the field on the form.

attachment
OBJECT

type
STRING

href
STRING

scale
NUMBER

properties
OBJECT

description
STRING

questions (table), properties (attribute)
questions (table), attachment (attribute)

field_type
STRING

id
STRING

layout
OBJECT

type
STRING

placement
STRING

attachment
OBJECT

type
STRING

href
STRING

scale
NUMBER

properties
OBJECT

description
STRING

questions (table), properties (attribute)
questions (table), attachment (attribute)
questions (table), layout (attribute)

name
STRING

options
ARRAY

label
STRING

questions (table), options (attribute)

properties
OBJECT

allow_multiple_selection
BOOLEAN

allow_other_choice
BOOLEAN

alphabetical_order
BOOLEAN

button_text
STRING

choices
ARRAY

attachment
OBJECT

type
STRING

href
STRING

questions (table), attachment (attribute)

description
STRING

label
STRING

ref
STRING

questions (table), choices (attribute)

currency
STRING

default_country_code
STRING

description
STRING

fields
ARRAY

items
OBJECT

questions (table), fields (attribute)

hide_marks
BOOLEAN

labels
OBJECT

center
STRING

left
STRING

right
STRING

questions (table), labels (attribute)

price
OBJECT

type
STRING

value
STRING

questions (table), price (attribute)

randomize
BOOLEAN

separator
STRING

shape
STRING

questions (table), properties (attribute)

required
BOOLEAN

type
STRING

validations
OBJECT

max_length
INTEGER

max_selection
INTEGER

max_value
INTEGER

min_selection
INTEGER

min_value
INTEGER

required
BOOLEAN

questions (table), validations (attribute)

submitted_landings

Replication Method :

Key-based Incremental

Replication Key :

submitted_at

Primary Key :

landing_id

API endpoint :

Retrieve responses

The submitted_landings table contains info about submitted form landings.

Note: Data related to a form landing can be retrieved twice, once in unsubmitted_landings when it is unsubmitted and once in submitted_landings when it is submitted. In this case, they will have different bookmarks.

landing_id
STRING

The landing ID.

Reference:

submitted_at
DATE-TIME

The time that the form response was submitted in ISO 8601 format, UTC time.

browser
STRING

The browser used in the landing.

hidden
STRING

landed_at
DATE-TIME

The time of the form landing in ISO 8601 format, UTC time.

network_id
STRING

The IP address of the client.

platform
STRING

The platform used in the landing, derived from user_agent.

referer
STRING

If applicable, the referrer used in the landing.

token
STRING

user_agent
STRING

The user agent used in the landing.


unsubmitted_landings

Replication Method :

Key-based Incremental

Replication Key :

landed_at

Primary Key :

landing_id

API endpoint :

Retrieve responses

The unsubmitted_landings table contains info about unsubmitted form landings.

Note: Data related to a form landing can be retrieved twice, once in unsubmitted_landings when it is unsubmitted and once in submitted_landings when it is submitted. In this case, they will have different bookmarks.

landing_id
STRING

The landing ID.

Reference:

browser
STRING

The browser used in the landing.

landed_at
DATE-TIME

The time of the form landing in ISO 8601 format, UTC time.

network_id
STRING

The IP address of the client.

platform
STRING

The platform used in the landing, derived from user_agent.

referer
STRING

If applicable, the referrer used in the landing.

token
STRING

user_agent
STRING

The user agent used in the landing.

response_id
STRING

The response ID.



Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.