Saltar al contenido principal
Estos comandos envuelven la API /v1/whatsapp/*. El alcance es deliberadamente limitado: ciclo de vida de las plantillas más envío saliente de plantillas. La conexión de la WABA solo se hace desde el navegador (OAuth) y sigue estando en el panel.
Todos los comandos aceptan en la posición <account-id> tanto el UUID interno de la cuenta social (de accounts:list) como el ID de proveedor de la WABA de Meta. El controlador v1 resuelve los UUID a ID de proveedor en el servidor.

whatsapp:templates

Lista todas las plantillas registradas en una cuenta de WhatsApp Business, incluidos el estado (APPROVED, PENDING, REJECTED), la categoría, el idioma y la estructura de componentes.
Ejemplos

whatsapp:create-template

Envía una plantilla nueva a Meta para su aprobación. La aprobación de una plantilla puede tardar de minutos a horas; consulta periódicamente whatsapp:templates para ver la transición del estado de PENDING a APPROVED.
Proporciona la definición de la plantilla con --file o --data (si se pasan ambas, gana --file; si no se pasa ninguna, el comando da un error). La carga coincide con el esquema de la API en la nube de WhatsApp de Meta. Campos mínimos:
  • name: en minúsculas y con guiones bajos
  • language: p. ej. en_US
  • category: MARKETING, UTILITY o AUTHENTICATION
  • components[]: HEADER, BODY, FOOTER, BUTTONS
La CLI incorpora accountId (de --account) a la carga antes de enviarla, así que no hace falta incluirlo en el JSON.
Ejemplos
Los nombres de plantilla deben ser alfanuméricos en minúsculas con guiones bajos (^[a-z0-9_]+$). Meta lo valida: los nombres que no cumplan se rechazan de inmediato con un 400.

whatsapp:delete-template

Elimina una plantilla de forma permanente. Una vez eliminada, no se puede restaurar; debes volver a enviarla con un nombre nuevo.
Sin -y, el comando pregunta Delete template "<name>" on account <id>? (y/N) y se cancela a menos que respondas y.
Ejemplos

whatsapp:send

Envía un mensaje de plantilla aprobada a un destinatario. Es la forma principal de iniciar una conversación de WhatsApp fuera de la ventana de atención al cliente de 24 horas.
--components y --file son opcionales (una plantilla sin variables no necesita ninguno). Si se indican ambos, --file tiene prioridad. Los parámetros de los componentes rellenan las variables ({{1}}, {{2}}, etc.) de la plantilla aprobada. La estructura coincide con la API en la nube de Meta:
Ejemplos
El envío de plantillas se factura según la tarifa de WhatsApp Business de Meta. Prueba siempre primero con un solo destinatario. Las plantillas no aprobadas o rechazadas fallarán con un 400.

whatsapp:upload-media

Sube multimedia de cabecera (imagen/vídeo/documento) para usarla dentro del componente HEADER de una plantilla. Devuelve un identificador de multimedia al que puedes hacer referencia al crear o enviar plantillas.
Indica exactamente una de las opciones --url o --base64: el comando da un error si no indicas ninguna o indicas ambas.
Ejemplos

Panorama general

  • Los mensajes de sesión (respuestas dentro de las 24 horas siguientes a un mensaje entrante) pasan por inbox:reply; no requieren plantilla.
  • Los mensajes de plantilla (primer contacto o fuera de la ventana de 24 horas) usan whatsapp:send y requieren una plantilla aprobada por Meta.
  • Conectar una cuenta de WhatsApp Business sigue haciéndose solo desde el navegador: completa OAuth en el panel primero y después tus scripts de la CLI podrán referirse a la cuenta conectada.