Appearance
Templates
WhatsApp message templates are pre-approved message formats that can be sent outside the 24-hour messaging window. Templates must be approved by Meta before use.
Template Model
| Field | Type | Description |
|---|---|---|
id | integer | Unique template ID |
name | string | Template name (lowercase, underscores) |
language | string | Language code (ar, en_US, etc.) |
category | string | MARKETING, UTILITY, AUTHENTICATION |
status | string | Approval status |
body_json | object | Template body and parameters |
Template Statuses
| Status | Description |
|---|---|
PENDING | Submitted, awaiting Meta review |
APPROVED | Approved and ready to send |
REJECTED | Rejected by Meta |
PAUSED | Temporarily paused due to quality |
DISABLED | Disabled by Meta |
Creating Templates
Templates are created and managed from the CubeConnect dashboard under Templates. The dashboard provides a visual editor for:
- Template name and category selection
- Body text with parameter placeholders (
1,2, etc.) - Header (text, image, video, or document)
- Footer text
- Quick reply buttons or CTA buttons
List Templates via API
GET /api/v1/templates
Retrieve all templates for a WhatsApp account — useful for discovering available template names before sending a campaign.
Query Parameters
| Parameter | Required | Description |
|---|---|---|
whatsapp_account_id | Yes | Your WhatsApp account API ID |
status | No | Filter by status (e.g., APPROVED) |
Example Request
bash
curl "https://cubeconnect.io/api/v1/templates?whatsapp_account_id=01JX...&status=APPROVED" \
-H "Authorization: Bearer YOUR_API_KEY"php
$templates = CubeConnect::getTemplates('APPROVED');
foreach ($templates as $t) {
echo "{$t->name} ({$t->language}) — {$t->paramsCount} params\n";
}javascript
const templates = await cube.getTemplates({ status: 'APPROVED' })
templates.forEach(t => {
console.log(`${t.name} (${t.language}) — ${t.paramsCount} params`)
})Response 200 OK
json
{
"success": true,
"data": [
{
"name": "order_confirmation",
"language": "ar",
"category": "UTILITY",
"status": "APPROVED",
"params_count": 3,
"body": "مرحباً {{1}}، طلبك رقم {{2}} تم شحنه. الوقت المتوقع للوصول: {{3}}.",
"header": null
},
{
"name": "appointment_reminder",
"language": "ar",
"category": "UTILITY",
"status": "APPROVED",
"params_count": 2,
"body": "تذكير: موعدك مع {{1}} في {{2}}.",
"header": null
}
]
}| Field | Type | Description |
|---|---|---|
name | string | Template name — use this in sendTemplate and campaigns |
language | string | Language code (ar, en_US, etc.) |
category | string | MARKETING, UTILITY, or AUTHENTICATION |
status | string | Approval status (see table below) |
params_count | integer | Number of 1, 2 placeholders in the body |
body | string|null | Template body text with placeholders |
header | string|null | Header text, or null if no text header |
Using Templates via API
Send templates using the Send Template endpoint:
json
{
"phone": "+966501234567",
"message_type": "template",
"data": {
"name": "order_confirmation",
"params": ["ORD-1234", "500 SAR"]
}
}Template Categories
Marketing
- Promotional offers and discounts
- Product announcements
- Event invitations
- Newsletter updates
Utility
- Order confirmations and updates
- Shipping notifications
- Appointment reminders
- Account alerts
Authentication
- Login verification codes (OTP)
- Two-factor authentication
- Email/phone verification
Template Parameters
Parameters are positional placeholders in the template body:
Hello {{1}}, your order {{2}} has been shipped.
Estimated delivery: {{3}}.- Parameters are numbered starting from
1 - Each parameter maps to the corresponding index in the
paramsarray - Parameters must be provided in order when sending
Template Quality
Meta monitors template quality based on:
- Read rate - Percentage of recipients who read the message
- Block rate - Percentage of recipients who block your number
- Report rate - Percentage of recipients who report the message
Low-quality templates may be paused or disabled. CubeConnect tracks these metrics and updates template statuses via webhook events.
WARNING
Keep your template quality high by:
- Sending templates only to customers who have opted in
- Keeping content relevant and valuable
- Avoiding excessive promotional messaging