WhatsApp

Send Whatsapp Flow

Send a WhatsApp Flow message (free-form, inside the 24-hour window)

The recipient is resolved from conversation_id (preferred), contact_id or recipient (phone number). Contacts without a phone number that are reachable via a WhatsApp business-scoped user ID are supported.

First-screen data is merged per key: values in data win, then the saved default data for (flow_id, screen), then (for flows built in SendSeven) the flow's send-time data sources such as the contact profile, then the flow's example data. When screen is omitted the flow's entry screen is used.

String values in data (and in saved default data) may contain contact variables, rendered per recipient before sending: {{contact.first_name}}, {{contact.last_name}}, {{contact.name}}, {{contact.email}}, {{contact.phone}}, {{contact.birthday}}, {{contact.language}} and custom fields as {{contact.custom.<key>}}. Unknown or empty variables render as an empty string. Example: "data": {"first_name": "{{contact.first_name}}"}.

Note: the flow itself must bind the value as a dynamic property (e.g. a TextBody whose text is exactly ${data.first_name}, declared in the screen's data); a ${data.x} written inside plain literal text is shown as-is by WhatsApp.

A Flow message is a free-form interactive message, so it can only be sent while the customer service window is open. Outside the window use a template with a Flow button.

Required Scopes: messages:create

Raises: 404: Channel, conversation or contact not found 400: Not a WhatsApp channel; conversation_channel_mismatch; no_whatsapp_recipient 409: CHANNEL_DISCONNECTED; conversation_owned_elsewhere (Custom Inboxes: the contact is in an ongoing conversation a colleague handles that you cannot open) 422: outside_service_window

post/api/v1/whatsapp/flows/send

Request

  • Base URL: https://api.sendseven.com
  • URL: https://api.sendseven.com/api/v1/whatsapp/flows/send
  • Auth: HTTP bearer

Request body

channel_idstring required

Channel ID to send from

contact_idstring nullable

Contact ID to send to

recipientstring nullable

Recipient phone number (alternative to contact_id)

flow_idstring required

WhatsApp Flow ID

flow_ctastring required

Button text to trigger flow (max 30 chars)

bodystring nullable

Message body text

headerstring nullable

Optional header text

footerstring nullable

Optional footer text

screenstring nullable

Initial screen to navigate to

dataobject nullable

Data for the first screen. When omitted, the saved default data for (flow_id, screen) is used. String values may contain contact variables such as {{contact.first_name}} or {{contact.custom.<key>}}; they are rendered per recipient.

mode'draft' | 'published'

WhatsApp Flow mode

conversation_idstring nullable

Conversation to send into. Resolves the recipient and channel context; takes precedence over contact_id / recipient.

flow_tokenstring nullable

Optional tracking token (auto-generated if not provided)

Response

Successful Response

successboolean required
message_idstring nullable

Internal message ID

external_idstring nullable

WhatsApp message ID

conversation_idstring required

Conversation ID (new or existing)

flow_tokenstring nullable

Flow token for tracking

screenstring nullable

Screen the flow was opened on

errorstring nullable
error_codestring nullable

Platform error code when the send failed

Changes

No recorded changes to this operation across all 3 revisions of this API.