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=euin the URI. For CA accounts, use the CA Developer Portal and setregion=cain 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.