Files
bakery-ia/services/notification/WHATSAPP_TEMPLATE_EXAMPLE.md
2025-11-13 16:01:08 +01:00

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

  1. Go to: https://business.facebook.com/
  2. Click WhatsApp Manager
  3. Select Message Templates
  4. 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:

  1. Type the text up to where you want the first variable
  2. Click Add Variable button
  3. Continue typing
  4. 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.
Bakery Management System

Buttons

  1. Quick Reply Button: " Confirmar Recepción"
  2. 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

  1. Get Template Status

    # Check in Meta Business Suite
    WhatsApp Manager → Message Templates → po_notification → Status: APPROVED
    
  2. 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"]
      }'
    
  3. 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:

  1. Create new template with modified content
  2. Submit for approval
  3. Update code to use new template name
  4. 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).