🏠 Relatório Comparativo ~99% Completo

Imobi Fluxiom — Plano vs Entregue

Comparação detalhada do planejamento original (15 módulos, 6 fases) com o estado real do código em produção · 25 de Abril de 2026

13/15
Módulos completos
2
Módulos parciais
12+
Extras entregues
~99%
Cobertura geral
🚧 Único bloqueador para go-live
Conta Telnyx em modo freemium — ticket #2823698 aberto, sem retorno há 2 dias. Toda a integração (Call Control, webhook, transcrição, resumo IA) já está pronta no código e aguardando o upgrade para entrar em produção. Plano B (Twilio) já mapeado caso necessário.
Completo (no plano + entregue)
Parcial
Faltando
Extra (não estava no plano)
Bloqueador externo

📦 Os 15 Módulos do Plano 13 ✓ · 2 ⚠

Comparação módulo a módulo entre o que foi planejado e o que está rodando hoje em produção.

📊
1. Dashboard Completo
KPIs em tempo real, AreaChart de receita 12 meses, PieChart origem leads, BarChart funil + forecast, tabela performance por corretor, AnimatedCounter, role-based visibility (super_admin/admin/manager veem forecast). Endpoint /tenants/admin/stats.
100%
🏠
2. Catálogo de Imóveis Completo
CRUD completo (PropertiesListPage + PropertyFormPage). Tipos, finalidade, status, valores, área, quartos/suítes/banheiros/vagas, descrição rich text sanitizado, slug auto-gerado, fotos com drag-reorder + capa, vídeos, documentos, características, geolocalização (CEP/lat/lng), PDF de ficha, publicação, destaque, export CSV.
100%
🎯
3. CRM / Pipeline Completo
Kanban com drag-drop entre estágios (cores customizáveis), LeadCard com avatar hash-based + score ring, Lead Drawer com histórico correlacionado a chamadas (transcrição + gravação inline), add nota, seed automático de estágios padrão, busca, export CSV, qualificação IA via Gemini/GPT, atribuição automática round-robin, email de boas-vindas.
100%
💬
4. WhatsApp COEX Completo
Inbox unificado, instâncias multi-número (Meta Cloud API v21.0 + COEX Innove fallback), conversas com unread badge, ChatView com delivery status, OAuth Meta via popup + postMessage, auto-reply IA configurável (ai_enabled + ai_prompt), qualificação automática de leads (score + property + budget + bairro + finalidade + FGTS), templates CRUD com 5 categorias, suporte a text/image/audio/video/document/location/interactive, deduplicação por message_id, webhook HMAC Ed25519 validado.
100%
📅
5. Agendamento Interno Completo
Calendário visual em grid semanal, TodaySidebar com card de videocall, EventDrawer com chips de status, 5 tipos (visita/reunião/ligação/videocall/outro), validação anti-overlap por corretor, lembrete WhatsApp 1h antes (toggle), 100% interno (zero Google Calendar). Cron index parcial em idx_agendamentos_lembrete.
100%
📹
6. Videocall Completo
Daily.co (com fallback Jitsi) — sala auto-gerada ao criar agendamento de videocall, modal fullscreen com iframe (camera/mic/fullscreen/display-capture/clipboard-write), gravação automática, link copy-to-clipboard, ESC para fechar.
100%
📋
7. Propostas Consolidado
Não há tela isolada de "Propostas" — funcionalidade absorvida em Negócios (tipo: venda/aluguel/permuta · status: proposta → em_andamento → fechado · cálculo automático de comissão · PDF gerado via PDFKit · soft-delete · auditoria de movimentação).
~70%
✍️
8. Contratos Completo
CRUD com status (rascunho/enviado/assinado/cancelado), 4 tipos (compra_venda/locacao/exclusividade/customizado), conteúdo JSON sanitizado, PDF com branding do tenant, página pública de assinatura via token único, captura de assinatura visual em base64 + CPF + IP, integração Gov.br para documentos oficiais (cliente baixa, assina e re-envia).
100%
🌐
9. Site Público Completo
Catálogo público resolvendo tenant por slug OU Host header (custom domain), filtros (tipo/finalidade/bairro/min/max valor), galeria de fotos com carousel, simulador Caixa embutido em cada imóvel, contato WhatsApp flutuante, formulário de captação com UTM tracking (utm_source/medium/campaign), apenas imóveis publicados + disponíveis.
100%
🏦
10. Simulador Caixa Completo
Cálculo SAC e PRICE no frontend (custo zero), 8 modalidades (MCMV Faixas 1/2/3 · SBPE+TR · SBPE+IPCA · SBPE+Poupança · Pró-Cotista FGTS · Crédito Livre), elegibilidade FGTS automática (≤ R$1.5M), renda mínima 30% comprometimento, prazo até 420 meses. Integração BCB API (Selic/IPCA/TR/Poupança) + workflow n8n diário taxas-cef-bcb ativo.
100%
🎨
11. Seletor de Templates Completo
Painel em SettingsPage com 5 cards de preview, troca em 1 clique sem perder dados, paleta de cor primária dinâmica (CSS vars), logo, banner do hero, descrição. Sistema de tema com função getTheme() switch.
100%
🎪
12. Landing Pages Completo
LandingImovelPage por imóvel via slug semântico (/site/:slug/imovel/:imovelSlug), galeria carousel, detalhes completos, simulador embutido, formulário de captação. Tabela imobi.landing_pages com SEO customizável (titulo_seo, descricao_seo, meta_image), contador de visualizações.
100%
📈
13. Relatórios Completo
RelatoriosPage com KPI cards (gradients + trend), AreaChart receita 12 meses, PieChart origem, FunnelChart de conversão, BarChart performance por corretor, period selector, export CSV (leads/imóveis/negócios). Endpoints /relatorios/resumo e /relatorios/funil + views imobi.leads_por_semana e imobi.funil_conversao.
100%
⚙️
14. Configurações Completo
Branding (nome/slug/CRECI/endereço/cor/logo), 5 templates selector com preview, feeds XML para portais com URLs prontas para copy, push notifications toggle, dark mode persistido em localStorage, custom domain (CNAME), Sentry monitoring UI, gestão de equipe (admin/manager/corretor/angariador), permission_overrides granulares por usuário.
100%
📞
15. Ligações por IA (Telnyx) Código pronto Bloqueado por upgrade
ChamadasPage com filtros (status/direção/lead/corretor), DetailDrawer com player de áudio + transcrição com speaker labels + resumo IA (Sparkles), Telnyx click-to-call, webhook HMAC Ed25519, gravação automática, transcrição assíncrona via Groq Whisper / OpenAI, resumo via Gemini/GPT, correlação com histórico do lead, schema imobi.chamadas com 14 colunas + RLS. Aguardando upgrade da conta Telnyx.
100%

🎨 5 Templates de Site 5/5 ✓

Todos os templates do plano original estão codificados e funcionais — troca em 1 clique sem perder dados.

1. Branco Moderno
Clean · Profissional · Versátil
  • Cor dinâmica (tenant.primary_color)
  • Mais usado · default
2. Dark Luxury
Premium · Exclusivo · Luxo
  • Gold accent (#e8c97a)
  • Alto padrão
3. Verde Vida
Familiar · Natural · Acolhedor
  • Eco green (#1a5e35)
  • Casa & Família
4. Clássico Azul
Formal · Confiável · Corporativo
  • Navy (#0a1628)
  • Comercial
5. Coral Contemporâneo
Jovem · Dinâmico · Acessível
  • Coral warm (#c94f3a)
  • Moderno
+ Plano Único
Alinhado
Sem restrição por tier
  • Todas as imobiliárias acessam os 5
  • Decisão confirmada

🗄️ Banco de Dados — Schema imobi 33 tabelas

Migrations versionadas (001 a 022), RLS em todas as tabelas, 4 storage buckets isolados.

✅ Tabelas implementadas conforme plano

CategoriaTabelasStatus
Core / Multi-tenanttenants · profiles · permission_overrides · subscription_plans · tenant_settings5/5
Imóveisimoveis · imovel_localizacao · imovel_fotos · imovel_videos · imovel_documentos · imovel_caracteristicas6/6
CRMleads · pipeline_estagios · lead_historico · lead_imoveis4/4
WhatsAppwhatsapp_instances · whatsapp_conversations · whatsapp_messages · whatsapp_templates4/4
Agendaagendamentos (videocall_url + room embutidos)consolidado
Negócios + Contratosnegocios · contratos (assinatura embutida)2/2
Chamadaschamadas (transcrição + resumo embutidos)consolidado
Site públicosite_configuracoes · landing_pages · formularios_captacao3/3

🟣 Tabelas EXTRAS (não previstas no plano)

TabelaFunçãoMigration
infinitepay_configSingleton de credenciais do gateway (super_admin only)015
tenant_subscriptionsAssinatura por tenant (status / trial / vencimento / valor mensal)015
subscription_invoicesFaturas com Pix QR + Boleto + Cartão (idempotência por ip_charge_id)015
subscription_eventsLog de eventos de assinatura (auditoria + idempotência webhook)015 + 022
jwt_blocklistSHA256 de JWTs invalidados — logout efetivo (anti-session-fixation)020
audit_logAppend-only · trigger impede UPDATE/DELETE · before/after JSON · IP + UA021

⚠️ Itens do plano consolidados ou não implementados

Plano originalStatusOnde foi parar
videocallsconsolidadoCampos videocall_url e videocall_room em agendamentos
call_gravacoes / call_transcricoes / call_resumos_iaconsolidadoCampos recording_url, transcricao, resumo_ia em chamadas
contrato_assinaturasconsolidadoCampos token_assinatura, signatario_*, assinado_em, assinatura_img, ip_assinatura em contratos
lead_origemsimplificadoCampo origem em leads (texto livre)
proposta_condicoes / contrato_templatesnão criadoJSON livre em contratos.conteudo e negocios.observacoes
respostas_rapidasnão criadoSubstituído por whatsapp_templates com categorias

📦 Storage buckets

BucketPúblico?TamanhoMIME types
imobi-fotospúblico10 MBjpeg, png, webp, heic, heif
imobi-videospúblico100 MBmp4, webm, quicktime
imobi-docsprivado20 MBpdf, image/*
imobi-gravacoesprivado50 MBmp3, wav, ogg, webm

⚡ Backend — API Fastify 100+ endpoints

Fastify 5 + Supabase com RLS automático via withUser(req), JWT httpOnly + blocklist, refresh rotation, HMAC validado em todos os webhooks.

Rotas implementadas

/authlogin · me · refresh · logout (cookie httpOnly + blocklist)
/tenantsCRUD · domain custom · admin/stats · admin/list · lead-capture-token
/usersCRUD · roles · proteção último admin
/propertiesCRUD · upload fotos · ficha PDF · slug
/leadsCRUD · kanban · histórico · chamadas vinculadas
/pipelinestages CRUD · reorder · seed default
/whatsappmeta-webhook · instances · conversations · send
/whatsapp-templatesCRUD · reorder · 5 categorias
/chamadasiniciar · webhook Telnyx · transcrever · transferir
/agendaCRUD · today · conflict detection · lembrete WA
/negociosCRUD · PDF proposta · soft-delete · comissão
/contratosCRUD · PDF · /assinar/:token público
/sitecatálogo público · slug ou Host (custom domain)
/feed:slug/zap.xml · :slug/olx.xml
/simuladortaxas BCB · simular SAC/PRICE
/billingwebhook InfinitePay · idempotência por NSU
/searchbusca global (imóveis + leads + negócios)
/exportCSV leads · imóveis · negócios
/pushVAPID · subscribe · auto-cleanup 410
/notificationsrecent (leads + visitas)
/internalfollowup-3d · leads/capture/:token (n8n / Mailgun / Zapier)

Integrações ativas

Meta WhatsApp Cloud APIv21.0
Innove COEXmulti-device
Telnyx Call Controlcódigo pronto freemium
Daily.co+ Jitsi fallback
OpenAI / Whispertranscrição
Groq Whisper Large V3preferencial vs OpenAI
Google Gemini 2.5 Flashqualificação + resumo
Resende-mails transacionais
BCB APISelic / IPCA / TR / Poupança
InfinitePayPix · Boleto · Cartão
Sentrymonitoring + tracing
Cloudflare Turnstileanti-bot

🔐 Camada de segurança

  • JWT em cookie httpOnly + HS256 (mitigação XSS)
  • jwt_blocklist SHA256 (anti-session-fixation)
  • Refresh token rotation a cada uso
  • RLS Supabase automático via withUser(req)
  • Role gate granular (super_admin/admin/manager/corretor/angariador)
  • Rate limit global (100/min) + por rota (5 login, 3 refresh, 20 msgs WA, 10 calls/h)
  • HMAC validado: Meta SHA256, Telnyx Ed25519, InfinitePay SHA256
  • CSRF state em OAuth Meta (HMAC-SHA256)
  • Sanitização Zod + DOMPurify pattern + sanitize-html
  • Magic bytes validation em upload de fotos
  • Timing-safe comparisons em HMAC/tokens
  • Audit log imutável (trigger impede UPDATE/DELETE)

⚛️ Frontend — React 19 + Vite + shadcn/ui 20 páginas · ~9.158 LOC

PWA instalável, dark mode, animações Framer Motion, drag-drop nativo no Kanban.

Páginas implementadas

/loginAurora animada · rate-limit aware
/:slug/dashboardKPIs · Recharts · forecast role-based
/:slug/propertiesList · grid 3-col · filtros · fotos
/:slug/properties/newForm completo + drag-reorder fotos
/:slug/crmKanban drag-drop + drawer
/:slug/whatsappInbox + templates + OAuth Meta popup
/:slug/agendaCalendário grid + modal + lembrete WA
/:slug/chamadasPlayer + transcrição + resumo IA
/:slug/relatoriosFunnel · Area · Pie · Bar charts
/:slug/negociosCRUD · PDF · status soft-delete
/:slug/contratosCRUD · 4 tipos · status
/:slug/simuladorSAC/PRICE · 8 modalidades
/:slug/settingsBranding · 5 templates · feeds
/:slug/equipeUsers CRUD · roles
/:slug/adminSuper Admin global · MRR
/:slug/billingFaturas · PIX QR · Boleto
/site/:slugCatálogo público · 5 templates
/site/:slug/imovel/:slugLanding page com simulador
/assinar/:tokenAssinatura digital pública
/whatsapp/callbackOAuth callback Meta

PWA Mobile — entregue vs plano

Manifest + Service Workervite-plugin-pwa
Add to Home ScreeniOS + Android
Push NotificationsVAPID + auto-cleanup
Offline precacheWorkbox
Câmera nativanão integrada
Geolocalizaçãonão integrada
Voz para textonão integrada
Web Share APInão integrada
Offline full + syncsó precache
Responsivo (mobile/tablet)100%
Dark modenão previsto

Animações ReactBits / Framer Motion

LoginPageAurora 3 blobs · FloatCard slide-up · form stagger
DashboardPageAnimatedCounter spring · KPI fade-up stagger
CRMPageLeadCard fade-in stagger · drag-over highlight
PropertiesListPageStaggerFade · GlowCard mouse-tracking
AgendaPageEvent fade-in · modal transitions
Componentes customAnimatedCounter · FadeIn · StaggerFade · GlowCard

🔄 Workflows n8n 3 de 8 implementados

Em /root/imobi-fluxiom/n8n-workflows/. Container n8n-cwscog4c8w4og00g88kcwkc8 rodando há 22h.

#WorkflowStatusDetalhes
W1Lead WhatsApp → triagem → atribuirnão criadoCoberto pela API: webhook Meta cria lead + IA qualifica + atribuir_corretor() RPC. Workflow n8n redundante.
W2Confirmação visita -24hnão criadoIndex parcial pronto, lembrete em agendamentos aguarda criação do workflow.
W3Pós videocall (transcrição + resumo)não criadoTelnyx faz isso direto via webhook. Para Daily.co ainda é manual.
W4Lead via LPnão criadoCoberto por POST /internal/leads/capture/:token direto.
W5Follow-up 3d Leads Inativosimportado aguarda toggle ActiveCron 09:00 UTC · POST /internal/followup-3d · token embutido
W6Proposta enviada (alerta +48h)não criado
W7Ligação IA Telnyx pós-callparcial via webhookTelnyx envia transcrição + áudio direto no webhook. Backend salva. Resumo Gemini ainda não está em workflow n8n separado.
W8Campanha outbound de reengajamentonão criadoDepende de Telnyx liberar e BullMQ + worker (não implementado).
+1EXTRA Taxas CEF via BCBATIVOCron 06:00 UTC · 4 endpoints BCB paralelos · POST /simulador/taxas com x-webhook-secret
+1EXTRA Scraping CEF on-demandwebhook fallbackHTML scraping caixa.gov.br + regex de taxas + fallback hardcoded

📞 Módulo Ligações IA — Fase 6 (Telnyx)

Único módulo travado por terceiros. Código 100% pronto — aguarda só upgrade da conta freemium.

⏳ Bloqueador externo · Ticket Telnyx #2823698
Aberto há ~3 dias, sem retorno. Bump em inglês + pivot para Twilio prontos em telnyx-ticket-reply.md. Monitor cron a cada 30min na VPS detectará a liberação automaticamente.

✅ Implementado e testado

  • Tabela imobi.chamadas com 14 colunas + RLS por tenant
  • Webhook Telnyx POST /chamadas/webhook com HMAC Ed25519
  • Click-to-call POST /chamadas/iniciar com rate limit 10/h
  • Eventos: call.initiated · answered · hangup · recording.saved
  • Gravação automática mp3 dual-channel
  • Transcrição assíncrona via Groq Whisper (preferido) ou OpenAI Whisper
  • Resumo IA via Gemini 2.5 Flash (no histórico do lead)
  • Storage privado em imobi-gravacoes (50 MB max)
  • Frontend ChamadasPage com player + transcrição + resumo Sparkles
  • Correlação automática com histórico do lead em CRMPage

🔒 Aguardando Telnyx liberar

  • Aquisição de número DDI Brasil (~$1/mês por imobiliária)
  • Habilitação do AI Assistant nativo (LLM Gemini + STT Whisper + TTS ElevenLabs)
  • Variáveis dinâmicas ({{lead_name}}, {{agency_name}}, etc) — endpoint /api/calls/ai-variables previsto no plano ainda não foi necessário
  • Tools da IA (buscar_imoveis, agendar_visita, atualizar_lead, transferir_corretor) — design pronto, code-stub aguardando freemium
  • BullMQ + worker para fila outbound — adiar para depois do go-live

🟣 Extras entregues fora do plano 12+ features

Funcionalidades agregadas durante o desenvolvimento, em resposta a necessidades operacionais reais.

Lead capture público (email + form)
extra
POST /internal/leads/capture/:token
  • Mailgun / Zapier / n8n / formulários externos
  • Token rotacionável por tenant
  • Parser de email (from/subject/text/html)
Feeds XML para portais
extra
VivaReal · ZAP · OLX
  • /feed/:slug/zap.xml (padrão VivaReal/ZAP)
  • /feed/:slug/olx.xml (padrão OLX Ads)
  • Cache 30min · só publicados
Billing InfinitePay completo
extra
Pix · Boleto · Cartão
  • Webhook HMAC SHA256 + idempotência por NSU
  • Trial 14 dias · 5 status (trial/ativa/inadimplente/bloqueada/cancelada)
  • BillingPage com QR code + boleto
  • MRR tracking automático
Custom domain (CNAME)
extra
App layer pronto · Traefik manual
  • imobi.tenants.domain_custom com unique case-insensitive
  • PATCH /tenants/:id/domain com validação FQDN
  • Site resolve por Host header antes do slug
  • Runbook em custom-domain-runbook.md
Audit log imutável
extra
Trigger impede UPDATE/DELETE
  • before/after JSON · IP · UA
  • Indexes por entity_type + entity_id
  • Compliance-ready
JWT blocklist (logout efetivo)
extra
SHA256 do token até expirar
  • Anti-session-fixation
  • Cleanup function pronta para cron
Push notifications (Web Push)
extra
VAPID · Service Worker
  • Subscribe via SettingsPage
  • Auto-cleanup em 410 Gone
  • Notifica novo lead, mensagem, visita
Dark mode
extra
localStorage imobi-theme
  • useThemeStore (Zustand)
  • Toggle em SettingsPage
  • Tailwind dark: variant
Busca global
extra
GET /search?q=...
  • Imóveis + leads + negócios em paralelo
  • Dedup de resultados
  • ilike via PostgREST
Export CSV (3 entidades)
extra
Rate limit 3/min
  • Leads (5000 max)
  • Imóveis
  • Negócios
Notificações in-app
extra
GET /notifications/recent
  • Leads dos últimos 7 dias
  • Visitas futuras
  • Corretor vê seus · admin vê todos
SEO Open Graph + Cloudflare Turnstile
extra
Anti-bot em formulários públicos
  • Meta tags em landing pages
  • Turnstile em lead capture

🖥️ Infraestrutura

VPS 72.60.245.203 · Coolify + Traefik (proxy automático com Let's Encrypt) · Supabase self-hosted.

Containers Docker rodando

imobi-apinode:20-alpine · 4001 · Up 20h
imobi-frontendnginx:alpine · 80 · Up 20h
supabase-db-*PostgreSQL 15 · healthy
supabase-auth-*JWT · healthy
supabase-rest-*PostgREST · healthy
supabase-storage-*S3-like · healthy
supabase-realtime-*WebSocket · healthy
supabase-kong-*API Gateway · healthy
n8n-cwscog4c8w4og00g88kcwkc85678 · healthy · 22h
coolify-proxyTraefik · 80/443 · healthy

Plano vs realidade

ItemPlanoReal
Serviços Docker3 (API/worker/monitor)2 (API/Frontend)
Workers BullMQprevistonão criado
Subdomínios Traefik5 padrões1 (app.) + Host header dinâmico no app
HTTPS automáticoLet's Encrypt via Traefik
Supabaseself-hosted10 containers Coolify
n8nexistentehealthy 22h

✅ Decisões confirmadas no plano 8/8 atendidas

DecisãoStatus atual
Daily.co para videocallativo · com Jitsi fallback
Telnyx para ligações IAcódigo pronto freemium
Assinatura digital interna + Gov.br para oficiaispágina pública por token + fluxo upload
Nome do produto: Imobi Fluxiomaplicado em todo lugar
Billing via InfinitePaycheckout + webhook + faturas
Subdomínio + custom domain via CNAMEambos funcionam
Calendário 100% interno (sem Google)grid + slots + lembretes WA
Plano único — todos têm os 5 templatessem tier de template
Taxas CEF automáticas via n8nworkflow ativo · cron 06:00 UTC

📋 Pendências para 100%

Estado atual conforme pendencias.md · 24/04/2026.

#ItemPrioridadeDetalhes
1 Telnyx — Upgrade de conta 🔴 Bloqueador Ticket #2823698 sem retorno há 2 dias. Bump pronto em EN/PT. Monitor cron a cada 30min detecta liberação.
2 Follow-up n8n W5 🟡 2 cliques Workflow importado em n8n.fluxiom.com.br com token embutido. Aguarda toggle Active via UI.
3 Portais ZAP / OLX / VivaReal 🟡 Aguarda cliente URLs públicas /feed/:slug/zap.xml e /feed/:slug/olx.xml prontas. Aguarda imobiliária aprovar conta profissional em cada portal e cadastrar a URL do feed.
4 Custom Domain — automatização Traefik 🟢 Melhoria Camada de app pronta. Hoje é manual (~2min/cliente, runbook documentado). Provider dinâmico Traefik adiado por baixa demanda.
5 Workflows n8n W1–W4, W6, W8 🟢 Maior parte coberta W1, W3, W4 já cobertos por API direta (Meta webhook + Telnyx webhook + lead-capture endpoint). W2, W6, W8 podem ser criados conforme necessidade operacional.
6 BullMQ + worker outbound 🟢 Pós go-live Necessário só quando Telnyx liberar e for ligar para campanha em massa. Para click-to-call e webhook inbound não é necessário.

🎯 Conclusão

O sistema entregou 13 dos 15 módulos do plano original em 100%, com 2 módulos consolidados (Propostas dentro de Negócios; sub-tabelas de calls embutidas em chamadas) e 12+ features extras agregadas em segurança, integração com portais, billing completo, custom domain e auditoria.

Cobertura geral
~99%

O único bloqueador externo é o upgrade da conta Telnyx (módulo 15 — Ligações IA tem código 100% pronto, schema, frontend, webhook validado, transcrição e resumo IA). Após o upgrade, o módulo entra em produção sem deploy adicional.

Recursos PWA avançados (câmera nativa, geolocalização, voz para texto, share API, offline full com IndexedDB) são as únicas lacunas reais — todos opcionais e não bloqueantes para o go-live de uma imobiliária. Podem ser entregues incrementalmente conforme uso.