Plataforma de Orquestração
Documentação técnica oficial do Whatsbi. Infraestrutura de conexão, motor de disparo em massa e blindagem jurídica (compliance) operacionais.
Infraestrutura
Setup de servidores VPS, isolamento Hestia e arquitetura MVC customizada.
Conectividade
Integração nativa com Meta Cloud API e suporte a Modo Híbrido Mobile.
Engenharia AI
Orquestração multi-agente para automação de tarefas e suporte inteligente.
Automação
Flow Builder visual com simulador, triggers e coleta de dados em tempo real.
Operações
Gestão de campanhas em massa, templates e atendimento (Inbox) centralizado.
Compliance
Blindagem LGPD com anonimização, logs imutáveis e faxina efémera às 03:00.
O Whatsbi não é apenas um SaaS; é um projeto mantido por uma Arquitetura Agêntica
Multi-Especialista. Esta camada de inteligência (localizada no diretório
.agent/) coordena a manutenção evolutiva do sistema.
0. Design System: Tech-Data Brutalism (v3.0)
O Whatsbi utiliza a linguagem visual Tech-Data Brutalism. Substituímos arredondamentos genéricos e paletas saturadas por uma estética "High-End Engineering" focada em geometria pura e tipografia técnica.
Core Principles
Uso padrão de rounded-[2px]. Cantos vivos transmitem precisão cirúrgica.
Uso de font-black com tracking-[0.2em] para rótulos de sistema.
Backdrop-blur-xl de alta densidade em vez de simples transparências.
Paleta de Cores (CROMÁTICA)
Tipografia de Sistema
Modais Brutalistas
- Borda:
border-2 (Zinc/Slate) - Radius:
rounded-[2px](Sharp Edges) - Header:
bg-slate-900com texto branco - Blur:
backdrop-blur-smno overlay
Whatsbi Sync (Loading)
- Overlay:
bg-white/90+backdrop-blur-xl - Tone: Mensagens humanizadas / micro-animações
- Loader: Spinner 24px (Pulse Interaction)
Mapeamento Cromático de Canais
1. Visão Geral do Produto
O Whatsbi é uma plataforma SaaS middleware que conecta empresas à API Oficial do WhatsApp (Meta Cloud API). Diferente de ferramentas de "disparo pirata", o Whatsbi opera em total conformidade com as políticas da Meta e LGPD.
2. Arquitetura Técnica
O sistema foi construído sobre uma arquitetura MVC (Model-View-Controller) em PHP "Vanilla" (Moderno, sem frameworks pesados), priorizando performance bruta e controle total sobre o ciclo de vida da requisição.
Stack Tecnológico
- Backend: PHP 8.2+ (PDO, Streams, GD)
- Frontend: HTML5, Vanilla JS (Fetch API), TailwindCSS (CDN/Local), Lucide Icons.
- Banco de Dados: MySQL/MariaDB (InnoDB, UTF8mb4).
- Infraestrutura: Apache (.htaccess Rewrite Rules).
Estrutura de Diretórios Completa (Full Tree)
/home/usuario/
├── app/
│ ├── config/ # Configurações globais (Stripe, Meta, DB)
│ ├── controllers/ # Controladores MVC
│ │ ├── AuditController.php
│ │ ├── AuthController.php
│ │ ├── AutomationsController.php
│ │ ├── CampaignsController.php
│ │ ├── ContactsController.php
│ │ ├── DashboardController.php
│ │ ├── HealthController.php
│ │ ├── HomeController.php
│ │ ├── MetaController.php
│ │ ├── MetaSettingsController.php
│ │ ├── PlatformController.php
│ │ ├── PlatformFinanceController.php
│ │ ├── PlatformPlansController.php
│ │ ├── ProfileController.php
│ │ ├── SubscriptionController.php
│ │ ├── TeamController.php
│ │ ├── TemplatesController.php
│ │ └── WebhookController.php
│ ├── helpers/ # Middlewares (CompanyGuard, Auth)
│ ├── models/ # Modelos de Dados
│ │ ├── Automation.php
│ │ ├── Campaign.php
│ │ ├── CompanySubscription.php
│ │ ├── Contact.php
│ │ ├── MessageTemplate.php
│ │ ├── Plan.php
│ │ ├── SystemSetting.php
│ │ └── User.php
│ ├── services/ # Serviços de Domínio (Meta, Stripe, Automation)
│ ├── views/ # Camada de Apresentação
│ │ ├── automations/ # Flow Builder & Node Editor
│ │ │ ├── js/ # Lógica Modulada (state, nodes, connections, etc.)
│ │ │ └── partials/ # Partials do Workspace (canvas, inspector)
│ │ └── inbox/ # Atendimento Centralizado
│ │ └── partials/ # Componentes do Inbox (sidebar, chat)
│ └── webhooks/ # Entrypoints para Webhooks
│
├── app.whatsbi.com/ # Subdomínio de App (Router)
│ └── index.php
│
├── doc.whatsbi.com/ # Documentação
│ └── index.html
│
└── public_html/ # Webroot Pública
├── .htaccess
└── index.php
Estrutura de Diretórios Atualizada (Resumo)
/home/usuario/
├── app/
│ ├── config/ # stripe.php, meta.php
│ ├── controllers/ # AutomationsController, SubscriptionController, PlatformController, DashboardController...
│ ├── services/ # AutomationService, StripeService, MetaService, AuditService
│ ├── helpers/ # CompanyGuard, AuthMiddleware
│ ├── models/ # CompanySubscription, Plan
│ └── webhooks/ # stripe.php, whatsapp.php
│
├── public_html/ # Domínio Principal (LP + Docs Legais)
│ ├── router.php # Central Router (New!)
│ ├── index.php # Front Controller Wrapper
│ └── .htaccess # Rewrites to router.php
│
└── app.whatsbi.com/ # Subdomínio (Sistema)
├── .agent/ # Brain & Artifacts
└── views/ # Layouts (header/footer), Platform, etc.
🔒 Segurança & Middleware
Intercepta requisições. Se o header Accept: application/json estiver presente, retorna erro 401 JSON. Caso contrário, redireciona para HTML de login.
Middleware global que verifica se a empresa está Bloqueada (inadimplência ou banimento) antes de carregar qualquer controller.
Regra no .htaccess desvia chamadas de /webhooks/whatsapp direto para webhook_entry.php, pulando o carregamento de Sessão e Views para resposta ultrarrápida (<200ms) exigida pela Meta.
Implementação de criptografia bcrypt para códigos 2FA no banco de
dados.
Geração de tokens via random_int (CSPRNG) e logs sanitizados
([REDACTED])
para evitar vazamento de credenciais.
OBSERVAÇÃO CRÍTICA: BYPASS DE SEGURANÇA
IMPORTANTE: Se você habilitou um bypass temporário de 2FA para revisão da META (em AuthController.php), certifique-se de remover o código e o usuário de teste imediatamente após a aprovação para manter a integridade do sistema. Não deixe o bypass ativo em produção permanentemente.
2.1 Execução em VPS (HestiaCP Production Environment)
O Whatsbi foi adaptado para funcionamento em servidores VPS com HestiaCP + Nginx +
PHP-FPM.
Diferente de hospedagens compartilhadas (cPanel), o Hestia aplica isolamento de diretórios via
open_basedir, impedindo acesso a arquivos fora da raiz pública.
IMPORTANTE: O sistema depende da separação entre código privado e público.
A pasta app NÃO pode ficar dentro de public_html.
Hierarquia Real de Produção (Hestia)
/home/Whatsbi/
│
├── app/ # CÓDIGO PRIVADO
│ ├── config/
│ ├── controllers/
│ ├── models/
│ ├── services/
│ ├── helpers/
│ ├── validators/
│ ├── webhooks/
│ ├── worker.php
│ └── storage/logs/
│
├── web/
│ └── app.whatsbi.com/
│ ├── public_html/
│ │ ├── index.php
│ │ ├── .htaccess
│ │ └── assets/
│ │
│ └── logs/
│
└── tmp/
Front Controller
define('BASE_PATH', realpath(__DIR__ . '/../../../../app'));
require BASE_PATH . '/helpers/autoload.php';
PHP-FPM obrigatório
php_admin_value[open_basedir] =
/home/%user%/web/%domain%/public_html:
/home/%user%/app:
/home/%user%/tmp:
/tmp
Worker
/usr/bin/php /home/Whatsbi/app/worker.php
Cron Oficial
* * * * * /usr/bin/php /home/Whatsbi/app/worker.php >> /home/Whatsbi/tmp/worker.log 2>&1
Logs
tail -f /home/Whatsbi/tmp/worker.log
Limpar fila antiga de erro
postsuper -d ALL
systemctl restart postfix
Recuperação
v-rebuild-user Whatsbi
systemctl restart nginx
systemctl restart php*-fpm
Ambiente compatível com produção VPS segura.
Configuração de E-mail Interno (SMTP via HestiaCP)
Como a aplicação roda na mesma VPS que o servidor de e-mail (Postfix), a comunicação SMTP deve ser feita localmente para evitar bloqueios de firewall e erros de certificado SSL rigorosos do PHP.
Configure o host para 127.0.0.1 e adicione o
array SMTPOptions para ignorar a validação de certificado do domínio principal:
$mail->Host = '127.0.0.1';
$mail->Port = 587; // ou 25
// BYPASS DE CERTIFICADO SSL (Local/VPS)
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
3. SaaS Core & Billing
Stripe Integration: Sistema completo de assinaturas com Planos (Starter, Growth, Enterprise), Checkout Sessions e Customer Portal.
A. Subscription Lifecycle
Gestão automática de status: active, past_due,
canceled, trial.
Webhooks do Stripe atualizam o banco de dados local em tempo real, bloqueando ou
liberando acesso via CompanyGuard.
B. Access Control (CompanyGuard)
Middleware de segurança que intercepta todas as requisições autenticadas. Se a empresa
estiver blocked ou sem assinatura ativa, o usuário é redirecionado para o
Portal de Pagamento ou Tela de Bloqueio, sem acesso ao Dashboard.
4. Integração Meta (Zero Trust)
Princípio BYO: O Whatsbi nunca cria, gerencia ou hospeda WABAs. Toda conta, número e faturamento (billing) pertencem exclusivamente ao cliente. Nossa plataforma atua apenas como orquestrador autorizado.
A. Conexão (OAuth)
O usuário autoriza o Whatsbi. Recebemos um
access_token de usuário.
B. Deep Search WABA Discovery
Engine de descoberta que garante encontrar a WABA correta em estruturas complexas (Admin, Funcionário ou Parceiro), iterando sobre Assigned, Owned e Business Hierarchy.
C. Webhook (Status Sync & Deduplicação)
Recepção de eventos em tempo real com lógica avançada de deduplicação (hash digest) para
ignorar disparos repetidos da Meta e garantir processamento "exactly-once", evitando
falhas e sobrecarga de CPU do Motor de Automações. Além de mensagens, agora processamos
message_template_status_update para sincronizar aprovações/rejeições de
templates instantaneamente.
D. Coexistência v3 (Hybrid Mode)
Implementação otimizada para o Cadastro Incorporado.
• Config ID: 1288378289799959.
• Feature Type: whatsapp_business_app_onboarding.
• Version: v3 (Protocolo que permite usar o App Mobile e API
simultaneamente).
F. Blindagem de Entrega & Reputação (Throttling)
O sistema implementa uma camada de Throttling Inteligente para proteger a saúde das linhas WhatsApp:
• Cadência Segura: 0.2000 msg/s (padronizado em 5 segundos entre mensagens). O SuperAdmin opera em segundos para maior clareza.
• Jitter Aleatório: Injeção de 0 a 2000ms de atraso extra para mimetizar comportamento humano.
• Auto-Pause Reputacional: Monitoramento de erros críticos (131042, 131049). Ao detectar risco de banimento, a campanha é pausada instantaneamente, abortando o worker para intervenção manual.
G. Sincronização de Nome Verificado (Real-Time)
Diferente de outros orquestradores que exibem apenas o número, o Whatsbi agora captura o verified_name real da Meta:
• Deep Sync: Durante a sincronização de telefones, o sistema invoca o campo verified_name da Graph API.
• Auto-Healing UI: Ao acessar as configurações, o syncAccountHealth refresca esses metadados, garantindo que o nome comercial (ex: Musile Records) seja exibido na interface sem intervenção manual.
H. Ponte Omnichannel (Bridge Architecture)
Implementação de uma camada de abstração (ChannelRegistry) que permite a conexão de múltiplos canais sob o mesmo provedor:
• Independência de Canais: Suporte nativo para Instagram Accounts e Facebook Pages operando como canais independentes da WABA.
• Social Diagnosis: Ferramenta de socialWebhookDiagnosis para monitorar a saúde das assinaturas de webhook em tempo real.
• Sync de Perfil: Gerenciamento centralizado de metadados de negócio (bio, endereço, email) via syncBusinessProfile.
4.1 Orquestração AI (.agents)
Multi-Agent Coordination: O sistema utiliza um ecossistema interno gerenciado por um Master Orchestrator, desenhado para coordenar o fluxo de tarefas complexas e orquestração de Agentes AI.
A. Boundary Enforcement (Controle de Limites)
Garante que especialistas ajam apenas nas suas verticais de código (ex: Segurança foca no Auth, Backend foca na API). Conflitos ou sobreposição de fronteiras interrompem e reidirecionam as requisições, eliminando caos lógico.
B. Planejamento Unificado (PRD & Implementation Plan)
O Orquestrador condensa sub-tarefas, aplica paralelizão via invocações do sistema de
inteligência nativo e sintetiza uma saída determinística sem suposições perigosas.
O uso obrigatório de implementation_plan.md garante que toda alteração
estrutural seja revisada antes da execução.
C. State Persistence & Knowledge Base
Graças ao sistema de Knowledge Items (KIs) e Persistent Context, os agentes mantêm a memória de decisões arquiteturais de sessões passadas, evitando a reintrodução de bugs ou violação de padrões de design estabelecidos.
4. Funcionalidades & Módulos
Visão consolidada dos principais módulos operacionais da plataforma Whatsbi.
Sistema multi-tenant com autenticação segura (2FA), recuperação de senha e visão geral de métricas em tempo real.
Importação inteligente via CSV, correção de timezones (BR), deduplicação (Silent Merge) e normalização E164.
Anonimização atômica "Direito ao Esquecimento", logs de auditoria imutáveis e controle de consentimento (Opt-out).
Construtor visual de fluxos com suporte a variáveis, data collection, triggers de palavra-chave e simulador ao vivo.
Disparo em massa de alta performance via Staging/Worker, suporte a mídias dinâmicas e arquivamento inteligente.
Ferramenta centralizada com tags, encaminhamento modal e modo efémero de arquivos para privacidade total.
Infraestrutura interna (.agent) com orquestração de especialistas para manutenção autônoma, segurança e evolução do código.
Gestão de planos via Stripe Connect, bloqueio automático por cota e portal do cliente para gestão financeira.
5. Compliance LGPD & Perfil
O Whatsbi leva a proteção de dados a sério, oferecendo ferramentas nativas para atender à Lei Geral de Proteção de Dados (LGPD).
Anonimização
Implementação do "Direito ao Esquecimento". Ao anonimizar um contato:
- Nome é substituído por
ANONYMOUS USER. - Telefone recebe hash criptográfico:
DEL_{id}_{hash}. - Status muda para Bloqueado.
- Logs de envio são preservados (anonimizados) para auditoria fiscal.
Fila Geral vs Departamentos
Sistema de visibilidade segregada para gestores:
- Todos os Departamentos: Visão consolidada de toda a empresa.
- Fila Geral: Filtro estrito para tickets ainda não triados ou sem departamento.
C. Advanced Filtering & Bulk Actions
A gestão de audiência foi otimizada para operações em larga escala:
- Filtragem Multi-Critério: Combine Tags, Status de Opt-in, Status de Assinatura e Data de Importação para criar segmentos precisos.
- Seleção Global: Selecione milhares de contatos com um único clique (Select All across pages) para operações em lote.
- Ações em Massa: Aplicação ou remoção de Tags, Alteração de Status e Disparo de Campanhas instantâneas para segmentos filtrados.
- Prevenção de Duplicidade: O sistema realiza o Silent Merge baseado no
phone_e164durante importações, preservando o histórico de conversas anterior.
6. Módulo de Templates
Implementação completa da gestão de templates conforme exigências de Compliance da Meta. O módulo foi desenhado para evitar rejeições e facilitar a experiência do usuário.
Creation Wizard
Fluxo passo-a-passo (Wizard) que guia o usuário.
- Formatador
snake_caseautomático e banco `system_templates` centralizado. - Validação de variáveis sequenciais (
{{1}},{{2}}). - Public Uploads Bypass: Mídias no Header são passadas como URL publicas diretamente para a Meta resolvendo conflitos OAuth da Resumable Uploads API.
Live Preview
Simulação visual idêntica ao WhatsApp Mobile. O usuário vê exatamente como a mensagem chegará antes de enviar para aprovação.
Rascunhos & Edição Local
Funcionalidade de Drafts permite salvar templates incompletos localmente sem "sujar" o histórico na Meta.
- Botão "Salvar Rascunho" (Status: Draft/Cinza).
- Edição livre até o envio final para aprovação.
- Lógica de bloqueio para templates já enviados.
{{1}}) em Corpo, Cabeçalho e Botões. Evita rejeição "Invalid Format" da
Meta.
7. Módulo de Campanhas
Sistema robusto de disparo em massa projetado para alta performance e segurança. Utiliza uma arquitetura de Staging -> Worker para garantir que envios grandes não travem a interface.
A. Staging (Preparo Atômico)
Ao criar uma campanha, o sistema não insere mensagens uma a uma via PHP. Utilizamos
INSERT INTO ... SELECT para mover milhares de contatos da base para a fila
de
disparo em milissegundos.
B. Worker Inteligente (Motor Dinâmico)
O CampaignService agora utiliza um motor de componentes dinâmicos que:
- Realiza o mapeamento de Header de Mídia (Imagem, Vídeo, Docs) via URLs públicas.
- Garante o Snapshot de Auditoria: Grava exatamente o que foi enviado para prevenção de disputas.
- Aplica Rate Limit Dinâmico definido por empresa.
C. Mapeamento Dinâmico de Botões (URL Variables)
Solução arquitetural para suportar variáveis dinâmicas em botões da Meta (ex: {{1}}, {{4}}) sem conflitos com o corpo da mensagem:
- Namespacing: Variáveis de botão são salvas no JSON de mapeamento com o prefixo
button_{index}(ex:button_0). Isso evita que um{{1}}no botão sobrescreva um{{1}}(Nome do Cliente) no corpo. - Prefixo STATIC: Valores literais digitados pelo usuário (como IDs de vídeo ou caminhos de URL) são salvos com o prefixo
STATIC:novariable_mapping. OCampaignServiceidentifica esse prefixo para tratar o dado como valor final, evitando que o sistema tente buscar o valor em colunas do banco de dados/CSV (o que resultava no fallback "Cliente"). - Regex Extraction: O motor de disparo usa regex (
preg_match('/\{\{(\d+)\}\}/')) para extrair dinamicamente o índice numérico do template Meta, garantindo compatibilidade com qualquer estrutura de variável.
D. Warm-up Progressivo & Tier Intelligence
Novas integrações WABA entram em uma regra de aquecimento gradual para proteção de reputação:
• Fase 1 (< 7 dias): Limite de 50 envios/dia.
• Fase 2 (< 30 dias): Limite de 500 envios/dia.
• Tier Intelligence (Bypass): A trava é automaticamente relaxada para contas que já possuem um Messaging Limit superior a TIER_250 (ex: 1K, 10K, Unlimited) detectado na Meta.
E. Gestão de Status: Pausa Automática (Preventiva)
Para evitar a sensação de "travamento" do sistema e garantir transparência, implementamos o status Pausada:
• Gatilho: Ativado automaticamente quando limites de aquecimento (Warm-up) ou erros de reputação Meta são detectados.
• Visibilidade UX: Exibição de um selo laranja vibrante com o motivo exato da pausa (ex: "Lote Diário Meta Atingido") logo abaixo do status.
• Diferenciação: Diferente do status "Processando", o ícone de carregamento torna-se estático (pause-circle), indicando que o sistema interrompeu o envio para proteger a saúde da linha.
7.1 Módulo de Automações (Flow Builder)
O Motor de Automação Visual permite construir trilhas de atendimento e funis orgânicos. A interface é baseada em Canvas Node-Editor.
A. Canvas Workflow & Bezier Curves
Elementos renderizados em HTML nativos, unidos por SVG (Curvas Bézier). O sistema recalcula automaticamente a matemática vetorial dependendo de Zoom e Pan da área útil, proporcionando uma experiência de desenvolvimento intuitiva com encaixes perfeitos de ponta-a-ponta (ports).
B. Gatilhos (Triggers Setup)
Todo fluxo agora conta com inicialização de Gatilho de Palavra-chave "keyword based" nascidas desligadas por padrão, evitando disparo inoportuno ao ambiente Meta em andamento via estado persistente.
Formas de Iniciar Automações
- • Mensagens (DM)
- • Interações (Comentário, Story)
- • Menções em Stories
- • Mensagens Recebidas
- • Palavras-chave
- • Clique em Botões
📣 Facebook / Ads
- • Entrada por Anúncio (CTWA)
- • Comentários em Posts
⚙️ Sistema
- • Webhook Externo
- • Atribuição de Tags
- • Eventos de Contato
C. Data Collection Feature
Um avançado nó estrutural no Visual Flow permite capturar valores do lead no meio da jornada. Ele opera via um UI Inspector Lateral. O Node permite configurar regras de validação nativas ou custom options em armazenamento.
D. Typing Indicator Logic
O componente Delay não retém apenas a requisição do Worker via sleep(), mas agora consome os endpoints oficiais da Meta para enviar um status explícito de "digitando..." para o terminal do contato, trazendo imersividade real orgânica nas campanhas criadas.
E. Simulador Vitalício & Métricas em Tempo Real
O Builder inclui um Simulador que permite testar a lógica do fluxo antes do deploy. A interface de visualização (View Mode) agora exibe métricas em tempo real por NÓ (Entrou, Únicos, Clicado, Esperando). Clicar nos cards de métricas abre um Modal de Contatos dinâmico que lista os leads que passaram por aquele estágio.
F. Arquitetura Modular (Refatoração 2.0)
O código do builder foi desacoplado em fatias especializadas: state.js,
nodes.js, connections.js, simulator.js e
actions_triggers.js. Essa estrutura usa Object Descriptors
para manter a reatividade total do AlpineJS enquanto facilita manutenções atômicas sem
risco
de regressão no core do canvas.
G. Handoff & Ticket Sequestration Logic
Lógica avançada de transbordo no nó de Transferência:
- Smart Update: Se o contato já possuir um ticket
pending(sessão de bot ativa), a automação não cria duplicatas. Ela "sequestra" o ticket existente, injeta odepartment_idselecionado e altera o status paraopen. - Button Routing Fix: Implementação de normalização de prefixos (
btn_vsbtn_btn_). O motor de automação agora aceita ambos os padrões, garantindo compatibilidade com fluxos legados e novos.
H. Gatilhos Omnichannel (Social Triggers)
O builder agora suporta interações ricas no Instagram e Facebook:
- Instagram: Comentários em posts/Reels (
ig_comment_media), respostas a Stories (ig_story_reply) e menções (ig_story_mention). - Resposta Pública: Capacidade de responder automaticamente a comentários públicos no Feed antes de iniciar a DM privada.
- Reaction Support: Possibilidade de configurar curtidas automáticas (❤️) em interações recebidas.
I. Nó de Condição (Lógica Inteligente)
Engine de roteamento baseada em dados:
• Branching: Direcione o fluxo baseando-se no valor de variáveis, tags do contato ou canal de origem.
• Strict Type Matching: Validação robusta de tipos (Boolean, String, Int) para garantir transições perfeitas entre os nós.
J. Coleta de Dados (Input Collection)
Automatize a captura de informações ricas:
• Custom Attributes: Salve respostas diretamente em campos personalizados (ex: cpf, interesse).
• Validation Logic: O sistema aguarda o input do usuário (PAUSE mode) e valida o formato antes de prosseguir.
K. Nó de Ação (Data Mutation)
Manipulação silenciosa do banco de dados:
• Tagging: Adicionar ou remover etiquetas (add_tag / remove_tag).
• Field Reset: Limpeza de campos obsoletos (clear_field) para manter o CRM higienizado.
7.2 Live Chat Ecosystem: Mapeamento de Recursos
A central de atendimento do Whatsbi é um ecossistema integrado que permite a gestão fluída de conversas e a colaboração entre times. Recentemente refatorado para uma Arquitetura de Partials, permitindo atualizações modulares na Sidebar, Chat e Perfil sem interferência entre componentes.
Arquitetura Dual
- WhatsApp Chat (Público): Interface reativa para interação direta com leads via Meta API.
- Salas Internas (Equipe): Espaços de colaboração privada entre operadores e gestores.
- Long Polling: Sincronização automática via AlpineJS sem necessidade de refresh.
- Mobile Echoes: Registro instantâneo de mensagens enviadas via App WhatsApp oficial.
Inteligência de Mídia & Contexto
- Media Board Sidebar: Galeria lateral que agrupa todos os arquivos trocados com o contato.
- Viewer Integrado: Visualizador de imagens e player de áudio/vídeo nativo no browser.
- Tagging System: Organização de leads via etiquetas coloridas com autocomplete.
- Encaminhamento Modal: Botão dedicado para mover mensagens/mídia para salas internas.
- Status de Leitura (New): Marcação visual de
is_readpara controle de produtividade e triagem.
Modo Efémero & Faxina (Cron Job)
Implementação de privacidade forçada: arquivos de mídia em salas internas têm validade pré-definida.
0 3 * * * /usr/bin/php /home/Whatsbi/web/app.whatsbi.com/app/cron_ephemeral.php
Execução Técnica
O script cron_ephemeral.php
localiza registros com expires_at vencido e executa o
unlink físico nos arquivos do HD.
Estado do Banco
O campo file_url é zerado e o
corpo é alterado para "⏳ [Arquivo Expirado]" para manter a cronologia sem
o dado.
A interface de atendimento (Inbox) foi aprimorada com um sistema de categorização dinâmica que permite organizar leads sem sair da conversa ativa.
Tags Interativas
Visualização em "pills" coloridas na lateral do contato. Permite a remoção instantânea via ícone "X" com feedback visual imediato (hover effects).
Autocomplete Inteligente
Campo de entrada com datalist que sugere etiquetas já existentes na
empresa,
mantendo a padronização e evitando duplicidade de termos similares.
7.4 Inbox: Filtros & Visibilidade Segregada
A barra lateral do Inbox agora conta com um sistema de filtros precisos para evitar a confusão entre a visão global da empresa e a fila de entrada operacional.
Lógica de Filtragem de Departamentos
-
Todos os Departamentos (
all)Puxa todos os tickets ativos da empresa, independente de estarem ou não em departamentos. Ideal para Supervisores.
-
Fila Geral (
general)Filtro exclusivo que busca por
department_id IS NULL. Isolando atendimentos que ainda não foram encaminhados por bot ou triagem. -
Departamentos Específicos
Filtra rigorosamente pelo ID do departamento, permitindo foco total na fila do setor selecionado.
7.5 Inbox: Encaminhamento de Mídia
O Whatsbi disponibiliza um endpoint público para integração com sistemas externos (ERP, N8N, Make, Python scripts).
Exemplo de Requisição (POST)
POST https://app.whatsbi.com/api/v1/trigger?id={AUTOMATION_ID}
{
"phone": "5511999999999",
"variables": ["Argumento 1", "Argumento 2"]
}
O parâmetro id na URL define qual
fluxo será ativado.
O campo phone deve estar em formato
E164 (apenas números).
As variables preenchem
automaticamente o Template de entrada configurado.
8. Dashboard & Métricas Pró-Ativas
O painel principal do Whatsbi (Dashboard) foi revitalizado matematicamente, abandonando gráficos estáticos em favor de visualizações e cálculos renderizados 100% via servidor e SVG.
Volume SVG Dinâmico
Gráfico construído inteiramente em <svg> pelo backend PHP, sem
bibliotecas pesadas de terceiros (como Chart.js).
- Dupla Visão Alpine: Transição fluída entre o gráfico real de "Envios" (Azul) e "Respostas" (Índigo).
- Filtragem Limpa: Plota no eixo X apenas os dias do mês em que houve real flutuação de tráfego.
- Interatividade: Clique num nódulo diário para abrir o Modal de Campanhas rastreando o que motivou aquele disparo.
Termômetro Interno (Health Prevention)
Widget de Feedback do Usuário desenhado como ferramenta de prevenção.
- Ele NÃO provém da Meta. Ele lê a própria base de Contatos do Whatsbi.
- Compara contatos que deram Consentimento (Opt-In) vs contatos que realizaram Bloqueios (Opt-Out).
- Se a fatia vermelha do SVG de Feedback se expandir subitamente, o gestor do Whatsbi sabe que deve pausar as operações antes do WhatsApp banir a linha por Spam externo.
Campanhas Recentes: Resiliência Multi-WABA
O feed do Dashboard utiliza uma query otimizada para garantir visibilidade absoluta, resolvendo conflitos de IDs:
- Filtragem Híbrida: O sistema prioriza o
company_idpara listar campanhas, evitando que mismatches entre o WABA ID externo (Meta) e o ID interno gerem listas vazias. - Fallback de Segurança: Implementação de resiliência: se o filtro por WABA específico falhar, o motor expande a busca para todas as campanhas da empresa, garantindo continuidade operacional.
- Barra de Progresso: Percentual esmagador de (Entregas + Leituras) em relação ao total de destinatários selecionados.
8. Saúde da Operação (Quality Assurance)
Dashboard dedicado à monitoria técnica da qualidade da linha e entregabilidade. Fundamental para evitar bloqueios da Meta.
Meta Quality Rating
Monitoramento em tempo real da "nota" da linha (GREEN, YELLOW, RED). Se a qualidade cair, o sistema alerta para reduzir o volume.
Dead Letter Queue
Lista das últimas falhas permanentes. Ajuda a identificar padrões de erro (ex: template inválido, número banido) rapidamente.
10.1 Mensagens Efémeras & Limpeza Automática
Para garantir a privacidade e otimizar o armazenamento do servidor, o Whatsbi utiliza um sistema de Mensagens Efémeras para as salas de chat internas (Internal Rooms).
Faxina Automática (Cron Job)
Um script de limpeza é executado diariamente às 03:00 da manhã para destruir arquivos físicos de mensagens que expiraram.
0 3 * * * /usr/bin/php /home/Whatsbi/web/app.whatsbi.com/app/cron_ephemeral.php
- Destruição Física: Os arquivos (imagens/vídeos) são removidos permanentemente do HD (unlink).
- Integridade de Log: No banco de dados, o
file_urlé zerado e o corpo da mensagem é alterado para "⏳ [Arquivo Expirado]", mantendo a cronologia do histórico sem o conteúdo sensível.
11. Auditoria & Blindagem Jurídica
O Whatsbi garante rastreabilidade total através de Snapshots Imutáveis. Diferente de outros sistemas, não confiamos no estado atual do banco, mas sim na "foto" do momento do envio.
Audit Log
Snapshot JSON de exatamente o que foi enviado e qual era o consentimento na hora. Visualização via Modal Seguro com Pretty Print.
Opt-out Log
Registro inviolável de quem pediu para sair, quando e o motivo.
Status Log
Histórico completo: Enviado -> Entregue -> Lido -> Falha.
10. Modo Híbrido (Coexistência)
Novidade (Fase 6): O Whatsbi agora suporta o uso simultâneo do App WhatsApp Business no celular e da Plataforma (API).
Sincronização de Contatos
Importe toda a sua agenda de clientes do celular para o CRM do Whatsbi com um clique.
Utiliza o endpoint smb_app_state_sync para puxar dados em tempo real.
Importação de Histórico
Não perca o contexto. O sistema ingere até 6 meses de conversas trocadas no App via
history_sync, populando as tabelas de mensagens para consulta futura.
Mobile Echoes
Quando você responde um cliente pelo celular, o Whatsbi "escuta" essa mensagem via Webhook
e a registra na plataforma como mobile_echo, mantendo o atendimento
sincronizado.
Repair Connection (Restauração)
Utilitário de emergência que força a regravação do estado is_coexistence = 1 no banco de dados, recuperando a visibilidade de ferramentas de sincronização caso ocorra uma falha de deslogue acidental.
11. Platform Administration (Super Admin Isolado)
Ambiente de alta segurança configurado no subdomínio admin.whatsbi.com para gestão
do
ecossistema.
Isolamento Zero Trust: O painel administrativo possui seu próprio roteador e sistema de autenticação (incluindo 2FA fortificado com CSPRNG e logging seguro), impedindo que vulnerabilidades no App afetem o controle da plataforma.
- ✅ Global Dashboard & System Status: KPIs de MRR, Total de Empresas, Volume de Mensagens, monitoramento da saúde do servidor e filas em tempo real.
- ✅ Tenant Management: Listagem e edição de todos os clientes (Tenants), configuração de acesso, data de expiração, status do plano, e gestão detalhada da empresa.
- ✅ Emergency Actions: Autenticação forçada (SSO bypass via "Imitate User") e capacidade de Bloquear/Desbloquear acesso de empresas instantaneamente e conceder Trials manuais.
- ✅ Planos & Pricing Override (Platform Plans): Criação e configuração dinâmica de faixas de cobrança, capacidade de forçar planos ou cancelar assinaturas arbitrariamente via UI.
- ✅ Módulo Financeiro & Integração Connect: Gestão segura de fluxos do Stripe (Connect), com visualização de transações globais e relatórios gerenciais consolidados.
11.1. Advanced Analytics & Reports
- ✅ Matemática de Funil Cascata: O Dashboard de analytics exibe KPIs ao vivo conectando a rota Webhook através de injeção de `context_message_id`. Isso corrige falhas onde envios Delivered e Read não conversavam entre o servidor da Meta e a View.
- ✅ Precisão de Transações em Tempo Real: Estimativa de custo de disparo nativamente formatado em 4 casas decimais.
- ✅ Contact Sync Audit (LGPD): Registros completos e auditáveis de importação de contatos (.CSV), validações de números que não existem, normalização de DDI (E164) e remoção de duplicatas (Silent Merge).
12. Governança & Multi-Workspace
Arquitetura multi-tenant avançada que permite um único usuário transitar entre múltiplas empresas (Workspaces) usando uma única conta, garantindo segurança na troca de sessão sem necessidade de re-autenticação.
Workspace Switcher Integrado
Transição instantânea via Sidebar. A mudança recarrega o CompanyGuard, atualizando de forma atômica limites do plano (tags dinâmicas PRO/FREE), logos e a credencial da API Meta na sessão ativa.
Convites Tokenizados (RBAC & Billing)
Links com validade de 48 horas. O sistema bloqueia a emissão de convites através de verificação strict do limite de max_users de acordo com as permissões da Assinatura Stripe atuante sobre o Workspace.
Self-Service Disconnect
Os usuários convidados mantêm autonomia sobre seu tempo. Através do Perfil (Workspace Manager), podem revogar permanentemente seus privilégios de acesso desvinculando-se voluntariamente de empresas terceiras.
13. Banco de Dados
-- Core
users, companies (rate_limit_per_second as DECIMAL 10,4)
user_company (role: admin, operator, viewer)
password_resets (email, token, created_at) -- Flow de recuperação de senha
-- CRM
contacts (id, phone_e164, consent, blocked)
contact_imports (id, status, total_rows)
-- Meta Engine
meta_integrations (access_token, status, created_at [Warm-up Source])
wabas (id [Internal PK], waba_id [Meta External ID], name, currency) -- NOTE: Separation of Internal ID vs Meta Graph ID
whatsapp_phone_numbers (phone_id, quality_rating)
-- Mensageria & Templates
message_templates (id, name, status, components, rejection_reason)
inbound_messages (wa_id, body, received_at)
outbound_messages (meta_id, status, sent_at)
-- Campanhas
plans (max_users, rate_limit_per_second as DECIMAL 10,4)
campaigns (id, status, scheduled_at, sent_count, total_contacts, last_error)
campaign_messages (campaign_id, contact_id, status, meta_message_id)
-- Auditoria & Compliance (Blindagem)
message_audit_logs (snapshot imutável: template + variáveis + consentimento)
message_status_logs (histórico de entrega: sent -> delivered -> read)
contact_optout_logs (prova jurídica de bloqueio: source + reason)
-- System (Super Admin)
system_settings (key_name, value, updated_at) -- Stripe Keys, Global Configs
14. Roadmap (Status)
1. Gestão de Templates
Concluído. Criação, Rascunhos e Webhooks.
2. Construtor de Campanhas
Concluído. Disparo em massa, Staging de contatos e Worker.
3. Auditoria & Compliance
Concluído. Logs de auditoria, Opt-out tracking e Relatórios jurídicos.
4. Estabilidade & UX
Concluído. Deep Clean no Disconnect, Proteção contra Duplicatas e Relatórios com UX Premium (Modals).
5. Security & UI Polish
Concluído. Refatoração 2FA (Hashing + CSPRNG), Recuperação de Senha Segura e Modais Agency Grade (Team, Templates, Campaigns).
6. Modo Híbrido & Coexistência
Concluído. Suporte a Embedded Signup com featureType híbrido, Sync de Contatos, Histórico e Echoes Mobile.
7. Módulo de Automações & Node Flow
Concluído. Flow Builder Visual, Webhooks Inteligentes (Debounce/Deduplication), Coleta de Dados nativa e Indicadores de Digitação Automáticos via Meta Cloud API.
8. Orquestração de Agentes (AI)
Concluído. Master Orchestrator configurado para coordenar sub-agentes com limites rígidos de escopo e persistência de contexto via Knowledge Items.
9. API de Integração & Help Center
Concluído. Endpoint REST para disparos externos e Central de Ajuda integrada com Artigos Pilares e navegação Bento Grid.
10. Refatoração de Escala (Inbox & Automations)
Concluído. Desacoplamento de arquivos monolíticos em micro-partials, distribuição de lógica Javascript Alpine.js e otimização de manutenibilidade via arquitetura modular.
12. Blindagem de Cadência & Segurança
Concluído. Centralização de disparo em engine única, Jitter controlado, Warm-up tiered por integração e Auto-pause reputacional contra banimentos.
13. Omnichannel Social (Bridge Architecture)
Concluído. Conexão de canais independentes (Instagram/Facebook), novos gatilhos sociais e automação de engajamento (Public Reply).
© Whatsbi Developers.