Skip to main content
Connectors

Typeform connector

Set up the Typeform connector in Kaivo: authentication, configuration, the 6 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your Typeform data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your survey and email data instead of moving it.

What is the Typeform connector

Sync your Typeform forms and responses into BigQuery with Kaivo to analyse survey and form data alongside the rest of your data.

CategorySurveys & Email
AuthenticationAPI key
SetupSelf-service

Getting started with the Typeform connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your Typeform account.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating Typeform

Authenticate with your Private Token.

FieldDescription
Private Token

Log into your Typeform account and then generate a personal Access Token.

Configuring the Typeform connector

When you set up the connector, you provide:

FieldDescription
Start Date

Any data before this date will not be fetched.

Form IDs to replicate

When this parameter is set, the connector will replicate data only from the specified forms. Otherwise, all forms in your Typeform account will be replicated. You can find form IDs in your form URLs. For example, in the URL "https://mysite.typeform.com/to/u6nXL7" the form ID is u6nXL7.

Tables and columns synced from Typeform

Kaivo syncs 6 tables from Typeform into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRINGUnique identifier of the form
typeSTRINGType of the form
created_atTIMESTAMPDate and time when the form was created
last_updated_atTIMESTAMPDate and time when the form was last updated
published_atTIMESTAMPDate and time when the form was published
titleSTRINGTitle of the form
workspace__hrefSTRINGURL of the workspace
theme__hrefSTRINGURL of the theme
settings__languageSTRINGLanguage of the form
settings__progress_barSTRINGProgress bar settings
settings__meta__allow_indexingBOOLFlag indicating if indexing is allowed
settings__meta__titleSTRINGTitle of the form
settings__meta__descriptionSTRINGDescription of the form
settings__meta__image__hrefSTRINGURL of the form image
settings__hide_navigationBOOLFlag indicating if navigation is hidden
settings__is_publicBOOLFlag indicating if the form is public
settings__is_trialBOOLFlag indicating if the form is a trial version
settings__show_progress_barBOOLFlag indicating if progress bar is displayed
settings__show_typeform_brandingBOOLFlag indicating if Typeform branding is displayed
settings__are_uploads_publicBOOLFlag indicating if uploads are public
settings__show_time_to_completeBOOLFlag indicating if time to complete is displayed
settings__redirect_after_submit_urlSTRINGURL to redirect after form submission
settings__google_analyticsSTRINGGoogle Analytics settings
settings__facebook_pixelSTRINGFacebook Pixel settings
settings__google_tag_managerSTRINGGoogle Tag Manager settings
settings__capabilities__e2e_encryption__enabledBOOLFlag indicating if end-to-end encryption is enabled
settings__capabilities__e2e_encryption__modifiableBOOLFlag indicating if encryption is modifiable
settings__notifications__self__enabledBOOLFlag indicating if self notifications are enabled
settings__notifications__self__subjectSTRINGSubject of self notifications
settings__notifications__self__messageSTRINGMessage for self notifications
settings__notifications__self__reply_toSTRINGEmail address for self notifications
settings__notifications__respondent__enabledBOOLFlag indicating if respondent notifications are enabled
settings__notifications__respondent__subjectSTRINGSubject of respondent notifications
settings__notifications__respondent__messageSTRINGMessage for respondent notifications
settings__notifications__respondent__reply_toSTRINGEmail address for respondent replies
settings__cui_settings__avatarSTRINGAvatar settings
settings__cui_settings__is_typing_emulation_disabledBOOLFlag indicating if typing emulation is disabled
settings__cui_settings__typing_emulation_speedSTRINGSpeed of typing emulation
_links__displaySTRINGDisplay information related to the form
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: forms__settings__notifications__self__recipients

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: forms__settings__notifications__respondent__recipients

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: forms__welcome_screens

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRINGUnique identifier of the welcome screen
refSTRINGReference of the welcome screen
titleSTRINGTitle of the welcome screen
properties__show_buttonBOOLFlag indicating if the button is displayed
properties__share_iconsBOOLIcons for sharing the welcome screen
properties__button_modeSTRINGMode of the button
properties__button_textSTRINGText of the button
properties__redirect_urlSTRINGURL to redirect on button click
attachment__typeSTRINGType of the attachment
attachment__placementSTRINGPlacement of the attachment
layout__typeSTRINGType of the layout
layout__placementSTRINGPlacement of the welcome screen layout
layout__attachment__typeSTRINGType of the attachment
layout__attachment__hrefSTRINGURL of the attached file
layout__attachment__scaleFLOAT64Scale of the attachment
layout__properties__brightnessFLOAT64Brightness settings of the welcome screen
layout__properties__descriptionSTRINGDescription of the welcome screen
layout__properties__focal_point__xFLOAT64
layout__properties__focal_point__yFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: forms__thankyou_screens

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRINGUnique identifier of the thank you screen
refSTRINGReference of the thank you screen
titleSTRINGTitle of the thank you screen
properties__show_buttonBOOLFlag indicating if the button is displayed
properties__share_iconsBOOLIcons for sharing the thank you screen
properties__button_modeSTRINGMode of the button
properties__button_textSTRINGText of the button
properties__redirect_urlSTRINGURL to redirect on button click
attachment__typeSTRINGType of the attachment
attachment__placementSTRINGPlacement of the attachment
layout__typeSTRINGType of the layout
layout__placementSTRINGPlacement of the thank you screen layout
layout__attachment__typeSTRINGType of the attachment
layout__attachment__hrefSTRINGURL of the attached file
layout__attachment__scaleFLOAT64Scale of the attachment
layout__properties__brightnessFLOAT64Brightness settings of the thank you screen
layout__properties__descriptionSTRINGDescription of the thank you screen
layout__properties__focal_point__xFLOAT64
layout__properties__focal_point__yFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: forms__logic

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRINGType of logic
refSTRINGReference of the logic
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: forms__logic__actions

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
actionSTRINGAction to be taken
details__to__typeSTRINGType of activity
details__to__valueSTRINGValue of the activity
details__target__typeSTRINGType of the target
details__target__valueSTRINGValue of the target
details__value__typeSTRINGType of value
details__value__valueSTRINGValue to be assigned
condition__opSTRINGOperation to be performed
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: forms__logic__actions__condition__vars

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRINGType of the variable
valueSTRINGValue of the variable
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: forms__fields

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRINGUnique identifier of the field
titleSTRINGTitle of the field
refSTRINGReference of the field
properties__randomizeBOOLFlag indicating if choices should be randomized
properties__allow_multiple_selectionBOOLFlag indicating if multiple selections are allowed
properties__allow_other_choiceBOOLFlag indicating if an 'Other' choice is allowed
properties__vertical_alignmentBOOLVertical alignment of the choices
validations__requiredBOOLFlag indicating if the field is required
typeSTRINGType of the field
attachment__typeSTRINGType of the attachment
attachment__hrefSTRINGURL of the attached file
layout__typeSTRINGType of the layout
layout__placementSTRINGPlacement of the field in the layout
layout__attachment__typeSTRINGType of the attachment
layout__attachment__hrefSTRINGURL of the attached file
layout__attachment__scaleFLOAT64Scale of the attachment
layout__properties__brightnessFLOAT64Brightness settings of the field
layout__properties__descriptionSTRINGDescription of the field
layout__properties__focal_point__xFLOAT64
layout__properties__focal_point__yFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: forms__fields__properties__choices

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRINGUnique identifier of the choice
refSTRINGReference to the choice
labelSTRINGLabel of the choice
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
file_nameSTRINGThe name of the image file.
idSTRINGThe unique identifier of the image.
srcSTRINGThe URL or path to access the image file.
widthINT64The width of the image in pixels.
heightINT64The height of the image in pixels.
media_typeSTRINGThe type of media file, e.g., image/jpeg, image/png, etc.
avg_colorSTRINGThe average color of the image.
has_alphaBOOLBoolean indicating if the image has an alpha channel.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
response_idSTRINGID of the response
response_typeSTRINGType of the response
landed_atSTRINGTimestamp when the respondent landed on the form
landing_idSTRINGID of the landing page
submitted_atSTRINGTimestamp when the response was submitted
tokenSTRINGToken associated with the response
form_idSTRINGID of the form
metadata__user_agentSTRINGUser agent information
metadata__platformSTRINGPlatform information
metadata__refererSTRINGReferer information
metadata__network_idSTRINGNetwork ID
calculated__scoreINT64Calculated score
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: responses__variables

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
keySTRINGVariable key
typeSTRINGType of the variable
textSTRINGTextual variable
numberFLOAT64Numeric variable
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: responses__answers

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
field__idSTRINGID of the form field
field__refSTRINGReference to the form field
field__typeSTRINGType of the form field
typeSTRINGType of response
textSTRINGTextual answer
choice__idSTRINGID of the chosen option
choice__labelSTRINGLabel of the chosen option
numberFLOAT64Numeric answer
dateTIMESTAMPDate and time answer
emailSTRINGEmail answer
phone_numberSTRINGPhone number answer
booleanBOOLBoolean answer
file_urlSTRINGURL of the file uploaded
urlSTRINGURL answer
payment__amountSTRINGAmount paid
payment__last4STRINGLast 4 digits of the payment card
payment__nameSTRINGName on the payment card
payment__successBOOLPayment success status
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: responses__answers__choices__ids

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: responses__answers__choices__labels

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
background__brightnessFLOAT64The brightness level of the background
background__hrefSTRINGThe URL reference for the background image
background__layoutSTRINGThe layout style of the background
colors__answerSTRINGColor of answer text
colors__backgroundSTRINGBackground color
colors__buttonSTRINGColor of buttons
colors__questionSTRINGColor of question text
fields__alignmentSTRINGAlignment of form field elements
fields__font_sizeSTRINGFont size for form fields
fontSTRINGFont settings for the theme
has_transparent_buttonBOOLIndicates if the theme includes a transparent button
idSTRINGUnique identifier for the theme
nameSTRINGName of the theme
rounded_cornersSTRINGIndicates if the theme has rounded corners
screens__alignmentSTRINGAlignment of screen elements
screens__font_sizeSTRINGFont size for screen elements
visibilitySTRINGVisibility settings for the theme
updated_atTIMESTAMPTimestamp of when the theme was last updated
created_atTIMESTAMPTimestamp of when the theme was created
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
created_atSTRINGThe timestamp when the webhook was created
enabledBOOLIndicates if the webhook is currently enabled
form_idSTRINGThe unique identifier of the form associated with the webhook
idSTRINGThe unique identifier of the webhook
tagSTRINGA tag to categorize or label the webhook
updated_atSTRINGThe timestamp when the webhook was last updated
urlSTRINGThe URL where the webhook data is sent
verify_sslBOOLIndicates whether SSL verification is enforced for the webhook URL
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
account_idSTRINGThe unique identifier of the account associated with the workspace.
defaultBOOLFlag indicating if this workspace is set as the default workspace.
forms__countFLOAT64The total number of forms belonging to this workspace.
forms__hrefSTRINGThe URL to retrieve the list of forms associated with this workspace.
idSTRINGThe unique identifier of the workspace.
nameSTRINGThe name of the workspace.
self__hrefSTRINGThe URL to retrieve the details of this workspace.
sharedBOOLFlag indicating if this workspace is shared with other users.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the Typeform sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where Typeform supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for Typeform?

It depends on how much history is in your Typeform account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when Typeform's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in Typeform, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in Typeform instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the Typeform connector in Kaivo and all of its synced data is deleted with it.

Common use cases for Typeform data

Response analysis

Aggregate responses to track results and trends over time.

Completion rates

Analyse forms and responses to measure completion and drop-off.

Segment feedback

Break responses down by segment to compare how different groups answer.

Feedback and operations together

Join Typeform responses with support or sales data in BigQuery to connect feedback to outcomes.

Use Typeform data in your AI and BI tools

Once Typeform data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with Typeform data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide →

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Excel

Connect via Power Query's BigQuery connector. Setup guide →

Metabase

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for Typeform connector pricing and plan details.

Was this helpful?

Still need help? Share an idea