> For the complete documentation index, see [llms.txt](https://ajuda.digitalsac.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajuda.digitalsac.io/digicrm/operacao-uso-do-sistema/campanha-waba/consentimento-de-marketing-opt-in-opt-out.md).

# Consentimento de marketing (opt-in / opt-out)

Controla quem **pode** e quem **não pode** receber mensagens de marketing, seguindo a política da Meta de respeitar pedidos de descadastro. O sistema registra automaticamente quando um contato pede para **sair** (opt-out) ou aceita **receber** (opt-in) mensagens de marketing, e cada campanha decide se respeita essa lista.

> A Meta não define um formato oficial de exportação de opt-out — o que existe é a **obrigação de respeitar o pedido** e manter **evidência**. Por isso o sistema guarda cada registro com origem, data e permite exportar CSV/Excel como prova de conformidade.

**Onde fica:** aba **Consentimento de marketing** em **Contatos** (lista geral) e badge no cadastro de cada contato.

\[\[FOTO]]

***

### Como funciona (visão geral)

1. O sistema **detecta automaticamente** quando um contato responde a uma campanha com uma palavra ou botão de opt-out/opt-in.
2. O registro fica em uma lista central — cada contato tem, no máximo, **um estado ativo por tipo** por vez; o **mais recente vence** (um opt-in novo libera quem tinha opt-out antigo, e vice-versa).
3. Cada campanha (WhatsApp e WABA) decide, por **toggles próprios**, se respeita a lista de opt-out e/ou exige opt-in ativo para disparar.
4. O envio avulso de **template MARKETING** (fora de campanha, pelo atendimento) é bloqueado automaticamente para quem está com opt-out ativo.

\[\[FOTO]]

***

### Detecção automática

#### Opt-out (pedido de saída)

Disparado quando o contato responde a uma campanha (WhatsApp/Baileys ou WABA) com:

* Um **botão de descadastro** do template (ex.: “Não quero mais receber”).
* Uma **palavra-chave** de saída na resposta em texto: por padrão `não quero`, `nao quero`, `parar`, `sair`, `stop`, `cancelar`, `descadastrar` (comparação sem diferenciar acentos/maiúsculas).

#### Opt-in (aceite)

Espelho do opt-out — disparado por botão de aceite ou palavra-chave de aceite: por padrão `sim`, `aceito`, `quero`, `quero receber`.

#### Janela e prioridade

* A detecção olha a resposta do contato a uma campanha (mesma lógica de atribuição de origem — botão citado > reply nativo > janela de dias configurada na campanha).
* Se a mesma resposta pudesse casar os dois (hipoteticamente), **opt-out tem prioridade** sobre opt-in.
* A detecção de opt-out **sempre registra**, mesmo que a campanha tenha o toggle “Respeitar lista” desligado — o toggle só controla se a exclusão é aplicada no **envio**, nunca impede o registro do pedido do cliente.

\[\[FOTO]]

#### Palavras padrão do tenant

As palavras-chave de opt-out/opt-in citadas acima (`não quero`, `parar`, `sair`… / `sim`, `aceito`, `quero`…) são o **padrão de fábrica** do produto. Cada tenant pode sobrescrever essas duas listas em **Configurações Gerais → Tickets & SLA → Consentimento de marketing**, editando os campos “Palavras de opt-out globais do tenant” e “Palavras de opt-in globais do tenant” (chips, separados por vírgula).

* **Onde configurar:** Configurações Gerais → aba **Tickets & SLA** → subaba **Consentimento de marketing**.
* **Listas de fábrica:**
  * Opt-out: `não quero, nao quero, parar, sair, stop, cancelar, descadastrar`
  * Opt-in: `sim, aceito, quero, quero receber`
* **Precedência:** palavras da **campanha** (campo “Palavras de opt-out/opt-in desta campanha” no modal) > palavras do **tenant** (tela acima) > padrão de **fábrica**. Ou seja, uma campanha só cai nas palavras do tenant se não definir as suas próprias, e o tenant só cai no padrão de fábrica se nunca tiver configurado as listas globais.
* Os modais de campanha (Baileys e WABA) mostram, no hint do campo de palavras, quais palavras estão **realmente valendo** para aquele tenant no momento (não apenas o texto genérico “usa o padrão do tenant”).

***

### Toggles POR campanha

Cada campanha (WhatsApp e WABA) tem sua própria seção de consentimento no modal de criação/edição — **fora** do interruptor mestre de configurações avançadas (compliance não pode ser zerada junto com o resto):

#### Seção Opt-out

| Campo                                                   | Padrão                       | Efeito                                                                                                    |
| ------------------------------------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------- |
| **Respeitar lista Não perturbe (opt-out de marketing)** | Ligado                       | Contatos com opt-out ativo são excluídos automaticamente do disparo                                       |
| **Palavras de opt-out desta campanha**                  | Vazio (usa padrão do tenant) | Chips de palavras próprias da campanha — **substituem** (não somam) as palavras padrão quando preenchidas |

Desligar o toggle mostra aviso laranja: a campanha será enviada **também** para quem pediu para sair (por conta e risco do cliente) — as respostas de descadastro continuam sendo registradas normalmente.

#### Seção Opt-in

| Campo                                                    | Padrão                       | Efeito                                                                                                |
| -------------------------------------------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------- |
| **Detectar aceite de marketing (opt-in) nas respostas**  | Ligado                       | Registra opt-in quando a resposta casar com botão/palavra de aceite                                   |
| **Palavras de opt-in desta campanha**                    | Vazio (usa padrão do tenant) | Mesmo esquema de chips do opt-out                                                                     |
| **Modo só-opt-in: enviar só para quem tem opt-in ativo** | Desligado                    | Modo rigoroso — restringe a audiência a contatos com opt-in ativo; os demais são excluídos do disparo |

Os dois filtros **combinam**: opt-out exclui primeiro, e (se o modo rigoroso estiver ligado) o filtro de opt-in roda sobre o restante.

#### Aviso “N contatos serão excluídos”

Ao clicar em **Programar Envio**, se a campanha respeita a lista de opt-out e/ou está no modo só-opt-in, o sistema consulta quantos contatos da audiência atual seriam excluídos e mostra um aviso de confirmação antes de iniciar:

> *“N contato(s) da audiência serão excluídos por opt-out (lista Não perturbe). Deseja continuar?”*

Com os dois motivos simultâneos, a mensagem combina as duas contagens. Essa contagem é **best-effort** — se a consulta falhar, o início não é bloqueado.

\[\[FOTO]]

***

### Aba Consentimento de marketing (em Contatos)

**Caminho:** Contatos → botão **Consentimento de marketing** no cabeçalho.

#### Filtros

| Filtro            | Mostra                                                 |
| ----------------- | ------------------------------------------------------ |
| **Opt-in ativo**  | Só contatos com aceite de marketing vigente            |
| **Opt-out ativo** | Só contatos na lista Não perturbe vigente              |
| **Todos**         | Histórico completo (ativos e revogados, os dois tipos) |

Busca por nome ou telefone.

#### Colunas / itens da lista

Cada item mostra: contato, tipo (chip verde **Opt-in** com ícone de check, ou chip vermelho **Opt-out** com ícone de cancelamento), origem (botão do template / palavra-chave / manual), campanha de origem (quando aplicável), data, e — se revogado — “Revogado em {data}”.

#### Ações

| Ação                                  | Efeito                                                                                                                                 |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| **Revogar**                           | Encerra o registro ativo (o contato deixa de estar na lista); pede confirmação                                                         |
| **Adicionar consentimento (opt-in)**  | Registro manual de opt-in pelo atendente/admin                                                                                         |
| **Adicionar a Não perturbe**          | Registro manual de opt-out pelo atendente/admin                                                                                        |
| **Exportar CSV** / **Exportar Excel** | Gera arquivo com o filtro atual da tela (inclui coluna de tipo de registro) — é a **evidência de conformidade** para auditoria da Meta |

\[\[FOTO]]

***

### Badge no cadastro do contato

Na ficha do contato (aba de dados), um badge mostra o estado atual de consentimento:

| Estado              | Badge                                                                        | Ação disponível                                                                  |
| ------------------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| **Opt-in ativo**    | Verde — “Este contato deu consentimento para receber mensagens de marketing” | Revogar                                                                          |
| **Opt-out ativo**   | Vermelho — “Este contato optou por não receber mensagens de marketing”       | Revogar                                                                          |
| **Nenhum dos dois** | Cinza — “Este contato não está na lista Não perturbe”                        | Dois botões: **Adicionar consentimento (opt-in)** e **Adicionar a Não perturbe** |

\[\[FOTO]]

***

### Guard no envio avulso de template MARKETING

Ao enviar um template **avulso** pelo atendimento (fora de campanha em massa), se a categoria do template for **MARKETING** e o contato tiver opt-out ativo, o envio é bloqueado com a mensagem:

> *“Cliente solicitou não receber mensagens de marketing.”*

* Templates **UTILITY** e **AUTHENTICATION** **não** são verificados — o guard só roda para categoria MARKETING.
* Opt-in nunca bloqueia nada — sua única função é permitir o modo rigoroso das campanhas e mostrar o badge verde.
* Um opt-in mais recente que um opt-out anterior **libera** o envio (estado mais recente vence).

\[\[FOTO]]

***

### Banner no cadastro de template (campanha rastreável)

No guia rápido “?” de campanha rastreável (WABA), há uma dica dedicada:

> *“Inclua um botão de descadastro no template de marketing (exigência da Meta) — quem clicar entra automaticamente na lista Não perturbe.”*

Templates de marketing sem botão de descadastro dependem só da detecção por **palavra-chave** na resposta em texto — menos confiável que o clique direto no botão.

***

### Perguntas frequentes

**Se eu desligar “Respeitar lista” numa campanha, o sistema para de detectar opt-out?** Não — a detecção continua registrando normalmente. O toggle só decide se o opt-out **exclui** contatos daquele disparo específico.

**Um contato com opt-out pode voltar a receber marketing?** Sim, de duas formas: você **revoga** manualmente o opt-out, ou ele mesmo responde com uma palavra/botão de opt-in (o mais recente sempre vence).

**Opt-in bloqueia alguma coisa se eu não fizer nada?** Não. Sem o modo rigoroso ligado numa campanha, ter ou não ter opt-in não muda o envio — opt-in só bloqueia quando você liga explicitamente “enviar só para quem tem opt-in ativo”.

**As palavras de opt-out/opt-in da campanha somam com as padrão do tenant?** Não — quando a campanha tem palavras próprias preenchidas, elas **substituem** as padrão só para aquela campanha. Vazio = usa as palavras padrão do tenant (ou do produto, se o tenant também não tiver configurado).

**A campanha “Retomar” (Resume) também filtra opt-out/opt-in?** Não — o filtro roda apenas no **Iniciar/Programar** (Start). Retomar uma campanha pausada reenfileira o que já estava na fila sem reaplicar os filtros de consentimento.
