---
title: Gatilho por Campo do Contato Alterado
description: Dispare um fluxo automaticamente quando um campo do contato muda de valor, com operadores por tipo e proteção contra loops.
---

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

# Gatilho por Campo do Contato Alterado

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

É um "vigia" em cima de um campo do contato: sempre que aquele campo mudar de valor, e a mudança bater com a condição que você configurar, o fluxo dispara sozinho — sem precisar de mensagem recebida nem de ninguém clicar em nada.

Assim como o [Gatilho por Data do Contato](/guia/flow-builder/gatilhos/data-do-contato), este não é um bloco novo na paleta: é uma **opção de configuração do nó Start**, dentro do grupo "Gatilhos avançados".

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

- Um campo de status muda para "Cliente perdido" → dispara um fluxo de win-back.
- O campo "Etapa do funil" passa a valer "Proposta enviada" → dispara um lembrete de follow-up.
- Uma data de vencimento gravada num campo personalizado muda para uma data que cai num fim de semana → dispara um alerta.
- Uma lista de tags do contato passa a ter mais de N itens → dispara uma automação de segmentação.

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

<Passos>
  <Passo>Abra o nó **Start** do fluxo (todo fluxo já tem um). <Captura legenda="Painel de configuração do Início, com os campos Quando iniciar, Informações coletadas e Entradas/Saídas de subfluxo" src="/img/node-start-inspector.png" /></Passo>
  <Passo>No campo "Quando iniciar", abra o grupo **Gatilhos avançados** e escolha **Campo do contato alterado**.</Passo>
  <Passo>Escolha o **campo do contato** a observar (campo nativo ou campo personalizado).</Passo>
  <Passo>Escolha a **condição da mudança** (operador) — a lista muda de acordo com o tipo do campo selecionado.</Passo>
  <Passo>Se o operador exigir, preencha o **valor de comparação**.</Passo>
  <Passo>Ajuste filtros de contato e as opções avançadas (fuso horário, cooldown, anti-loop) se necessário.</Passo>
  <Passo>Conecte a saída do Start ao próximo bloco do seu fluxo.</Passo>
</Passos>

<Secao icon="sliders-horizontal">Campos</Secao>

| Campo | O que faz |
|-------|-----------|
| Campo do contato | O campo observado: nativo (ex.: nome, status) ou personalizado |
| Condição da mudança | O operador de comparação, filtrado pelo tipo do campo (texto, número, booleano, data, data e hora, lista) |
| Valor de comparação | Operando exigido por alguns operadores (ex.: o texto, a data ou o número comparado) |
| Filtros de contato | Condições extras sobre o contato para restringir quem entra no fluxo — veja [Filtros de contato](/guia/flow-builder/gatilhos/data-do-contato#filtros-de-contato) |
| Fuso horário (Avançado) | Fuso usado para interpretar horários e datas do operador (padrão `America/Sao_Paulo`) |
| Intervalo mínimo entre disparos (Avançado) | Cooldown em segundos por contato — entre 0 e 86400 (24h); padrão 60s |
| Ignorar alterações do próprio fluxo (Avançado) | Evita loop: se uma ação deste próprio fluxo gravou o campo, esse disparo é ignorado |

### Operadores por tipo de campo

O tipo do valor (`value_type`) é sempre **derivado no servidor** a partir do campo escolhido — nunca é algo que você define diretamente. Ele determina quais operadores aparecem na lista:

| Tipo do campo | Famílias de operador disponíveis |
|---------------|-----------------------------------|
| Texto | Mudou (qualquer valor), ficou vazio, **passou a ter algum valor**, mudou para / diferente de, contém / não contém, começa com, termina com, casa com expressão regular |
| Número | Mudou (qualquer valor), ficou vazio, **passou a ter algum valor**, mudou para / diferente de |
| Booleano | Mudou (qualquer valor), ficou vazio, **passou a ter algum valor**, mudou para / diferente de, passou a ser verdadeiro |
| Data | Mudou, ficou vazio, **passou a ter algum valor**, depois de / antes de / na data, dia da semana, dia útil, fim de semana |
| Data e hora | Tudo de Data, mais horário (antes/depois de um horário, hora e minuto exatos) |
| Lista | Mudou, ficou vazio, **passou a ter algum valor**, contagem igual/diferente/maior/maior-ou-igual/menor/menor-ou-igual a N |

<Cuidado>
O operador de dia da semana é o literal `changed_is_weekday_N` — o "N" **não** é substituído no nome do operador. O dia da semana (1 = segunda ... 7 = domingo, padrão ISO) é informado como o **valor de comparação**, separado do operador. Os operadores `changed_is_weekday` (dia útil) e `changed_is_weekend` (fim de semana) não pedem valor de comparação.
</Cuidado>

<Dica>
**Ficou vazio** e **Passou a ter algum valor** olham a *transição* do campo observado: só disparam no momento em que o campo perde ou ganha valor. Se o que você quer é recortar por como o contato está **agora** — "só quem já tem e-mail", "só quem ainda não tem tag" —, o lugar certo é o **filtro de contato**, com os operadores **Está vazio** / **Não está vazio**. Veja [Filtros de contato](/guia/flow-builder/gatilhos/data-do-contato#filtros-de-contato).
</Dica>

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

Você quer disparar um fluxo de win-back sempre que o campo `custom_field.status_cliente` mudar para "perdido":

1. **Start** → gatilho **Campo do contato alterado**, campo `custom_field.status_cliente`, condição **Mudou para**, valor `perdido`.
2. **Enviar Mensagem** → oferta de reengajamento.

Para restringir a um dia da semana específico (ex.: só considerar mudanças que caem numa segunda-feira em um campo de data), use a condição **Passou a cair no dia da semana** com o valor de comparação `1`.

<Dica>
O painel calcula uma prévia ("Dispara quando...") em tempo real. Ela ajuda a validar a combinação campo + operador + valor antes de publicar, sem gravar nenhuma ocorrência real.
</Dica>

<Cuidado>
Quatro camadas protegem contra tempestade de disparos: supressão explícita (ex.: durante importações em massa), limite de eventos por workspace por minuto, cooldown por contato (o campo "Intervalo mínimo entre disparos") e a proteção anti-loop ("Ignorar alterações do próprio fluxo"), que evita que um fluxo que grava esse mesmo campo dispare a si mesmo recursivamente. A pausa de automação (atendimento humano) **não** é uma dessas camadas: este gatilho dispara normalmente mesmo com a conversa pausada — veja [Categoria e automação pausada](/guia/flow-builder/organizacao#categoria-e-automacao-pausada). Assim como o gatilho por data, este nasce **desligado por padrão** por workspace — confirme com o time responsável se ele está liberado antes de depender dele em produção.
</Cuidado>

## Saiba mais

- [Start (Início do fluxo)](/guia/flow-builder/gatilhos/start) — outras formas de iniciar um fluxo
- [Gatilho por Data do Contato](/guia/flow-builder/gatilhos/data-do-contato) — dispara em relação a uma data, não a uma mudança de valor
- [Se / Senão (condição)](/guia/flow-builder/logica/if-else) — para lógica condicional adicional depois do gatilho
