Producto
WhatsApp

Enviar plantilla

Envía una plantilla de WhatsApp aprobada, con variables y archivo de cabecera opcionales.

Enviar plantilla

Envía una plantilla aprobada por Meta. Las plantillas se pueden enviar en cualquier momento, también a contactos nuevos y fuera de la ventana de 24 horas.

bash
01plazbot whatsapp send-template -p <número> -t <plantilla> [opciones]

Parámetros

ParámetroFlagRequeridoDescripción
Teléfono-p, --phone <number>SíNúmero del destinatario en formato internacional, por ejemplo +51912345678
Plantilla-t, --template <name>SíNombre exacto de la plantilla aprobada en Meta (ej: welcome_message)
Variables del cuerpo--var <name=value...>NoUno o más pares nombre=valor (ej: --var name=Anna code=PB-123)
Variables de cabecera--header-var <name=value...>NoPares nombre=valor para una cabecera de texto (ej: --header-var store=Lima)
URL del archivo--file-url <url>NoURL pública (http/https) de la imagen, video o documento de la cabecera
Nombre del archivo--file-name <name>NoNombre que ve el destinatario en una cabecera de documento. Requiere --file-url. Default: file
JSON--jsonNoImprime solo JSON en stdout

Formato de las variables

  • Siempre nombre=valor. Solo el primer = separa, así que el valor puede contener =.
  • Si el valor tiene espacios, pon el par entre comillas: --var "name=Anna Lopez".
  • Un par sin =, sin nombre o con valor vacío es un error: el CLI no lo descarta en silencio.
  • --var y --header-var aceptan varios pares. Ponlos después de las demás opciones o repite el flag.

Ejemplos

bash
01# Plantilla sin variables
02plazbot whatsapp send-template -p +51912345678 -t welcome_message
03 
04# Plantilla con variables del cuerpo
05plazbot whatsapp send-template -p +51912345678 -t order_status --var name=Anna code=PB-123
06 
07# Variable de cabecera de texto más variable del cuerpo
08plazbot whatsapp send-template -p +51912345678 -t promo --header-var store=Lima --var amount=20
09 
10# Plantilla con documento en la cabecera
11plazbot whatsapp send-template -p +51912345678 -t invoice --file-url https://files.example.com/inv.pdf --file-name invoice.pdf

Resultado

text
01 Sending WhatsApp template
02 ────────────────────────────────────────
03 To: +51912345678
04 Template: order_status
05 Body variables: name=Anna, code=PB-123
06✔ Template sent

Cuando corresponde, también se muestran Header variables: ... y File: <url> (<nombre>).

Salida JSON

json
01{
02 "phone": "51912345678",
03 "template": "order_status",
04 "status": "sent",
05 "messageId": "..."
06}

messageId aparece solo cuando la API lo devuelve.

Errores comunes

MensajeCausaSolución
Invalid --var "name".Falta el = o el nombreUsa --var name=Anna
Variable "name" in --var has an empty value.El valor está vacío (--var name=)WhatsApp rechaza variables vacías: pasa un valor
--file-name needs --file-url.Pasaste --file-name sin archivoAgrega --file-url <url>
Invalid --file-url "..."La URL no es http(s)Usa una URL pública http(s)
The template was not sent. (más el detalle de la API)Nombre incorrecto, plantilla no aprobada o variables que no coincidenRevisa la plantilla y sus variables en el panel (Templates)
Invalid phone number "..."Número mal formadoUsa el formato internacional, por ejemplo +51912345678

--header-var llena los marcadores de una cabecera de texto. Para una cabecera de imagen, video o documento usa --file-url (y --file-name para documentos).

¿Quieres probar la API en vivo? Abre el Playground.