Integrations / SurveyMonkey
SurveyMonkey
Online surveys: list and create surveys, collectors and read responses.
9 actions
OAuth 2
5 read3 write1 destructive
Calls api.surveymonkey.com
Connect
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "surveymonkey" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();Permissions requested
| Scope | Why it is requested |
|---|---|
users_read | Identify the connected SurveyMonkey account |
surveys_read | Read your surveys and their questions |
surveys_write | Create, change and delete surveys |
collectors_read | Read the collectors (links) of your surveys |
collectors_write | Create collectors such as weblinks |
responses_read | See which responses exist for a survey |
responses_read_detail | Read the answers in survey responses |
Actions
Create weblink collectorwritesurveymonkey.create_collectorCreate a collector for a survey. The default type is a weblink; the response includes the survey link to share.
Needs scope: collectors_write
| Input | Type | Description | |
|---|---|---|---|
survey_id | string | Required | Survey ID |
name | string | Required | Collector name |
type | string | Required | Collector type |
await setu.execute({
userId: "user_1",
action: "surveymonkey.create_collector",
input: {
"survey_id": "<survey_id>",
"name": "<name>",
"type": "<type>"
},
});Create surveywritesurveymonkey.create_surveyCreate a survey with a title, or copy an existing survey or a template into a new survey. Add pages and questions afterwards in SurveyMonkey.
Needs scope: surveys_write
| Input | Type | Description | |
|---|---|---|---|
title | string | Required | Survey title |
from_survey_id | string | Optional | Copy this existing survey |
from_template_id | string | Optional | Create from this template |
language | string | Optional | Language code, e.g. en |
await setu.execute({
userId: "user_1",
action: "surveymonkey.create_survey",
input: {
"title": "<title>"
},
});Delete surveydestructivesurveymonkey.delete_surveyDelete a survey and its responses. This cannot be undone through the API.
Needs scope: surveys_write
| Input | Type | Description | |
|---|---|---|---|
survey_id | string | Required | Survey ID |
await setu.execute({
userId: "user_1",
action: "surveymonkey.delete_survey",
input: {
"survey_id": "<survey_id>"
},
confirm: true,
});Get surveyreadsurveymonkey.get_surveyGet a survey's title, language, page and question counts, response count and links.
Needs scope: surveys_read
| Input | Type | Description | |
|---|---|---|---|
survey_id | string | Required | Survey ID from list_surveys |
await setu.execute({
userId: "user_1",
action: "surveymonkey.get_survey",
input: {
"survey_id": "<survey_id>"
},
});Get survey with questionsreadsurveymonkey.get_survey_detailsGet a survey with all of its pages and questions (question and answer-choice IDs). Needed to interpret the answers returned by list_responses.
Needs scope: surveys_read
| Input | Type | Description | |
|---|---|---|---|
survey_id | string | Required | Survey ID |
await setu.execute({
userId: "user_1",
action: "surveymonkey.get_survey_details",
input: {
"survey_id": "<survey_id>"
},
});List collectorsreadsurveymonkey.list_collectorsList a survey's collectors (the weblinks, email campaigns and other ways it is distributed) with IDs and names.
Needs scope: collectors_read
| Input | Type | Description | |
|---|---|---|---|
survey_id | string | Required | Survey ID |
page | integer | Optional | Page number, starting at 1 |
per_page | integer | Optional | Collectors per page |
await setu.execute({
userId: "user_1",
action: "surveymonkey.list_collectors",
input: {
"survey_id": "<survey_id>"
},
});List survey responsesreadsurveymonkey.list_responsesGet a survey's responses with their answers (question and choice IDs, plus text when simple is true). Needs a SurveyMonkey plan that allows response details; basic plans are limited to 25 responses.
Needs scope: responses_read_detail
| Input | Type | Description | |
|---|---|---|---|
survey_id | string | Required | Survey ID |
page | integer | Optional | Page number, starting at 1 |
per_page | integer | Optional | Responses per page, up to 100 (default 50) |
simple | boolean | Optional | True to include question and answer text, not only IDs |
status | string | Optional | Only responses with this status |
start_created_at | string | Optional | Only responses started after this time, e.g. 2021-06-01T00:00:00 |
end_created_at | string | Optional | Only responses started before this time |
await setu.execute({
userId: "user_1",
action: "surveymonkey.list_responses",
input: {
"survey_id": "<survey_id>"
},
});List surveysreadsurveymonkey.list_surveysList the surveys owned by or shared with the user, optionally searched by title, with IDs and titles. Returns one page.
Needs scope: surveys_read
| Input | Type | Description | |
|---|---|---|---|
title | string | Optional | Only surveys whose title contains this text |
page | integer | Optional | Page number, starting at 1 |
per_page | integer | Optional | Surveys per page |
sort_by | string | Optional | Sort field |
sort_order | string | Optional | Sort order |
await setu.execute({
userId: "user_1",
action: "surveymonkey.list_surveys",
input: {},
});Update surveywritesurveymonkey.update_surveyChange a survey's title, nickname or language. Only the fields you pass are changed.
Needs scope: surveys_write
| Input | Type | Description | |
|---|---|---|---|
survey_id | string | Required | Survey ID |
title | string | Optional | New title |
nickname | string | Optional | New nickname |
language | string | Optional | Language code, e.g. en |
await setu.execute({
userId: "user_1",
action: "surveymonkey.update_survey",
input: {
"survey_id": "<survey_id>"
},
});