- Documentation
SurveyMonkey integration
Read surveys, list responses, and react to new submissions across your clients' SurveyMonkey accounts.
What it does
The SurveyMonkey integration lets your agency turn a client's surveys into the front door of an automated workflow. Connect a client's SurveyMonkey account once and you can list every survey, fetch a survey's pages and questions, page through bulk responses with status and date filters, retrieve a single response with all answer details, and enumerate the survey's collectors. A response_completed webhook trigger turns every new completion into a workflow run, so the next step (CRM upsert, Slack notification, NPS scoring) runs the moment the respondent finishes the survey.
Connect a SurveyMonkey account
- Open your workspace in TaskJuice and navigate to Connections.
- Choose SurveyMonkey and click Connect.
- Sign in to the SurveyMonkey developer portal at developer.surveymonkey.com and open My Apps.
- Create or select an app, open the Scopes tab, and grant the scopes your workflow needs (typically
surveys_readandresponses_read). - Open the Settings tab, copy the Access Token, and paste it into TaskJuice.
A SurveyMonkey access token inherits the scopes granted on the app. Tightening the scope list on the developer portal also tightens the connection in TaskJuice on the next request.
Triggers
surveymonkey/response-completedfires when a respondent finishes a survey. The payload includes the event id, the survey id and collector id, the response id, and the event timestamp.
Actions
surveymonkey/list-surveyslists surveys in the connected account with page-based pagination and optional title, sort, and order filters.surveymonkey/get-surveyretrieves a single survey by id with its metadata and counts.surveymonkey/get-survey-detailsreturns the full survey structure including pages, questions, and answer choices.surveymonkey/list-responseslists bulk responses for a survey with status, date-range, and sort filters, paged viapageandper_page.surveymonkey/get-responsefetches a single response by id with all answer details.surveymonkey/list-collectorslists collectors (distribution channels) for a survey with page-based pagination.
Known limitations
- SurveyMonkey enforces a 120 requests-per-minute global rate limit on the v3 API. The action engine retries
429responses with backoff; high-volume response backfills should pace requests with a downstream throttle. - Daily request quotas apply on top of the per-minute ceiling. The exact ceiling depends on the SurveyMonkey plan attached to the access token.
- SurveyMonkey webhooks sign the raw request body with HMAC-SHA1 and send the hex digest in the
Sm-Hookshot-Signatureheader. Configure the webhook with a signing secret and paste the same secret into the trigger; the platform verifies every inbound POST before activating the workflow. - Webhook payloads carry resource pointers (
survey_id,collector_id,response_id), not the full response. Chain asurveymonkey/get-responseaction after the trigger to materialize the answers. - Access tokens never expire on their own, but revoking the app on the developer portal invalidates every token issued for it. The platform surfaces a 401 on the next workflow run when that happens.