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

ToolLicenseFlowsPriceNote
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

Inbound (user → us)

Whenever the user messages first, the 24h service window opens.

Always FREE
Outbound within 24h window

Since April 2025, utility templates inside the window are free.

FREE (utility templates)
Outbound marketing templates

Used for re-engagement after the 24h window closes. Topic-based opt-in keeps these targeted.

$0.02–$0.05/msg (West Africa)
Channel posts (broadcast)

Unlimited followers. Free for the broadcast itself. Channel posts cannot launch Flows directly.

FREE
Reloadly topup

Algeria supported. 30-day per-phone-number lockout to defend topup integrity.

Variable per country
Estimated total at 10k active users

Dominated by re-engagement marketing templates; everything else free.

~$200–500/month

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.

← Back to the 4 flows

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