Documentation

Setting up a Twilio Voice respondent source

Voice surveys let you run surveys over a phone call, using AI to create a natural, conversational experience. The platform reads questions aloud, listens to spoken answers, and maps responses back to your survey structure. All of this happens automatically.

Voice survey quality is viable today and will only continue to improve as real-time voice LLM models advance.

Long-form voice interviews are supported. Audio is processed while the call is active so the interviewer can understand and respond, but MX8 Labs does not retain call audio or recordings after processing. Survey responses and operational lifecycle metadata are retained in the same way as other respondent-source data.

Before you start
  • Advanced respondent sources must be enabled in your account.
  • You need a Twilio Account SID, Auth Token, and a Twilio phone number.
  • Your contact numbers must be in E.164 format (example: +15551234567). See E.164 phone number format for the formatting rules and common country prefixes.
Step 1: Create a new Twilio Voice source

Go to Sources, click Add Respondent Source, search for "voice," and select Twilio Voice.

Add respondent source: searching for Twilio Voice

Fill in the Twilio-specific fields along with the selected base fields:

FieldWhat to enterRequired
NameA descriptive name for this sourceYes
Target responsesNumber of completions requiredYes
Days in fieldHow long to keep the source activeYes
MarketThe country your respondents are in (US only)Yes
Notification emailEmail for notifications about this sourceOptional
Completion urlRedirect base URL after survey completionOptional
Default languageThe default language for the respondent survey experience (en-us only)Yes
Twilio account SIDYour Twilio Account SIDYes
Twilio from numberThe outbound caller ID used for survey calls, in E.164Yes
Twilio auth tokenYour Twilio Auth TokenRequired on create, optional on update
Voice nameThe AI voice used during the phone call (alloy, ash, ballad, coral, echo, sage, shimmer, verse, marin, cedar)Yes
Incoming callsAllow respondents to call the Twilio number to start the surveyOptional (default off)
Background noisePlay low-level ambient audio during calls so the line does not sound deadOptional (default on)
Calls per secondMaximum outbound survey calls to start per second for this sourceYes (min 1)
Delivery window time zoneIANA time zone used for campaign call hours (e.g. America/New_York)Yes
Delivery window startLocal time calls may begin, in HH:MM (default 08:00)Yes
Delivery window endLocal time calls must stop, in HH:MM (default 21:00)Yes
Identity columnContact file identity column name (default: Identifier)Optional

Twilio Voice source configuration

The Voice name dropdown lets you choose from several AI voices. Pick the one that best fits the tone and audience of your survey.

Twilio Voice sources currently support the US market and en-us language only.

Background noise

The Background noise option plays a low level of ambient audio underneath the call, so the line does not sound dead to the respondent. We recommend leaving background noise on for most studies. It is enabled by default.

Incoming calls (call-back)

By default, a Twilio Voice source only places outbound calls. Turn on Incoming calls to let respondents call the Twilio number back and start the survey themselves. Use it when a respondent misses your call, or when you want to publish the number and invite people to call in.

When incoming calls are enabled, an inbound call to your Twilio number is routed to the survey using the same Inbound webhook URL you configure in Step 3 below. A single webhook handles both outbound calls and call-backs. If incoming calls are left off, inbound calls to the number are rejected.

Step 2: Design your survey

All question types are supported for voice surveys. However, media-based content such as images, videos, and display text will not be presented to respondents since the survey is conducted entirely over audio.

The visual survey editor works the same way it does for any other respondent source. You can switch between the Code and Visual views using the toggle at the top of the editor.

Code and Visual toggle

Survey flow in the visual editor

Each survey step can be edited by clicking on it. Question text, options, and logic all work the same as other source types.

Editing a survey step

AI disclosure

The interviewer on a voice survey is automated. Write a disclosure into the opening of your survey: tell respondents at the start of the call that they are speaking with an automated, AI interviewer, before you ask the first question.

Disclosure requirements for AI-generated voice calls vary by jurisdiction and change over time. Confirm what applies in the markets you are calling, and check with your own legal or compliance team before you field.

Step 3: Configure Twilio webhook
  1. In the source, copy the Inbound webhook URL from the Twilio setup panel.
  2. In Twilio Console, paste that URL as your inbound webhook for the phone number.
  3. Save changes in Twilio.

This same webhook handles call-backs when Incoming calls is enabled, so there is nothing extra to configure for respondents to call the number back.

Step 4: Upload contacts
  1. Use Upload file.
  2. Supported file types: .csv, .csv.gz, .xlsx. For .xlsx, the platform reads the workbook's active sheet. You do not need to format the data as an Excel table.
  3. Include the configured Identity column (default Identifier) and populate it with phone numbers in E.164 format (e.g. +15551234567). Numbers that are not in E.164 will be rejected. See E.164 phone number format for the formatting rules and common country prefixes.
  4. The values in the identity column must be unique within the file. If any number appears more than once, the upload will be rejected. De-duplicate before uploading.

You can also include additional columns of first-party data alongside the identity column. Any column header that matches a question code, or that exactly matches the name of a stored variable in your survey, will be auto-matched. The value is pre-filled into the survey at runtime and is available in reporting. Matching to stored variables is exact and case-sensitive, so spell the column header identically to the stored variable.

Step 5: Test your survey

Open a survey test link and choose this voice source if prompted. Select Phone, enter a number in E.164 international format (for example, +15551234567), and start the test. The test number must not already be in this source's uploaded contacts. The platform will call you and run through the survey as a respondent would experience it.

Choose Online instead when you want to check wording and logic in your browser without placing a call. See Testing and Reviewing Your Survey for the complete market, source, mode, and test-data flow.

Step 6: Go live
  1. Use the Status action Go Live.
  2. Use Pause, Restart, or Complete as needed during fielding.
Reporting

Reporting for voice surveys works the same as for any other respondent source. Standard reports, crosstabs, and data exports include voice responses.

On the Summary tab, use the source's progress bar to track destinations through Planned, Scheduled, Starting, Delivered, or Failed. For voice calls, provider events such as answered, in progress, and completed map to Delivered; busy, no-answer, canceled, and failed events map to Failed. Delivery is not a survey outcome: an answered call can still end as In Progress, Terminated, Poor Quality, or Complete.

Use the field report separately to review respondent outcomes. If you have export permission, select Dispatch CSV there to investigate normalized and raw provider states, timestamps, respondent and provider identifiers, and failure details. See Field reports.