Skip to main content

Survey Monkey

This connector captures data from SurveyMonkey surveys into Flow collections via the SurveyMonkey API.

It is available for use in the Flow web application. For local development or open-source workflows, ghcr.io/estuary/source-surveymonkey:dev provides the latest version of the connector as a Docker image. You can also follow the link in your browser to see past image versions.

This connector is based on an open-source connector from a third party, with modifications for performance in the Flow system. You can find their documentation here, but keep in mind that the two versions may be significantly different.

Supported data resources

The following data resources are supported:

By default, each resource is mapped to a Flow collection through a separate binding.

Prerequisites

You'll need to configure a SurveyMonkey private app to integrate with Flow.

Setup

  1. Go to your your SurveyMonkey apps page and create a new private app.
  2. Set the following required scopes:
    • View surveys
    • View responses
  3. Deploy the app. This requires a paid SurveyMonkey plan; otherwise, the app will be deleted in 90 days.

Once the app is set up, there are two ways to authenticate SurveyMonkey in Flow: using OAuth in the web app, or using an access token with the flowctl CLI.

OAuth authentication in the web app

You'll need the username and password of a SurveyMonkey user that is part of the team for which the private app was created.

Manual authentication with flowctl

Note the client ID, secret, and access token for the private app you created. You'll use these in the connector configuration.

Performance considerations

The SurveyMonkey API imposes call limits of 500 per day and 120 per minute.

This connector uses caching to avoid exceeding these limits.

Configuration

You configure connectors either in the Flow web app, or by directly editing the catalog specification file. See connectors to learn more about using connectors. The values and specification sample below provide configuration details specific to the SurveyMonkey source connector.

Properties

Endpoint

The properties in the table below reflect the manual authentication method. If you're working in the Flow web app, you'll use OAuth2, so many of these properties aren't required.

PropertyTitleDescriptionTypeRequired/Default
/credentialsCredentialsCredentials for the serviceobjectRequired
/credentials/access_tokenAccess TokenAccess Token for your SurveyMonkey private app.stringRequired
/credentials/client_idClient IDClient ID associated with your SurveyMonkey private app.stringRequired
/credentials/client_secretClient SecretClient secret associated with your SurveyMonkey private app.stringRequired
/start_dateStart DateUTC date and time in the format 2017-01-25T00:00:00Z. Any data before this date will not be replicated.stringRequired
/survey_idsSurvey Monkey survey IDsIDs of the surveys from which you'd like to replicate data. If left empty, data from all boards to which you have access will be replicated.array

Bindings

PropertyTitleDescriptionTypeRequired/Default
/streamStreamSurveyMonkey resource from which a collection is captured.stringRequired
/syncModeSync ModeConnection method.stringRequired

Sample

This sample specification reflects the manual authentication method.

captures:
${PREFIX}/${CAPTURE_NAME}:
endpoint:
connector:
image: ghcr.io/estuary/source-surveymonkey:dev
config:
credentials:
access_token: {secret}
client_id: XXXXXXXXXXXXXXXX
client_secret: {secret}
start_date: 2021-01-25T00:00:00Z
bindings:
- resource:
stream: surveys
syncMode: incremental
target: ${PREFIX}/surveys
{...}