RelatoriosRS — TOOLS
> Scripts operacionais do RelatoriosRS.
Scripts em Produção
sync_full_clean.py ⭐ OFICIAL
Caminho: /root/hermes-insights/sync_full_clean.py
O que faz: Synca TODAS as conversas do Chatwoot → insights.conversations
Uso:
`bash
python3 /root/hermes-insights/sync_full_clean.py
`
Características:
- - stdin pipe (sem shell quoting)
- - Tab delimiter (
-F "\t") - - Batch 50 rows
- - Wipe + resync completo (sem duplicatas)
- - Constraint UNIQUE em
chatwoot_id
Tempo estimado: ~3-5 minutos
sync_v7.py
Caminho: /root/hermes-insights/sync_v7.py
O que faz: Sync por agente (só conversas com assignee)
Uso: Não usar — substituído pelo sync_full_clean.py
Scripts de Mensagens (Pendentes)
sync_v8.py
Caminho: /tmp/sync_v8.py
O que faz: Captura mensagens do Chatwoot → insights.messages
Estado: Criado mas não validado em produção
Próximo passo: Testar com batches pequenos antes de rodar completo
Scripts de Debug
inspect_messages.py
Caminho: /tmp/inspect_messages.py
O que faz: Mostra schema e samples da tabela messages do Chatwoot
Uso:
`bash
python3 /tmp/inspect_messages.py
`
Como Rodar em Produção
1. Sync de Conversas (completo)
`bash
python3 /root/hermes-insights/sync_full_clean.py
`
2. Verificar contagens
`bash
docker exec deploy-vps-db-1 psql -U postgres -d postgres -t -c "SELECT COUNT(*) FROM insights.conversations;"
docker exec deploy-vps-db-1 psql -U postgres -d postgres -t -c "SELECT COUNT(*) FROM insights.messages;"
`
3. Ver distribuição por agente
`bash
docker exec deploy-vps-db-1 psql -U postgres -d postgres -t -c "
SELECT COALESCE(a.name, '(sem agente)'), COUNT(*)
FROM insights.conversations c
LEFT JOIN insights.agents a ON a.chatwoot_id = c.assignee_chatwoot_id
GROUP BY a.name ORDER BY COUNT(*) DESC;
"
`
Troubleshooting
"permission denied" ou conexão recusada
Verificar se container está rodando:
`bash
docker ps | grep deploy-vps-db-1
docker ps | grep root-postgres-1
`
Sync trava / timeout
VPS pode estar lento. Scripts usam timeout local mas podem precisar de mais tempo:
`python
proc = subprocess.Popen(..., stdin=PIPE, stdout=PIPE, stderr=PIPE)
out, err = proc.communicate(timeout=120) # aumentar se necessário
`
Atualizado: 2026-06-26