WhatsApp · Plantillas
Catálogo de plantillas (message templates) sincronizado desde Meta Business
Manager. Las plantillas son la única forma de iniciar una conversación con
un cliente fuera de la ventana de servicio 24h.
Qué muestra esta vista
- Stats: total del catálogo, aprobados, pendientes/en apelación,
marketing, eliminados.
- Filtros: chips por status (aprobados / pendientes / rechazados /
eliminados) + categoría (utility / marketing / auth) + búsqueda libre
por nombre, body o idioma.
- Tabla: name + preview del body, categoría, idioma, status, calidad,
última sync.
- Click en row: abre modal preview con el body completo, metadata,
ejemplo de Meta y components raw (para debug).
Status
| Status | Significado |
|---|---|
APPROVED | Lista para usarse en envíos |
PENDING | Esperando revisión de Meta (típicamente 1-24h) |
IN_APPEAL | Rechazada y bajo apelación |
PAUSED | Pausada por Meta (calidad baja) |
REJECTED | Rechazada por Meta — no se puede enviar |
DISABLED | Deshabilitada |
FLAGGED | Marcada por Meta tras quejas de usuarios |
LIMIT_EXCEEDED | Se excedió el límite de envíos permitido |
DELETED | Soft-delete local: Meta ya no la devuelve en la sync |
Quality rating
Meta clasifica cada plantilla por calidad basándose en las quejas de los
destinatarios:
- GREEN — sin issues, envío sin restricciones.
- YELLOW — algunas quejas, Meta vigila.
- RED — alto nivel de quejas, en riesgo de pausa automática.
Conviene monitorear las que estén en RED: cambiar el wording, segmentar
mejor o pausarlas voluntariamente antes de que Meta lo haga.
Sincronización
- Automática diaria a las 06:00 UTC (~02:00 hora dominicana) via cron
job whatsapp-templates-sync-daily.
- Manual desde el botón "Sincronizar ahora" en el header.
La sync llama a GET /v22.0/{WABA_ID}/message_templates en la Graph API
de Meta y upserta cada plantilla por (waba_id, name, language). Las
plantillas que ya no aparecen en la respuesta se marcan como soft-deleted
(status='DELETED', deleted_at=NOW()). Una sync posterior puede
re-vivificarlas si vuelven a aparecer.
Crear plantillas
Desde el botón "+ Nueva plantilla" en el header podés enviar una
plantilla a Meta para revisión sin salir del CRM.
Campos
- Nombre — minúsculas, dígitos y guiones bajos (ej:
bienvenida_demo).
Es el identificador único; no se puede cambiar después.
- Idioma — código Meta (
es,en,es_MX,en_US). - Categoría — Utility (recibos, recordatorios), Marketing (requiere
opt-in del cliente), Autenticación (OTPs).
- Cuerpo — texto del mensaje, máximo 1024 caracteres. Variables se
escriben {{1}}, {{2}}, etc., en orden secuencial.
- Valores de ejemplo — cuando el cuerpo tiene variables, Meta exige
un valor de muestra para cada una. Son solo para revisión interna de
Meta; no se envían a clientes.
Flujo
- Llenás el form y enviás.
- El CRM hace
POST /v22.0/{WABA_ID}/message_templatesa Meta Graph API. - La plantilla aparece en la tabla con status Pendiente apenas Meta
acepta la submission. Meta típicamente la revisa en 1-24 horas.
- La sync diaria (o el botón Sincronizar ahora) actualiza el status a
Aprobado o Rechazado según la decisión de Meta.
Limitaciones V1
- Solo se soportan plantillas BODY-only (texto). HEADER, FOOTER y
BUTTONS quedan para una iteración futura. Si necesitás una plantilla
más rica, podés crearla en Meta Business Manager y aparecerá aquí
después de la próxima sync.
- Plantillas aprobadas no se editan. Meta lo permite solo para
cambiar la categoría, y casi nunca vale la pena. Si necesitás cambios
en el texto, creá una nueva con otro nombre.
Uso de las plantillas
- Modal de envío de factura: usa el catálogo dinámico filtrado a
status APPROVED y categorías UTILITY + AUTHENTICATION. La
plantilla factura_emitida es el default cuando existe (auto-fill de
4 placeholders: nombre, número, total, fecha vencimiento).
- Customer 360 quick actions (Oleada B.4): enviar saldo, última
factura, estado de cuenta, próximo vencimiento.
- Enviar plantilla desde el Inbox (botón 📋 en el composer): cuando la
ventana de 24h de una conversación está cerrada, el composer de texto libre
se deshabilita, pero el botón 📋 te deja **elegir una plantilla aprobada,
llenar sus variables (con vista previa) y enviarla** — así reabres/retomas la
conversación con un lead frío. Compliance: si el contacto **no tiene
opt-in, solo verás plantillas de utilidad; las de marketing** se
ocultan hasta que el contacto acepte (Ley 172-13 / 210-14). Es texto
libre otra vez cuando el lead responde a la plantilla.