Surveys in campaigns

Send a survey by email, SMS, WhatsApp, push or in-app, wait for the answer, and branch your campaign on it.

After you make a survey, you put it in a message and send it from a campaign. Each answer then writes events and can update contact fields, so the rest of the campaign can react to it.

Email: the Survey block

In the email editor, drag the Survey block into your email and pick a survey in the panel on the right. The first question shows in the email as answer buttons. One click saves that answer and opens the rest of the survey. You can change the button color and the button text color.

The email editor with a Survey block showing NPS buttons from 0 to 10
An NPS question as one-click buttons in an email.
The same email in the mobile preview, with all 11 buttons on one line
All 11 NPS buttons fit on a 375 px phone screen.
  • One-click answers work for NPS, CSAT, Yes / No and Single choice first questions. For other types the block shows one button that opens the survey.
  • The block keeps a copy of the first question. If you edit the survey later, open the email and save it again. The editor updates the block for you when you open it, and the survey's Use in campaigns tab marks emails that still show an old question.

SMS, WhatsApp and push: the survey link

Paste the survey link into your message. You find it, ready to copy, on the survey's Use in campaigns tab:

{{ survey_base_url }}/s/<survey id>?t={{ survey_token }}

Both placeholders are filled for each contact at send time, so every contact gets a personal link.

The Use in campaigns tab listing templates that use the survey and the link to copy
The Use in campaigns tab: the templates that use this survey, and the link to copy.

In-app

In an in-app takeover template, turn on Ask a survey and pick a survey. The questions show under your headline and body. Both the Web SDK and the Flutter SDK show the survey and send the answers; after the contact submits, the thank-you text shows and the takeover closes.

An in-app template with Ask a survey turned on and a phone preview of the questions
Turn on Ask a survey; the live preview shows the questions.
The survey inside a takeover in a web app
The same survey in a web app, drawn by the Web SDK.

Survey events

Answers write two events on the contact. You can use them in triggers, waits, conditions and segments like any other event.

EventWhenProperties
survey.answeredOnce for each answersurvey_id, survey_name, question_key, question_type, value, score (rating questions), campaign_id, channel
survey.completedOnce, when the contact submitssurvey_id, survey_name, response_id, nps, csat, answers.<event key>, scores.<event key>, campaign_id, channel

Wait for the answer

In the flow builder, add a Wait for event step after the step that sends the survey. In the step panel, pick your survey under Survey response. This waits for survey.completed from that survey only. Set Time out after to decide how long to wait. Contacts who answer take the true branch; contacts who do not answer in time take the false branch.

The flow builder with a Wait for survey answer step, a Promoter condition and two actions
Wait up to 3 days for the answer, then branch on the score.

Branch on the answer

The easiest way is to save the answer to a contact field (the Save to contact field setting on the question, for example last_nps). Then add a Condition step on that field:

  • last_nps greater than or equal to 9 — promoters. Ask for a review or a referral.
  • last_nps less than or equal to 6 — detractors. Tag them or alert your team.

Because the value stays on the contact, you can also build segments from it, for example "all detractors in the last quarter".

Not too often

Turn on the survey cooldown so a contact who just gave feedback is not asked again right away by another campaign.