Segmentos
Subconjuntos de una audiencia definidos por reglas (`publiq.segments`).
El recurso segments representa un subconjunto de una audiencia, definido por un árbol de reglas (rules) evaluado contra los contactos. Crea, lista, actualiza y elimina segmentos para luego usarlos como objetivo de un broadcast.
Referencia de métodos
segments.create
segments.create(audienceId, params) → Promise<Segment>Crea un segmento dentro de una audiencia, definido por un árbol de reglas (rules) que determina qué contactos pertenecen a él.
| Parámetro | Tipo | Descripción |
|---|---|---|
audienceIdObligatorio | string | ID de la audiencia donde se creará el segmento (parte de la URL). |
nameObligatorio | string | Nombre del segmento (1 a 200 caracteres). |
rulesObligatorio | object | El árbol de reglas que define el segmento. Ver la estructura abajo. |
Devuelve: El segmento creado — { object: "segment", id, name, rules, ... }.
const segment = await publiq.segments.create('aud_123', {
name: 'Active subscribers',
rules: {
op: 'and',
children: [{ field: 'subscribed', cmp: 'eq', value: true }],
},
});
console.log(segment.id, segment.name); // "seg_...", "Active subscribers"rules es un árbol: una hoja es { field, cmp, value } y un nodo es { op, children }, donde op es and u or y children es una lista de hojas y/o nodos — permitiendo combinar condiciones en cualquier profundidad. Comparadores (cmp) disponibles: eq, neq, gt, gte, lt, lte, in, contains, exists. El field se valida contra una lista de campos permitidos — subscribed siempre es válido; campos de atributo arbitrarios pueden estar restringidos.segments.list
segments.list(audienceId, { limit?, after? }) → Promise<SegmentList>Lista los segmentos de una audiencia, paginado por cursor.
| Parámetro | Tipo | Descripción |
|---|---|---|
audienceIdObligatorio | string | ID de la audiencia cuyos segmentos se listarán (parte de la URL). |
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: Segment[] }. Usa el id del último ítem como after en la próxima llamada.
const { data } = await publiq.segments.list('aud_123', { limit: 50 });
// next page:
const next = await publiq.segments.list('aud_123', { after: data[data.length - 1].id });id del último ítem en after hasta que data venga vacío. Ver Errores & paginación.segments.update
segments.update(audienceId, segmentId, params) → Promise<Segment>Actualiza el nombre y/o el árbol de reglas de un segmento existente.
| Parámetro | Tipo | Descripción |
|---|---|---|
audienceIdObligatorio | string | ID de la audiencia dueña del segmento (parte de la URL). |
segmentIdObligatorio | string | ID del segmento a actualizar (parte de la URL). |
nameOpcional | string | Nuevo nombre del segmento. |
rulesOpcional | object | Nuevo árbol de reglas — reemplaza por completo al anterior (sin merge). |
Devuelve: El segmento actualizado.
const segment = await publiq.segments.update('aud_123', 'seg_123', {
rules: {
op: 'or',
children: [
{ field: 'plan', cmp: 'eq', value: 'pro' },
{ field: 'plan', cmp: 'eq', value: 'enterprise' },
],
},
});
console.log(segment.rules);segments.delete
segments.delete(audienceId, segmentId) → Promise<void>Elimina permanentemente un segmento. No afecta los contactos de la audiencia, solo la definición del segmento.
| Parámetro | Tipo | Descripción |
|---|---|---|
audienceIdObligatorio | string | ID de la audiencia dueña del segmento (parte de la URL). |
segmentIdObligatorio | string | ID del segmento a eliminar (parte de la URL). |
Devuelve: Sin contenido (204).
await publiq.segments.delete('aud_123', 'seg_123');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.