> ## 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.

# Sequências (drip)

> Envie as etapas de uma campanha ao longo de dias e inscreva contatos à medida que eles chegam.

> [!NOTE]
>
> Este contrato beta aguarda lançamento. O acesso fica indisponível até o beta ser oferecido à sua equipe.

As sequências estão em beta. Sua equipe precisa ter acesso e participar do beta
antes de criar uma sequência, lançá-la ou retomá-la, ou inscrever contatos.
Solicitações sem acesso retornam `403 feature_unavailable`. A retirada pausa as
sequências em andamento antes do próximo envio. Os resultados continuam
legíveis. Você pode fechar a inscrição contínua, pausar ou encerrar sem acesso
ao beta.

Uma sequência envia até 10 mensagens compostas a partir de números de
dispositivo vinculado ou de teste. Cada etapa posterior usa o número que enviou
a primeira. Modelos, variantes A/B, alternativas ponderadas e o `followUp` por
confirmação não podem ser combinados com uma sequência.

Uma sequência pode usar um [segmento de público salvo](/pt-br/guides/campaigns/audience-segments).
Selecionar ou lançar esse público exige uma chave de API da equipe ou uma sessão
conectada no Dashboard, além de acesso aos dois betas de público e ao beta de
sequências. O lançamento congela uma única vez os perfis correspondentes e as
suas variáveis. As etapas posteriores usam esse retrato; editar o segmento não
muda os destinatários de uma sequência ativa. As mesmas verificações de conteúdo
da sequência e de número de envio continuam valendo.

## Construa (build) uma sequência no Console

Depois que sua equipe entrar no beta, abra **Campanhas**, crie uma campanha e
escolha **Sequência**. Na página **Etapas**:

1. Escreva a mensagem de cada etapa. Adicione até 10 etapas e reordene-as com
   **Subir** e **Descer**.
2. Defina a espera de cada etapa posterior em dias, horas e minutos, até 30 dias.
3. Se quiser, ative **Janela de envio da etapa** para escolher os dias e os
   horários dessa etapa. A etapa mantém o fuso horário da campanha.
4. Escolha a inscrição **Público do lançamento** ou **Contínua** e defina as
   regras de saída.

Uma sequência não pode usar um modelo de mensagem, variantes A/B nem um
acompanhamento. Se um rascunho já tem um acompanhamento, o builder pede que você
o remova antes do lançamento.

A página da campanha mostra os totais de inscrição e os resultados de cada
etapa, numeradas a partir de 1. Em uma sequência contínua em andamento ou
pausada, **Fechar inscrição** interrompe novas inscrições e deixa os contatos
atuais terminarem. A opção continua disponível depois que sua equipe sai do
beta. Cada linha de destinatário mostra as etapas enviadas, o horário da próxima
etapa ou o motivo pelo qual o contato saiu da sequência.

## Crie e lance pela API

Use `POST /platform/campaigns` com uma chave de API da equipe e `campaigns:manage`.
Tokens de projeto obtêm o projeto a partir da credencial; chaves da equipe
informam `projectId`. Substitua os IDs do exemplo pelos IDs do seu projeto e do
número de envio.

```json theme={null}
{
  "projectId": "01900000-0000-7000-8000-000000000001",
  "name": "Welcome series",
  "senderConfig": { "sessionIds": ["01900000-0000-7000-8000-000000000002"] },
  "drip": {
    "enrollment": "continuous",
    "exitOnReply": true,
    "exitOnLinkClick": false
  },
  "messagesArray": [
    { "version": 2, "source": "Welcome {{name | there}}" },
    {
      "version": 2,
      "source": "Here is your next tip",
      "delayAfterSec": 259200,
      "delayUnit": "days",
      "sendWindow": {
        "days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
        "hours": [{ "start": "09:00", "end": "17:00" }]
      }
    }
  ]
}
```

Lance com `POST /platform/campaigns/{campaignId}/launch`. As verificações
normais de Campanhas para elegibilidade do remetente, aprovação, ritmo, opt-out e
segurança continuam valendo. Uma sequência com um grupo de envio da Cloud API é
recusada no lançamento ou pausada antes de enviar.

`delayAfterSec` é a espera mínima depois que a etapa anterior foi aceita, de 0 a
2.592.000 segundos inteiros (30 dias). A primeira etapa não tem espera.
`delayUnit` é uma informação opcional de exibição: `minutes`, `hours` ou `days`.
Os segundos precisam ser um múltiplo inteiro dessa unidade. O ritmo, as pausas e
as janelas de envio podem estender a espera.

A primeira etapa usa a `sendWindow` da campanha. A janela de uma etapa posterior
substitui os dias da semana e os horários, mantendo o fuso horário da campanha e
as configurações de fuso horário do destinatário. Sem uma janela de campanha, as
janelas das etapas usam o fuso horário da equipe salvo quando as configurações
da sequência foram definidas. Cada janela de etapa aceita de um a quatro
intervalos de horário sem sobreposição. Omita a janela de uma etapa para usar a
janela da campanha.

## Inscreva contatos

`enrollment: "audience"` envia para os contatos presentes no lançamento.
`enrollment: "continuous"` também aceita contatos enquanto a sequência está em
andamento ou pausada:

```http theme={null}
POST /platform/campaigns/{campaignId}/enrollments
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
```

```json theme={null}
{
  "projectId": "01900000-0000-7000-8000-000000000001",
  "phone": "+15555550123",
  "variables": { "name": "Ada" }
}
```

O `data` da resposta contém `campaignId`, `recipientId`, o `phone` normalizado,
`created`, `status` e `enrolledAt` (milissegundos Unix). Repetir um telefone
retorna `created: false` sem alterar as variáveis nem reiniciar as etapas, mesmo
que o contato já tenha concluído ou saído. Um telefone com opt-out fica salvo
como `skipped` e não recebe nada. Uma sequência que não aceita novas inscrições
retorna `409 state_conflict`.

A mesma inscrição está disponível por
`POST /messaging/projects/{projectSlug}/campaigns/{id}/enrollments`.

Sequências contínuas continuam abertas depois que todos os contatos inscritos
terminam. Feche a inscrição com `PATCH /platform/campaigns/{campaignId}`,
informando `projectId` e `drip: { enrollment: "audience" }`. As flags de saída
omitidas mantêm os valores salvos. Quando todos os contatos terminam, a campanha
é concluída. Não é possível reabrir a inscrição nem alterar o conteúdo das etapas
depois do lançamento; duplique a campanha para uma nova série.

O fechamento continua disponível depois da retirada do beta. Envie apenas `drip`
e o seletor de projeto nesse PATCH. Omita as flags de saída para preservá-las,
ou envie os mesmos valores. Edições combinadas ainda exigem acesso ao beta.
Fechar impede novas inscrições; não retoma uma sequência pausada nem envia as
etapas restantes enquanto o acesso ao beta estiver indisponível.

As leituras da lista e do detalhe de campanhas retornam `enrollmentOpen`: `true`
para inscrição contínua, `false` para inscrição pelo público do lançamento
(incluindo uma sequência fechada) e `null` para uma campanha que não é sequência.
Um rascunho contínuo também retorna `true`; inscrever ainda exige o status em
andamento ou pausado e acesso ao beta. `pauseReason` contém o motivo de pausa
salvo atualmente enquanto a campanha está pausada, ou `null` em uma pausa manual
sem motivo, quando o motivo atual está indisponível e nos demais status. Um
motivo de uma pausa anterior não é mantido depois de uma retomada.

## Saídas e resultados

Opt-outs sempre interrompem as etapas restantes. Respostas ao número de envio
também as interrompem, a menos que `exitOnReply` seja false. Com
`exitOnLinkClick: true`, uma requisição GET para qualquer link rastreado da
campanha também as interrompe quando registra uma abertura. Requisições HEAD,
prévias de link conhecidas, crawlers, scanners de segurança e requisições
marcadas como prefetch ainda são redirecionadas, mas não registram abertura nem
interrompem as etapas restantes. A detecção é feita no melhor esforço: acessos
automatizados desconhecidos ou disfarçados ainda podem contar e provocar uma
saída. Uma abertura não comprova que uma pessoa clicou. Configure links
rastreados pelo [beta de rastreamento de links](/pt-br/guides/campaigns/link-tracking),
que é separado. Uma mensagem já despachada pode terminar depois que uma saída é
registrada. Uma resposta ou uma requisição a um link rastreado durante o
primeiro envio ainda interrompe todas as etapas posteriores, mesmo quando o
primeiro envio ainda não retornou o resultado.

`GET /platform/campaigns/{campaignId}/analytics?projectId=...` retorna `data.drip`:

* `enrollment`, `enrolled`, `enrolledByApi`, `active`, `completed` e `exited`.
* `steps`, ordenado pelo `step` a partir de zero, com as contagens `entered`,
  `waiting`, `sent`, `delivered`, `read`, `replied`, `exited` e `failed`.

`entered` conta os contatos que chegaram à espera da etapa, incluindo todos os
contatos inscritos na etapa 0. `waiting` inclui envios na fila e em andamento.
As respostas são atribuídas à última etapa enviada dentro de sete dias, antes da
próxima etapa. As contagens de confirmações dependem de o WhatsApp devolver as
confirmações. As contagens de primeira mensagem da campanha mantêm o seu
significado; os envios posteriores aparecem nos resultados das etapas e nos logs
de destinatários com a posição da mensagem. Cada etapa é um envio separado e
segue as mesmas regras de uso e cobrança das outras mensagens de campanha. Não
há uma tarifa separada para sequências.

Uma sequência contínua pausada continua verificando o progresso pelo menos uma
vez por minuto. Fechar a inscrição permite que ela seja concluída quando todos
os contatos estiverem resolvidos, mesmo pausada. Fechar nunca retoma o envio. Se
ainda houver contatos com etapas aguardando, retome ou encerre a campanha
explicitamente.

Uma sequência precisa ter pelo menos uma mensagem composta que possa ser enviada
antes do lançamento. Um rascunho vazio pode ser salvo, mas o lançamento retorna
`400 invalid_parameter` em `messagesArray` até o conteúdo estar pronto. Quando
nenhum número de envio está selecionado, a sequência usa números de dispositivo
vinculado ou de teste elegíveis do projeto; números da Cloud API não substituem
um remetente de teste compatível. Seleções explícitas ainda precisam usar um
tipo de envio compatível.


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