WhatsApp Campaigns [Desarrolladores]
Crea, gestiona y envía campañas masivas de WhatsApp desde la API de Adereso.
WhatsApp Campaigns
Las campañas de WhatsApp permiten enviar mensajes masivos a través de plantillas HSM. Desde la API puedes crear campañas, consultar su estado, agregar destinatarios y disparar el envío.
¿Para qué sirve?
Las campañas de WhatsApp permiten enviar mensajes masivos a una lista de destinatarios usando plantillas aprobadas. Es el equivalente a un "email marketing" pero por WhatsApp, con tasas de apertura significativamente más altas.
Beneficios concretos
- Enviar promociones, avisos o notificaciones masivas a tu base de clientes por WhatsApp
- Programar y gestionar campañas desde tu propio sistema (CRM, ERP, plataforma de marketing)
- Controlar el ciclo completo: crear campaña, cargar destinatarios, disparar envío y consultar resultados
¿Quién lo usa? Equipos de marketing, growth y operaciones que gestionan comunicaciones masivas con clientes.
Listar campañas
/v2/whatsapp/campaigns/ - GET
Obtiene la lista de campañas WhatsApp de tu cuenta, de forma paginada.
Parámetros
Parámetro | Tipo | Requerido | Descripción |
page | integer | Sí | Número de página (empieza en 1) |
Ejemplo de request
curl -H "Authorization: Key TU_TOKEN" \
"https://api-cluster.adere.so/v2/whatsapp/campaigns/?page=1"Ejemplo de respuesta exitosa:
{
"status": 200,
"campaigns": [
{
"id": "camp_123",
"name": "Promo Navidad 2026",
"template_name": "promo_navidad",
"status": "draft",
"entries_count": 500
}
],
"total_pages": 3
}Crear campaña
/v2/whatsapp/campaigns/ - POST
Crea una nueva campaña de WhatsApp. Debes especificar la plantilla a utilizar, la cuenta de envío y los destinatarios.
Ejemplo de request
curl -X POST \
-H "Authorization: Key TU_TOKEN" \
-H "Content-Type: application/json" \
"https://api-cluster.adere.so/v2/whatsapp/campaigns/" \
-d '{
"name": "Promo Navidad 2026",
"account": "56900000000",
"template_name": "promo_navidad",
"entries": [
{"phone": "56911111111", "parameters": ["María"]},
{"phone": "56922222222", "parameters": ["Carlos"]}
]
}'Ejemplo de respuesta exitosa:
{
"status": 201,
"campaign_id": "camp_456",
"message": "Campaign created successfully"
}Códigos de error
Código | Descripción |
400 | Datos de campaña inválidos o incompletos |
401 | No autenticado |
Obtener detalle de una campaña
/v2/whatsapp/campaigns/{campaign_id}/ - GET
Retorna la información detallada de una campaña específica.
Parámetros
Parámetro | Tipo | Requerido | Descripción |
campaign_id | string | Sí | ID único de la campaña |
Ejemplo de request
curl -H "Authorization: Key TU_TOKEN" \
"https://api-cluster.adere.so/v2/whatsapp/campaigns/camp_456/"Ejemplo de respuesta exitosa:
{
"status": 200,
"campaign": {
"id": "camp_456",
"name": "Promo Navidad 2026",
"status": "draft",
"template_name": "promo_navidad",
"account": "56900000000",
"entries_count": 2,
"sent_count": 0
}
}Enviar campaña
/v2/whatsapp/campaigns/{campaign_id}/send/ - POST
Dispara el envío de una campaña. Una vez enviada, los HSM se despachan a todos los destinatarios configurados. Opcionalmente puedes cerrar los tickets generados automáticamente.
Parámetros
Parámetro | Tipo | Requerido | Descripción |
campaign_id | string | Sí | ID único de la campaña (path) |
close_ticket | boolean | No | Si es true, cierra automáticamente los tickets generados |
Ejemplo de request
curl -X POST \
-H "Authorization: Key TU_TOKEN" \
-H "Content-Type: application/json" \
"https://api-cluster.adere.so/v2/whatsapp/campaigns/camp_456/send/" \
-d '{"close_ticket": true}'Ejemplo de respuesta exitosa:
{
"status": 200,
"message": "Campaign sent successfully"
}Ver destinatarios de una campaña
/v2/whatsapp/campaigns/{campaign_id}/data/ - GET
Obtiene la lista de destinatarios (entries) configurados en una campaña.
Parámetros
Parámetro | Tipo | Requerido | Descripción |
campaign_id | string | Sí | ID único de la campaña |
Ejemplo de request
curl -H "Authorization: Key TU_TOKEN" \
"https://api-cluster.adere.so/v2/whatsapp/campaigns/camp_456/data/"Ejemplo de respuesta exitosa:
{
"status": 200,
"entries": [
{"phone": "56911111111", "parameters": ["María"], "status": "pending"},
{"phone": "56922222222", "parameters": ["Carlos"], "status": "sent"}
]
}Eliminar campaña
/v2/whatsapp/campaigns/{campaign_id}/ - DELETE
Elimina una campaña que aún no ha sido enviada.
Parámetros
Parámetro | Tipo | Requerido | Descripción |
campaign_id | string | Sí | ID único de la campaña |
Ejemplo de request
curl -X DELETE \
-H "Authorization: Key TU_TOKEN" \
"https://api-cluster.adere.so/v2/whatsapp/campaigns/camp_456/"Ejemplo de respuesta exitosa:
{
"status": 200,
"message": "Campaign deleted successfully"
}⏱️ Reintentos inteligentes por ticket abierto
¿Cómo funciona en campañas?
Cuando creas una campaña con skip_open_tickets: true y mins_to_retry mayor a 0:
- El sistema intenta enviar a cada destinatario
- Si un destinatario tiene un ticket abierto, no envía pero tampoco marca como fallido
- Programa un reintento automático después del intervalo configurado
- En cada reintento, verifica si el ticket se cerró
- Si el ticket se cerró, envía el mensaje normalmente
- Si sigue abierto y quedan intentos, reprograma
- En el último intento, si el ticket sigue abierto, marca como fallido
Parámetros de campaña para reintentos
Al crear la campaña, incluye estos campos en el body del POST /v2/whatsapp/campaigns/:
Campo | Tipo | Descripción |
skip_open_tickets | boolean | Si es true, no envía a destinatarios con tickets abiertos. |
mins_to_retry | integer | Minutos entre cada reintento. Si es 0, no reintenta. |
max_retries | integer | Cantidad máxima de reintentos por destinatario. |
Ejemplo de request con reintentos
{
"name": "Promo Navidad 2026",
"account": "56900000000",
"template_name": "promo_navidad",
"skip_open_tickets": true,
"mins_to_retry": 10,
"max_retries": 3,
"entries": [
{"phone": "56911111111", "parameters": ["María"]},
{"phone": "56922222222", "parameters": ["Carlos"]}
]
}Horario laboral
Si activas no_send_outside_business_hours, el sistema respeta el horario configurado en Adereso. Fuera de horario y quedan intentos: reprograma. Fuera de horario y último intento: cancela sin enviar. El horario se toma del departamento, cuenta o establecimiento (en ese orden).
Notas importantes
- Los reintentos aplican tanto para envíos individuales por API como para entradas de campañas.
- Cuando un reintento tiene éxito, el ticket creado recibe automáticamente la metadata, etiquetas y clave de template del request original.
- Si el reintento falla definitivamente, la entrada de campaña asociada se marca como fallida.
Artículos relacionados
- Mensajes (API) — Envío individual de HSM por API (incluye reintentos granulares por envío)
- Adereso Engage (Mis Campañas) — Envío de campañas desde la interfaz
- Autenticación (Desarrolladores) — Cómo obtener tu token de API