Central de Docs
Voltar ao Hub
EDUZZ-HS-WF-010 v2

Roteamento por Times — Modelo Pool

Tickets vao para um pool do time. Agentes veem e pegam o ticket. Zero round-robin. Zero deploys quando o time muda.

Versao 2.0 27 Marco 2026 Documentacao Tecnica Status: Em Implementacao
Secao 01

O Modelo Pool

Em vez de atribuir tickets automaticamente a um agente individual (round-robin), o novo modelo envia o ticket para um pool do time. O ticket fica no stage "Aguardando atribuicao" com o hubspot_team_id setado. Os agentes do time veem o ticket e pegam manualmente.

0
Deploys quando time muda
0
IDs hardcoded
11
Pipelines com pool
Pull
Modelo de atribuicao
Resultado: A Eduzz gerencia os times no HubSpot (Configuracoes > Usuarios e Times). Quando alguem entra ou sai, o roteamento funciona normalmente no proximo ticket. Zero chamados para EPIC. Zero deploys.
Como funciona
  1. Ticket chega no workflow de roteamento
  2. Codigo identifica o time correto (por belt, destino de escalacao, etc.)
  3. Seta hubspot_team_id no ticket
  4. Move o ticket para o stage "Aguardando atribuicao" (pool)
  5. Agentes do time veem o ticket no board/lista filtrada pelo time
  6. Agente pega o ticket e se auto-atribui como owner
Secao 02

Antes vs Depois

Modelo de Atribuicao
Antes (Round-Robin)
// Busca membros do time via API const teams = await api.get('/settings/v3/users/teams'); const members = getMembers(teamId); // Round-robin: ticketId % membros const idx = ticketId % members.length; const owner = members[idx]; // Atribui owner individual PATCH ticket: hubspot_owner_id = owner PATCH ticket: stage = "Em atendimento" // Problemas: // - Precisa de EPIC_TEAMS_TOKEN (scope extra) // - Sub-times dedicados para roteamento // - Se time muda, proximo ticket pode ir errado
Depois (Pool)
// Identifica time correto (belt, destino, etc.) const teamId = TEAM_MAP[teamKey]; // Seta team + move para pool PATCH ticket: hubspot_team_id = teamId PATCH ticket: stage = "Aguardando atribuicao" // Agente pega manualmente // Owner setado quando agente se auto-atribui // Vantagens: // - Sem EPIC_TEAMS_TOKEN // - Sem sub-times dedicados // - Time muda? Proximo ticket ja funciona
Secao 03

Fluxo Tecnico

N1 Humano (Belt-Based)
  Ticket N1 Criado        Belt Lookup            Team Assignment        Pool
  +--------------+      +-----------------+      +-----------------+      +--------------------+
  | Novo         | ---> | belt_elite?     | ---> | hubspot_team_id | ---> | "Aguardando        |
  | (sem owner)  |      |                 |      |                 |      |  atribuicao"       |
  +--------------+      | Black/Golden    |      | = N1 Black      |      |                    |
                        | White/Red/etc   |      | = N1 Lite e Pro |      | Agente ve e pega   |
                        | null            |      | = N1 Cross      |      +--------------------+
                        +-----------------+      +-----------------+
Escalacao N1 → N2/N3
  N1 "Escalado"          Resolve Destino         Cria Ticket Filho       Pool do Destino
  +--------------+      +-----------------+      +-----------------+      +--------------------+
  | escalonar_   | ---> | N2? sem team    | ---> | hs_pipeline =   | ---> | "Aguardando        |
  | para = ???   |      | N3? + teamId    |      |   destino       |      |  atribuicao"       |
  +--------------+      +-----------------+      | hubspot_team_id |      |                    |
                                                  |   = team N3     |      | Time pega ticket   |
                                                  +-----------------+      +--------------------+
Secao 04

Pipelines e Stages Pool

Pipeline Pipeline ID Stage Pool ID Team ID Modelo
N1 Humano 824388612 A preencher Dinamico (por belt) Pool + Belt
N2 824265268 A preencher Sem team Pool Manual
N3 Tech 824388613 A preencher 77132526 Pool + Team
N3 Tech Incidentes 881607732 A preencher 77132526 Pool + Team
N3 Tech Requisicoes 881607729 A preencher 77132526 Pool + Team
N3 Tech Problemas 881608743 A preencher 77132526 Pool + Team
N3 Fraude 865419938 A preencher 56761888 Pool + Team
N3 Juridico 865555876 A preencher 77132473 Pool + Team
N3 Admin/Fin 865557642 A preencher 77132467 Pool + Team
N3 Ciber 865556655 A preencher 77132526 Pool + Team
N3 FinOps 865602174 A preencher 77132476 Pool + Team
Stage IDs: Serao preenchidos apos criacao via API (script create-pool-stages.js). Os stages sao criados como primeiro stage (displayOrder=0) em cada pipeline.
Secao 05

Times e Team IDs

N1 — Roteamento por Belt
TimeTeam IDBelts
N1 Black77417325Black Belt (todas variantes), Golden Belt (todas variantes)
N1 Lite e Pro77182082White Belt, Red Belt, Orange Belt, Green Belt
N1 Cross74324233null (cliente final, sem belt) — default
N3 — Escalacao
Pipeline N3Team IDTime no HubSpot
Prev. Fraude56761888Prevencao a Fraude
Juridico77132473Juridico
Admin/Financeiro77132467Admin/Financeiro
Ciberseguranca77132526Fraudes (equipe tech)
FinOps77132476FinOps
N3 Tech (3 pipelines)77132526Fraudes (equipe tech)
Sem sub-times dedicados! No modelo pool, nao e necessario criar sub-times so para roteamento. O time existente no HubSpot e usado diretamente. Se um membro nao deve receber tickets, basta nao o incluir no time.
Secao 06

Guia do Agente

Como pegar um ticket do pool
  1. Acesse o board/lista do seu pipeline
  2. Filtre pelo stage "Aguardando atribuicao"
  3. Os tickets visiveis sao do seu time
  4. Abra o ticket que deseja atender
  5. Clique em "Atribuir a mim" (ou selecione seu nome como owner)
  6. Mova o ticket para "Em atendimento"
Importante: Tickets no pool nao tem owner individual. Se ninguem pegar, o ticket fica parado. Cada time e responsavel por monitorar seu pool regularmente.
Secao 07

Plano de Rollout

Rollout incremental, 1 pipeline por vez, do menor para o maior volume. WFs antigos permanecem intactos — rollback em menos de 2 minutos.

OrdemPipelineVolumeRisco
1N3 FinOpsBaixoBaixo
2N3 Admin/FinBaixoBaixo
3N3 JuridicoBaixoBaixo
4N3 CiberBaixoBaixo
5N3 FraudeMedioMedio
6N3 Tech (3)MedioMedio
7N2MedioMedio
8N1 HumanoAltoAlto
Secao 08

Rollback

Tempo de rollback: < 2 minutos. WFs antigos permanecem intactos.
Procedimento
  1. Desabilitar WF novo (v6 pool)
  2. Reativar WF antigo (v4/v5) — codigo ainda esta la
  3. Rodar script rollback-pool-to-novo.js para mover tickets do pool de volta para "Novo"
Stages: Os stages "Aguardando atribuicao" podem ficar nos pipelines sem impacto. Nao precisa deletar. Sao apenas stages inativos se nenhum WF direciona tickets para la.

EDUZZ-HS-WF-010 v2 — Modelo Pool | EPIC Digital | 27 Marco 2026

Substituiu: WF-010 v1.3 (Roteamento Dinamico por Times - Round-Robin)