Send flow message
Send a published flow as an interactive message with a CTA button. When the recipient taps the button, the flow opens natively in WhatsApp. Flow responses are received via webhooks.
API key authentication - use your Zernio API key as a Bearer token
In: header
WhatsApp social account ID
Recipient phone number (E.164 format, e.g. +1234567890)
Published flow ID
CTA button text (e.g. 'Book Now', 'Sign Up')
length <= 20Action type: navigate opens a screen directly, data_exchange hits your endpoint first
"navigate""navigate" | "data_exchange"Unique token to correlate responses. If omitted, auto-generated as ':' so the response can be attributed to this flow in the Flow Responses view.
length <= 200Message body text
Optional footer text
Set true to test an unpublished (DRAFT) flow
Response Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.whatsappflows.sendWhatsAppFlowMessage({ body: { accountId: 'account_abc123', to: 'string', flow_id: 'flow_abc123', flow_cta: 'string', body: 'Hello, world!', },});console.log(data);{
"success": true,
"messageId": "string"
}{
"error": "Unauthorized"
}Deprecate flow POST
Deprecate a PUBLISHED flow. This is irreversible. Deprecated flows cannot be sent or opened, but existing active sessions may continue until they complete.
List flow responses GET
List the responses customers submitted when completing a flow (parsed from the nfm_reply messages received via webhook), newest first. Scope to a single flow with `flowId` — this matches responses whose flow_token carries the `<flowId>:` prefix that Zernio stamps on auto-generated tokens at send time. Responses sent with a custom integrator-supplied flow_token are not attributed to a flow.