1. roteamento
Hunter API
  • Default module
    • Introdução
    • Autenticação
    • limites e taxas
    • Erros
    • Webhooks
    • Pipelines
      • Listar pipelines
      • Obter pipeline
    • Contatos
      • Listar contatos
      • Criar contato
      • Buscar contatos (filtros avançados)
      • Obter contato por ID
      • Atualizar contato
      • Excluir contato
      • Associar contato a empresa
      • Associar contato a negócio
      • Desassociar contato de empresa
      • Desassociar contato de negócio
    • Empresas
      • Listar empresas
      • Criar empresa
      • Buscar empresas (filtros avançados)
      • Obter empresa por ID
      • Atualizar empresa
      • Excluir empresa
      • Vincular contato à empresa
      • Promover email da empresa a contato
      • Vincular negócio à empresa
      • Desvincular contato da empresa
      • Desvincular negócio da empresa
    • Negocios
      • Listar negócios
      • Criar negócio
      • Buscar negócios (filtros avançados)
      • Timeline de outcomes do negócio
      • Obter negócio por ID
      • Atualizar negócio
      • Excluir negócio
      • Vincular contato ao negócio
      • Vincular empresa ao negócio
      • Desvincular contato do negócio
      • Desvincular empresa do negócio
    • Atividades
      • Listar atividades
    • Conversas
      • Listar conversas
      • Obter conversa
      • Listar mensagens da conversa
    • Campanhas
      • Listar campanhas
      • Criar campanha
      • Buscar campanha por id
      • Atualizar campanha
      • Listar bloqueios da campanha
    • Campos personalizados
      • Listar campos personalizados
      • Criar campo personalizado
      • Obter campo personalizado
      • Atualizar campo personalizado
      • Excluir campo personalizado
    • Webhooks
      • Evento: contact.created
      • Evento: contact.updated
      • Evento: contact.deleted
      • Evento: company.created
      • Evento: company.updated
      • Evento: company.deleted
      • Evento: deal.created
      • Evento: deal.updated
      • Evento: deal.stage_changed
      • Evento: deal.won
      • Evento: deal.lost
      • Evento: message.received
      • Evento: message.sent
      • Evento: account_plan.approved
      • Evento: account_plan.completed
    • Cadências
      • Listar cadências
      • Atualizar cadência
      • Aprovar cadência
      • Rejeitar cadência
      • Gerar cadência para um negócio
      • Gerar cadência para um contato do negócio
      • Listar passos de cadência por entidade
      • Atualizar passo de cadência
      • Remover passo de cadência
      • Verificar se é possível gerar cadência
      • Ajustar copy do passo com IA
      • Adicionar passo à cadência
      • Desfazer ajuste de copy do passo
      • Marcar passo como já conectado
    • Leads
      • Criar lead inbound (contato + empresa + negócio)
    • Schemas
      • ContactEntity
      • ContactFilterCondition
      • SearchContactDto
      • CreateContactDto
      • LinkCompanyDto
      • LinkDealDto
      • CompanyEntity
      • CompanyFilterCondition
      • SearchCompanyDto
      • LinkContactDto
      • PromoteEmailDto
      • DealEntity
      • DealFilterCondition
      • SearchDealDto
      • CreateDealDto
      • LinkContactToDealDto
      • LinkCompanyToDealDto
      • AccountPlanStepEntity
      • AccountPlanEntity
      • OkResponse
      • LeadContactInput
      • LeadDealInput
      • LeadCompanyInput
      • CreateLeadDto
      • ActivityEntity
      • PipelineStageEntity
      • PipelineEntity
      • ConversationEntity
      • MessageEntity
      • CampaignEntity
      • CustomFieldDefinitionEntity
      • ContactCreatedEvent
      • ContactUpdatedEvent
      • ContactDeletedEvent
      • CompanyCreatedEvent
      • CompanyUpdatedEvent
      • CompanyDeletedEvent
      • DealCreatedEvent
      • DealUpdatedEvent
      • DealStageChangedEvent
      • DealWonEvent
      • DealLostEvent
      • MessageReceivedEvent
      • MessageSentEvent
      • AccountPlanApprovedEvent
      • AccountPlanCompletedEvent
  • Hunter API (internal)
    • App
      • Root
    • HunterContactContext
      • Criar contact context
      • O mesmo agente, para muitos contatos — ver `executeAgents`.
    • MailDelivery
      • Criar mail service
    • EmailTracking
      • Listar {token}.gif
    • integrations
      • mail-service
        • Listar status
        • Criar connect
        • Criar disconnect
      • crm
        • Listar status
        • Listar capabilities
      • hubspot
        • Listar status
        • Redirects the user to the HubSpot authorize URL.
        • OAuth callback. Public (called by HubSpot, no session cookie). State carries `workspaceId|drivaUserId` so we can persist tied to the right tenant.
        • Conecta o HubSpot apontando para a credencial que já existe em outro serviço da Driva, em vez de rodar um segundo OAuth para a mesma conexão. Idempotente: reconectar atualiza a mesma conta. O corpo só carrega dado deste workspace. Endereço e chave do bro
        • Criar disconnect
        • Admin-triggered daily sync for THIS workspace. Doesn't wait — the job is enqueued and processed in the background (reconcile + full import). Useful for "run it now" testing or after an extended outage where the scheduled job didn't run.
        • Post reapply em field mappings
        • Manual one-shot sync for a single pipeline where HubSpot is the source of truth. Pulls every HubSpot deal in the equivalent pipeline, force-upserts (bypasses LWW), and archives Hunter deals in the pipeline that no longer exist on HubSpot. Use when you not
        • Criar reconcile archived
        • Re-link engagements (WhatsApp/LinkedIn/email communications, notes, tasks, calls, meetings) that were pushed to HubSpot but left DETACHED by the old `types: []` association bug — they exist as records but don't render on any contact/company/deal timeline.
        • Listar owners
        • Criar map
        • Criar backfill
        • Re-emit outbound `update` for every contact tied to a deal on this pipeline. Used after the firstname/lastname-from-name fix to repair HubSpot contacts that were originally pushed without name parts. Only contacts that already have an ExternalMapping are
        • Buscar field mappings por id
        • Criar field mappings
        • Listar counts
        • Criar start
        • Criar reset
        • Criar pause
        • Criar resume
        • Listar progress
        • Recent HubSpot sync runs for THIS workspace (daily reconcile + hourly drift correction). Newest first. Each row carries a structured `result` snapshot — what was archived/imported/enqueued and any error messages.
        • Operational snapshot for oncall/admins: outbound queue counts, last webhook, last successful daily sync, token expiry, failure samples. Admin-only because `lastFailure.error` can contain raw HubSpot payload fragments.
        • Thin intake for HubSpot webhooks: verify the HMAC signature + replay window, enqueue one BullMQ job per event, return 200. Doing the heavy work (getObject, DB writes) inline was burning through HubSpot's 5s timeout budget for portals with busy activity.
        • Internal forwarding endpoint. Used by the Driva `automation-service`, which is the primary receiver of the HubSpot webhook (it handles PQL workflows, lead enrichment, etc.) and also needs to hand the event off to Hunter. HubSpot's v3 signature is scoped t
      • talk-direct-call
        • Listar status
        • Listar agents
        • Criar connect
        • Criar refresh
        • Atualizar default agent
        • Post call em tasks
        • Post refresh call em tasks
        • Criar disconnect
      • salesforce
        • Listar status
        • Listar authorize
        • Listar callback
        • Criar disconnect
        • Listar owners
        • Criar map
        • Criar backfill
        • Buscar field mappings por id
        • Criar field mappings
        • Listar counts
        • Listar preview
        • Criar refresh
        • Criar start
        • Workspace sem nenhum run ainda é resposta legítima, mas devolver `null` de um handler faz o Nest fechar a resposta com corpo VAZIO — e `response.json()` no cliente estoura em vez de ver "não há progresso". O corpo precisa ser JSON válido mesmo quando não
    • MailServiceEngagementConnection
      • Criar account connected
    • Webhooks
      • POST /webhooks/inbound-message Receives inbound messages from contacts (WhatsApp via Driva, email, etc.)
      • Criar whatsapp cloud
      • POST /webhooks/evolution Receives all webhook events from Evolution API.
      • POST /webhooks/linkedin Receives LinkedIn messages from the listener-linkedin service.
      • POST /webhooks/goto/call-event Receives call event notifications from GoTo Connect
      • GET /webhooks/goto/status Check if GoTo Connect is configured and connected.
      • POST /webhooks/goto/disconnect Limpa as credenciais OAuth da GoTo (conta inteira).
      • Workspace dono das chamadas GoTo (escopo do sync de transcrição: onde casar telefones e criar contatos novos no fallback).
      • Criar transcript config
      • GET /webhooks/goto/authorize Redirects to GoTo OAuth login page.
      • GET /webhooks/goto/callback OAuth callback - exchanges code for tokens, then shows success page that closes the popup.
    • WhatsAppConnection
      • Listar connections
      • Listar selection
      • Atualizar selection
      • Remover selection
      • Listar customer service window
      • Listar templates
      • Criar templates
      • Atualizar templates
      • Remover templates
      • Listar status
      • Criar connect
      • Criar disconnect
      • Criar setup webhook
    • Gmail
      • Listar status
      • Returns the Google OAuth URL as JSON so the frontend can `window.open` it after the auth-protected request completes. Browsers don't include our Bearer header on plain navigations, so we can't 302 from this endpoint — the URL has the userId baked into the
      • Public — Google redirects here after consent without our auth headers. The userId is recovered from the encrypted `state` query param signed by `getAuthorizeUrl`.
      • Listar signatures
      • Criar display name
      • Criar signature
      • Criar disconnect
    • MailStatus
      • Listar status
    • Negocios
      • Post lead transition em negocio
      • Post lead transition em negocio
      • Listar negócios
      • Criar negócio
      • Listar negócios
      • Criar negócio
      • Buscar negócios (filtros avançados)
      • Buscar negócios (filtros avançados)
      • Timeline de outcomes do negócio
      • Timeline de outcomes do negócio
      • Obter negócio por ID
      • Atualizar negócio
      • Excluir negócio
      • Obter negócio por ID
      • Atualizar negócio
      • Excluir negócio
      • Vincular contato ao negócio
      • Vincular contato ao negócio
      • Vincular empresa ao negócio
      • Vincular empresa ao negócio
      • Desvincular contato do negócio
      • Desvincular contato do negócio
      • Desvincular empresa do negócio
      • Desvincular empresa do negócio
    • Credits
      • Saldo do ciclo corrente. `null` (billing: null) = workspace sem conta de créditos = sem enforcement (grandfathering) — a UI trata como ilimitado.
    • OutgoingWebhooks
      • Criar webhooks
      • Listar webhooks
      • Atualizar webhooks
      • Remover webhooks
      • Post test em webhooks
      • Get deliveries em webhooks
    • FieldFeedback
      • Two-mode list: ?entityType=contact&entityId=:id → all open flags for one entity ?entityType=contact&entityIds=id1,id2,... → batch counts for list pages
      • Criar field feedback
      • Atualizar field feedback
      • Remover field feedback
      • Post resolve em field feedback
    • Workspaces
      • Drops Hunter's per-session cache of `workspaceId` so the next request re-fetches from Driva. The frontend calls this right after switching workspaces in Driva — without it, the 60s cache would keep serving the old workspace context and leak data across th
      • Hunter-side workspace switch. Replaces the previous flow that PATCHed Driva's `set-workspace` endpoint and reloaded the page — Hunter now keeps its own preference and the Driva session cookie isn't touched. The preference takes effect on the very next req
      • Returns the active workspace as resolved by the middleware (Hunter pref → Driva fallback).
      • Criar sync linkedin
      • Toggle: when a user is opted into the external LinkedIn user-runner, the cadence engine stops calling the direct Voyager API for their steps and instead enqueues actions for the runner to pull via the public /linkedin/user-runner endpoints. Default is ON
      • Criar linkedin user runner
      • Auto-atestação do operator de que a Extensão LinkedIn (Chrome) está instalada. Não há verificação real — é declaração. Backend grava o timestamp da declaração; sumir do `IntegrationCredential` significa "não confirmada". Quando o backend tiver auto-detecç
      • Criar linkedin extension confirmed
      • Listar users
      • Listar me
      • Per-user list-page preferences — column visibility/order + pinned quick-filter chips, keyed by entity kind. PATCH merges shallowly: pass `{ deal: { columns: [...] } }` to update only deals' column settings without nuking contact/company prefs. Pass `null`
      • Atualizar list prefs
      • Self-service endpoint — lets a user set their own default campaign without needing admin permission (which the bulk PATCH /members/:id route requires). Body: `{ defaultCampaignId: string | null }`. Validates that the campaign belongs to the same workspace
      • Self-service: lets a user pick which pipeline opens by default on the deals/kanban page. Mirrors `me/default-campaign`. Service validates workspace ownership before persisting.
      • Listar current user
      • Listar agents status
      • Criar toggle agents
      • Liga/desliga a Camada aprendida (ADR-0040) no workspace. Admin-only (WorkspaceAdminGuard) — ligar aprendizado autônomo que escreve no prompt dos agentes é decisão de governança, não controle operacional. Set explícito (não flip) pra ser idempotente com o
      • A identidade de voz do workspace: como o agente se chama ao telefone e como ele pronuncia nome próprio. Admin-only pelo mesmo critério da Camada aprendida: é a marca falando com o cliente, então é governança e não controle operacional. E as pronúncias al
      • Atualizar voice identity
      • GET do `GlobalConfig` workspace-wide. Cria a row com defaults se ainda não existe — frontend usa pra hidratar o store na boot, evitando descompasso entre o que a UI mostra (defaults) e o que o scheduler efetivamente lê do DB.
      • Atualiza o `GlobalConfig` workspace-wide. Aceita um patch parcial dos campos editáveis (workHours, workDays, shifts, frequência, escalação, timezone). Cria a row se ainda não existir — workspace novo pode chegar aqui antes do hidratamento inicial via outr
      • Listar ai budget
      • Atualizar ai budget
      • AI spend rollup for the workspace over `windowDays`. Supports grouping by common dimensions — the UI renders one chart per groupBy choice. Heavy aggregations kept SQL-side via `groupBy` so we don't pull thousands of rows into Node. Top 20 by cost to keep
    • WorkspaceMembers
      • Listar members
      • Criar members
      • Lista usuarios do Driva (do workspace atual) que AINDA nao sao membros do Hunter. Usado pelo admin pra adicionar alguem manualmente. Unico consumidor que fica na Driva pura: o espelho local so conhece quem ja e membro, entao cair nele devolveria lista va
      • Atualizar members
      • Remover members
      • Lists real workspace members whose email shares the local-part with the shadow's email. Pure suggestion — admin still picks. Returns [] if the shadow has no email or no candidate matches (UI falls back to a manual member search).
      • Reassigns every owner reference from the shadow (path param) to the real member (`targetDrivaUserId` in body), then deletes the shadow. Returns counters per entity type so the UI can show a precise toast.
      • Reconciliação em massa dos shadows: mescla cada shadow no membro real correspondente por local-part (HubSpot @driva.com.br vs login @driva.io). `apply=false` (default) = DRY-RUN: lista o que faria sem escrever. Mande `{ apply: true }` para executar de fat
      • Returns the channel sender identity (Gmail address+signature, LinkedIn profile) of a workspace member. Used by the frontend so outreach previews can show who/which-account a step will dispatch as — the backend already sends through `deal.ownerId`'s integr
    • meeting-booking
      • Listar default
      • Atualizar default
      • Listar bookings
      • Buscar bookings por id
      • Post cancel em bookings
      • Patch deal em bookings
      • Patch contact em bookings
      • Post create contact em bookings
      • Buscar public por id
      • Post availability em public
      • Post book em public
    • Campaign Agent Capabilities
      • Buscar capabilities draft/active da Campaign
      • Buscar capabilities draft/active da Campaign
      • Salvar rascunho de capabilities com CAS
      • Salvar rascunho de capabilities com CAS
      • Publicar snapshot imutavel de capabilities
      • Publicar snapshot imutavel de capabilities
      • Importar pacote portavel como draft
      • Importar pacote portavel como draft
      • Exportar pacote portavel sem bindings locais
      • Exportar pacote portavel sem bindings locais
    • Commercial Tools
      • Listar ferramentas do workspace
      • Listar ferramentas do workspace
      • Buscar ferramenta e suas versoes
      • Buscar ferramenta e suas versoes
      • Listar versoes publicadas da ferramenta
      • Listar versoes publicadas da ferramenta
    • Commercial Tool Connections
      • Listar conexoes de tools do workspace
      • Criar conexao HTTP JSON
      • Listar conexoes de tools do workspace
      • Criar conexao HTTP JSON
      • Atualizar conexao com compare-and-swap
      • Remover conector
      • Atualizar conexao com compare-and-swap
      • Remover conector
      • Listar o que para de resolver se o conector for removido
      • Listar o que para de resolver se o conector for removido
      • Testar DNS, TLS e alcance da conexao
      • Testar DNS, TLS e alcance da conexao
      • Descobrir como o servidor MCP se autentica
      • Descobrir como o servidor MCP se autentica
      • Iniciar autorizacao OAuth do servidor MCP
      • Iniciar autorizacao OAuth do servidor MCP
    • MCP Servers
      • Listar as tools que o Servidor MCP expoe agora
      • Listar as tools que o Servidor MCP expoe agora
      • Sincronizar o servidor inteiro com o catalogo
      • Sincronizar o servidor inteiro com o catalogo
      • Executar uma Ferramenta com argumentos, para ensaio
      • Executar uma Ferramenta com argumentos, para ensaio
      • Importar uma tool do servidor como Ferramenta versionada
      • Importar uma tool do servidor como Ferramenta versionada
    • attachments
      • Listar attachments
      • Criar upload
      • Atualizar attachments
      • Remover attachments
      • Criar link
      • Get download em attachments
    • notes
      • Listar notes
      • Criar notes
      • Uma nota, pelo id. Existe para EDITAR: a linha do tempo entrega o corpo cortado em 4000 caracteres (`activity-timeline.service.ts`), e abrir o editor a partir dali gravaria a nota truncada. Quem vai escrever por cima carrega o corpo inteiro daqui.
      • Atualizar notes
      • Remover notes
    • Contatos
      • Listar contatos
      • Criar contato
      • Listar contatos
      • Criar contato
      • Buscar contatos (filtros avançados)
      • Buscar contatos (filtros avançados)
      • Obter contato por ID
      • Atualizar contato
      • Excluir contato
      • Obter contato por ID
      • Atualizar contato
      • Excluir contato
      • Associar contato a empresa
      • Associar contato a empresa
      • Associar contato a negócio
      • Associar contato a negócio
      • Desassociar contato de empresa
      • Desassociar contato de empresa
      • Desassociar contato de negócio
      • Desassociar contato de negócio
    • Empresas
      • Listar empresas
      • Criar empresa
      • Listar empresas
      • Criar empresa
      • Buscar empresas (filtros avançados)
      • Buscar empresas (filtros avançados)
      • Obter empresa por ID
      • Atualizar empresa
      • Excluir empresa
      • Obter empresa por ID
      • Atualizar empresa
      • Excluir empresa
      • Vincular contato à empresa
      • Vincular contato à empresa
      • Promover email da empresa a contato
      • Promover email da empresa a contato
      • Vincular negócio à empresa
      • Vincular negócio à empresa
      • Desvincular contato da empresa
      • Desvincular contato da empresa
      • Desvincular negócio da empresa
      • Desvincular negócio da empresa
    • Cadências
      • Listar cadências
      • Listar cadências
      • Atualizar cadência
      • Atualizar cadência
      • Aprovar cadência
      • Aprovar cadência
      • Aprovar cadências em massa
      • Aprovar cadências em massa
      • Rejeitar cadência
      • Rejeitar cadência
      • Descartar cadência
      • Descartar cadência
      • Intervir na cadência de um negócio
      • Intervir na cadência de um negócio
      • Gerar cadência para um negócio
      • Gerar cadência para um negócio
      • Verificar se é possível gerar cadência
      • Verificar se é possível gerar cadência
      • Gerar cadência para um contato do negócio
      • Gerar cadência para um contato do negócio
      • Listar passos de cadência por entidade
      • Listar passos de cadência por entidade
      • Atualizar passo de cadência
      • Remover passo de cadência
      • Atualizar passo de cadência
      • Remover passo de cadência
      • Ajustar copy do passo com IA
      • Ajustar copy do passo com IA
      • Desfazer ajuste de copy do passo
      • Desfazer ajuste de copy do passo
      • Gerar o áudio de um passo falado
      • Gerar o áudio de um passo falado
      • Adicionar passo à cadência
      • Adicionar passo à cadência
      • Marcar passo como já conectado
      • Marcar passo como já conectado
    • Cadência — capacidade SDR
      • Listar capacity
      • Criar capacity
      • Listar capacity
      • Criar capacity
      • Bulk replace de toda a rotina de um SDR. Body = array de slots.
      • Bulk replace de toda a rotina de um SDR. Body = array de slots.
      • Remover capacity
      • Remover capacity
    • LinkedinRunner
      • GET /linkedin/user-runner/actions?limit=<N>&userId=<X> Default auth: session cookie. `userId` é derivado de `req.drivaUserId`; o user só puxa o trabalho dele mesmo. Override admin: passar header `X-API-Key: <ADMIN_API_KEY>` (shared secret do env) habili
      • POST /linkedin/user-runner/webhook Receives an action outcome envelope. Idempotent on `executionId`; always answers 200; failures only land in our logs (re-delivery is safe). Auth: session cookie for extension callbacks. Cloud Browser callbacks are accep
    • LinkedinIntegration
      • Listar linkedin integration status
      • Criar linkedin execution mode
    • Leads
      • Criar lead inbound (contato + empresa + negócio)
      • Criar lead inbound (contato + empresa + negócio)
    • Atividades
      • Listar atividades
      • Listar atividades
      • Histórico de UMA entidade (aba "Histórico" de negócio/empresa/contato). Existe porque a aba lia o `GET /activities` — as últimas 200 do workspace INTEIRO, carregadas no boot — e filtrava no cliente. Em workspace ativo essa janela é de minutos, então regi
      • Histórico de UMA entidade (aba "Histórico" de negócio/empresa/contato). Existe porque a aba lia o `GET /activities` — as últimas 200 do workspace INTEIRO, carregadas no boot — e filtrava no cliente. Em workspace ativo essa janela é de minutos, então regi
    • AgentsApi
      • Listar agents
      • Listar active
      • Remover jobs
      • Listar lotes
      • Cancela todos os jobs não-terminais do Lote e marca o Lote como completo. Per-Lote no lugar do "Cancelar tudo" global.
      • Whitelist de modelos de chat aceitos no campo `llmModel`. Estática (deriva do pricing); declarada antes de `:id` pra não ser sombreada pela rota param.
      • Buscar agents por id
      • Atualizar agents
      • Patch config em agents
      • Atualizar sub agents
    • Pipelines
      • Listar pipelines
      • Listar pipelines
      • Obter pipeline
      • Obter pipeline
    • Conversas
      • Listar conversas
      • Listar conversas
      • Obter conversa
      • Obter conversa
      • Listar mensagens da conversa
      • Listar mensagens da conversa
    • Campanhas
      • Listar campanhas
      • Criar campanha
      • Listar campanhas
      • Criar campanha
      • Buscar campanha por id
      • Atualizar campanha
      • Buscar campanha por id
      • Atualizar campanha
      • Propor configuração do primeiro agente
      • Propor configuração do primeiro agente
      • Revisar diretriz de cadência com IA
      • Revisar diretriz de cadência com IA
      • Apurar os insumos de uma jogada de cadência
      • Apurar os insumos de uma jogada de cadência
      • Escrever a diretriz de cadência a partir dos insumos
      • Escrever a diretriz de cadência a partir dos insumos
      • Configurar especialistas e contexto operacional do time
      • Configurar especialistas e contexto operacional do time
      • Listar bloqueios da campanha
      • Listar bloqueios da campanha
    • Especialistas
      • Listar templates de especialistas
      • Listar templates de especialistas
      • Listar specialists
      • Criar specialists
      • Listar specialists
      • Criar specialists
      • Buscar specialists por id
      • Atualizar specialists
      • Buscar specialists por id
      • Atualizar specialists
      • Get dependencies em specialists
      • Get dependencies em specialists
      • Post duplicate em specialists
      • Post duplicate em specialists
      • Post archive em specialists
      • Post archive em specialists
    • Tags
      • Listar tags
      • Criar tags
      • Criação inline nos pickers: devolve a tag existente com esse nome ou cria na hora. Idempotente.
      • Atualizar tags
      • Remover tags
      • Tags aplicadas a uma entidade (deal | company | contact).
      • Substitui o conjunto de tags da entidade pelo `tagIds` do body.
      • Anexa (sem substituir) tags a várias entidades selecionadas de uma vez — o "taguear selecionados" das listas de negócios/empresas.
      • Atalho legado do import de planilha (empresas).
    • NotificationsApi
      • Listar notifications
      • Patch read em notifications
    • Campos personalizados
      • Listar campos personalizados
      • Criar campo personalizado
      • Listar campos personalizados
      • Criar campo personalizado
      • Obter campo personalizado
      • Atualizar campo personalizado
      • Excluir campo personalizado
      • Obter campo personalizado
      • Atualizar campo personalizado
      • Excluir campo personalizado
    • Formularios de negocio
      • Listar deal form templates
      • Criar deal form templates
      • Listar deal form templates
      • Criar deal form templates
      • Buscar deal form templates por id
      • Atualizar deal form templates
      • Remover deal form templates
      • Buscar deal form templates por id
      • Atualizar deal form templates
      • Remover deal form templates
    • Templates de cadência
      • Listar cadence templates
      • Criar cadence templates
      • Listar cadence templates
      • Criar cadence templates
      • Remover cadence templates
      • Remover cadence templates
    • Identidade do usuário
      • Retorna (criando se for o primeiro acesso) a identidade do usuário logado.
      • Edição manual dos campos. Patch parcial.
      • Retorna (criando se for o primeiro acesso) a identidade do usuário logado.
      • Edição manual dos campos. Patch parcial.
      • Importa do LinkedIn (via Kipflow). Sobrescreve os campos derivados; preserva bio + communicationStyle. Aceita `vanityName` no body pra importar de um perfil arbitrário; sem ele, usa o LinkedIn conectado.
      • Importa do LinkedIn (via Kipflow). Sobrescreve os campos derivados; preserva bio + communicationStyle. Aceita `vanityName` no body pra importar de um perfil arbitrário; sem ele, usa o LinkedIn conectado.
    • Debug
      • Sondagem do Mapa de poder. Faz as 6 chamadas de verdade e NÃO grava — ver `DecisoresProbeService`.
      • Sondagem dos Atalhos. Submete o job e faz o poll até o terminal ou até os 120s do service — a requisição fica aberta esse tempo de propósito, porque timeout é um modo de falha que a sonda existe pra reproduzir.
      • Criar trigger
      • Criar enrich
      • Bulk-enrich the companies linked to a set of deals. The frontend can't always resolve the deal->company association locally (the kanban / deals list doesn't preload the full junction table), so the resolution happens here: we read CompanyDeal + the legacy
    • WorkspaceKnowledge
      • Listar workspace knowledge
      • Criar workspace knowledge
      • Listar default
      • Buscar workspace knowledge por id
      • Atualizar workspace knowledge
      • Remover workspace knowledge
      • Post set default em workspace knowledge
      • Post extract em workspace knowledge
    • KnowledgeLibrary
      • Listar documents
      • Criar documents
      • Criar upload
      • Get chunks em documents
      • Remover documents
      • Criar search
    • KnowledgeOverview
      • `campaignId` ausente = escopo Workspace (o padrão do seletor da tela).
    • AccountData
      • Prévia e escrita na MESMA rota, separadas por `dryRun`. Duas rotas divergiriam no primeiro fix aplicado só numa delas, e prévia que mente sobre o import é pior que prévia nenhuma.
      • Listar imports
      • Remover imports
      • Listar empresas
    • Learning
      • Listar learnings
      • Sequências que funcionaram (ADR-0058) — leitura; não passam pelo bandit, então não têm reverter/pin (são fato observado, não hipótese). Rota estática declarada antes de qualquer ':id' pra não ser capturada por ele.
      • Post revert em learnings
    • WeeklyReview
      • O Balanço do leitor pra semana pedida (padrão: a última fechada). `?open=1` carimba a leitura. O carimbo é NO SERVIDOR, e não em `localStorage` como a Marca de visita do ADR-0078: aquela é por dispositivo porque a visita é por dispositivo; ler o Balanço
      • Dispensar é silêncio, não sinal: cala este (kind, âncora) por 4 semanas.
    • Sandbox
      • Grava o **Cenário** atual como artefato versionável (ADR-0071). A saída vai pro repo — é ela que o **Replantio** aplica, e não uma regravação: regravar é lento (fila + LLM), não cabe entre duas calls e a Athena escreve copy diferente a cada rodada.
      • Semeia a demonstração a partir do **Agente descartável** recém-criado no wizard: acha uma conta real do segmento do prospect no Kipflow, cria o negócio e deixa uma conversa de exemplo pronta no chat (ADR-0073). **Custa dinheiro por chamada** — a busca do
      • **Replantio**: apaga o Cenário atual e repõe o do artefato, numa transação. Distinto do `reset`, que apaga e para.
      • Listar status
      • Remover reset
    • TalkDirectCallWebhook
      • Criar talk direct call
    • tasks
      • Listar home
      • Count-only para o badge da NavSidebar — evita pagar pelo payload completo de /home (até 200 tasks + relações de deal/contact/company/plan/steps) só pra mostrar um número. Mesma política de owner-scoping.
      • Board de Tarefas (ADR-0047): tarefas concluídas hoje pra a coluna "Concluída". Mesma política de owner-scoping do /home. Rota literal (dois segmentos) — declarada antes do `@Get()` e do `@Get(':id')`.
      • Board de Tarefas: tarefas canceladas recentes, pra a coluna "Cancelada" (revelada pelo toggle "mostrar canceladas"). Mesma política de owner-scoping do /home. Rota literal (dois segmentos) — antes do `@Get()` e do `@Get(':id')`.
      • Board/Lista de Tarefas (ADR-0047): fila AGENDADA (coluna "Agendadas") — tasks de execução com dueAt no futuro. O feed de /home pagina e ordena futuras no fim, então elas nunca carregam; este endpoint dedicado traz a fila completa. `from` chega do cliente
      • Listar tasks
      • Criar tasks
      • Single task no shape slim da Home. Usado pelo deep-link `#/home/<id>` pra abrir uma task que pode não estar na página carregada/filtrada do feed. Mesma política de owner-scoping do /home. Declarado depois das rotas literais (`home`, `home/counts`) e do `@
      • Atualizar tasks
      • Remover tasks
      • Post complete em tasks
      • Libera a ligação do agente. Endpoint separado de `:id/complete` de propósito: o portão da discagem prova o aval por `metadata.approvedAt`, e se aprovar fosse concluir, conclusão em massa autorizaria ligação. Rejeitar é `:id/cancel`, que cancela o passo.
      • Board de Tarefas: cancela a tarefa (status='cancelled'). O service decide por kind — plan_approval rejeita o plano; cadência cancela o passo; manual só marca. Distinto de concluir (:id/complete) e de excluir (DELETE :id).
      • Board de Tarefas (ADR-0047): move o card entre colunas de stage (a_fazer | em_andamento). Endpoint dedicado — não passa pelos efeitos do PATCH genérico (sync HubSpot, self-report). Concluir ou pular vão pelos endpoints próprios (`:id/complete`, PATCH stat
      • Toggle da bandeira de prioridade no card do Board. Endpoint dedicado pelo mesmo motivo do `:id/stage` — não passa pelos efeitos do PATCH genérico (sync HubSpot, self-report).
      • Conclui várias call tasks de uma vez com o mesmo resultado de ligação. Ver spec 2026-06-18. Rota estática (um segmento) — não colide com `:id/complete` (dois segmentos).
      • Marca uma `manual_send` task como enviada com a opção de sobrescrever a copy/subject — caminho "marcar com texto diferente" da UI. Body vazio equivale a `POST :id/complete`. Ver ADR-0005.
      • Criar reschedule overdue
      • Post reschedule em tasks
    • Streaks
      • Listar streak
    • workflows
      • O catálogo de gatilho inteiro: eventos, qual sujeito cada um endereça, e os campos + operadores de cada sujeito. A UI monta o editor a partir daqui — o que não está listado a validação recusa. **Uma fonte só, de propósito** (ADR-0084). Enquanto o front d
      • **Quem é o próximo** de cada fila de **Rodízio de vendedores** deste agente: `{ [triggerId]: drivaUserId }`. Só entram os gatilhos que declaram rodízio. Não consome a vez — é `peek`, e a distinção é o serviço inteiro: uma tela que gastasse posição a cada
      • As **Conexões vigiáveis** do workspace (ADR-0085) — os números de WhatsApp, contas de LinkedIn e e-mails que um gatilho `message_received` pode escutar. O `id` devolvido é o id **do provedor**, não o da linha em `integration_credentials`: é ele que o web
      • **Prévia de alcance** + **interseção de posse** (ADR-0086/0084). Chamado ao editar o gatilho: diz quantos registros ele casa hoje e com quem disputa. É `POST` por carregar o predicado no corpo, não por escrever nada.
      • Criar run
      • "Ativar agente" em massa — a mesma ação do botão do negócio, nos N selecionados na tabela/kanban. Despausa e roda o pipeline de cada um; os que caem numa guarda voltam em `skipped` com o motivo, não como erro. Cap de 500 ids por chamada (o resto volta em
    • Outreach
      • Listar queue
      • Count-only para badge da NavSidebar. Reusa os mesmos filtros (`buildWhere`) que o /queue completo — sem o findMany + includes da relação de plan/deal.
      • Listar blocked
      • Envios em voo + rastro recente pra seção "Envios" da Fila de execução (PipelinePill). Snapshot derivado; o frontend aplica eventos WS por cima.
      • Post retry em step
      • Post skip em step
      • Criar cancel
    • Reports
      • Listar dashboards
      • Criar dashboards
      • Buscar dashboards por id
      • Atualizar dashboards
      • Remover dashboards
      • Post dismiss em result events
      • Métricas dos widgets de um dashboard. `filters` é o estado dos Filtros de dashboard (ADR-0034), JSON-encoded por slug: {"periodo":{"preset":"this_month"},...}. Os marcadores {{slug:coluna|default}} das queries expandem com esses valores.
      • Criar generate sql
      • Preview do construtor SQL. `dashboardId` (opcional) carrega os Filtros de dashboard pra expandir marcadores {{slug:coluna|default}} — sem valores setados, então vale o default de cada marcador (estado "barra intocada"). Sem dashboardId, marcadores expande
      • Message-delivery performance over a time window. Returns counts per event type plus derived rates (reply rate, read rate) globally and per-channel. The optional `campaignId` filter scopes to deals in that campaign.
      • Funnel analytics from DealStageEvent: per-stage entered count, avg time in stage, conversion to next stage, breakdown of changedByType.
    • ContactPointTags
      • Tags positivas de uma entidade: ?entityType=contact&entityId=:id
      • Criar contact point tags
      • Remover contact point tags
    • Onboarding
      • Listar onboarding
    • Developer
      • Listar openapi.json
      • Listar openapi.internal.json
      • Criar sync
      • Cria a chave **assinada por quem clicou**. O `createdById` era `req.workspaceId`, com o comentário "defaults to workspaceId for API-created keys". Isso deixou de ser inofensivo quando o ADR-0081 promoveu o campo a **assinante da Chave**: o Servidor MCP p
      • Listar api keys
      • Remover api keys
    • SavedViews
      • Listar saved views
      • Criar saved views
      • Listar saved views
      • Criar saved views
      • Atualizar saved views
      • Remover saved views
      • Atualizar saved views
      • Remover saved views
      • Post default em saved views
      • Post default em saved views
      • Criar clear default
      • Criar clear default
    • Hunter Agents
      • Listar agentes do workspace
      • Criar agente
      • Listar agentes do workspace
      • Criar agente
      • Atualizar agente
      • Remover agente
      • Atualizar agente
      • Remover agente
      • Duplicar agente
      • Duplicar agente
    • Bootstrap
      • GET /api/home/bootstrap Endpoint composto pra o boot do shell. Retorna tudo que `useHydrate` Phase 1 + os itens leves da Phase 2 precisam numa unica request. Substitui: /agents, /campaigns, /pipelines, /workspace-knowledge, /workspaces/me, /workspac
    • Captura
      • Agentes disponíveis para captura (pipeline, lado, gatilho)
      • O que o Hunter já sabe sobre esta página
      • Captura a pessoa/empresa desta página
      • Captura N identidades de uma listagem
    • roteamento
      • Recebe o CNPJ enriquecido e devolve franquia + analista responsáveis.
        POST
      • Recebe o CNPJ enriquecido e devolve franquia + analista responsáveis.
        POST
      • Diz se o serviço subiu e com quantas lojas — sem isto, um boot quebrado só apareceria no primeiro lead perdido.
        GET
      • Diz se o serviço subiu e com quantas lojas — sem isto, um boot quebrado só apareceria no primeiro lead perdido.
        GET
    • Health
      • Listar health
      • Listar ready
    • Schemas
      • HunterContactContextDto
      • HunterContactAgentsDto
      • MailServiceAccountConnectionDto
      • MailServiceEngagementConnectionDto
      • InboundMessageDto
      • GoToCallMetadata
      • GoToParticipantStatus
      • GoToParticipantType
      • GoToParticipant
      • GoToCallState
      • GoToCallEventDto
      • LeadLifecycleRequestDto
      • UpdateMeetingTypeDto
      • GetAvailabilityDto
      • CreateBookingDto
      • SaveAgentCapabilitiesDraftDto
      • PublishAgentCapabilitiesDto
      • ImportAgentCapabilitiesDto
      • CreateToolConnectionDto
      • UpdateToolConnectionDto
      • TestRunMcpToolDto
      • ImportMcpToolDto
      • CreateNoteDto
      • UpdateNoteDto
      • ContactEntity
      • ContactFilterCondition
      • RelationalConditionDto
      • RelationalScopeSpecDto
      • RelationalScopeDto
      • SearchContactDto
      • CreateContactDto
      • LinkCompanyDto
      • LinkDealDto
      • CompanyEntity
      • CompanyFilterCondition
      • SearchCompanyDto
      • LinkContactDto
      • PromoteEmailDto
      • DealEntity
      • DealFilterCondition
      • SearchDealDto
      • CreateDealDto
      • LinkContactToDealDto
      • LinkCompanyToDealDto
      • AccountPlanStepEntity
      • AccountPlanEntity
      • OkResponse
      • RunnerWebhookMetadataDto
      • RunnerWebhookDto
      • LeadContactInput
      • LeadDealInput
      • LeadCompanyInput
      • CreateLeadDto
      • ActivityEntity
      • PipelineStageEntity
      • PipelineEntity
      • ConversationEntity
      • MessageEntity
      • CampaignSpecialistSummary
      • CampaignEntity
      • CampaignPageMeta
      • CampaignPageDto
      • ConfigureCampaignTeamDto
      • SpecialistTemplateDto
      • Object
      • SpecialistDto
      • SpecialistPageMetaDto
      • SpecialistPageDto
      • SpecialistDependencyDto
      • SpecialistDependenciesPageDto
      • CreateSpecialistDto
      • DuplicateSpecialistDto
      • UpdateSpecialistDto
      • SpecialistRevisionDto
      • CustomFieldDefinitionEntity
      • DealFormTemplateEntity
      • CadenceTemplateEntity
      • UserKnowledgeEntity
      • TriggerDto
      • TalkDirectCallConnectDto
      • TalkDirectCallSelectAgentDto
      • TalkDirectCallStartTaskCallDto
      • CreateTaskDto
      • UpdateTaskDto
      • SetStageDto
      • SetPriorityDto
      • CancelStepsDto
      • CreateHunterAgentDto
      • UpdateHunterAgentDto
      • LookupDto
      • WitnessedPageDto
      • CaptureDto
      • BulkCaptureItemDto
      • BulkCaptureDto
  1. roteamento

Diz se o serviço subiu e com quantas lojas — sem isto, um boot quebrado só apareceria no primeiro lead perdido.

GET
/roteamento/health

Request

None

Responses

🟢200
application/json
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/roteamento/health'
Response Response Example
{}
Modified at 2026-09-08 17:01:44
Previous
Recebe o CNPJ enriquecido e devolve franquia + analista responsáveis.
Next
Diz se o serviço subiu e com quantas lojas — sem isto, um boot quebrado só apareceria no primeiro lead perdido.
Built with