> ## Documentation Index
> Fetch the complete documentation index at: https://docs.polymorfa.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Salve um segmento de público

> Selecione perfis de público fornecidos pelo cliente com regras salvas e congele as correspondências quando uma campanha é lançada.

Um segmento é um conjunto nomeado de regras sobre os [perfis de público](/guides/campaigns/audience-profiles) da sua equipe.
Ele seleciona perfis que você forneceu, usando tags, atributos, declarações de
consentimento e resultados registrados das campanhas da sua equipe. Contatos,
conversas e conteúdo de mensagens do WhatsApp nunca são fonte para segmentos.

> [!NOTE]
>
> Segmentos de público exigem acesso a dois betas: perfis de público e segmentos
> de público. Até que os dois sejam oferecidos à sua equipe e ela participe
> deles, novos segmentos, edições, prévias e lançamentos de campanhas com
> segmento são recusados. Ler e excluir segmentos salvos continua disponível após
> a retirada. A retirada pausa as campanhas com segmento em execução antes da
> próxima rodada de envio; mensagens já enviadas não podem ser recuperadas.

Use uma chave de API da equipe. Leituras exigem `campaigns:read`; escritas e
prévias de regras não salvas exigem `campaigns:manage`. Tokens de projeto e de
cliente não acessam esses recursos da equipe. Sua equipe pode salvar no máximo
100 segmentos.

## Use segmentos no Console

Abra **Campanhas > Segmentos** para listar, criar, editar e excluir segmentos.

1. Selecione **Novo segmento**, digite um nome e adicione condições. Cada grupo
   mostra se corresponde a todas ou a qualquer uma das condições. Selecione
   **Excluir correspondências** para negar um grupo. **Os perfis devem
   corresponder a** combina os grupos.
2. O painel **Contagem atual** refaz a contagem pouco depois de cada edição
   válida. Ele mostra perfis elegíveis, correspondentes, com opt-out e com
   consentimento recusado, com até cinco números de exemplo mascarados. A
   contagem é uma estimativa; o lançamento conta de novo.
3. Selecione **Criar segmento** ou **Salvar alterações**. Se outra pessoa salvou
   o segmento antes, suas edições continuam na tela. Escolha **Manter minhas
   edições** para salvar por cima da revisão mais recente, ou **Carregar versão
   salva** para descartá-las.

Para enviar a um segmento, escolha **Segmento salvo** na etapa de público do
builder de campanhas. A etapa de revisão mostra uma contagem nova. Após o
lançamento, a página da campanha mostra a revisão, o horário e o número de
perfis que o lançamento congelou, separados de uma contagem atual das
correspondências.

Sem os dois betas, o Console mostra os segmentos apenas para ver e excluir.

Se a contagem do segmento demorar demais no lançamento, nada é enviado e o
Console oferece **Tentar novamente**. Simplifique as regras se isso acontecer
de novo. Uma campanha cujo segmento foi excluído não pode ser duplicada; crie
uma nova campanha e escolha um público.

## Salve regras e veja prévias com a API

```bash theme={null}
curl -X POST "https://api.polymorfa.com/platform/audience-segments" \
  -H "Authorization: Bearer $POLYMORFA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "VIP buyers",
    "rules": {
      "match": "all",
      "groups": [{
        "match": "all",
        "negate": false,
        "conditions": [
          { "field": "tag", "operator": "contains", "value": "vip" },
          { "field": "attribute", "name": "orders", "operator": "greater_than", "value": 2 }
        ]
      }]
    }
  }'
```

O `data` da resposta contém `id`, `name`, `revision`, `rules`, `createdAt` e
`updatedAt`. Os horários estão em milissegundos Unix. Use o ID retornado com
`GET /platform/audience-segments/{segmentId}/preview` para uma contagem atual.
Para testar regras antes de salvar, envie `{ "rules": ... }` para
`POST /platform/audience-segments/preview`.

Cada prévia retorna `matchedCount`, `optedOutCount`, `consentWithheldCount`,
`eligibleCount`, `evaluatedAt` e `sample`. A amostra contém no máximo cinco
perfis elegíveis, cada um com um `phone` mascarado e suas `tags`. A prévia de
um segmento salvo também retorna a `revision` avaliada. As contagens descrevem
essa avaliação, não uma reserva de destinatários. Perfis com opt-out entram em
`optedOutCount`; `consentWithheldCount` conta apenas perfis correspondentes que
não fizeram opt-out e cuja declaração de consentimento de campanha mais recente
é falsa. Não ter declaração é diferente de ter uma declaração falsa.

## Significado e limites das regras

A raiz combina grupos com `match: "all"` ou `"any"`. Cada grupo combina
condições da mesma forma. `negate: true` inverte o resultado do grupo inteiro e
tem padrão false. Não há grupos aninhados além desses dois níveis.

| Campo | Operadores e valores |
| - | - |
| `tag` | `contains` com `value`, `in` com `values` ou `exists` para qualquer tag. As tags são comparadas de forma exata. |
| `attribute` | Defina `name`. Use `equals` com uma string, um número ou um booleano; `in` com strings ou números; `contains` com texto; `greater_than` ou `less_than` com um número; `before` ou `after` com uma data; ou `exists`. |
| `consent` | `equals` com `value` booleano, comparado com a declaração de consentimento de campanha mais recente. |
| `campaign` | Defina `campaignId` e `outcome`: `delivered`, `not_delivered`, `read`, `not_read`, `replied`, `not_replied` ou `failed`. Usa as mesmas definições do [redirecionamento de destinatários](/pt-br/guides/campaigns/audiences). |

A igualdade de atributos preserva os tipos: o número `9` é diferente da string
`"9"`. `contains` em texto ignora maiúsculas e minúsculas e corresponde a
substrings literais. Atributos ausentes ou nulos e valores de outro tipo não
correspondem, antes da negação do grupo. Assim, uma regra negada de cidade
igual a um valor também inclui perfis sem cidade. Datas usam `YYYY-MM-DD` à
meia-noite UTC, ou uma data e hora com `Z` ou um deslocamento explícito.
`before` e `after` são exclusivos. Datas relativas não são compatíveis.

As regras permitem de 1 a 10 grupos, de 1 a 20 condições por grupo, no máximo
40 condições no total e 5 condições de campanha. Uma condição `in` aceita de 1
a 50 valores distintos. As regras normalizadas são limitadas a 16 KiB de JSON
UTF-8 compacto. Valores de tag aceitam de 1 a 48 bytes UTF-8; valores de
atributo de texto aceitam de 1 a 256 bytes UTF-8. Caracteres multibyte atingem
esses limites com menos caracteres. Os nomes têm os espaços das pontas
removidos e usam de 1 a 100 caracteres, sem caracteres de controle. Campos
desconhecidos e operadores não compatíveis retornam `400`. Uma condição de
campanha precisa indicar uma campanha da sua equipe.

## Lance uma campanha a partir de um segmento

Defina `segmentId` ao criar ou atualizar uma campanha. Uma requisição não pode
definir `segmentId` e `recipientListId` ao mesmo tempo. Escolher um segmento
remove a lista vinculada; escolher uma lista remove o segmento. Só um rascunho
não lançado pode mudar de público. Defina `segmentId: null` em uma atualização
para removê-lo.

O lançamento avalia as regras salvas uma vez e congela os perfis
correspondentes e os atributos não nulos deles como variáveis de destinatário.
Destinatários adicionados diretamente à campanha mantêm as próprias variáveis.
Perfis cuja declaração de consentimento de campanha mais recente é falsa são
excluídos. Destinatários com opt-out são ignorados, e a supressão em tempo real
continua valendo durante o envio. Um segmento nunca concede permissão para
enviar.

A campanha retorna `segmentId` e `segmentSnapshot`. Antes do lançamento, o
retrato é nulo; depois, contém `revision`, `evaluatedAt` e `matchedCount`. Uma
campanha agendada congela os destinatários quando você a lança, antes do início
agendado. Edições posteriores de perfis ou do segmento não reescrevem esse
retrato. Duplicar uma campanha com um segmento vinculado avalia o segmento de
novo no lançamento da cópia.

## Edite ou exclua um segmento

Liste os segmentos salvos com `GET /platform/audience-segments?limit=25`. Siga
`page.nextCursor` até `page.hasMore` ser false. O limite vai de 1 a 100. Leia
um segmento com `GET /platform/audience-segments/{segmentId}`.

Envie `PATCH /platform/audience-segments/{segmentId}` com `expectedRevision` e
`name`, `rules` ou ambos. Uma atualização bem-sucedida incrementa a revisão.
Uma revisão desatualizada retorna `409`; leia o segmento de novo antes de
aplicar a edição pretendida.

Exclua com `DELETE /platform/audience-segments/{segmentId}?expectedRevision=2`.
`expectedRevision` é um inteiro positivo tanto na atualização quanto na
exclusão. A exclusão retorna `{ "data": { "deleted": true, "id": "..." } }`.
Ela retorna `409` enquanto um rascunho não lançado usa o segmento. Escolha
antes outro público para esses rascunhos. Campanhas lançadas mantêm os
destinatários e o retrato, e o `segmentId` delas passa a ser null. Excluir um
perfil o remove de avaliações futuras de segmentos, enquanto os destinatários
de campanha já congelados mantêm o
[comportamento de exclusão de perfil](/guides/campaigns/audience-profiles#delete-and-recreate-a-profile).

Entradas inválidas retornam `400`, acesso negado retorna `403`, segmentos
ausentes ou de outra equipe retornam `404`, e revisões desatualizadas, limites
de capacidade, exclusão de segmento em uso ou tempo esgotado na avaliação
retornam `409`. Isso inclui a avaliação durante o lançamento da campanha:
nenhum destinatário é gravado e nada é lançado. Simplifique as regras e tente
novamente após um tempo esgotado na avaliação.
Veja a [referência da API de segmentos](/api-reference/platform/audience-segments/create-audience-segment).

## Duplique e lance uma campanha com segmento

Use uma chave de API da equipe ou uma sessão conectada no Console para duplicar
ou lançar uma campanha com segmento. Tokens de projeto são recusados com 403,
mesmo quando têm `campaigns:manage`. Os dois betas de público precisam
continuar disponíveis; caso contrário, uma nova cópia ou um lançamento retorna
403 `feature_unavailable`.

Uma cópia mantém o segmento salvo e o avalia de novo no lançamento. Ela não
copia os destinatários congelados da campanha original. Se esse segmento foi
excluído, a duplicação retorna 409 `state_conflict`. Crie uma nova campanha e
escolha o público dela. Uma mudança de público durante a duplicação ou o
lançamento também retorna 409; recarregue a campanha antes de tentar de novo.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.