Directrices para las plantillas
El archivo fuente debe ser creado siguiendo las siguientes especificaciones:Formato de archivo
Solo se admiten archivos con la extensión.CSV.
Encabezado
La primera fila del archivo debe definir los nombres de las columnas (encabezado). Sigue estas reglas para el encabezado:- Evita los espacios en blanco en los nombres de las columnas.
- No uses caracteres especiales ni signos de puntuación (por ejemplo,
!, $, %, &, *, etc.). - Usa solo letras, números y guiones bajos (
_) si es necesario.
phone_number, customer_name, order_amount
Incorrecto: phone number, customer-name!, order#amount
Primera columna
La primera columna debe contener los números de teléfono de los destinatarios. Es obligatorio incluir el código internacional sin el símbolo+ (por ejemplo, para un número en Ecuador, escribe PHONE_NUMBER).
Columnas restantes
Las otras columnas se usarán para los valores dinámicos de los parámetros (personalización de la plantilla).Ejemplo
Si tu plantilla contiene el siguiente contenido:| phone_number | param_1 | param_2 | param_3 |
|---|---|---|---|
| PHONE_NUMBER | A12345 | $250.00 | 1 de diciembre |
| PHONE_NUMBER_2 | B67890 | $100.50 | 2 de diciembre |
| PHONE_NUMBER_3 | C22345 | $50.00 | 3 de diciembre |
El archivo CSV debe estar codificado en UTF-8.
Enviar HSM desde archivo
Opciones de carga de archivo
Existen dos formas de proporcionar el archivo CSV con la información de los destinatarios:- Usando una URL pública: Puedes proporcionar la URL al archivo CSV que esté disponible públicamente. En este caso, el cuerpo de la solicitud debe estar en formato JSON.
-
Subiendo el archivo: Alternativamente, puedes adjuntar el archivo CSV directamente a la solicitud. En este caso, el cuerpo de la solicitud debe estar en formato
multipart/form-data.
Parámetros del cuerpo
| Propiedad | Tipo | Descripción | Requerido |
|---|---|---|---|
| campaignName | string | Nombre asignado a la campaña que se está enviando. | Sí |
| elementName | string | Nombre de la plantilla. Debe tener estado aprobado por WhatsApp. | Sí |
| botId | string | Identificador único del bot que envía la plantilla. | Sí |
| params | array | Arreglo de objetos con el número de parámetro y la columna correspondiente del CSV. Si la plantilla no tiene parámetros, el arreglo debe estar vacío. | Sí |
| type | string | Tipo de plantilla: text, image, document, video. Por defecto es text. | No |
| mediaUrl | string | URL pública del archivo multimedia. Necesario para plantillas de imagen, video o documento. | Condicional |
| fileUrl | string | URL pública del archivo CSV. Requerido si no se sube el archivo directamente. | Condicional |
| file | file | Archivo CSV adjunto. Requerido si no se usa fileUrl. | Condicional |
| buttonPayloads | array | Arreglo de objetos para botones de respuesta rápida con skills. | No |
| actions | object | Acciones relacionadas con la plantilla. | No |
| scheduledAt | date | Fecha y hora en UTC cuando se enviará la campaña. | No |
Ejemplos de solicitud
Envío desde URL pública (JSON)
Envío desde URL pública (JSON)
Envío con archivo adjunto (multipart/form-data)
Envío con archivo adjunto (multipart/form-data)
Respuestas del envío
200 - Respuesta exitosa
200 - Respuesta exitosa
400 - Bad Request
400 - Bad Request
401 - Unauthorized
401 - Unauthorized
422 - Unprocessable Entity
422 - Unprocessable Entity
Estructura de params
Cada elemento en el arregloparams es un objeto que contiene:
- param: Número del parámetro en la plantilla (1, 2, 3…).
- column: Nombre de la columna en el archivo CSV de donde se extraerán los valores.
Estructura de buttonPayloads
Para plantillas con botones de respuesta rápida que activan skills:Obtener Campañas
Consulta la información de todas las campañas que se han enviado de manera masiva.Parámetros de consulta
| Propiedad | Tipo | Descripción | Requerido |
|---|---|---|---|
| page | number | Número de página. Por defecto 1. | No |
| limit | number | Número de registros. Por defecto 10, máximo 50. | No |
| botId | string | ID del bot. | Sí |
| startAt | date | Fecha de inicio. | Sí |
| endAt | date | Fecha de finalización. | Sí |
| elementName | string | Nombre de la plantilla. | No |
| status | string | Estado de la campaña. Valores: COMPLETED, PENDING, IN_PROGRESS, SCHEDULED | No |
Ejemplo de solicitud
Respuestas de consulta
200 - Respuesta exitosa
200 - Respuesta exitosa
400 - Bad Request
400 - Bad Request
401 - Unauthorized
401 - Unauthorized
Estados de campaña
| Estado | Descripción |
|---|---|
PENDING | La campaña está pendiente de envío. |
SCHEDULED | La campaña está programada para una fecha futura. |
IN_PROGRESS | La campaña se está enviando actualmente. |
COMPLETED | La campaña ha finalizado su envío. |