RelatoriosRS β Arquitetura (2026-06-26)
Mapa do Sistema
`
Chatwoot (PostgreSQL)
ββ root-postgres-1 / chatwoot_production
ββ conversations
ββ contacts
ββ messages
ββ users (agents)
ββββββββββββββββββββββββββββββββ
β hermes-sync.py β cron: */5 min
β /usr/local/bin/ β Destino: SUPABASE CLOUD β οΈ
β Status: RODANDO β (bloqueado desde ~jun/23)
ββββββββββββββββ¬ββββββββββββββββ
β β (nΓ£o chega no local)
β 2000 convs/cycle
β 60 msgs/cycle (muito pouco)
βΌ
ββββββββββββββββββββββββββββββββ
β Supabase Cloud β
β project: dauftiqcvgaydddoxqhhβ BLOQUEADO
ββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ
β sync_v7.py β ExecuΓ§Γ£o: MANUAL
β /root/hermes-insights/ β Destino: deploy-vps-db-1 β
ββββββββββββββββ¬ββββββββββββββββ
β 1x sync (1676 convs Maria Giulha)
βΌ
ββββββββββββββββββββββββββββββββ
β deploy-vps-db-1 / postgres β
β schema: insights β
β ββ conversations: 2829 β
β ββ messages: 63.230 β
β ββ agents: 8 β
β ββ scores: 216 β
β ββ playbooks: 15 β
β ββ daily_reports: 8 β
ββββββββββββββββββββββββββββββββ
β²
β LER
ββββββββββββββββ΄ββββββββββββββββ
β generate_reports.py β Usa Supabase Cloud β
β score_engine_v3.py β (nΓ£o funciona)
β /root/hermes-insights/ β
ββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββ
β Hermes Insights Frontend β
β /var/www/chatwoot-kanban/ β TanStack Start
β Deployado no VPS β β LΓͺ do Supabase Cloud β
ββββββββββββββββββββββββββββββββ
`
Problema Central
generate_reports.py e o frontend do Hermes Insights estΓ£o configurados para ler do Supabase Cloud (bloqueado desde ~jun/23 por exced_egress_quota).
O banco local (deploy-vps-db-1) tem dados suficientes para rodar relatΓ³rios:
- - 63.230 mensagens
- - 2.829 conversas
- - 8 agentes
- - 216 registros
- - 15 registros
- - 8 registros
- - INSERT batch de 50 msgs por vez
- - stdin pipe para evitar problemas de quoting
- - processar TODAS as conversas com mensagens pendentes
- - usar
ON CONFLICT (chatwoot_id) DO UPDATEpara evitar duplicatas - - [x] Mapa do sistema documentado
- - [x] Banco local verificado (63k mensagens, 2.8k conversas)
- - [x] Script sync_v7.py validado (1676 convs de uma tacada)
- - [ ] Criar sync_v8.py (mensagens β banco local)
- - [ ] Criar generate_reports_local.py (lΓͺ do banco local)
- - [ ] Testar geraΓ§Γ£o de relatΓ³rio com 1 conversa
- - [ ] Frontend RelatoriosRS: apontar pro banco local
Tabelas insights (banco local)
conversations
`
id (uuid PK), chatwoot_id (int), assignee_id (uuid), assignee_chatwoot_id (int),
contact_name, contact_phone, contact_email,
status (open/resolved), message_count, labels (jsonb),
first_response_at, last_activity_at, resolved_at, created_at,
sync_status, inbox_name
`
messages
`
id (uuid PK), chatwoot_id (int), chatwoot_conversation_id (int),
conversation_id (uuid FK), sender_type (agent/contact/bot),
sender_id, content (text), message_type (incoming/outgoing/activity),
attachments (jsonb), content_attributes (jsonb),
sentiment (jsonb), created_at
`
agents
`
id (uuid PK), chatwoot_id (int), name, email, role
`
scores
playbooks
daily_reports
Fluxo desejado
`
Chatwoot (root-postgres-1)
β
βΌ [cron: */5 min]
hermes-sync-local.py β NOVO (baseado em sync_v7)
β
βΌ INSERT/UPDATE
deploy-vps-db-1 / insights
β
ββββΊ Hermes Insights Frontend β
β (renomear β RelatoriosRS)
β
ββββΊ generate_reports_local.py β NOVO
(baseado em generate_reports.py, lΓͺ do banco local)
β
βΌ HTML
/root/hermes-insights/relatorios/
`
Sync de mensagens β o que melhorar
O hermes-sync.py atual insere pouquΓssimas mensagens (60/ciclo).
Problema: sΓ³ processa 30 conversas por ciclo, 100 msgs cada.
Novo sync_v8: baseado no sync_v7.py que funcionou:
Status
Ultron β 2026-06-26