marketing (campanha: título + mensagem + anexos + status)disparos (cada linha = 1 envio pendente/agendado)grupos_disparos + vínculos de clientes (ex.: grupos_clientes)config (endpoint/token/instância, dependendo da instalação)
Fluxo padrão do BarberBot:
cria campanha → disparar → gera registros em disparos → um processo/rotina (cron/worker)
consome essa fila e faz as chamadas HTTP para a API configurada.
| Caminho | Responsabilidade |
|---|---|
sistema/painel/paginas/marketing.php |
Tela do módulo (UI + JS). Controla filtros, cria campanha e dispara para listas/grupos. |
sistema/painel/paginas/marketing/ |
Endpoints do módulo (CRUD + fila + uploads/anexos). |
sistema/painel/paginas/grupos_disparos.php |
Tela de grupos/segmentação de disparos (lista de grupos e vínculo de clientes). |
sistema/painel/paginas/grupos_disparos/ |
Endpoints do cadastro de grupos + vínculo/importação de clientes + status. |
Regra do projeto: telas (*.php na raiz de paginas/) fazem chamadas AJAX para endpoints dentro das subpastas.
Ex.: marketing.php → chama marketing/listar.php, marketing/salvar.php, marketing/disparar.php.
sistema/painel/paginas/
├─ marketing.php
├─ marketing/
│ ├─ listar.php
│ ├─ salvar.php
│ ├─ excluir.php
│ ├─ disparar.php
│ ├─ parar_envios.php
│ ├─ api_parar_disparos.php
│ ├─ listar_clientes.php
│ ├─ marketing_texto.php
│ ├─ marketing_foto.php
│ ├─ marketing_audio.php
│ ├─ excluir_imagem.php
│ ├─ excluir_audio.php
│ └─ excluir_doc.php
│
├─ grupos_disparos.php
└─ grupos_disparos/
├─ listar.php
├─ salvar.php
├─ excluir.php
├─ mudar-status.php
├─ listar_clientes.php
├─ add_clientes.php
├─ excluir_cliente.php
└─ importar_clientes.php
marketing — cadastro da campanha (título, mensagem, anexos, status).disparos — fila de envio (cada registro representa um envio individual).grupos_disparos — grupos/segmentos (ex.: “Clientes VIP”, “Aniversariantes”).grupos_clientes (ou equivalente) — vínculo cliente ⇄ grupo (nome pode variar na instalação).config — configurações gerais / API (token/url/instância conforme o projeto).Ponto crítico: disparos cresce rápido. Índices por status, data, id_marketing e cliente evitam lentidão.
Importante: o front costuma comparar strings literais. Não mude mensagens de retorno sem ajustar o JS.
| Endpoint | Método | Parâmetros | Retorno esperado |
|---|---|---|---|
marketing/listar.php |
POST | busca (filtro texto) |
HTML da listagem |
marketing/salvar.php |
POST + FILES |
POST: id, titulo, msg, msg2FILES: foto, audio, documento
|
Salvo com Sucesso (insert)Editado com Sucesso (update)
|
marketing/excluir.php |
POST | id |
Excluído com Sucesso |
marketing/excluir_imagem.php |
POST | id |
Excluído com Sucesso |
marketing/excluir_audio.php |
POST | id |
Excluído com Sucesso |
marketing/excluir_doc.php |
POST | id |
Excluído com Sucesso |
| Endpoint | Método | Parâmetros | Retorno esperado |
|---|---|---|---|
marketing/disparar.php |
POST | id, clientes, data, hora, dispositivos |
Salvo com Sucesso (gera a fila em disparos) |
marketing/parar_envios.php |
POST | id (campanha) |
Parado com Sucesso |
marketing/listar_clientes.php |
POST | clientes (lista/seleção) |
0 ou número total (texto puro) |
marketing/api_parar_disparos.php |
interno | — | Rotina auxiliar (pode chamar API externa dependendo da instância) |
| Endpoint | Método | Parâmetros | Retorno esperado |
|---|---|---|---|
grupos_disparos/listar.php |
POST | busca |
HTML da listagem |
grupos_disparos/salvar.php |
POST | id, nome |
Salvo com Sucesso ou Grupo já Cadastrado! |
grupos_disparos/excluir.php |
POST | id |
Excluído com Sucesso |
grupos_disparos/mudar-status.php |
POST | id, acao |
Alterado / ID inválido |
grupos_disparos/add_clientes.php |
POST | grupo, id (cliente) |
Adicionado com Sucesso / Cliente já Adicionado! |
grupos_disparos/excluir_cliente.php |
POST | id (vínculo) |
Excluído com Sucesso |
grupos_disparos/importar_clientes.php |
POST | grupo, cliente (ou parâmetros do import) |
HTML/retorno do processo de importação |
marketing (texto + anexos).marketing/disparar.php.disparos (N = quantidade de clientes-alvo).disparos pendentes e envia via API (WhatsApp) usando dados de config.marketing/parar_envios.php interrompe/ajusta status da campanha/fila (conforme regra do seu banco).Debug rápido: se “não dispara”, verifique se criou registros em disparos. Se criou e não enviou, o problema está no worker/cron/API.
Salvo com Sucesso são contrato com o JS. Não altera no chute.disparos.PDO->prepare() com bind (onde tiver concatenação de busca, cuidado com injection).marketing tem registro?)marketing/disparar.php retornou Salvo com Sucesso?)disparos tem linhas para essa campanha?)disparos pendentes?)config / token / baseUrl / dispositivo ativo)