Crear una campaña
Envía una plantilla aprobada de WhatsApp a una audiencia, ahora o en scheduled_at. Ricky fija la lista de destinatarios en este momento y envía por la conversación de cada número, como una plantilla enviada desde la bandeja; las variables que la plantilla asocia a campos del contacto en Ricky se llenan por contacto. Responde 201 con la campaña queued o scheduled; síguela con GET /broadcasts/{broadcast_id}. Una audiencia sin ningún número de WhatsApp responde 422 rule_violation.
Permiso: broadcasts:write.
bearerAuthAuthorizationBearer <clave>Una clave de API de la organización, rky_live_…, creada en Configuración → API. Envíala solo desde un servidor.
Idempotency-Key?stringOpcional. Un valor que eliges, único por escritura lógica, de 8 a 200 caracteres: un UUID o un ID de tu sistema, como order-10482-ready. Reintentar con la misma clave y el mismo cuerpo repite la primera respuesta en lugar de repetir la escritura.
8 <= length <= 200application/json- body
Envía una plantilla aprobada a muchos números, ahora o a una hora fija.
channel_id*stringCanal de WhatsApp desde el que se envía. Consulta GET /channels.
uuidtemplate*Una plantilla aprobada de WhatsApp y los valores de sus variables.
audience*||Quién la recibe. filter toma cada contacto que cumple todos los filtros que envías (sin filtros: todos los contactos); contacts y phones toman los que listas. Ricky usa el teléfono de cada contacto, o su número de WhatsApp, omite los contactos sin uno y envía una vez por número, hasta 5.000.
mappings?array<>Llena variables de la plantilla por destinatario con datos de su contacto, como lo hace el editor de campañas. Ricky las guarda en la plantilla y reemplaza las que tenía, así que las próximas campañas de la plantilla también las usan; omítelo para mantener las guardadas y envía [] para borrarlas. Un destinatario sin contacto, o sin valor en el campo, recibe el texto que enviaste en template.components.
items <= 100scheduled_at?stringCuándo empezar a enviar, hasta 7 días adelante. Omítelo para enviar ya.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$date-timeÉxito.
application/json- response
data*Una plantilla aprobada de WhatsApp enviada a muchos números.
curl -X POST 'https://getricky.ai/api/v1/broadcasts' \ -H 'Idempotency-Key: order-10482-ready' \ -H 'Content-Type: application/json' \ -d '{ "channel_id": "8f3c2a5e-6b1d-4c7a-9e2f-1a2b3c4d5e6f", "template": { "id": "1234567890123456", "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "20%" } ] } ] }, "audience": { "type": "filter", "tag_id": "5c6d7e8f-9a0b-4c1d-8e2f-3a4b5c6d7e8f" }, "scheduled_at": "2026-10-20T14:00:00Z"}'{ "data": { "id": "0c1d2e3f-4a5b-4c6d-8e7f-9a0b1c2d3e4f", "channel_id": "8f3c2a5e-6b1d-4c7a-9e2f-1a2b3c4d5e6f", "template": { "id": "1234567890123456", "name": "promo_octubre", "language": "es" }, "audience": { "type": "filter", "tag_id": "5c6d7e8f-9a0b-4c1d-8e2f-3a4b5c6d7e8f", "lifecycle_stage": null, "query": null }, "status": "completed", "counts": { "recipients": 120, "pending": 0, "sent": 14, "delivered": 61, "read": 41, "failed": 4 }, "scheduled_at": "2026-10-14T14:00:00.000Z", "canceled_at": null, "completed_at": "2026-10-14T14:03:12.000Z", "created_by_user_id": "2d4f6a8c-1b3d-4e5f-8a7b-9c0d1e2f3a4b", "created_at": "2026-10-14T15:30:00.000Z" }}