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

# Fluxos de resposta

> Ramifique a conversa depois de uma resposta a uma campanha: envie uma mensagem de continuação, botões de resposta, uma lista ou um formulário dos Fluxos do WhatsApp conforme a escolha do destinatário.

> [!NOTE]
>
> Os fluxos de resposta estão em beta. Sua equipe precisa estar inscrita antes que
> a API aceite solicitações de fluxos de resposta; as outras equipes recebem
> `403 feature_unavailable`.

Um fluxo de resposta é uma conversa curta e fixa que começa quando um
destinatário responde a uma mensagem de campanha. Cada etapa pode enviar uma
mensagem e depois aguarda a próxima resposta do destinatário. A resposta decide
qual etapa é executada em seguida.

## Como um fluxo de resposta funciona

1. Crie uma revisão de fluxo de resposta com a Messaging API
   ([Criar fluxo de resposta de campanha do projeto](/api-reference/messaging/campaigns/create-project-campaign-reply-flow))
   ou com a Platform API
   ([Criar fluxo de resposta de campanha](/api-reference/platform/campaigns/create-campaign-reply-flow)).
2. Vincule-o a uma campanha em rascunho ou agendada
   ([Messaging](/api-reference/messaging/campaigns/set-project-campaign-reply-flow),
   [Platform](/api-reference/platform/campaigns/set-campaign-reply-flow)).
3. Quando uma mensagem de campanha é enviada, o fluxo começa para esse
   destinatário na etapa de entrada, que não envia nada e aguarda a primeira
   resposta.
4. Uma resposta que corresponde a um dos ramos da etapa leva o destinatário à
   próxima etapa, que envia a sua mensagem. Uma resposta que não corresponde a
   nada é ignorada.

Respostas STOP e START são tratadas primeiro e nunca fazem um fluxo avançar.
Quando sua equipe está com a captura de palavras-chave STOP/START ativada, as
suas próprias palavras-chave de opt-out e de opt-in também têm prioridade: um
ramo do fluxo baseado em uma dessas palavras nunca é acionado. Um destinatário
que está na sua lista de opt-outs não recebe mensagens de fluxos de resposta, e
fazer opt-out encerra o fluxo dele.

## Limites

| Limite | Valor |
| - | - |
| Etapas por fluxo | De 2 a 12, sem loops |
| Ramos por etapa | 3 |
| Botões de resposta por mensagem | 3 |
| Linhas de lista por mensagem | 10 |
| Corpo de uma mensagem com botões ou lista | 1.024 bytes |
| Prazo para responder a uma etapa | 30 minutos |
| Duração do fluxo por destinatário | 24 horas |
| Fluxos ativos por destinatário e número | 1; uma nova campanha não inicia um segundo fluxo enquanto houver um ativo |

Uma revisão não pode ser editada. Para alterar um fluxo, crie uma nova revisão
com o mesmo `flowKey` e uma `revision` maior e depois vincule-a a uma nova
campanha. Uma campanha lançada mantém a revisão com que foi lançada.

## Ramos

Cada ramo tem um `match` e a etapa para a qual leva (`to`):

* `choice`: o destinatário tocou em um botão de resposta (`replyKind: "button"`)
  ou em uma linha de lista (`replyKind: "list"`) com este `id`. Uma etapa que
  envia botões ou uma lista só pode ramificar pelas opções que oferece.
* `keyword`: o texto da resposta é igual a esta palavra-chave, sem diferenciar
  maiúsculas e minúsculas. Uma resposta que cita a mensagem da etapa sempre
  conta. Uma resposta sem citação só conta quando este é o único fluxo do
  destinatário aguardando resposta e nenhuma outra mensagem de campanha chegou a
  ele desde a mensagem da etapa. As palavras STOP e START integradas não podem ser
  palavras-chave de fluxo.
* `flow_submission`: o destinatário enviou o formulário de Fluxo que esta etapa
  mandou. A Polymorfa não armazena as respostas do formulário.

## Mensagens que uma etapa pode enviar

| `send.kind` | Envia | Números |
| - | - | - |
| `text` | Uma mensagem de texto | Todos |
| `buttons` | Uma mensagem com até 3 botões de resposta | Todos; números oficiais a enviam como mensagem interativa |
| `list` | Uma mensagem com uma lista de até 10 linhas | Todos; números oficiais a enviam como mensagem interativa |
| `flow_form` | Um formulário publicado dos Fluxos do WhatsApp | Somente números oficiais |

Uma etapa `flow_form` em um número vinculado encerra o fluxo do destinatário sem
enviar nada. As mensagens de continuação usam as mesmas verificações de envio, o
mesmo saldo e a mesma proteção de número das outras mensagens desse número. Se a
Polymorfa não conseguir confirmar se uma mensagem de continuação chegou ao
WhatsApp, ela nunca a envia de novo. Ela consulta o registro de envio: um envio
confirmado continua o fluxo, e uma mensagem que nunca foi enviada, ou um fluxo
que atinge antes a duração de 24 horas, encerra o fluxo.

## Exemplo

```json theme={null}
{
  "name": "Order help",
  "definition": {
    "entryNodeId": "start",
    "nodes": [
      { "id": "start", "edges": [{ "match": { "kind": "keyword", "value": "help" }, "to": "menu" }] },
      {
        "id": "menu",
        "send": {
          "kind": "buttons",
          "body": "What do you need help with?",
          "buttons": [{ "id": "track", "text": "Track order" }, { "id": "return", "text": "Return" }]
        },
        "edges": [
          { "match": { "kind": "choice", "replyKind": "button", "id": "track" }, "to": "track" },
          { "match": { "kind": "choice", "replyKind": "button", "id": "return" }, "to": "return" }
        ]
      },
      { "id": "track", "send": { "kind": "text", "text": "Reply with your order number." }, "edges": [] },
      { "id": "return", "send": { "kind": "text", "text": "Start your return at example.com/returns." }, "edges": [] }
    ]
  }
}
```

As respostas de botões e listas também chegam aos seus webhooks como eventos
`message.received` com `payload.replyChoice`. Consulte [Webhooks](/api/webhooks).


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