Architecture & limits · WhatsApp Flows
What WhatsApp Flows can do — and what it can't.
Grounded in the Meta Flows API documentation, Heltar / Gupshup vendor docs, and real production deployments at WHO, CARE Bangladesh, IRC Signpost, and MomConnect. No marketing language, no aspirational features.
1What it CAN do
Hub-menu Flow
ONE Flow with up to 100 navigable screens. Forward/back. refresh_on_back per screen. Menu → sub-screens → back to menu.
Read-only info inside Flow
Native Flow screens with text, images, rich text. ‘News' flow with up to ~10 story cards is well within limits.
Keyword re-trigger
User types ‘menu' (or any keyword) → backend auto-sends a fresh Flow trigger message. Simulates ‘always accessible' from the user's POV.
Channel broadcast + ‘Message us' CTA bridge
Unlimited free followers on a WhatsApp Channel. Each post embeds a Channel-internal CTA that deep-links into the WABA bot to trigger the menu Flow.
Invitation-token surveys
Backend mints one-time token, embeds in Flow trigger, marks consumed on submission. Defends topup integrity against SIM-farming.
Voice notes IN CHAT (not in Flow)
Users can send voice notes to the bot via the standard chat input. Server transcribes (Whisper). NOT possible inside a Flow form.
Photo upload IN FLOW
PhotoPicker is a native Flow component. Camera or gallery. Up to 30 photos per Flow.
Pseudonymous brand
Display name ‘Anwar' permitted IF a public microsite uses that exact name. No blue tick needed.
2What it CANNOT do
‘Form stays open' forever
Once a user completes or dismisses a Flow, the CTA in the original message is dead (HTTP 427 token expired). Re-engagement requires sending a new trigger.
Anonymous WhatsApp Communities
Phone numbers visible to every member across every sub-group. Hard fail for Upinion's identity-protection requirement.
Voice input inside a Flow
No microphone component in Flows. Voice notes work in chat layer ONLY.
Delete an answer mid-Flow
No primitive for ‘undo my last answer'. User can navigate back but not selectively erase.
Desktop Flow completion
Mobile-only. WhatsApp Web/desktop users CANNOT complete a Flow. They see the trigger message but cannot interact.
Persistent in-chat archive of info
Flows are ephemeral. Once token expires, ‘news cards' delivered in a Flow are not retrievable in the same Flow message — re-send required.
Channel → Flow direct trigger
Channels and WABA are separate products. A Channel post cannot launch a Flow directly. The bridge is a ‘Message us' link.
3Stack recommendation
| Tool | License | Flows | Price | Note |
|---|---|---|---|---|
| Turn.io | Proprietary, NGO-friendly | ✓ Native | ~$120/mo with 40% NGO discount | Cape-Town PBC. Used by WHO (14.7M), CARE (34M), MomConnect. Zero engineering setup. Free 3-month Chat for Impact accelerator + up to $25K support. |
| Glific | AGPL-3.0 OSS | ✗ Planned, not yet shipped | ~$115/mo hosted + msg fees | Project Tech4Dev, India. 125 orgs, 100M messages. DGPA-recognised. Best for data-sovereignty / self-host requirements. |
| RapidPro | Apache 2.0 OSS | ✗ Chat-based branching only | Free self-host, or TextIt cloud | UNICEF-backed. 70+ countries. Mature but doesn't speak Meta's Flows API natively. |
| Twilio Flex | Proprietary | Via API | Enterprise | IRC Signpost uses this. Overkill for a small NGO without an engineering team. |
4Cost model — ~10,000 active users
Whenever the user messages first, the 24h service window opens.
Since April 2025, utility templates inside the window are free.
Used for re-engagement after the 24h window closes. Topic-based opt-in keeps these targeted.
Unlimited followers. Free for the broadcast itself. Channel posts cannot launch Flows directly.
Algeria supported. 30-day per-phone-number lockout to defend topup integrity.
Dominated by re-engagement marketing templates; everything else free.
5Trust at first contact (the phishing problem)
Warm referral chain
First contact from a trusted partner (UNHCR, IRC, local NGO sharing the WABA number in their own verified comms). The user has heard ‘Anwar' before they ever message it.
Zero-link first message
Anwar's first reply contains NO links, NO attachments, NO requests for personal data. Plain text intro. WHO COVID + UNHCR Lebanon mirror this exact pattern.
Predictable number
The WABA number is posted clearly on partner websites. Users can cross-reference any inbound contact against the public record.
Opt-in confirmation message
‘You contacted us at [number]. We never ask for money or documents. Type STOP to opt out.' Same pattern WHO uses.
Blue tick later (not at launch)
Meta Verified requires 3–5 organic press mentions + Business Verification + 30+ days old account. Treat as a 6-month milestone, not a launch requirement.
Sources cited inline: Meta Flow Lifecycle · Heltar HTTP 427 · WhatsApp Channels FAQ · Digital Privacy World Communities audit ·
Turn.io NGO pricing · Glific GitHub · UNHCR Lebanon scam alerts · Reloadly NGO airtime · Sensor Tower Q3 2025 ·
Charity Digital · MMC 4Mi 2024. Full citations: upinion-demo-0.pages.dev