Mensajes
| Tool | Endpoint REST | Anotaciones |
|---|---|---|
send_message | POST /v1/messages | escritura, no destructiva |
send_template_message | POST /v1/messages/template | escritura, no destructiva |
send_message
Envía un mensaje personalizado dentro de una conversación existente. La herramienta resuelve la conversación por conversationId y channelId; si hay varias conversaciones para el mismo teléfono, usa la más reciente que coincide con el canal. Para WhatsApp, Instagram y Facebook, la ventana de servicio debe estar abierta.
Argumentos
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
channelId | string | sí | Canal del agente que enviará el mensaje. |
conversationId | string | sí | Teléfono o identificador de conversación del cliente. |
content | string \| object | sí | Texto simple, contenido estructurado para media/interactivos o instrucción al agente. |
type | "text" \| "image" \| "video" \| "file" \| "audio" \| "interactive" \| "email" \| "instruction" | no | Tipo del mensaje cuando content es objeto. Si content es string, se usa text. |
client | objeto | no | Datos del cliente (name, email, customFields, owners, …) para crearlo/enriquecerlo. |
campaignId | string | no | Agrupa el envío en una campaña. Default "api". |
delay | number ms | no | Programar con delay (3000-86 400 000 ms). |
scheduleTime | ISO 8601 | no | Programar con fecha exacta. Mutuamente exclusivo con delay. |
Ejemplo de invocación
{
"name": "send_message",
"arguments": {
"channelId": "wb-12345",
"conversationId": "+521234567890",
"content": "Hola, te escribo desde Platica API",
"client": {
"name": "Ana López",
"customFields": {
"placas": "ABC123"
}
}
}
} Ejemplo con media
{
"name": "send_message",
"arguments": {
"channelId": "wb-12345",
"conversationId": "+521234567890",
"type": "image",
"content": {
"image": {
"url": "https://cdn.assets.com/foto.jpg",
"caption": "Aquí está la foto"
}
}
}
} Ejemplo de instrucción al agente
Una instrucción no llega al cliente: se aplica sobre el agente que opera la conversación. Usa mode: "wait" para que el agente espere al próximo mensaje del cliente con la instrucción registrada como contexto, o mode: "resume" para reanudar al agente para que continúe el flujo.
{
"name": "send_message",
"arguments": {
"channelId": "wb-12345",
"conversationId": "+521234567890",
"type": "instruction",
"content": {
"text": "Continúa con el flujo de venta y ofrece un descuento del 10%.",
"mode": "resume"
}
}
} Si la ventana de servicio está cerrada, usa send_template_message para iniciar o reabrir la conversación antes de enviar mensajes personalizados.
send_template_message
Envía un mensaje basado en una plantilla aprobada de WhatsApp al cliente identificado por conversationId (número de teléfono internacional). Crea la conversación y/o el cliente si no existen. Se puede enviar inmediatamente, con delay (en ms, mínimo 3000) o con scheduleTime (ISO 8601, hora de México si no incluye zona).
Argumentos
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
channelId | string | sí | Canal de WhatsApp del agente que enviará. |
conversationId | string | sí | Teléfono destinatario en formato E.164. |
template.name | string | sí | Nombre exacto de la plantilla. |
template.type | "image" \| "video" \| "document" | no | Si la plantilla tiene header multimedia. |
template.file | string (URL) | no | URL pública del archivo cuando type está presente. |
template.params | string[] | no | Valores ordenados para las variables del body. |
template.buttons[] | objeto | no | Override de parámetros de botones dinámicos (máx 3). |
template.components[] | objeto | no | Componentes adicionales (raramente necesario). |
client | objeto | no | Datos del cliente (name, email, …) para crearlo/enriquecerlo. |
campaignId | string | no | Agrupa el envío en una campaña. Default "api". |
delay | number ms | no | Programar con delay (3000-86 400 000 ms). |
scheduleTime | ISO 8601 | no | Programar con fecha exacta. Mutuamente exclusivo con delay. |
Ejemplo de invocación
{
"name": "send_template_message",
"arguments": {
"channelId": "wb-12345",
"conversationId": "+521234567890",
"template": {
"name": "bienvenida_v1",
"params": ["Ana", "10%"]
},
"client": {
"name": "Ana López",
"email": "ana@example.com"
}
}
} Usa list_templates o get_template antes de invocar send_template_message para descubrir el shape exacto de params, buttons y components. La respuesta de get_template incluye un campo api_example con el payload listo para pegar como arguments.