Skip to content

Singer.io tap for extracting TypeForm data

License

Notifications You must be signed in to change notification settings

goes-funky/tap-typeform

 
 

Repository files navigation

REFERENCE

Description

Typeform integration can offer us retrieving data for answers, forms, landing and questions table. For a complete overview, refer to Typeform API


Supported Features

Feature Name Supported Comment
Full Import Yes
Partial Import No
Re-Sync No
Start Date Selection Yes
Import Empty Tables No
Custom Data No
Retroactive Updating No
Dynamic Column Selection Yes

Sync Overview

###Performance Consideration

API rate limits (2 requests per second): rate limits

###Edge cases or known limitations

Typeform API page size limit per source:

  • Forms - 200
  • Responses - 1000

Connector performs additional API call to fetch all possible form ids on an account using retrieve forms endpoint

###Recommendations

  • Question Data: The form definitions are quite robust, but we have chosen to limit the fields to just those needed for responses analysis.

  • Form Data: The raw response data is not fully normalized and the tap output reflects this by breaking it into landings and answers. Answers could potentially be normalized further, but the redundant data is quite small so it seemed better to keep it flat. The hidden field was left a JSON structure since it could have any sorts or numbers of custom elements.

  • Timestamps: All timestamp columns are in yyyy-MM-ddTHH:mm:ssZ format. Resume_date state parameter are Unix timestamps.


Connector

This connector was developed following the standards of Singer SDK.
For more details, see the Singer

Authentication

Authorisation with token.

Workflow

  • Pulls raw data from TypeForms's API
  • Extracts the following resources from TypeForm
    • Responses
      • List of questions on each form added to the configuration in the tap.
      • List of landings of users onto each form added to the configuration in the tap.
      • List of answers completed during each landing onto each form added to the configuration in the tap.
  • Outputs the schema for each resource
  • Inside one connector we found multiple pages.

Rate limits & Pagination

-You can send two requests per second, per type form account. Refer rate limit

  • For pagination should consider that we can retrieve 200 Forms per page and 1000 Responses per page.

Schema

This source is based on the Typeform API.

Supported Streams

Name Description Stream Type
Forms Retrieves a form by the given form_id. Typeform API
Answers A list of form answers with ids that can be used to link to landings and questions since the last completed run of the integration) through the most recent day or hour respectively. On the first run, ALL increments since the Start Date will be replicated. Typeform API
Landing A list of form landings and supporting data since the last completed run of the tap through the most recent day or hour respectively. On the first run, ALL increments since the Start Date will be replicated. Typeform API
Questions A list of question titles and ids that can then be used to link to answers. Typeform API

#HOW TO SETUP

Resources

The resources you need to be able to connect to this connector are:

  • Date for sync
  • Access token

Connector Setup

How to Get API token

To get the API token for your application follow this steps

  • Log in to your account at Typeform.
  • In the upper-right corner, in the drop-down menu next to your profile photo, click My Account.
  • In the left menu, click Personal tokens.
  • Click Generate a new token.
  • In the Token name field, type a name for the token to help you identify it.
  • Choose needed scopes (API actions this token can perform - or permissions it has). See here for more details on scopes.
  • Click Generate token.

How to Create a new Connector

  1. On Integrate, click on "Add..." to search for Typeform and select it.
  2. Name your integration.
  3. To authorize fill the Sync Historical Data from and API Key next click Authorize.
  4. After authentication, you are good to go and start importing your tables.

About

Singer.io tap for extracting TypeForm data

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%