Copy Page
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.
Recebe o CNPJ enriquecido e devolve franquia + analista responsáveis.
Diz se o serviço subiu e com quantas lojas — sem isto, um boot quebrado só apareceria no primeiro lead perdido.
Diz se o serviço subiu e com quantas lojas — sem isto, um boot quebrado só apareceria no primeiro lead perdido.
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
LinkCompanyDto
Copy Page
{
"companyId"
:
"string"
}