> 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-whatsapp.md).

# Campanha WhatsApp

### Finalidade

**Campanha WhatsApp** (nao-WABA) dispara mensagens em massa por conexoes WhatsApp **nao oficiais** ('whatsapp' / Baileys e 'whatsmeow'), com saldo de creditos, fila de envio (BullMQ), status do ciclo de vida e gestao de audiencia (contatos, grupos, CSV/XLSX).

Nao confundir com:

| Recurso                                 | Rota               | Licenca |
| --------------------------------------- | ------------------ | ------- |
| **Campanha WhatsApp** (este guia)       | '/campanhas'       | BASIC   |
| Campanha WABA (API oficial + templates) | '/campanhaswaba'   | PREMIUM |
| Campanha SMS                            | '/campanhasms'     | PREMIUM |
| Campanha DigiCalls (Wavoip)             | '/campanha-wavoip' | PREMIUM |

O envio em massa **consome creditos** do tenant ('campaignMessages'). Cada credito equivale a **1 mensagem**. Ha aviso explicito de risco de banimento do numero WhatsApp.

\[\[FOTO]]

***

### Caminho / permissao / licenca

| Item                     | Valor no sistema                                     |
| ------------------------ | ---------------------------------------------------- |
| **Menu**                 | Lateral → **Campanha** (caption: Campanhas de envio) |
| **URL**                  | '/campanhas'                                         |
| **Rota nomeada**         | 'campanhas'                                          |
| **Contatos da campanha** | '/campanhas/:campanhaId' ('contatos-campanha')       |
| **Licenca minima**       | **BASIC**                                            |
| **Perfil**               | Apenas **admin** ou **super**                        |
| **Permissao de menu**    | Chave 'campanhas' em 'allowedMenus'                  |

\[\[FOTO]]

***

### Dashboard da lista

#### Cards superiores

| Card                     | O que calcula                                    |
| ------------------------ | ------------------------------------------------ |
| **Total de Campanhas**   | Quantidade total de campanhas do tenant          |
| **Campanhas Ativas**     | Contagem com status 'scheduled' ou 'processing'  |
| **Mensagens Enviadas**   | Soma de 'mensagensEnviadas'                      |
| **Taxa de Sucesso**      | '%' = campanhas 'finished' ÷ (todas − 'pending') |
| **Creditos Disponiveis** | Campo 'campaignMessages' do tenant               |

#### Contagem por status

Pendente, Programada, Processando, Pausada, Finalizada, Cancelada.

#### Barra de acoes

| Controle                        | Funcao                                              |
| ------------------------------- | --------------------------------------------------- |
| Alternar **Tabela** / **Cards** | Preferencia em 'localStorage' ('campaignsViewMode') |
| **Comprar Creditos**            | Modal PIX de creditos                               |
| **Adicionar**                   | Modal de criar campanha                             |
| **Atualizar**                   | Recarrega a listagem                                |

#### Filtros e colunas

Filtros: **Mes** e **Ano**. Paginacao: 15 / 30 / 50 / 100.

| Coluna                                    | Conteudo                                                               |
| ----------------------------------------- | ---------------------------------------------------------------------- |
| #                                         | ID                                                                     |
| Campanha                                  | Nome                                                                   |
| Inicio                                    | Data/hora                                                              |
| Status                                    | Pendente / Programada / Processando / Pausada / Cancelada / Finalizada |
| Qtd. Contatos                             | Total vinculados                                                       |
| A Enviar / A Entregar / Recebidas / Lidas | Contadores ACK                                                         |
| Acoes                                     | Icones de operacao                                                     |

**Relatorio PDF e CSV so existem na visao em tabela.**

\[\[FOTO]]

***

### Como criar (passo a passo)

1. Clique em **Adicionar**.
2. Preencha os **dados da campanha**.
3. Escolha o **modo de envio** (apenas um): **Mensagens**, **Mensagem Interativa** ou **Carousel**.
4. (Opcional) Expanda **Configuracoes avancadas**.
5. Confira o **preview** no celular simulado.
6. Clique em **Salvar**.

Cabecalho do modal: mensagens sempre em horario comercial e dias uteis.

\[\[FOTO]]

#### Campos — dados gerais

| Nome (UI)                         | Obrigatorio       | Para que serve                                                              |
| --------------------------------- | ----------------- | --------------------------------------------------------------------------- |
| **Nome da Campanha**              | Sim               | Identificacao                                                               |
| **Data/Hora inicio**              | Sim               | Nao pode ser anterior ao dia atual                                          |
| **Enviar por** (conexoes)         | Sim (≥ 1)         | So 'whatsapp'/'whatsmeow' **CONNECTED**. Multiplas = distribuicao randomica |
| **Intervalo minimo** ('delay')    | Sim (padrao 20 s) | Tempo minimo entre mensagens                                                |
| **Intervalo maximo** ('maxDelay') | Nao (padrao 30 s) | Tempo maximo entre mensagens                                                |
| **Horario de Inicio**             | Nao (08:00)       | Inicio da janela diaria                                                     |
| **Horario de Fim**                | Nao (20:00)       | Fim da janela diaria                                                        |
| **Midia**                         | Nao               | Max 10 MB. Desabilitada em Interativa e Carousel                            |

\[\[FOTO]]

#### Modo de envio

| Modo                    | Valor      | Obrigatorio          |
| ----------------------- | ---------- | -------------------- |
| **Mensagens**           | 'text'     | As tres mensagens    |
| **Mensagem Interativa** | 'buttons'  | Corpo + ≥ 1 botao    |
| **Carousel**            | 'carousel' | Template de carousel |

Trocar de modo com conteudo pede confirmacao e **apaga** o conteudo anterior.

**Modo Mensagens**

| Nome                      | Obrigatorio |
| ------------------------- | ----------- |
| **1a / 2a / 3a Mensagem** | Sim (todas) |

Variaveis: '{{name}}', '{{greeting}}'. Aviso de risco de banimento.

**Modo Mensagem Interativa**

| Nome               | Obrigatorio    |
| ------------------ | -------------- |
| **Corpo**          | Sim (max 1024) |
| **Botoes** (ate 3) | ≥ 1            |

Tipos: resposta rapida ('reply'), link ('url'), ligar ('call'), copiar codigo ('copy').

**Modo Carousel**

| Nome                     | Obrigatorio |
| ------------------------ | ----------- |
| **Template de Carousel** | Sim         |

\[\[FOTO]]

#### Configuracoes avancadas

Se o interruptor mestre estiver **desligado**, automaçoes nao sao aplicadas.

| Nome                                         | Para que serve                                | Padrao    |
| -------------------------------------------- | --------------------------------------------- | --------- |
| **Habilitar configuracoes avancadas**        | Liga tag/fila/usuario/carteira/Kanban         | Desligado |
| **Janela para considerar resposta (dias)**   | 1–365; fora do prazo nao dispara automacoes   | 7         |
| **Fechar sem resposta apos (dias)**          | Marca 'closed\_no\_reply'                     | 15        |
| **Salvar contato ao importar CSV/XLSX**      | Se off, numero fica so no item ('origin=csv') | false     |
| **Carteira (vendedor) ao enviar**            | Aplica carteira sem sobrescrever outra        | —         |
| **Criar contato quando responder (CSV)**     | Promove CSV → Contact                         | true      |
| **Tag / Fila / Usuario na resposta**         | Aplicados ao ticket/contato                   | —         |
| **Etapas maximas**                           | 1–10 mensagens da regua                       | 1         |
| **Permitir reenviar para nao respondedores** | Avanco de etapa                               | true      |
| **Tag no encerramento**                      | Tag ao fechar sem resposta                    | —         |
| **Criar ticket no fechamento sem resposta**  | Necessario para Kanban no encerramento        | false     |
| **Coluna Kanban na resposta / encerramento** | Move card                                     | —         |

\[\[FOTO]]

Apos salvar: status **Pendente** (ainda nao envia ate programar).

***

### Agendar / iniciar / pausar / retomar / cancelar

**Programar Envio** chama 'POST /campaigns/start/:id' → status **Programada**, depois **Processando**.

| Acao                    | Status de origem        | Pre-requisitos / efeito            |
| ----------------------- | ----------------------- | ---------------------------------- |
| **Programar / iniciar** | pending ou canceled     | Data ≥ hoje; ≥ 1 contato           |
| **Pausar**              | scheduled ou processing | Interrompe pendentes → **Pausada** |
| **Retomar**             | paused                  | Reenfileira sem envio              |
| **Cancelar**            | scheduled ou processing | Remove jobs → **Cancelada**        |

\[\[FOTO]]

***

### Contatos da campanha

Rota '/campanhas/:campanhaId'. Incluir por contatos, grupos ou import CSV/XLSX. Sem audiencia o start e bloqueado.

\[\[FOTO]]

***

### Matriz de acoes por status

| Status      | Editar   | Contatos | Programar | Pausar | Retomar | Cancelar | Relatorio |
| ----------- | -------- | -------- | --------- | ------ | ------- | -------- | --------- |
| Pendente    | Sim      | Sim      | Sim       | —      | —       | —        | —         |
| Programada  | Limitado | Ver      | —         | Sim    | —       | Sim      | —         |
| Processando | —        | Ver      | —         | Sim    | —       | Sim      | —         |
| Pausada     | —        | Ver      | —         | —      | Sim     | —        | —         |
| Finalizada  | —        | Ver      | —         | —      | —       | —        | Sim       |
| Cancelada   | Sim      | Sim      | Sim       | —      | —       | —        | —         |

***

### Erros comuns

| Sintoma                | Causa provavel                                  |
| ---------------------- | ----------------------------------------------- |
| Nao programa           | Sem contatos ou data no passado                 |
| Sem conexoes no select | Nenhuma CONNECTED whatsapp/whatsmeow            |
| Creditos insuficientes | Saldo 'campaignMessages' zerado                 |
| Campos obrigatorios    | Tres textos / botoes / template faltando        |
| Banimento              | Volume alto / delay baixo / fora de boa pratica |

\[\[FOTO]]

***

### Dicas

* Use conexoes CONNECTED; mais de uma dilui volume.
* Ajuste delay/maxDelay e janela 08:00–20:00.
* Tres mensagens do modo texto sao todas obrigatorias.
* Inclua contatos **antes** de programar.
* CSV sem “salvar contato” evita poluir a base.
* Avancadas so quando precisar de tag/fila/Kanban.
* 1 credito = 1 mensagem.
* Nao confundir com **Campanha WABA** (templates Meta).

\[\[FOTO]]
