TypeScript
On serverless platforms that stop work when the response is sent, run the reply with your platform’s background helper (for example
after() in Next.js or waitUntil()), or answer in the webhook response itself as shown below.1. Build it on Telegram today
There is no WhatsApp sandbox yet. Run the same code on the Telegram sandbox bot:- Get a test key, with no account:
curl -X POST https://api.flow.engineer/v1/sandbox/keys(ornpx @flow-engineer/messaging init). Set itskeyasFLOW_MESSAGING_KEY. See Keys and sign-in. - Join the Telegram sandbox from your phone with the bot’s
address.link(see Build a Telegram agent). - Register your webhook, or on your laptop read events from the live stream (
GET /v1/stream, see Local development), and send a message.
2. Answer fast: reply in the webhook response
For short answers, skip the extra API call and return the reply from the webhook handler:TypeScript
HTTP response body
200 {} at once and send with POST /v1/conversations/{conversation_id}/messages.
3. Voice notes
WhatsApp users send a lot of voice notes. Each one will arrive asvoice content with the audio file (url, file_id):
voice content with an audio url or file_id.
4. Buttons and lists
WhatsApp will show up to 3 reply buttons, and a list for 4 to 10:TypeScript
message.received with button_reply content: { "type": "button_reply", "button_id": "upi", "label": "UPI" }. Labels are at most 20 characters.
5. The 24-hour window and templates
WhatsApp allows free-form messages only within 24 hours of the person’s last message. After that, and to message someone first, you must send an approved template.- Every event carries
conversation.window_open_until. - A free-form send outside the window fails with
409outside_window. - Subscribe to
conversation.window_closingto get a warning 1 hour before it closes.
TypeScript
POST /v1/templates and reviewed by WhatsApp; you receive template.status_changed when one is approved, rejected or paused. See Going live.
6. What WhatsApp will support
7. Going live on WhatsApp
Not possible yet. When WhatsApp ships, Flow will host a dedicated number for you, your business will be verified through Meta, and your agent’s code stays the same. Until then, go live on your own Telegram bot, or ask the Flow team about an iMessage line.Related
- The send gate: windows, new-contact limits and quality.
- Streaming replies and Content types.
- Frameworks: Vercel AI SDK, OpenAI Agents SDK, LangChain.