| Controle | Estado atual |
|---|---|
| Processos sem vinculo inequivoco de cliente | 94 |
| Casos com task ADVBOX aberta e deadline vencida | 6 |
| Workflow diario | [CRON] trsadv-report-readiness ativo no n8n |
| Regra de envio | somente APROVADO_PARA_ENVIO; um unico processo bloqueado impede o relatorio inteiro |
| Recurso | Uso |
|---|---|
| Disco / | 51G / 96G (53%) |
| Memoria | 3.8Gi / 7.8Gi |
| Load average | 32.14, 7.90, 3.35 |
| Nome | Imagem | Status | Portas |
|---|---|---|---|
| chatwoot-rails-1 | chatwoot/chatwoot:latest | Up 13 hours | 127.0.0.1:3000->3000/tcp |
| chatwoot-sidekiq-1 | chatwoot/chatwoot:latest | Up 13 hours | 3000/tcp |
| chatwoot-postgres-1 | pgvector/pgvector:pg16 | Up 13 hours | 5432/tcp |
| chatwoot-redis-1 | redis:7-alpine | Up 13 hours | 6379/tcp |
| evolution-api | evoapicloud/evolution-api:v2.3.7 | Up 13 hours | 127.0.0.1:8080->8080/tcp |
| evolution-redis | redis:7-alpine | Up 40 hours | 6379/tcp |
| n8n | docker.n8n.io/n8nio/n8n:2.26.4 | Up 3 days | 5678/tcp |
| caddy | caddy:2-alpine | Up 3 weeks | 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:443->443/udp, [::]:443->443/udp, 2019/tcp |
| uptime-kuma | louislam/uptime-kuma:1 | Up 3 weeks (healthy) | 127.0.0.1:3001->3001/tcp |
| n8n-postgres | postgres:16-alpine | Up 3 weeks (healthy) | 5432/tcp |
n8n: 2.26.4 · caddy: v2.11.4
| Service | Status |
|---|---|
| trsadv-api-contratos.service | active |
| trsadv-copiloto.service | active |
| trsadv-graph-webhook.service | active |
| trsadv-onboarding.service | active |
| trsadv-orchestrator.service | active |
| trsadv-token-warm.service | active |
| trsadv-vitoria.service | active |
| trsadv-webhook-advbox.service | active |
| trsadv-wf17.service | active |
| trsadv-wf50.service | active |
13 de 15 monitores HTTP verificando a cada 60s. Notificacao Telegram ATIVA · Dashboard publico de saude · todos os 5 apps Python tem rota /__health JSON (bot @trs_uptime_alerts_bot -> Dr. Tiago). Acesso tecnico ao Kuma: ssh -L 3001:127.0.0.1:3001 trs-vps -N -> http://localhost:3001
@trs_assets path /assets/*.html /assets/*.json /assets/*.txt /assets/*.pdf /assets/*.png /assets/*.jpg /assets/*.jpeg /assets/*.webp /assets/*.ico /assets/public/*
handle @trs_assets {
handle /webhook/asaas/* {
reverse_proxy 172.18.0.1:8766
handle /webhook/d4sign/* {
reverse_proxy 172.18.0.1:8765
handle /webhook/meta-comando-ot79vpOu* {
reverse_proxy n8n:5678
handle /__clear-cache {
handle /status* {
reverse_proxy uptime-kuma:3001
handle /upload/* {
reverse_proxy uptime-kuma:3001
handle /api/badge/* {
reverse_proxy uptime-kuma:3001
handle /metrics {
reverse_proxy uptime-kuma:3001
handle /api/push/* {
reverse_proxy uptime-kuma:3001
handle {
reverse_proxy n8n:5678
handle_path /chatwoot-orchestrator/* {
reverse_proxy 172.16.0.1:8892
handle /api/teses* {
reverse_proxy 172.16.0.1:8892
handle /api/enderecos* {
reverse_proxy 172.16.0.1:8892
handle /api/validar-peca* {
reverse_proxy 172.16.0.1:8892
handle /api/prazo* {
reverse_proxy 172.16.0.1:8892
handle /api/aferir-tempestividade* {
reverse_proxy 172.16.0.1:8892
handle /api/gerar-peca* {
reverse_proxy 172.16.0.1:8892
handle /paste-resend {
handle /save-resend-key* {
reverse_proxy 172.16.0.1:8891
handle /save-digisac-contacts* {
reverse_proxy 172.18.0.1:8896
| # | Pendencia | Dono |
|---|---|---|
| A1 | DMARC ausente — criar TXT _dmarc (M365 DNS, comecar p=none) | Dr. Tiago |
| A2 | DKIM nao habilitado — Defender M365 (security.microsoft.com) | Dr. Tiago |
| B1 | Validacao live-run Meta 01/03 — automatico 13:45 SP 02/07 (email resumo) | automatico |
| C1 | Decidir update n8n 2.26.4 -> versao nova (pinado, risco) | Dr. Tiago |
| D1 | Limpar ~10 backups dev RPA selenium_a1.py.bak-codex-* | Claude |
| D2 | trs_gasto_ias so 4 registros — instrumentar custo IA ou remover painel EE | Claude |
Detalhe completo + comandos: ssh trs-vps cat /root/docs/PENDENCIAS.md
| Canal | Inbox | Ponte | Estado |
|---|---|---|---|
| WhatsApp (11) 91768-9407 — numero OFICIAL do site/Google | #3 | Evolution API v2.3.7 (nao-oficial, Baileys) — imagem evoapicloud | conectado — instancia trs-oficial |
| Instagram @tiagorsadv | #2 | Channel::Instagram nativo (Graph API v22.0) | conectado — bot Vitoria ATIVO |
| Inbox legado | #1 | Channel::Api (casca sem canal real) | morta — ignorar |
NAO usamos a API oficial do WhatsApp (Cloud API). Motivo: com a API oficial o numero deixa de funcionar no aplicativo do celular. Como o Dr. Tiago precisa continuar respondendo pelo celular, ficamos na ponte nao-oficial. A WABA e' nossa (portfolio TRS 792751453410778) — a Tivas era apenas BSP, nao dona.
api_access_token; chegava vazio e o Chatwoot devolvia 401 com cara de token invalido. Corrigido por patch em DOIS arquivos (request.js do SDK e chatwoot.service.js), ambos montados read-only pelo compose. Faltar o segundo cria a conversa mas perde o texto do cliente.evolution-api:8080 (IP privado) e as mensagens ficavam status=failed. Resolvido com SAFE_FETCH_ALLOW_PRIVATE_NETWORK=true.GlobalConfig.clear_cache.Regra 9 — PCD -> time Trabalhista + etiqueta pcd, com 22 radicais (pcd, deficien, laudo, art 93, cota, autis, surdo, cadeirante, monocular, amputa, protese, invalidez, reabilita, baixa visao, cegueira, down...). Ela precisa ser a de maior id: o Chatwoot roda as regras com rules.each sem ORDER BY, e a regra 3 (pending -> Triagem) sobrescrevia a atribuicao. A regra 1 antiga foi desativada por so ter 5 radicais — contains compara string inteira, entao "deficiencia" nao pega "deficiente".
Varredura de 1.399 conversas do Direct. 54 leads respondidos um a um, com pedido de desculpas pela demora; 2 descartados como falso-positivo (hdn.engenharia e' fornecedor de laudos B2B; ferreira7752023 so encaminha reels). Os casos com pergunta juridica concreta foram respondidos no merito, nao com texto padrao.
Achado grave: um contato relatou que o (11) 91768-9407 devolve "numero invalido" no WhatsApp. Conferir assim que o pareamento voltar.
trs-atendimento — health check dos canais (aceita --json)trs-wa-code — gera codigo de pareamento novo do WhatsAppcat /root/docs/ATENDIMENTO.md — documento mestretrs-doctor — health check em 1 comando (22 checks; cron 08:00 modo quiet)trs-catalogo — gera workflows.html + crons.html (n8n/6h)trs-organograma — gera este HTML (cron 6h)ssh-list / ssh-add-machine / ssh-revoke-machine — gestao de chaves SSH/opt/trsadv-monitor/dashboard_saude.py — 6 KPIs (cron 5min)/opt/trsadv-monitor/dashboard_execucoes.py — rankings 24h + ultimas 100 exec (cron 5min)/opt/trsadv-monitor/auditar_workflows.py — auditoria 9 wf ativos (cron 6h)/opt/trsadv-monitor/trs_monitor_avancado.py — 10 checks Telegram (cron 30min): wf falhando, crons erro, aniv zero, pendentes cadastro, backup faltando/anomalo, SSL <30d, dashboards stale, gunicorn caido, disco/opt/trsadv-monitor/health_heal_gunicorn.py — auto-restart Gunicorn se /__health falha 3x (cron 1min; anti-hang)/opt/n8n/backup-semanal-extra.sh — Kuma sqlite + pg schema-only (dom 07:00 UTC, retencao 60d)/opt/n8n/backup-verify.sh — restore dry-run em DB temporario (seg 09:00 UTC; alerta Telegram se falha)/opt/n8n/backup-offsite.sh — copia off-site OneDrive via Graph API/var/lib/trsadv-wf72/ (repo trsadv-shared 4.6GB->1.5MB)trs-find <termo> — busca rapida no OneDrive indexado (38k arquivos)~/bin/trs-index.py — reindexa (LaunchAgent 05:00)~/bin/trs-organograma-mac.sh — gera versao offline no OneDrive (LaunchAgent 09:00)~/bin/backup-claude.sh — espelha ~/.claude no OneDrive (LaunchAgent 04:00)ssh trs-vps + cat)17 auditorias, ~9 bugs consertados, 999 clientes catalogados, ~45 commits
| Aud | Script / Fix |
|---|---|
| A+B | Diagnostico ADVBOX + Uptime Kuma 10 monitores |
| C | painel_cliente.py + wf10 filtro anti-poluicao |
| D | BUG ADVBOX customers_id plural IGNORADO -> customer_id singular (wf18/19/16/70) |
| E | 3 filtros ADVBOX bugados (birthday, name, paginacao) -> filtrar LOCAL |
| E.1 | TRS-05 do n8n ja estava correto -> aniv_diario.py desativado |
| F | wf132 fix + fix_advbox_ids.py + match_pastas_advbox.py (18 IDs) |
| G | wf18 v2 extrai signatario D4Sign (nome+cpf+email) |
| H | reconciliar_417.py - cobertura 100% (582 -> 999) |
| I | match_46_agressivo.py - 2 confirmados + 40 precisa_cadastro |
| J | parse_incompleto 46 -> 8 (extract ID + marcar duplicatas Civel) |
| K | wf06 v3.1: formatar CEP 99999-999 + birthdate YYYY-MM-DD |
| L | backup.sh v2: git bundle (1.8MB vs 4.6GB tar .git) |
| M | 4 emails aniversario enviados 01/07 + aniv_diario.py BACKUP 12:15 UTC |
| N | Debug bug TRS-05 execucao 190 — filtro devolveu 0 items |
| O | Fix TRS-05 via SQL revertido — dolar_input aponta node anterior errado |
| P | CAUSA RAIZ TRS-05: filtro isPF velho checava document=RG em vez de identification=CPF |
| S-X | dashboard-saude + Telegram 10 checks + auditoria wf + manual + wf72 fora do repo |
| R | Meta 01 NULLIF bigint + Meta 03 Number() coercion (root cause) |
| W/Y | audit 0 wf vulneraveis + restore dry-run automatizado |
| II/KK | self-heal Gunicorn + freshness dashboards |
| QQ/NN | security headers CSP+HSTS + fail2ban caddy-abuse |
| OO/SS | pg_stat_statements + Error Handler Central n8n (validado) |
Detalhes: /root/docs/INVENTARIO_ACESSOS.md secoes A a P
| Item | Estado |
|---|---|
| Pipeline NEGOCIOS | 1414 leads · 507 ADVBOX · 1282 Chatwoot · 1283 com telefone (backfill Digisac data.number) |
| Biblioteca HSM | 113 templates (74 UTILITY + 39 MARKETING) todo o ciclo + genericos flexiveis + nudges. /opt/trsadv-shared/HSM_TEMPLATES_META.md |
| Cadencia reativacao | 1283 leads (Q/C/M/F) · 4601 envios/14d · ~R\.380 · WF244 (n8n, DESATIVADO ate WABA) |
| Regras bot Vitoria | curriculo->contato@trsadv.com.br assunto VAGA; avaliacao pos-atendimento + avaliacao pessoal (lead sem fit) -> g.page/r/CULoV-9VBXnrEBM/review |
| Bloqueador unico | Migracao WABA da Tivas — EMAIL_TIVAS_FOLLOWUP.md |