SurveyMonkey¶
SurveyMonkey is an online survey platform that allows users to create surveys, collect responses, and analyze data.
omniload supports SurveyMonkey as a source.
URI format¶
surveymonkey://?access_token=<access_token>
URI parameters:
access_token: The access token used to authenticate with the SurveyMonkey API.region(optional): The region. Must beus(default),eu, orca.
For EU or CA accounts, specify the region:
surveymonkey://?access_token=<access_token>®ion=eu
Setting up a SurveyMonkey Integration¶
SurveyMonkey requires an access token to connect to the API. To get one:
Go to the SurveyMonkey Developer Portal and create a new app.
Select the app type:
Private App (recommended for Enterprise plans): Issues a non-expiring access token directly. All users must belong to the same SurveyMonkey team.
Public App (for Basic/free plans): Issues a draft token that expires after 90 days.
Under the Scopes section, enable the required scopes: View Surveys, View Responses, View Response Details, View Collectors, View Contacts.
Click Update Scopes.
Copy the Access Token from the Credentials section.
Note
For EU accounts, use the EU Developer Portal and set region=eu in the URI. For CA accounts, use the CA Developer Portal and set region=ca in the URI.
Once you have the access token, here’s a sample command that will copy survey data into a DuckDB database:
omniload ingest \
--source-uri "surveymonkey://?access_token=your_token_here" \
--source-table "surveys" \
--dest-uri duckdb:///surveymonkey.duckdb \
--dest-table "public.surveys"
Tables¶
SurveyMonkey source allows ingesting the following resources into separate tables:
Table |
PK |
Inc Key |
Inc Strategy |
Details |
|---|---|---|---|---|
id |
date_modified |
merge |
List of all surveys with metadata (title, dates, response count, question count) |
|
id |
date_modified |
merge |
Full survey details including nested pages and questions as JSON |
|
id |
date_modified |
merge |
Survey response data with answers, collected per survey |
|
id |
date_modified |
merge |
Survey distribution channels (weblink, email, etc.) |
|
id |
- |
replace |
Contact lists |
|
id |
- |
replace |
Contacts across all statuses (active, optout, bounced) |
Use these as the --source-table parameter in the omniload ingest command.