Documentation Index
Fetch the complete documentation index at: https://docs.zavu.dev/llms.txt
Use this file to discover all available pages before exploring further.
Templates are reusable message formats for sending structured messages across WhatsApp, SMS, Telegram, and other channels. WhatsApp requires template approval for business-initiated conversations.
Create Template
$result = $client->templates->create([
'name' => 'order_confirmation',
'language' => 'en',
'body' => 'Hi {{1}}, your order #{{2}} is confirmed!',
'whatsappCategory' => 'UTILITY',
'variables' => ['customer_name', 'order_id'],
]);
echo $result->id . "\n"; // tpl_xxx
echo $result->status . "\n"; // draft, pending, approved, rejected
List Templates
$result = $client->templates->list([]);
foreach ($result->items as $template) {
echo $template->id . " " . $template->name . " " . $template->status . "\n";
}
// With pagination
$result = $client->templates->list([
'limit' => 50,
'cursor' => 'cursor_xxx',
]);
Get Template
$result = $client->templates->get([
'templateId' => 'tpl_abc123',
]);
echo $result->name . "\n";
echo $result->body . "\n";
echo $result->status . "\n";
Delete Template
$client->templates->delete([
'templateId' => 'tpl_abc123',
]);
Submit Template for Approval
After creating a template, you need to submit it to Meta for approval before you can use it:
$result = $client->templates->submit([
'templateId' => 'tpl_abc123',
'senderId' => 'sender_xyz',
'category' => 'UTILITY', // Optional if already set on template
]);
echo $result->status . "\n"; // "pending"
The senderId must reference a sender that has a WhatsApp Business Account configured. Templates are submitted to the WABA associated with that sender.
Template Categories
| Category | Use Case |
|---|
UTILITY | Order updates, account alerts, appointment reminders |
MARKETING | Promotions, offers, newsletters |
AUTHENTICATION | OTP codes, verification messages |
Using Templates in Messages
$result = $client->messages->send([
'to' => '+14155551234',
'messageType' => 'template',
'content' => [
'templateId' => 'tpl_abc123',
'templateVariables' => [
'1' => 'John',
'2' => 'ORD-12345',
],
],
]);