---
title: Gatilho por WhatsApp Flow Concluído
description: Dispare um fluxo quando um contato conclui um WhatsApp Flow pela primeira vez em uma campanha.
---

<NoCard kind="start" categoria="Gatilhos" />

# Gatilho por WhatsApp Flow Concluído

<Secao icon="info">Para que serve</Secao>

Dispara o fluxo quando um contato conclui um **WhatsApp Flow** (o formulário interativo do WhatsApp) e essa é a **primeira vez** dele na campanha. O evento no catálogo se chama **WhatsApp Flow respondido**.

É uma **opção de evento do nó Start**, escolhida em "Quando iniciar" no grupo **Campanhas**.

<Secao icon="clock">Quando usar</Secao>

- Continuar o atendimento automaticamente assim que o contato envia as respostas de um Flow.
- Usar as respostas (ex.: CPF, tipo de caso) para classificar ou rotear o lead.

<Secao icon="list-checks">Passo a passo</Secao>

<Passos>
  <Passo>Abra o nó **Start** do fluxo.</Passo>
  <Passo>No campo "Quando iniciar", escolha o evento **WhatsApp Flow respondido** no grupo **Campanhas**.</Passo>
  <Passo>Se quiser, use o <a href="#filtros">filtro</a> por campanha.</Passo>
  <Passo>Conecte a saída do Start ao próximo bloco do fluxo.</Passo>
</Passos>

## Quando dispara e quando não dispara

- **Dispara** na primeira resposta de um Flow daquele contato na campanha.
- **Não dispara** em respostas seguintes do mesmo contato na mesma campanha.

### Como o Flow é identificado

- **Flow criado na plataforma** (veja [WhatsApp Flows](/guia/conectar/whatsapp-flows)): a resposta é ligada ao Flow pelo próprio formulário (o `flow_token`) ou, se faltar, pela mensagem que o originou (envio pelo chat ou template com botão de Flow). A campanha é sempre a da **raiz** do Flow, então **todas as versões** caem na mesma campanha e o `event.campaign.external_id` é o id da raiz.
- **Flow legado** (criado fora da plataforma): a campanha é identificada pelo **template** da mensagem enviada, e o `external_id` é o nome do template.
- Quando nenhuma das duas formas funciona, a resposta cai em uma campanha com `external_id` igual a `unidentified`, uma por canal.

<Secao icon="sliders-horizontal">Variáveis disponíveis</Secao>

| Variável | O que traz |
|----------|-----------|
| `event.campaign.id` | Id interno da campanha |
| `event.campaign.name` | Nome da campanha (editável) |
| `event.campaign.source_type` | Origem: `ctwa`, `lead_form` ou `whatsapp_flow` |
| `event.campaign.platform` | Plataforma: `facebook`, `instagram` ou `whatsapp` |
| `event.campaign.external_id` | Id externo (id do anúncio, id do formulário, id da raiz do Flow da plataforma ou template do Flow legado) |
| `event.campaign.ad_id` | Id do anúncio na Meta (pode vir vazio) |
| `event.campaign.ad_name` | Nome do anúncio (pode vir vazio) |
| `event.campaign.campaign_name` | Nome da campanha na Meta (só Lead Ads; pode vir vazio) |
| `event.campaign_id` | Id interno da campanha |
| `event.campaign_lead_id` | Id do lead da campanha |
| `event.contact_id` | Id do contato |
| `event.conversation_id` | Id da conversa onde o Flow foi respondido |
| `event.flow_token` | `flow_token` da resposta, quando presente (Flows da plataforma trazem `wf:` seguido do id da versão) |
| `event.fields` | Respostas do Flow, com o nome do campo como chave (ex.: `event.fields.cpf`). Valores de seleção múltipla e de arquivos chegam como o enviado pela Meta |

## Filtros

O painel do Start ganha a seção **Filtros** com um único campo: **Campanha** (lista das campanhas de WhatsApp Flow do workspace). Funciona do mesmo jeito descrito em [Filtros do Start](/guia/flow-builder/gatilhos/start#filtros).

<Dica>
Sem o filtro, o fluxo dispara para a resposta de **qualquer** Flow do workspace. Use o filtro de **Campanha** para amarrar o fluxo a um Flow específico. A campanha de um Flow da plataforma é criada na publicação, com 0 leads, e já aparece na lista do filtro antes da primeira resposta.
</Dica>

<Secao icon="circle-check">Exemplo</Secao>

1. **Start** → evento **WhatsApp Flow respondido**.
2. **Se / Senão** → verifica <span v-pre>{{event.fields.cpf}}</span> preenchido.
3. **Enviar Mensagem** → confirma o recebimento dos dados.

<Secao icon="alert-triangle">Cuidados</Secao>

<Cuidado>
`event.fields` contém dados pessoais informados pelo contato. Não os copie para logs ou destinos que não deveriam recebê-los.
</Cuidado>

## Saiba mais

- [WhatsApp Flows](/guia/conectar/whatsapp-flows) — criar, publicar e enviar o formulário
- [Start (Início do fluxo)](/guia/flow-builder/gatilhos/start) — outras formas de iniciar um fluxo e como funcionam os filtros
- [Gatilho por Comentário Recebido](/guia/flow-builder/gatilhos/comentario-recebido) — outro gatilho configurado como opção do Start
- [Se / Senão (condição)](/guia/flow-builder/logica/if-else) — para tratar as variáveis do evento dentro do fluxo
