There are many different ways to integrate online surveys with a user's email and data into Iterable. One that we've seen used by many is to use Zapier.
Zapier is helpful because it lets you pass data into Iterable without any coding. Doing this on your own would require you to write a script and host it somewhere. If you are not that technical, or want to set up something quickly, doing it via Zapier is the way to go.
For this specific integration example, you need:
- A SurveyMonkey account.
- a Zapier account.
Setup
-
In SurveyMonkey, create a survey.
Make sure to include an email field in your survey, since Iterable keys by email and will use that to update the user's profile.
-
In Zapier, create a Webhook Zap.
Connect your SurveyMonkey account to Zapier.
-
Indicate that a new response will trigger the Zap:
For the Action, choose
Webhooks
and select a POST webhook.Leave this tab open and open your Iterable account. You'll come back to this soon.
-
In Iterable, create a server-side API key
NOTE
Do not share this API key. It is private to your project.
-
Construct an Iterable webhook URL.
For the purposes of this integration, you will use Iterable's
POST /api/events/track
to send the data to Iterable side. Then, append that API key to this string:https://api.iterable.com/api/events/track?apiKey=
This whole string (the URL with the appended API key) is the URL on the Iterable side that will respond to the Zapier webhook in your account.
-
In Zapier, enter data destination and final mapping.
For URL, paste the URL you just created (with the Iterable key).
For Payload, select JSON.
-
Tell Zapier which data to send to Iterable, with which field names. The Iterable
POST /api/events/track
is expecting the following fields:eventName
- This can be an arbitrary string likesurveymonkey_response
or whatever else you choose from what you are sending from your form. The best way to address this may be to create a custom field back in SurveyMonkey that contains this arbitrary string (this was mentioned in step 3).-
email
- Your user's email addressNOTE
Make sure you ask your users for their email address in the survey so that Iterable can match it to the correct profile when they update. Iterable keys by email, so this step is necessary for Iterable to receive the data and attach it to a profile.
-
dataFields__response1
- Add this for each response from the survey that you want to use to enter the journey.NOTE
Specifying
dataFields__
(followed by two underscores) nests the payload under adataFields
key. The two underscores create a nested structure explained below.
-
Tell Zapier what fields to map by clicking the + button you see to the right of each field.
NOTE
This, again, is why you sent test data from your form. Zapier needs to have seen an example of your data in order to make those fields available to you here.
-
The above setup replicates this event API payload:
{ "eventName": "surveymonkey_reponse", "email": "Email address", "dataFields":{ "response1": "Actual response from SurveyMonkey" } }
-
Scroll down in the Zapier page and press Turn Zap On.
At this point you are set up to send data from SurveyMonkey to Zapier, and from Zapier to Iterable. Since you are using your private Iterable API key, Iterable will see that Zapier is sending data via a webhook, will catch the data and will add it to your project. If that's all you need to do, you are finished!
(Optional) In Iterable, create a journey.
And that's it! You have taken data from your SurveyMonkey survey, sent it up to Zapier and then on to Iterable, where you can manipulate it as necessary with our journeys.
Comments
0 comments
Article is closed for comments.