8.1 KiB
WhatsApp Message Template Example
This document shows exactly how to create the po_notification template in Meta Business Suite.
Template: Purchase Order Notification
Basic Information
| Field | Value |
|---|---|
| Template Name | po_notification |
| Category | UTILITY |
| Language | Spanish (es) |
Template Content
Body Text (Required)
Hola {{1}}, has recibido una nueva orden de compra {{2}} por un total de {{3}}.
Parameters
| Position | Parameter Name | Example Value | Description |
|---|---|---|---|
| {{1}} | supplier_name | "Proveedor ABC" | Name of the supplier |
| {{2}} | po_number | "PO-2024-001" | Purchase order number |
| {{3}} | total_amount | "€1,250.00" | Total amount with currency |
Preview Examples
Example 1
Hola Proveedor ABC, has recibido una nueva orden de compra PO-2024-001 por un total de €1,250.00.
Example 2
Hola Panadería Central, has recibido una nueva orden de compra PO-2024-052 por un total de €850.50.
Example 3
Hola Distribuidora López, has recibido una nueva orden de compra PO-2024-123 por un total de €2,340.00.
Step-by-Step Creation in Meta
1. Navigate to Template Manager
- Go to: https://business.facebook.com/
- Click WhatsApp Manager
- Select Message Templates
- Click Create Template button
2. Fill Basic Information
Step 1 of 4: Select Template Category
- Select:
Utility - Template name:
po_notification - Languages: Select
Spanish (es) - Click Continue
3. Build Template Content
Step 2 of 4: Edit Template
Header (Optional): Skip or add:
- Type: Text
- Content:
Nueva Orden de Compra - Or use emoji:
🛒 Nueva Orden de Compra
Body (Required):
Hola {{1}}, has recibido una nueva orden de compra {{2}} por un total de {{3}}.
How to add variables:
- Type the text up to where you want the first variable
- Click Add Variable button
- Continue typing
- Repeat for {{2}} and {{3}}
Footer (Optional):
Sistema de Gestión de Panadería
Buttons (Optional): Skip for basic implementation
Click Continue
4. Add Sample Content
Step 3 of 4: Add Sample Content
For template approval, provide example values:
| Variable | Sample Value |
|---|---|
| {{1}} | Proveedor ABC |
| {{2}} | PO-2024-001 |
| {{3}} | €1,250.00 |
Preview will show:
Hola Proveedor ABC, has recibido una nueva orden de compra PO-2024-001 por un total de €1,250.00.
Click Continue
5. Submit for Review
Step 4 of 4: Submit
Review your template:
- ✅ Category: Utility
- ✅ Language: Spanish
- ✅ Body has 3 variables
- ✅ Sample content provided
Click Submit
Approval Timeline
| Status | Timeline | Action Required |
|---|---|---|
| Pending | 0-24 hours | Wait for Meta review |
| Approved | ✅ Ready to use | Start sending messages |
| Rejected | Review feedback | Fix issues and resubmit |
Common Rejection Reasons
❌ Reason: Variables in header or footer
- Fix: Only use variables in body text
❌ Reason: Too promotional
- Fix: Use UTILITY category, not MARKETING
❌ Reason: Unclear business purpose
- Fix: Make message clearly transactional
❌ Reason: Missing sample content
- Fix: Provide realistic examples for all variables
❌ Reason: Grammar/spelling errors
- Fix: Proofread carefully
Code Implementation
How This Template is Used in Code
# services/notification/app/consumers/po_event_consumer.py
template_params = [
data.get('supplier_name', 'Estimado proveedor'), # {{1}}
data.get('po_number', 'N/A'), # {{2}}
f"€{data.get('total_amount', 0):.2f}" # {{3}}
]
success = await self.whatsapp_service.send_message(
to_phone=supplier_phone,
message="", # Not used for template messages
template_name="po_notification", # Must match exactly
template_params=template_params,
tenant_id=tenant_id
)
API Request Format
The service converts this to:
{
"messaging_product": "whatsapp",
"to": "+34612345678",
"type": "template",
"template": {
"name": "po_notification",
"language": {
"code": "es"
},
"components": [
{
"type": "body",
"parameters": [
{"type": "text", "text": "Proveedor ABC"},
{"type": "text", "text": "PO-2024-001"},
{"type": "text", "text": "€1,250.00"}
]
}
]
}
}
Advanced Template (With Header & Buttons)
If you want a more feature-rich template:
Template Name
po_notification_advanced
Header
- Type: Text
- Content:
🛒 Nueva Orden de Compra
Body
Hola {{1}}, has recibido una nueva orden de compra {{2}} por un total de {{3}}.
Por favor, confirma la recepción de esta orden.
Footer
Bakery Management System
Buttons
- Quick Reply Button: "✅ Confirmar Recepción"
- Phone Button: "📞 Llamar" → Your bakery phone
Preview
🛒 Nueva Orden de Compra
Hola Proveedor ABC, has recibido una nueva orden de compra PO-2024-001 por un total de €1,250.00.
Por favor, confirma la recepción de esta orden.
Bakery Management System
[✅ Confirmar Recepción] [📞 Llamar]
Template Best Practices
✅ DO
- Keep messages concise and clear
- Use proper Spanish grammar
- Provide all variable examples
- Test with real phone numbers
- Use UTILITY category for transactional messages
- Include business name in footer
❌ DON'T
- Use promotional language for UTILITY templates
- Add too many variables (max 3-5 recommended)
- Use special characters excessively
- Mix languages within template
- Use uppercase only (LIKE THIS)
- Include pricing in UTILITY templates (use variables)
Testing Your Template
After Approval
-
Get Template Status
# Check in Meta Business Suite WhatsApp Manager → Message Templates → po_notification → Status: APPROVED -
Send Test Message
curl -X POST http://localhost:8000/api/v1/tenants/{tenant_id}/notifications/send-whatsapp \ -H "Content-Type: application/json" \ -d '{ "recipient_phone": "+34612345678", "template_name": "po_notification", "template_params": ["Test Supplier", "PO-TEST-001", "€100.00"] }' -
Verify Delivery
- Check recipient's WhatsApp
- Check database:
SELECT * FROM whatsapp_messages WHERE template_name = 'po_notification' - Check logs:
kubectl logs -f deployment/notification-service | grep po_notification
Additional Template Ideas
Once the basic template works, consider creating:
Template: Order Confirmation
Hola {{1}}, tu orden {{2}} ha sido confirmada. Entrega prevista: {{3}}.
Template: Delivery Notification
Hola {{1}}, tu orden {{2}} está en camino. Llegada estimada: {{3}}.
Template: Payment Reminder
Hola {{1}}, recordatorio: factura {{2}} por {{3}} vence el {{4}}.
Template: Order Cancelled
Hola {{1}}, la orden {{2}} ha sido cancelada. Motivo: {{3}}.
Template Management
Monitoring Template Performance
Check in Meta Business Suite:
- Sent: Total messages sent
- Delivered: Delivery rate
- Read: Read rate
- Failed: Failure reasons
Updating Templates
⚠️ Important: You cannot edit approved templates
To make changes:
- Create new template with modified content
- Submit for approval
- Update code to use new template name
- Deprecate old template after transition
Template Limits
- Maximum templates: 250 per WhatsApp Business Account
- Maximum variables per template: Unlimited (but keep it reasonable)
- Template name: lowercase, underscore only (e.g.,
po_notification)
Summary
✅ Template Name: po_notification
✅ Category: UTILITY
✅ Language: Spanish (es)
✅ Variables: 3 (supplier, PO number, amount)
✅ Status: Must be APPROVED before use
Next Step: Create this template in Meta Business Suite and wait for approval (usually 15 mins - 24 hours).