Envía un template de WhatsApp ya aprobado por Meta. Reabre la ventana de 24h — se puede usar incluso si el cliente no ha interactuado recientemente. Este es el único tipo de mensaje que puedes enviar fuera de la ventana.
Resolución por nombre:
Se envía por template_name, no por UUID. Meta + nuestra DB enforzan unicidad de nombre por business. Si un template existe en múltiples idiomas (mismo nombre), especifica language (es_MX, en_US, etc.) — si no lo haces y hay ambigüedad la respuesta es TEMPLATE_AMBIGUOUS (409).
Nota multi-canal: el unique real en DB es
(channel_configuration_id, meta_template_id, language). Si un business tiene 2+ canales WhatsApp con el mismo(name, language), la API respondeTEMPLATE_AMBIGUOUSsin forma de desempate vía contrato público (este endpoint no exponechannel_configuration_uuid). El servidor loguea un warn observable. Si necesitás enviar por API pública a un business multi-canal con templates duplicados, abrir issue y evaluamos ampliar el contrato.
Placeholders:
body_variables — array con {index, value} para llenar {{1}}, {{2}}, … del body. Index es 1-based y debe estar alineado con el template original.header — si el template tiene header, se pasa aquí. Para media, usa file_uuid de un archivo ya confirmed (ver endpoints de /files/*). El servidor genera la signed URL antes de enviar a Meta.button_parameters — solo para botones URL con placeholder dinámico ({{1}} en la URL). Los quick-reply buttons del template no llevan parámetros.Guards aplicados:
image / video / document (el AI podría necesitarla para procesar respuestas que referencien el contenido).Documentation Index
Fetch the complete documentation index at: https://docs.1to1ai.com/llms.txt
Use this file to discover all available pages before exploring further.
API token emitido desde Settings → API Token del dashboard 1TO1 AI. Enviar en header Authorization: Bearer sk_1to1_...
Slug del business, case-insensitive. Debe coincidir con el business del token.
"acme"
Identificador de la conversación — al menos UNO de los tres campos debe venir. Orden de resolución: uuid > whatsapp_user_id > phone. El lookup filtra por el business del token (defense in depth cross-tenant).
Nombre del template aprobado por Meta. Debe matchear ^[a-zA-Z0-9_]+$ (alfanumérico + underscore); el servidor normaliza a lowercase per convención Meta. Único por business; si el mismo nombre existe en múltiples idiomas, la respuesta es TEMPLATE_AMBIGUOUS y debes especificar language.
1 - 512^[a-zA-Z0-9_]+$"promo_verano_2026"
Idioma del template (opcional). Formato Meta: 2-3 letras + opcional _ + 2-3 letras (es, es_MX, pt_BR). El servidor normaliza casing a lower_UPPER. Solo requerido si el mismo template_name existe en varios idiomas para el business.
2 - 10^[a-zA-Z]{2,3}(_[a-zA-Z]{2,3})?$"es_MX"
Variables del body del template. Ordénalas por index (1-based).
Header del template. Para media el cliente NO envía URLs — pasa file_uuid de un archivo previamente subido vía /files/request-upload + /files/confirm. El servidor genera una signed URL fresca al enviar.
Parámetros para botones con placeholders dinámicos. Solo aplica a botones de tipo URL del template.
Template enviado. wamid es el ID de Meta.