Resumo
Visao Geral das Acoes
Este documento cobre duas acoes executadas no dia do Go-Live (09/02/2026):
- Correcao de Notas Q&A: 3 workflows de Custom Code atualizados + 92 notas legadas corrigidas via API
- Spam Detection: Identificacao de 7 padroes de spam, classificacao de 29 tickets e criacao do workflow WF-010
Parte 1
Correcao de Notas Q&A
Problema Identificado
Os workflows de Nota Q&A usavam Associated Contact input fields do HubSpot para obter dados como email e nome do contato. Porem, esses input fields sao unreliable — podem passar tokens literais (contact.email, contact.nome_completo_razao_social) em vez dos valores reais.
contact.email no lugar do email real do contato.
Resultado: notas criadas nos tickets mostravam:
Workflows Corrigidos
| Workflow | HubSpot ID | Arquivo | Tokens Afetados |
|---|---|---|---|
| Nota Q&A - Produto | 1773490979 |
nota-qa-produto.js |
contact.email |
| Nota Q&A - Central de Ajuda | 1773491213 |
nota-qa-central-ajuda.js |
contact.email, contact.nome_completo_razao_social |
| Nota Q&A - Prevencao a Fraudes | 1773492785 |
nota-qa-prevencao-fraudes.js |
contact.email |
Solucao Implementada
Dois passos: atualizacao do codigo + correcao do legado.
Estrategia
- Substituir
contact.email(input field unreliable) poremail_solicitante(propriedade do ticket, sempre preenchida pelo form) - Manter
nome_completo_razao_socialvia API (busca contact associado) - Fallback: se
email_solicitantedo ticket for null, buscarcontact.emailvia API
Fluxo de dados
Ticket criado pelo Form
|
v
Custom Code executa
|
+-- email_solicitante (ticket prop) --> prioridade 1
| |
| +-- se null --> GET /crm/v4/.../associations/contacts
| |
| v
| GET /crm/v3/objects/contacts/{id}
| |
| +-- contact.email --> fallback
|
+-- nome_completo_razao_social --> sempre via API (contact)
|
v
Nota Q&A criada com valores reais
Script
fix-legacy-qa-notes.js — script one-time para corrigir notas ja criadas.
Resultado
| Metrica | Valor |
|---|---|
| Notas encontradas com tokens literais | 94 |
| Notas com valores reais resolvidos | 92 |
| Notas sem contato associado (nao corrigidas) | 2 |
| Falhas no PATCH | 0 |
Logica do Script
POST /crm/v3/objects/notes/search— busca notas contendocontact.email- Para cada nota: resolve ticket associado, busca
email_solicitantedo ticket - Busca contact associado ao ticket para
nome_completo_razao_social - Substitui tokens no
hs_note_body PATCH /crm/v3/objects/notes/{id}com body corrigido
email_solicitante) e buscar dados de contato via API quando necessario. Ver HUBSPOT-DEV-PROJECTS.md regra #9.
Parte 2
Spam Detection
Contexto
No dia do Go-Live (09/02/2026), foram identificados tickets recebidos via canal de email (suporte@eduzz.com) que sao spam/lixo. Emails corporativos de RH, fornecedores e sistemas automatizados que nao devem entrar no fluxo de atendimento N1.
Padroes de Spam Identificados
| # | Padrao | Tipo | Keyword (subject CONTAINS) | Tickets |
|---|---|---|---|---|
| 1 | Candidatura / Processo Seletivo | RH | candidatura |
5 |
| 2 | Vaga Aprovada | RH | vaga que voc |
2 |
| 3 | Vaga Aprovada (variacao) | RH | vaga aprovada |
1 |
| 4 | Onvio Portal (TOTVS) | Fornecedor | Onvio Portal |
2 |
| 5 | Metabase Login | Sistema | Metabase login |
2 |
| 6 | SUCESSO BRINDES (Fornecedor) | Fornecedor | SUCESSO BRINDES |
1 |
| 7 | NFE 1583 (Boleto Fornecedor) | Fornecedor | NFE 1583 |
2 |
Tickets Classificados
| Acao | Quantidade | Detalhes |
|---|---|---|
| Tickets originais reclassificados | 15 | Owner: Guilherme Soto | Priority: LOW |
| Copias N1 reclassificadas | 14 | Owner: Guilherme Soto | Priority: LOW |
| Total de tickets atualizados | 29 | Via PATCH /crm/v3/objects/tickets/{id} |
Responsavel: Guilherme Moreno Soto (Team Leader N1 Ticket Cross)
Owner ID: 82538138
Workflow WF-010: Spam Detection
Configuracao
| Campo | Valor |
|---|---|
| HubSpot ID | 1773808188 |
| Tipo | Ticket-based |
| Trigger | Ticket is created |
| Status | DISABLED (ativar apos validacao) |
| PAT | EPIC_ADMIN_TOKEN (requer scope automation) |
Filtros de Enrollment (OR)
O ticket entra no workflow se o subject contiver qualquer um dos termos abaixo:
Acoes
- Set Property:
hubspot_owner_id=82538138(Guilherme Soto) - Set Property:
hs_ticket_priority=LOW
Fluxo
Ticket criado via Email (suporte@eduzz.com)
|
v
[subject CONTAINS spam keyword?]
|
SIM NAO
| |
v v
Set Owner: Guilherme Soto Fluxo normal (N1)
Set Priority: LOW
|
v
Guilherme analisa/descarta
(nao entra no fluxo N1)
Parte 3
Padronizacao de Pipelines N3
Contexto
Os 5 pipelines N3 operacionais (exceto N3 Tech) foram padronizados para seguir as mesmas 9 stages do pipeline de Suporte Principal, garantindo consistencia no fluxo de atendimento.
Pipelines Padronizados
| Pipeline | ID | Status |
|---|---|---|
| N3 Prevencao a Fraude | 865419938 |
Padronizado |
| N3 Juridico | 865555876 |
Padronizado |
| N3 Ciberseguranca | 865556655 |
Padronizado |
| N3 Admin/Financeiro | 865557642 |
Padronizado |
| N3 FinOps | 865602174 |
Padronizado |
Stages Padrao (9 stages)
| # | Stage | isClosed |
|---|---|---|
| 0 | Novo | false |
| 1 | Em Analise de Escopo | false |
| 2 | Em atendimento | false |
| 3 | Aguardando Outros | false |
| 4 | Aguardando Cliente | false |
| 5 | Pendente | false |
| 6 | Solucionado | false |
| 7 | Fechado | true |
| 8 | Fechado sem solucao | true |
Referencia
Arquivos e Links
| Recurso | Localizacao |
|---|---|
| Nota Q&A - Produto | workflows/nota-qa-produto.js |
| Nota Q&A - Central de Ajuda | workflows/nota-qa-central-ajuda.js |
| Nota Q&A - Prevencao a Fraudes | workflows/nota-qa-prevencao-fraudes.js |
| Fix Legacy Notes (one-time) | workflows/fix-legacy-qa-notes.js |
| WF-010 no HubSpot | Abrir no HubSpot |
| Aprendizados Dev Projects | HUBSPOT-DEV-PROJECTS.md (regra #9) |