Segmentos
Subconjuntos de uma audiência definidos por regras (`publiq.segments`).
O recurso segments representa um subconjunto de uma audiência, definido por uma árvore de regras (rules) avaliada contra os contatos. Crie, liste, atualize e remova segmentos para depois usá-los como alvo de um broadcast.
Referência de métodos
segments.create
segments.create(audienceId, params) → Promise<Segment>Cria um segmento dentro de uma audiência, definido por uma árvore de regras (rules) que determina quais contatos pertencem a ele.
| Parâmetro | Tipo | Descrição |
|---|---|---|
audienceIdObrigatório | string | ID da audiência onde o segmento será criado (parte da URL). |
nameObrigatório | string | Nome do segmento (1 a 200 caracteres). |
rulesObrigatório | object | A árvore de regras que define o segmento. Veja a estrutura abaixo. |
Retorna: O segmento criado — { 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 é uma árvore: uma folha é { field, cmp, value } e um nó é { op, children }, onde op é and ou or e children é uma lista de folhas e/ou nós — permitindo combinar condições em qualquer profundidade. Comparadores (cmp) disponíveis: eq, neq, gt, gte, lt, lte, in, contains, exists. O field é validado contra uma lista de campos permitidos — subscribed é sempre válido; campos de atributo arbitrários podem ser restritos.segments.list
segments.list(audienceId, { limit?, after? }) → Promise<SegmentList>Lista os segmentos de uma audiência, com paginação por cursor.
| Parâmetro | Tipo | Descrição |
|---|---|---|
audienceIdObrigatório | string | ID da audiência cujos segmentos serão listados (parte da URL). |
limitOpcional | number | Itens por página (padrão 20, máx. 100). |
afterOpcional | string | Cursor: id do último item da página anterior. |
Retorna: Envelope de lista { object: "list", data: Segment[] }. Use o id do último item como after na próxima chamada.
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 do último item em after até data vir vazio. Veja Erros & paginação.segments.update
segments.update(audienceId, segmentId, params) → Promise<Segment>Atualiza o nome e/ou a árvore de regras de um segmento existente.
| Parâmetro | Tipo | Descrição |
|---|---|---|
audienceIdObrigatório | string | ID da audiência dona do segmento (parte da URL). |
segmentIdObrigatório | string | ID do segmento a atualizar (parte da URL). |
nameOpcional | string | Novo nome do segmento. |
rulesOpcional | object | Nova árvore de regras — substitui a anterior por completo (não faz merge). |
Retorna: O segmento atualizado.
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>Remove um segmento permanentemente. Não afeta os contatos da audiência, apenas a definição do segmento.
| Parâmetro | Tipo | Descrição |
|---|---|---|
audienceIdObrigatório | string | ID da audiência dona do segmento (parte da URL). |
segmentIdObrigatório | string | ID do segmento a remover (parte da URL). |
Retorna: Nenhum conteúdo (204).
await publiq.segments.delete('aud_123', 'seg_123');Os exemplos mostram Node, Python e PHP. No Python os métodos são snake_case (ex.: cancel_run, from_spec) e recebem um dict; no PHP são camelCase e recebem um array associativo. As chaves do corpo são sempre camelCase (templateKey, firstName, scheduledAt) — o retorno da API vem em snake_case.