Broadcasts
Campañas de marketing enviadas a una audiencia o segmento (`publiq.broadcasts`).
El recurso broadcasts cubre el ciclo de vida de una campaña: crear en borrador a partir de una plantilla, dirigiéndola a una audiencia o a un segmento, consultar el estado, listar el historial y disparar (ahora o programado).
Referencia de métodos
broadcasts.create
broadcasts.create(params) → Promise<Broadcast>Crea una broadcast en borrador, a partir de una plantilla versionada, dirigida a una audiencia entera o a un segmento. No se envía nada hasta llamar a broadcasts.send.
| Parámetro | Tipo | Descripción |
|---|---|---|
fromEmailObligatorio | string | Correo remitente. El dominio debe estar verificado. Ver Dominios & DNS. |
templateIdObligatorio | string | ID de la plantilla versionada a enviar. Ver Plantillas. |
audienceIdOpcional | string | Dirige a la audiencia entera. Usa audienceId o segmentId — nunca ambos. Ver Audiencias. |
segmentIdOpcional | string | Dirige a un segmento de la audiencia. Usa segmentId o audienceId — nunca ambos. Ver Segmentos. |
Devuelve: La broadcast creada — { object: "broadcast", id, status: "draft", ... }. Guarda el id para revisar y enviar después.
const broadcast = await publiq.broadcasts.create({
fromEmail: 'news@yourdomain.com',
templateId: 'tpl_summer_sale',
audienceId: 'aud_123',
});
console.log(broadcast.id, broadcast.status); // "bc_...", "draft"audienceId o segmentId. Pasar ambos (o ninguno) → 400 validation_error. Toda broadcast usa una plantilla guardada. Ver Audiencias, Segmentos y Plantillas.broadcasts.get
broadcasts.get(id) → Promise<Broadcast>Obtiene los detalles de una broadcast por id: estado actual y, si está programada, scheduled_at.
| Parámetro | Tipo | Descripción |
|---|---|---|
idObligatorio | string | ID de la broadcast (devuelto por broadcasts.create). |
Devuelve: La broadcast con su estado y, cuando está programada, scheduled_at. 404 si no existe en la organización.
const broadcast = await publiq.broadcasts.get('bc_123');
console.log(broadcast.status); // "scheduled"broadcasts.list
broadcasts.list({ limit?, after? }) → Promise<BroadcastList>Lista las broadcasts de la organización, de la más reciente a la más antigua, paginado por cursor.
| Parámetro | Tipo | Descripción |
|---|---|---|
limitOpcional | number | Ítems por página (por defecto 20, máx. 100). |
afterOpcional | string | Cursor: id del último ítem de la página anterior. |
Devuelve: Envoltura de lista { object: "list", data: Broadcast[] }. Usa el id del último ítem como after en la próxima llamada.
const { data } = await publiq.broadcasts.list({ limit: 50 });
// next page:
const next = await publiq.broadcasts.list({ after: data[data.length - 1].id });id del último ítem en after hasta que data venga vacío. Ver Errores & paginación.broadcasts.send
broadcasts.send(id, { scheduledAt? }) → Promise<Broadcast>Dispara una broadcast en borrador. Sin scheduledAt, el envío comienza de inmediato; con scheduledAt, se programa para un instante futuro en UTC.
| Parámetro | Tipo | Descripción |
|---|---|---|
idObligatorio | string | ID de la broadcast a enviar (parámetro de ruta). |
scheduledAtOpcional | string | Instante ISO-8601 en UTC, en el futuro, para programar el envío. Omítelo para enviar de inmediato. |
Devuelve: La broadcast con status: "sending" (inmediato) o status: "scheduled" (programado).
// send now
await publiq.broadcasts.send('bc_123');
// schedule for a future date
await publiq.broadcasts.send('bc_123', { scheduledAt: '2026-08-01T09:00:00Z' });Los ejemplos muestran Node, Python y PHP. En Python los métodos son snake_case (ej.: cancel_run, from_spec) y reciben un dict; en PHP son camelCase y reciben un array asociativo. Las claves del cuerpo siempre son camelCase (templateKey, firstName, scheduledAt) — las respuestas de la API vienen en snake_case.