WhatsApp Surveys
Fly runs surveys over WhatsApp as well as Messenger. The survey itself is the same survey — same Typeform form, same shortcode, same export. What is different is how a respondent gets into it, and what you are allowed to send them afterwards.
Read Channels first for the question-by-question differences. This page is about running a study on WhatsApp: getting a number, getting people into the survey, and staying inside WhatsApp’s messaging rules.
A WhatsApp survey runs on a WhatsApp Business number connected to your Fly account. Unlike a Facebook page, you cannot currently connect one yourself: tell us the study and we will set the number up and attach it to your account.
Two consequences worth knowing before you plan a study:
- One number belongs to one Fly account. Every survey you create is reachable on your number, and no two researchers can share one. A researcher with many Facebook pages still needs only one WhatsApp number.
- A study cannot change channel once recruitment starts. The channel an ad opens is fixed when its ad set is created and cannot be changed afterwards, so decide between Messenger and WhatsApp before you launch.
The Connect → WhatsApp Business Account button on the Accounts screen is a preview of self-service connection and is not the supported route yet.
On Messenger, a link carries the survey’s shortcode invisibly. WhatsApp has no equivalent. The only thing that can carry a shortcode into a WhatsApp conversation is the text of the respondent’s own first message.
Everything below is a way of getting the right text into that message.
The text Fly is looking for is:
form.<shortcode>
optionally followed by extra key/value pairs, exactly as on Messenger:
form.hpvintro.creative.3b.gender.men
which reaches your survey as the hidden fields creative and gender.
Rules, all of which matter:
- It must be the entire message.
form.hpvintrostarts the survey;hi, form.hpvintrodoes not. A leadingstartis allowed (start form.hpvintro). Surrounding spaces are fine. - Only letters, digits,
_and-in the shortcode and in each key and value. A space or a/will not be recognised. - Case is preserved for the shortcode and every value; only the word
formitself is case-insensitive. - Being the whole message is what stops a respondent’s own mid-survey answer from accidentally restarting the survey. It is deliberately strict.
Ads created by Virtual Lab may instead carry a short opaque reference that looks
like r.AQhtbmNod2Vla6QffA6T — this is the same thing in a compact form and is
handled automatically. See
what an ad’s ref carries.
This is the production path, and the one place a WhatsApp study usually goes wrong.
When someone clicks a click-to-WhatsApp ad, WhatsApp opens with a message already typed into their compose box. That prefilled text comes from the ad, and it is the only carrier of the shortcode — the referral information WhatsApp attaches to the click contains nothing that names your survey.
The ad’s autofill message must be the entry reference, and nothing else.
If the ad prefills a friendly greeting — “Hi, I’d like to know more” — then every single person who clicks it starts the default form instead of your survey. Nothing errors. Those respondents answer whatever the default form asks and look like completions, while your study shows almost no arrivals.
If you create your ads through Virtual Lab this is set for you. If you or an agency create them by hand, this is the field to check first, and to check on a real phone before spending anything.
Two more things about ad clicks:
- The respondent can edit the prefilled text before sending it, and some do. A study will always have a few arrivals that lost their reference this way.
- Click-to-WhatsApp works on mobile only. Someone clicking your ad on WhatsApp Web or Desktop arrives without the ad context.
For a link you can put in an email, a poster or a WhatsApp message:
https://wa.me/<number>?text=form.<shortcode>
<number> is your WhatsApp number in international form with no +, spaces or
dashes. Tapping the link opens a chat with the message prefilled; the respondent
presses send.
- Only
text=survives. Any other query parameter you add —ref=,id=, anything — is silently dropped before it reaches us. There is nowhere else to put a reference. - Percent-encode
&and#if a value ever contains one, or the message is silently cut short at that character. - On a desktop browser the link shows an interstitial page and needs a second click.
- The respondent sees and can edit the text. If you are carrying targeting values in the reference, they can read them.
A QR code that opens a chat is the same mechanism with a different wrapper, and carries no extra information.
Anyone can start a survey by sending form.<shortcode> to the number by hand.
This is how you test, and it is why shortcodes must stay typeable — a hand-typed
space is a literal space and will not match.
A message to the number that is not an entry reference and does not belong to a conversation in progress gets no reply at all. Someone who writes “hello” to the number is ignored.
That is deliberate — a WhatsApp business number is not a broadcast channel — but it does mean a respondent who mistypes the reference gets silence rather than help. Expect a small number of arrivals to be lost this way, and make the entry reference easy to send correctly rather than easy to type from memory.
Before an ad exists, and before any money is spent:
- Create your form and give it a shortcode as usual.
- From your own phone, open
https://wa.me/<number>?text=form.<shortcode>, or just sendform.<shortcode>to the number. - Answer the survey.
That exercises the whole path — WhatsApp, Fly and back — and is the only way to find the channel-specific failures on the Channels list before your respondents do. Watch the Monitor tab while you do it.
Fly does not let anyone take a survey twice. To test the same form again, use the reset reference your administrator gave you, exactly as on Messenger. See Testing.
To test the ad itself, there is no substitute for clicking a real ad on a real phone and reading the compose box before pressing send. That text is the whole configuration.
WhatsApp only allows a business to send an ordinary message within 24 hours of the respondent’s last message. Outside that window, only a pre-approved template will send. There is no exception and no fallback: an ordinary message sent outside the window does not arrive.
Messenger now has the same rule — Meta retired its opt-in alternatives in early 2026 — so this is not a WhatsApp tax you can design around by choosing the other channel. What is different here is that a mistake is silent: on Messenger the failed send shows up as an error in the Monitor tab, on WhatsApp the message simply never arrives.
Everything in a Fly survey that reaches out to a quiet respondent is affected:
| What | Inside 24h | Outside 24h |
|---|---|---|
| The next question after their answer | fine | — |
| A wait of an hour or two | fine | — |
| A wait of 2 days, a week, a month | — | needs a template |
| The friendly follow-up nudge to a quiet respondent | fine | needs a template |
| A payment result that arrives late | fine | needs a template |
So a multi-wave WhatsApp survey looks like this:
[wave 1 questions]
↓
[wait — 3 days]
↓
[utility_message] ← an approved template, not a statement
↓
[wave 2 questions] ← the respondent's reply reopens the 24-hour window
The respondent’s tap or reply on that template message reopens the window, and the rest of the wave proceeds normally.
Create templates in the dashboard’s Message Templates tab, and use them with
a utility_message
question. The setup is the same on both channels; what WhatsApp changes:
- Review is real. Messenger usually approves in seconds; a WhatsApp template can take minutes to hours, and can be rejected for wording Messenger accepts. Create and approve your templates before the study starts, not during it.
- Sample values are required for every
{{1}},{{2}}placeholder. - Buttons stay visible in the chat and their labels are locked at approval — your question’s choices must match them exactly, in the same order.
- A template is registered per messaging account. If a study runs on both a Facebook page and a WhatsApp number, register the same template name on both — the survey names a template, not a channel. The Duplicate action in the template list copies one to another account so the shapes stay in agreement.
- Approved templates cannot be edited. Delete and recreate to change wording. A name freed by deleting an approved template stays reserved for 30 days; a rejected one can be reused immediately.
Only messages sent outside the 24-hour window count against WhatsApp’s quota — that is, template messages. Survey starts and the whole back-and-forth of an active conversation are free.
A new number starts at 250 unique recipients per 24 hours outside the window, rising to 2,000 and beyond as the number builds a delivery history at good quality. In practice:
- A study whose respondents answer promptly consumes almost none of it.
- A study that leans on long waits and follow-up nudges can exhaust 250 per day at a few hundred respondents.
If your design sends a template to every respondent on a schedule, tell us the expected volume before you start, so the number is on a high enough tier.
There is also a hard rate of one message every 6 seconds to the same person, which matters only if a survey tries to send several messages in a burst.
- Receiving photos, files or voice notes from respondents. See Upload.
- Shared locations and contact cards. They arrive and are ignored.
- Notify questions and one-time notifications. These never existed on WhatsApp, and Meta retired them on Messenger in early 2026. Use a template on both.
- Handoff to another app. WhatsApp has no thread control.
- More than 10 choices on a question, and a link button label longer than 20 characters — both are send failures. See Channels.