whatsbi docs
Status Atual: MVP Fase 6 (Modo Híbrido & Finalização)

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

Geometria Pura

Uso padrão de rounded-[2px]. Cantos vivos transmitem precisão cirúrgica.

Hierarquia Técnica

Uso de font-black com tracking-[0.2em] para rótulos de sistema.

Depth Mechanics

Backdrop-blur-xl de alta densidade em vez de simples transparências.

Paleta de Cores (CROMÁTICA)

Whatsbi Emerald
#10B981 / emerald-500
Alert Rose
#F43F5E / rose-500
Deep Slate
#020617 / slate-950
Cloud Blue
#F4F7FE / slate-50

Tipografia de Sistema

Whatsbi Core
Inter / UI & Data Visualization
system_worker_v3.bin
JetBrains Mono / Tech Context

Modais Brutalistas

  • Borda: border-2 (Zinc/Slate)
  • Radius: rounded-[2px] (Sharp Edges)
  • Header: bg-slate-900 com texto branco
  • Blur: backdrop-blur-sm no 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

WhatsApp
Instagram
Facebook
CSV / Import

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.

Modelo BYO Cliente usa conta e billing próprios. Whatsbi não toca no faturamento.
Diferencial Compliance, Auditoria e Zero Markup.
Infra Deep Search WABA Discovery.

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

AuthMiddleware

Intercepta requisições. Se o header Accept: application/json estiver presente, retorna erro 401 JSON. Caso contrário, redireciona para HTML de login.

CompanyGuard

Middleware global que verifica se a empresa está Bloqueada (inadimplência ou banimento) antes de carregar qualquer controller.

Webhook Bypass

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.

Security Hardening (2FA)

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.

Padrão PHPMailer (Bypass de SSL Local)

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.

Dashboard & Auth

Sistema multi-tenant com autenticação segura (2FA), recuperação de senha e visão geral de métricas em tempo real.

Gestão de Contatos

Importação inteligente via CSV, correção de timezones (BR), deduplicação (Silent Merge) e normalização E164.

LGPD & Compliance

Anonimização atômica "Direito ao Esquecimento", logs de auditoria imutáveis e controle de consentimento (Opt-out).

Flow Builder (No-Code)

Construtor visual de fluxos com suporte a variáveis, data collection, triggers de palavra-chave e simulador ao vivo.

Motor de Campanhas

Disparo em massa de alta performance via Staging/Worker, suporte a mídias dinâmicas e arquivamento inteligente.

Live Chat Ecosystem

Ferramenta centralizada com tags, encaminhamento modal e modo efémero de arquivos para privacidade total.

Engenharia Agêntica (AI)

Infraestrutura interna (.agent) com orquestração de especialistas para manutenção autônoma, segurança e evolução do código.

SaaS & Billing

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_e164 durante 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_case automá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.

Smart Examples Geração automática de exemplos para variáveis ({{1}}) em Corpo, Cabeçalho e Botões. Evita rejeição "Invalid Format" da Meta.
Sync Deletion Ao excluir um template no Whatsbi, ele é automaticamente removido da conta Meta via API Graph.
Compliance Shield Auditoria prévia de termos proibidos. Permite "Override" (aceite de risco) com registro jurídico imutável.

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: no variable_mapping. O CampaignService identifica 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

📱 Instagram
  • • Mensagens (DM)
  • • Interações (Comentário, Story)
  • • Menções em Stories
💬 WhatsApp
  • • 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 o department_id selecionado e altera o status para open.
  • Button Routing Fix: Implementação de normalização de prefixos (btn_ vs btn_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_read para 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.

# Configuração Crontab (03:00 AM)
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_id para 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.

Sistema Online