Painel de controle do bot de cupons e sistema de gerenciamento do WhatsApp
Uma solução completa de painel de administração bilíngue e chatbot para WhatsApp, que permite gerenciar cupons de desconto, empresas parceiras e conversas com clientes por meio de uma interface web intuitiva e um chatbot automatizado.
O que esse fluxo de trabalho faz?
Este fluxo de trabalho oferece um sistema completo de gerenciamento de cupons com interfaces duplas: um painel administrativo moderno em Vue.js para gerentes e um chatbot interativo no WhatsApp para clientes. Ele gerencia tudo, desde a integração da empresa e a emissão de cupons até o suporte ao cliente em tempo real e o acompanhamento de conversas.
Principais características:
- 🎛️ Painel de Administração – Interface completa em Vue.js 3 com Tailwind CSS para gerenciar empresas, cupons e visualizar análises.
- 🤖 WhatsApp Bot – Bot automatizado de atendimento ao cliente com gerenciamento de estado baseado em sessão
- 🏢 Gestão de Empresas – Operações CRUD para empresas parceiras e seus catálogos de cupons
- 🎫 Sistema de Cupons Avançado – Suporte para descontos percentuais/fixos, datas de validade, requisitos mínimos de compra e limites máximos de desconto.
- 💬 Caixa de entrada em tempo real – Interface de chat ao vivo para visualizar o histórico de conversas com o cliente
- 🌐 Suporte bilíngue – Suporte completo para interfaces em árabe (RTL) e inglês.
- 📊 Painel de Análise – Monitore clientes, mensagens, cupons emitidos e empresas parceiras
- 🔧 Ferramentas de banco de dados – Recursos integrados de inicialização e migração de esquemas
- 👤 Acesso baseado em funções – Fluxos separados para administradores e clientes com autenticação por número de telefone
Requisitos de configuração
Integrações necessárias:
- PostgreSQL – Banco de dados principal para todos os dados do sistema
- API do WhatsApp Business – Para interações com bots de clientes via API do Facebook Graph
- n8n – Plataforma de automação de fluxo de trabalho (hospedada localmente ou na nuvem)
Documentação necessária:
- Credenciais do banco de dados PostgreSQL (host, porta, banco de dados, usuário, senha)
- Token Bearer da API WhatsApp Business (Facebook Graph API v22.0)
- Número de telefone da conta do WhatsApp Business
Como usar
Configuração inicial:
- Importe o fluxo de trabalho para sua instância n8n.
- Configure as credenciais do PostgreSQL – Conecte-se ao seu banco de dados (chamado “discounts DB” no fluxo de trabalho).
- Configure as credenciais do WhatsApp – Adicione seu token Bearer da API Graph do Facebook.
- Inicialize o banco de dados – Envie uma solicitação POST para
/webhook/coupon-bot/execute-initcriar todas as tabelas. - Defina o telefone do administrador – Acesse o painel de controle em
/webhook/coupon-bot/dashboard, vá para Configurações e defina o número de telefone do administrador. - Configure o webhook do WhatsApp – Direcione seu webhook do WhatsApp Business para
/webhook/whatsapp
Acesso ao painel de controle:
- URL :
/webhook/coupon-bot/dashboard - Funcionalidades : Estatísticas, Gestão da Empresa, Gestão de Cupons, Caixa de Entrada, Configurações do Sistema
Comandos do administrador no WhatsApp:
Depois de configurar seu telefone como administrador, envie qualquer mensagem para o bot para acessar:
- Adicionar/Editar/Excluir Empresas
- Adicionar/Editar/Excluir Cupons
- Editar mensagens de boas-vindas/encerramento
- Navegue como cliente habitual
Estrutura do fluxo de trabalho
1. Webhook do painel de controle ( /coupon-bot/dashboard)
Fornece a interface administrativa completa do Vue.js 3 com:
- Layout responsivo da direita para a esquerda (RTL) para árabe.
- Navegação lateral otimizada para dispositivos móveis
- Cartões de estatísticas em tempo real
- Formulários de gestão de empresas e cupons
- Caixa de entrada interativa com histórico de bate-papo
- Ferramentas de configuração do sistema e manutenção do banco de dados
2. Pontos de extremidade da API ( /coupon-bot/api/*)
Rotas da API RESTful para operações do painel de controle:
POST /stats– Análise de sistemas (clientes, mensagens, registros, empresas)POST /companies– Operações CRUD para empresas parceirasPOST /coupons– Operações CRUD com campos avançados (percentagem, validade, limites)POST /inbox– Recuperar conversas exclusivas de clientesPOST /history– Obter o histórico completo de conversas de um clientePOST /settings– Gerenciar modelos de mensagens e telefones administrativosPOST /customers– Recuperação de registros de clientesPOST /records– Rastreamento do resgate de cupons
3. Gerenciamento de banco de dados ( /coupon-bot/execute-init, /coupon-bot/migrate)
- Inicialização completa – Cria todas as tabelas: clientes, empresas, cupons, registros, mensagens, configurações e sessões.
- Migração de esquema – Atualizações não destrutivas para adicionar colunas e restrições ausentes.
- Ferramentas de Reparo – Corrige dados corrompidos e garante a consistência do esquema.
4. Gerenciador de Bot do WhatsApp ( /webhook/whatsapp)
Processa mensagens recebidas do WhatsApp com:
- Autenticação – Detecta administradores e clientes comuns pelo número de telefone.
- Gerenciamento de Sessão – Máquina de estados baseada em PostgreSQL para conversas em várias etapas
- Mensagens interativas – Lista de menus para seleção de empresa/cupom
- Registro de mensagens – Todas as mensagens recebidas/enviadas são armazenadas para a caixa de entrada.
5. Fluxo de Clientes (Usuários Regulares)
- Receba a mensagem de boas-vindas nas configurações.
- Consulte a lista de empresas parceiras.
- Selecione a empresa para visualizar os cupons disponíveis.
- Selecione o cupom para receber detalhes.
- Receba a mensagem final com o código do cupom e os termos.
6. Fluxo de administração (usuários autenticados)
- Aceda ao menu principal de gestão
- Gerenciar empresas (adicionar, editar, excluir)
- Gerenciar cupons (adicionar com opções avançadas, editar, excluir)
- Personalize as mensagens de boas-vindas e de encerramento.
- Testar a experiência do cliente
Esquema do banco de dados
clientes
- customer_id (SERIAL PRIMARY KEY)
- name (VARCHAR 255)
- phone (VARCHAR 50, UNIQUE)
- selected_sites (TEXT)
- created_at (TIMESTAMP)
- updated_at (TIMESTAMP)
empresas
- company_id (SERIAL PRIMARY KEY)
- name (VARCHAR 255, NOT NULL)
- info (TEXT)
cupons
- coupon_id (SERIAL PRIMARY KEY)
- company_id (INT, FOREIGN KEY)
- coupon_text (TEXT, NOT NULL) -- The actual coupon code
- coupon_value (NUMERIC 10,2)
- is_percentage (BOOLEAN DEFAULT FALSE)
- has_max (BOOLEAN DEFAULT FALSE)
- max_value (NUMERIC 10,2)
- is_max_percentage (BOOLEAN DEFAULT FALSE)
- has_min_purchase (BOOLEAN DEFAULT FALSE)
- min_purchase_value (NUMERIC 10,2)
- is_on_items_quantity (BOOLEAN DEFAULT FALSE)
- registration_date (TIMESTAMP)
- has_expiry (BOOLEAN DEFAULT FALSE)
- expiry_date (TIMESTAMP)
- other_info (TEXT)
registros
- record_id (SERIAL PRIMARY KEY)
- customer_id (INT, FOREIGN KEY)
- company_id (INT, FOREIGN KEY)
- coupon_id (INT, FOREIGN KEY)
- created_at (TIMESTAMP)
mensagens
- message_id (SERIAL PRIMARY KEY)
- customer_id (INT, FOREIGN KEY, nullable)
- sender_phone (VARCHAR 50)
- sender_name (VARCHAR 255)
- external_message_id (VARCHAR 255)
- message_text (TEXT, NOT NULL)
- message_type (VARCHAR 50 DEFAULT 'text')
- direction (VARCHAR 20 DEFAULT 'INCOMING')
- is_from_customer (BOOLEAN DEFAULT TRUE)
- created_at (TIMESTAMP)
configurações
- key (VARCHAR 50 PRIMARY KEY)
- value (TEXT)
-- Keys: admin_phone, welcome_message, end_message
sessões
- phone (VARCHAR 50 PRIMARY KEY)
- state (VARCHAR 50, NOT NULL)
- data (JSONB DEFAULT '{}')
- last_updated (TIMESTAMP)
Estados da sessão (máquina de estados)
O bot utiliza sessões do PostgreSQL para persistência da conversa:
IDLE– Estado padrão, aguardando entradaWAITING_COMPANY_NAME– Administrador adicionando nova empresaWAITING_EDIT_COMPANY_SELECT– Administrador selecionando empresa para editarWAITING_EDIT_COMPANY_NAME– Administrador inserindo o nome da nova empresaWAITING_DELETE_COMPANY_SELECT– Administrador selecionando empresa para excluirWAITING_ADD_COUPON_COMPANY– Administrador selecionando empresa para novo cupomWAITING_ADD_COUPON_TEXT– Administrador inserindo código de cupomWAITING_ADD_COUPON_VALUE– Administrador inserindo valor de descontoWAITING_EDIT_COUPON_SELECT– Administrador selecionando cupom para editarWAITING_EDIT_COUPON_TEXT– Administrador inserindo novo código de cupomWAITING_DELETE_COUPON_SELECT– Administrador selecionando cupom para excluirEDIT_WELCOME– O administrador está atualizando a mensagem de boas-vindas.EDIT_END– O administrador está atualizando a mensagem final.
Modelos de mensagens
Mensagem de boas-vindas padrão (personalizável):
Mensagem final padrão (personalizável):
Dicas de personalização
- Adicionar mais idiomas : Expandir o painel de controle e o bot para oferecer suporte a idiomas adicionais além de árabe e inglês.
- Restrições de cupom : Use os campos avançados de cupom para definir valores mínimos de compra, limites máximos de desconto e datas de validade.
- Aprimoramento da análise : Adicione mais nós de estatísticas para rastrear o uso de cupons por empresa ou período de tempo.
- Integração com o Telegram : Duplique os nós de webhook do WhatsApp e modifique-os para a API do Bot do Telegram.
- Notificações por e-mail : Adicione nós SMTP para enviar detalhes do cupom por e-mail.
- Suporte a múltiplos administradores : Modifique o esquema de configurações para suportar vários números de telefone de administrador.
- Categorias de cupons : Adicione uma tabela de categorias e filtre os cupons por categoria no bot.
Casos de uso
- Agências de marketing que gerenciam campanhas de desconto para vários clientes.
- Plataformas de comércio eletrônico que oferecem cupons de lojas parceiras
- Programas de fidelidade com sistemas de desconto por níveis
- Campanhas promocionais baseadas em eventos com datas de validade
- Mercados com múltiplos vendedores e cupons individuais para cada vendedor.
- Programas de fidelização de clientes com ofertas personalizadas
Notas técnicas
- Frontend : Vue.js 3 (Composition API) + Tailwind CSS + ícones Font Awesome
- Backend : Automação de fluxo de trabalho n8n com PostgreSQL
- API do WhatsApp : API Graph do Facebook v22.0 com mensagens de lista interativas
- Segurança : Autenticação administrativa baseada em número de telefone, proteção contra injeção de SQL por meio de consultas parametrizadas.
- Desempenho : Indexação de banco de dados em números de telefone e chaves estrangeiras; limpeza de sessão recomendada.
- Dispositivos móveis : Painel totalmente responsivo com interações do WhatsApp otimizadas para dispositivos móveis.
Tags: #n8n #whatsapp #cupons #painel #vuejs #postgresql #automação #atendimento-ao-cliente #bilíngue




