> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# WhatsApp Business

> Connect WhatsApp Business to your Atako agents — 6 read and 5 write actions.

Let your agents send WhatsApp text, template, image and document messages from your business number, mark messages as read, and read your numbers, message templates and WhatsApp Business Account.

## Connection

* **Authentication**: API key (System user access token).

<Note>
  Meta Business Suite (business.facebook.com) → Business settings → Users → System users → + Add (Admin or Employee role). Click the system user → Assign assets → select your app with the "Manage app" permission; for an Employee, also give it access to your WhatsApp Business Account under Accounts → WhatsApp Accounts. Then "Generate token": pick the app, an expiration of "Never", and the permissions whatsapp\_business\_messaging and whatsapp\_business\_management (Meta's guide also adds business\_management). Your agents also need two IDs, both shown in the App Dashboard → WhatsApp → API Setup: the "Phone number ID" (sender number) and the "WhatsApp Business Account ID" — put them in the agent's instructions.

  See [WhatsApp Business's documentation](https://developers.facebook.com/documentation/business-messaging/whatsapp/access-tokens).
</Note>

## Read actions (6)

| Action | Description |
| - | - |
| `get_business_account` | Get a WhatsApp Business Account (id, name by default). fields: optional, e.g. "timezone\_id,message\_template\_namespace,account\_review\_status,business\_verification\_status,country". |
| `get_me` | Get the system user behind the token (id, name) — also checks that the token works. |
| `get_message_template` | Get one message template by its id (name, language, status, category, components with their variables). |
| `get_phone_number` | Get a business phone number (display\_phone\_number, verified\_name, quality\_rating). fields: optional comma-separated extra fields, e.g. "name\_status,code\_verification\_status". |
| `list_message_templates` | List the message templates of a WhatsApp Business Account (id, name, language, status, category, components). Only APPROVED templates can be sent. Paginate with after/before cursors. |
| `list_phone_numbers` | List the phone numbers of a WhatsApp Business Account — gives each number's id (the phone\_number\_id used to send). Paginate with after/before cursors. |

## Write actions (5)

| Action | Description |
| - | - |
| `mark_message_as_read` | Mark a received message (and earlier ones in the conversation) as read — within 30 days of receipt. Args: phone\_number\_id (numeric string, the number that received it), message\_id (string wamid of the received message, e.g. "wamid.HBgL…"). |
| `send_document_message` | Send a document (PDF, Office file, text…) by public https URL; WhatsApp downloads it. Args: phone\_number\_id (numeric string), to (recipient phone string, e.g. "+33612345678"), link (https URL string), filename (string with extension, optional, e.g. "invoice.pdf"), caption (string, optional, max 1024 chars), reply\_to\_message\_id (string wamid, optional). Meta rule: outside the 24-hour customer service window (opened by the customer's last message), only an approved template (send\_template\_message) can be sent. |
| `send_image_message` | Send an image by public https URL (JPEG or PNG, max 5 MB; WhatsApp downloads it). Args: phone\_number\_id (numeric string), to (recipient phone string, e.g. "+33612345678"), link (https URL string), caption (string, optional, max 1024 chars), reply\_to\_message\_id (string wamid, optional). Meta rule: outside the 24-hour customer service window (opened by the customer's last message), only an approved template (send\_template\_message) can be sent. |
| `send_template_message` | Send an approved message template — the only message type allowed outside the 24-hour customer service window. Args: phone\_number\_id (numeric string), to (recipient phone string, e.g. "+33612345678"), template\_name (string, as in list\_message\_templates), language (string language code of the template, e.g. "fr" or "en\_US" — a bare string, not an object), components (optional array of objects, one per template part with variables): \{ type: "header" \| "body" \| "button", sub\_type ("quick\_reply" \| "url" \| "copy\_code", required for a button), index (button position as a string, e.g. "0", required for a button), parameters: array of \{ type: "text" \| "currency" \| "date\_time" \| "image" \| "document" \| "video" \| "payload" \| "coupon\_code", text (for text), parameter\_name (for named variables \{\{first\_name}}; omit for positional \{\{1}}, given in order), currency: \{ fallback\_value, code (ISO 4217), amount\_1000 (integer = amount x 1000) }, date\_time: \{ fallback\_value }, image/video: \{ link (https URL) }, document: \{ link, filename }, payload (string, quick\_reply button), coupon\_code (string, copy\_code button) } }. Example body variables: \[\{ "type": "body", "parameters": \[\{ "type": "text", "text": "Jessica" }] }]. |
| `send_text_message` | Send a text message. Args: phone\_number\_id (sender number id, numeric string), to (recipient phone number string, international format e.g. "+33612345678"), body (string, 1-4096 chars), preview\_url (boolean, optional: render a preview of the first URL), reply\_to\_message\_id (string wamid, optional: quote a received message). Meta rule: outside the 24-hour customer service window (opened by the customer's last message), only an approved template (send\_template\_message) can be sent. |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.

***

*Last reviewed against the provider API: September 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.