Digitalk Developers
  1. CRM
Raiz
  • Raiz
  • CRM
    • CRM — Overview
    • Genérico (data)
      • CRM - Genérico
      • Listar/filtrar registros (qualquer tabela do CRM)
      • Criar/atualizar registros (qualquer tabela do CRM)
      • Hard-delete (não permitido para tabelas company)
    • Empresas Relacionadas
      • CRM - Empresas relacionadas
      • Tipos de relacionamento disponíveis
      • Listar relacionamentos de uma empresa (ambas as direções)
      • Criar relacionamento entre duas empresas
      • Alterar o tipo do relacionamento
      • Inativar relacionamento (reversível)
      • Excluir relacionamento (hard-delete)
    • Ticket ↔ Empresa
      • CRM - Ticket <-> Empresa
      • Empresas elegíveis para o ticket
      • Vincular / trocar a empresa do ticket
    • Templates
      • CRM - Templates
      • Listar templates do tenant (apenas IDs, sem fields)
      • Detalhe completo do template (com fields)
      • Pesquisa formatada por scope (CRMSearchResult)
  • Workflow
    • Workflow - Overview
    • Tickets
      • Workflow - Tickets
      • Detalhe completo do ticket (mensagens, SLA, fases, customer, empresa, business)
      • Criar ticket (básico, com integração CRM opcional)
      • Criar ticket com auto-vínculo / criação de customer via contato
      • Movimentar ticket entre fases (ou finalizar)
      • Atualizar dados do ticket (nome, descrição)
      • Vincular cliente CRM a um ticket existente
      • Adicionar nota ou mensagem ao ticket
    • Workspaces & Workflows
      • Workflow - Workspaces & Workflows
      • Listar workspaces e workflows acessíveis ao usuário
      • Listar fases de um workflow
      • Listar tickets de uma ou mais fases (paginado)
  1. CRM

CRM — Overview

API multi-tenant pra ler/escrever dados do CRM (empresa, cliente, negócios,
tabelas customizadas) via header api-key. Todos os endpoints abaixo respondem
no host do tenant (https://api-<tenant>.digitalk.com.br) — a api-key
já carrega o contexto multi-tenant.

Quickstart em 60 segundos#

1.
Configure api-key no Environment do Apidog (variável api-key).
2.
Liste empresas pra pegar IDs:
3.
Pegue um id da resposta e use nos demais endpoints (relacionamentos, vínculo com ticket).

Conceitos rápidos#

Tenant (multi-empresa)#

Cada cliente da Digitalk roda em um host próprio: https://api-<tenant>.digitalk.com.br.
A api-key está atrelada ao tenant — não precisa trocar de tenant; resolve sozinho.

Scopes#

O CRM separa as tabelas por scope:
ScopeTabelasO que é
customercliente, avaliacaoPessoa que consome / é atendida.
contactcontatoCanais do cliente (phone, email, WhatsApp, …).
businessnegociacaoOportunidade/deal vinculada a 1 cliente.
companyempresa, empresas_relacionadas, + tabelas customizadas (financeiro, contrato, …)Empresa B2B (CNPJ). cliente.id_empresa é a FK que liga cliente → empresa.
catalog(custom por tenant)Catálogos auxiliares (listas de opções).

Autenticação#

Todas as rotas exigem o header api-key:
api-key: <SEU_TOKEN>
Sem header → 401. A api-key resolve tenant + permissões automaticamente.
No Apidog, defina a variável api-key no Environment e os exemplos {{api-key}}
são preenchidos automaticamente em todos os endpoints.

Endpoints centrais#

Genérico (qualquer tabela do CRM)#

RotaPra que serve
POST /api/v2/crm/data/filterListar/filtrar (qualquer tabela).
POST /api/v2/crm/data/setCriar (method:"post") ou atualizar (method:"patch").
POST /api/v2/crm/data/deleteHard-delete (bloqueado para tabela company — use soft-delete).

Específicos de Empresa (subpasta Empresas Relacionadas)#

RotaPra que serve
GET /api/v2/empresa-relacionadas/typesTipos válidos pra tipo_de_relacionamento.
GET /api/v2/empresa-relacionadas/by-empresa/{id}?onlyActive=trueListar relacionamentos (ambas direções).
POST /api/v2/empresa-relacionadasCriar vínculo direcional empresa→empresa.
PATCH /api/v2/empresa-relacionadas/{id}/typeAlterar tipo.
PATCH /api/v2/empresa-relacionadas/{id}/inactivateInativar (reversível).
DELETE /api/v2/empresa-relacionadas/{id}Hard-delete (irreversível).

Ticket ↔ Empresa (subpasta Ticket ↔ Empresa)#

RotaPra que serve
GET /api/v2/ticket/{id}/empresasEmpresas elegíveis pro vínculo (cliente direto + relacionadas).
PUT /api/v2/ticket/{id}/empresaVincular/trocar a empresa do ticket.
GET /api/v2/ticket/info/{id}Detalhe do ticket (customer + empresa + business).

Formato das respostas#

Não é uniforme — preste atenção em qual estilo o endpoint usa:
EndpointsFormatoExemplo
/crm/data/filter, /crm/data/setArray nu (sem envelope)[{...}, {...}]
Todos os outros (/empresa-relacionadas/*, /ticket/*, /data/delete)Envelope {ok, data}{"ok":true,"data":[...]}
Erros 4xx/5xx{"error":"..."} (mscrm direto) ou {"ok":false,"message":"..."} (envelope)varia
Cada endpoint mostra o formato real no exemplo de resposta — sempre confira lá.

Operadores de filtro (em /crm/data/filter e /crm/data/set patch)#

OperadorSignificadoTipo de value
=igualstring / number / boolean
!= ou <>diferentestring / number / boolean
> < >= <=comparação numérica/datanumber / date
inestá na listaarray
Comparação exata (não há LIKE/fuzzy). Pra busca textual livre, use o endpoint de search dedicado (fora desta API).

Tipos de value#

string: aspas obrigatórias ("texto").
CNPJ / CPF no banco é sem formatação — use "11111111000111", não "11.111.111/0001-11".
number: sem aspas (12, 12.5).
boolean: true / false (sem aspas — "true" quebra).
date: ISO-8601 ("2026-01-01T00:00:00Z").
array: usado só com in ([1,2,3]).

Paginação#

Objeto aninhado (não plano): {"page": {"page": 0, "limit": 100}} — page começa em 0, não 1. Default 100/página, máximo 1000.

Soft-delete e auditoria (escopo company)#

Tabelas do scope company (incl. tabelas customizadas, ex: financeiro/contrato):
Hard-delete via /data/delete é bloqueado (400). Pra "remover", use data/set patch:
Inativar (reversível, some dos seletores): {"payload": {"ativo": false}}.
Soft-delete (destrutivo, auditável): {"payload": {"ativo": false, "deleted_at": "<ISO-8601>"}}.
Reads filtram deleted_at IS NULL automaticamente — registros soft-deletados somem do data/filter.
Toda mutação grava trilha em crm_data_audit (interno, sem endpoint público de leitura).

Fluxo típico: vincular uma empresa nova a um ticket#

1.
POST /api/v2/crm/data/set method:"post" table:"empresa" — cria a empresa, anota o id.
2.
(opcional) POST /api/v2/empresa-relacionadas — vincula essa empresa a outra existente.
3.
GET /api/v2/ticket/{id}/empresas — confirma que a empresa nova apareceu na lista de elegíveis.
4.
PUT /api/v2/ticket/{id}/empresa {"id_empresa_crm": <id>} — vincula ao ticket. Se já havia outra empresa, o vínculo anterior é inativado.
5.
GET /api/v2/ticket/info/{id} — valida que data.empresa agora reflete a empresa nova.

Erros comuns#

HTTPCausa típicaResposta típica
400Payload inválido (campo errado, operator desconhecido, patch sem filter, hard-delete em tabela company){"error":"..."}
401Header api-key ausente ou inválido{"tokenError":"..."}
404Recurso inexistente (relacionamento, ticket){"ok":false,"message":"..."}
422Invariante violado (self-relation, duplicata, empresa inativa em vínculo){"ok":false,"message":"..."}
500Bug interno — abrir ticket no time de plataforma com o correlation_id da respostavaria
Modificado em 2026-05-28 19:19:24
Próxima página
CRM - Genérico
Built with