Create WhatsApp Template
create-whatsapp-templateCreate a WhatsApp template and submit it to Meta for review in one call, so your business can start approved conversations with customers.
Instructions
Create a WhatsApp template and submit it to Meta for review, in one call. WhatsApp only lets a business start a conversation with an approved template.
The template goes to Meta as written and this server cannot withdraw it, so before calling you MUST show the user the exact content and get their go-ahead. The organization needs a connected WhatsApp Business account, which is set up in the Arsel dashboard.
marketing and utility templates take components. authentication templates take authentication instead, and no components.
The template comes back pending. Review usually takes minutes and can take up to 48 hours, so check on it later with get-whatsapp-template rather than polling. Name and language identify a template: repeating a create that already succeeded is refused.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"name": "<name>",
"language": "<language>",
"category": "<category>"
},
"name": "create-whatsapp-template"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Lowercase letters, digits and underscores, starting with a letter, e.g. order_shipped. Unique per language. | |
| category | Yes | ||
| language | Yes | Meta language code, e.g. en, ar or en_US. | |
| components | No | The template content in Meta's component format, with `type`, `format` and button `type` in uppercase. Placeholders are named in lowercase snake_case, e.g. `{{first_name}}`: numbered ones such as `{{1}}` are refused, and a name can be used in the header or the body, not both. Example: [{"type":"HEADER","format":"TEXT","text":"Your order"},{"type":"BODY","text":"Hi {{first_name}}, order {{order_id}} has shipped."},{"type":"FOOTER","text":"Acme Store"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"Track","url":"https://example.com/track"}]}] | |
| authentication | No | The options of a one-time-code template. Meta fixes its wording, so there is no content to write; the code itself is supplied when the message is sent. |