List WhatsApp accounts
whatsapp:read. Lists the organization’s connected WhatsApp sender accounts. Use the returned id as the whatsappAccountId when creating a WhatsApp sequence or sending a message.
Request
Response 200
| Field | Type | Notes |
|---|---|---|
id | string (uuid) | The account id. Pass it as whatsappAccountId. |
accountType | enum | organization (the org-global account) or member (a member’s account). |
phoneNumber | string | null | The connected sender number, or null if not yet provisioned. |
status | string | Always connected — only connected accounts are returned. |
memberId | string (uuid) | null | The owning member for member accounts; null for the org-global account. |
Send a WhatsApp message
whatsapp:write. Sends a one-off WhatsApp message to a single lead immediately — outside the sequence engine. The message is sent from the given account and threads into the lead’s inbox conversation.
Request body
| Field | Type | Notes |
|---|---|---|
leadId | string (uuid) | Required. The lead to message. Must belong to your organization and have a valid phone number. |
whatsappAccountId | string (uuid) | Required. The sending account id, from GET /whatsapp/accounts. |
message | string | Required, 1..4096 chars. When media is present, this is used as the media caption. |
media | object | Optional. { url (https string), type, mimetype? (string), fileName? (string) }, where type is one of WhatsappMediaType: image, video, document. |
Request
Response 200
Common errors
404 NOT_FOUND— the lead does not exist or belongs to another organization.400 OPTED_OUT— the lead opted out of WhatsApp and cannot be messaged.400 ACCOUNT_UNAVAILABLE— the WhatsApp account was not found or is not connected.400 BAD_REQUEST— the lead has no valid phone number.400 VALIDATION_ERROR— invalid body (e.g. emptymessage,leadIdnot a UUID, invalidmedia.type).