🧩 ¿Cómo utilizar la API de Plantillas en Atom?
La API de Plantillas de Atom permite integrar tus propias aplicaciones con el servicio de envío de mensajes por WhatsApp usando plantillas preaprobadas (Templates Messages). Con esta API podrás:
- ✅ Enviar un mensaje con plantilla (template)
- 📋 Obtener un listado de plantillas disponibles
- 🔍 Consultar los detalles de una plantilla por su ID
🌐 Ambientes disponibles
Ambiente | Uso previsto | Endpoint base |
---|---|---|
Producción | Para clientes finales y operaciones reales | https://us-central1-atomchat-io.cloudfunctions.net/templates |
AI | Ambiente alternativo disponible para integraciones específicas o casos de uso designados. | https://us-central1-atom-ai.cloudfunctions.net/templates |
1. Enviar una Plantilla (Template Message)
Este servicio permite el envío de un Template Message utilizando un número de WhatsApp Oficial y el templateId
correspondiente.
Comportamiento
-
Número con conversación activa:
Si el número ya tiene una conversación, el mensaje se enviará sobre esa conversación y la confirmación será inmediata.
-
Número sin conversación activa:
Si no existe una conversación previa, el mensaje quedará en estado “pendiente” hasta recibir la confirmación del proveedor de WhatsApp Oficial.
Detalles Técnicos
- Tipo de conexión: Acceso público por Internet
- Método:
POST
- Encabezados obligatorios:
Content-type: application/json
Charset: utf-8
Authorization: Bearer (token público)
- Endpoint según ambiente:
-
Producción:
https://us-central1-atomchat-io.cloudfunctions.net/templates
-
AI:
https://us-central1-atom-ai.cloudfunctions.net/templates
-
Parámetros del Cuerpo (JSON)
Parámetro | Descripción | Tipo | Requerido |
---|---|---|---|
templateId |
ID del Template Message de AtomChat. | string | Sí |
phoneNumber |
Número de teléfono al que se enviará la plantilla. Debe incluir el código de país sin el signo + y sin espacios.Correcto: 50755667788 Incorrecto: +50755667788 , 55667788 , 507 55667788 |
string | Sí |
clientName |
Nombre del cliente. Si no se incluye, se usará el número de teléfono como valor por defecto. | string | Opcional |
groupName |
Grupo al que se asignará la conversación. Si no se indica, se utilizará el primer grupo asociado a la integración. | string | Opcional |
assign |
Define si la conversación se asigna a un agente (true ) o al bot (false , valor por defecto). |
boolean | Opcional |
params |
Objeto con los parámetros requeridos por la plantilla. Ejemplo: { "param1": "valor", "param2": "otro valor" } |
object | Opcional |
Ejemplo de Cuerpo (JSON)
json
CopiarEditar
{
"templateId": "id_del_template",
"phoneNumber": "50755667788",
"clientName": "Juan Pérez",
"groupName": "Soporte",
"assign": true,
"params": {
"param1": "valor",
"param2": "otro valor"
}
}
Respuestas Posibles
Escenario | Código | Respuesta |
---|---|---|
Plantilla enviada | 200 | { "success": true, "message": "Sent", "data": { "conversation_id": "abc123" } } |
Plantilla pendiente de envío | 202 | { "success": false, "conversationId": "abc123", "status": 202 } |
Parámetros incorrectos | 400 | { "success": false, "message": "No hay datos para enviar" } |
Faltan parámetros requeridos | 400 | Respuesta con detalle técnico sobre los params faltantes |
Plantilla sin ID o mensaje definido | 400 | Respuesta con detalle técnico sobre los campos template.appId o template.message |
Canal no conectado | 401 | Respuesta de error indicando que el canal de WhatsApp no está configurado |
Token incorrecto | 401 | Respuesta de error por token público inválido |
Límite de conversaciones alcanzado | 401 | { "success": false, "message": "The client has reached conversations limit" } |
Error interno del sistema | 500 | { "message": "Something went wrong while the operation was executed", "type": "Internal Server Error" } |
2. Listar Plantillas
Este endpoint permite recuperar un listado de plantillas activas disponibles en el canal asociado al token público.
Detalles Técnicos
- Tipo de conexión: Acceso público por Internet
- Método:
GET
- Encabezados obligatorios:
Content-type: application/json
Charset: utf-8
Authorization: Bearer (token público)
Endpoint
Utilizar la URL base correspondiente al ambiente:
-
Producción:
https://us-central1-atomchat-io.cloudfunctions.net/templates?page=1&size=1000&sort=asc
-
AI:
https://us-central1-atom-ai.cloudfunctions.net/templates?page=1&size=1000&sort=asc
Parámetros Opcionales
Parámetro | Descripción | Tipo | Requerido |
---|---|---|---|
page |
Número de página. Default: 1 | string | No |
size |
Cantidad de resultados por página | string | No |
sort |
Orden de resultados (ej: asc o desc ) |
string | No |
Ejemplo de Respuesta JSON
json
CopiarEditar
{
"length": 2,
"page": 1,
"items": [
{
"id": "b5ssgNtFPa5Vbrb8TOxt",
"message": "Hola, Bienvenido a almacenes tia, siempre de todo a menor precio, siempre",
"buttons": [],
"status": "APPROVED",
"active": true,
"createdAt": "2022-06-02T18:49:32.786Z",
"updatedAt": "2022-06-29T17:21:01.098Z",
"bodyParams": [],
"description": "Plantilla Tia"
},
{
"id": "7gKfsuDayJeBqqSGfYIY",
"message": "Hola, 1 👋 Te saludamos desde *2* 🛒Vimos que te interesó uno de nuestros productos y *queremos que sea tuyo* 😉Te invitamos a volver a tu compra *en un clic* ✨👇3",
"buttons": [],
"status": "APPROVED",
"active": true,
"createdAt": "2022-06-04T02:29:43.652Z",
"updatedAt": "2022-06-04T16:38:13.083Z",
"bodyParams": [ "client_name", "companyName", "url" ],
"description": "shopify_abandoned_checkout"
}
]
}
3. Obtener Plantilla por ID
Este servicio permite obtener los detalles completos de una plantilla específica utilizando su templateId
.
Detalles Técnicos
- Tipo de conexión: Acceso público por Internet
- Método:
GET
- Encabezados obligatorios:
Content-type: application/json
Charset: utf-8
Authorization: Bearer (token público)
Endpoint
Utilizar la URL base correspondiente al ambiente:
-
Producción:
https://us-central1-atomchat-io.cloudfunctions.net/templates/{templateId}
-
AI:
https://us-central1-atom-ai.cloudfunctions.net/templates/{templateId}
Reemplazá {templateId} por el ID real de la plantilla que deseás consultar.
Ejemplo de Respuesta JSON
json
CopiarEditar
{
"id": "b5ssgNtFPa5Vbrb8TOxt",
"message": "Hola, Bienvenido a almacenes tia, siempre de todo a menor precio, siempre",
"buttons": [],
"status": "APPROVED",
"active": true,
"createdAt": "2022-06-02T18:49:32.786Z",
"updatedAt": "2022-06-29T17:21:01.098Z",
"bodyParams": [],
"description": "Plantilla Tia"
}
Consideraciones Finales
-
Ambiente:
Verificá que estás utilizando el endpoint correcto según el ambiente (Producción o AI), especialmente en pruebas internas y desarrollos.
-
Validación en el
phoneNumber
:Asegurate de utilizar el formato correcto del número de teléfono (código de país sin el signo
+
ni espacios) para evitar errores en el envío. -
Errores comunes:
Revisá las respuestas de error para identificar problemas en parámetros, autorización (token), o limitaciones en el canal de WhatsApp.