1. Genérico (data)
Khal Docs
  • Raiz
    • CRM
      • CRM — Overview
      • Genérico (data)
        • CRM - Genérico
        • Listar/filtrar registros (qualquer tabela do CRM)
          POST
        • Criar/atualizar registros (qualquer tabela do CRM)
          POST
        • Hard-delete (não permitido para tabelas company)
          POST
      • Empresas Relacionadas
        • CRM - Empresas relacionadas
        • Listar relacionamentos de uma empresa (ambas as direções)
        • Tipos de relacionamento disponíveis
        • 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)
      • Empresas do cliente
        • Listar tipos de relacionamento
        • Listar empresas de um cliente
        • Vincular empresa ao cliente
        • Trocar a empresa principal
        • Alterar tipo de relacionamento
        • Inativar vínculo
        • Reativar vínculo
        • Excluir vínculo
    • Workflow
      • Workflow - Overview
      • Tickets
        • Workflow - Tickets
        • Criar ticket com auto-vínculo / criação de customer via contato
        • Detalhe completo do ticket (mensagens, SLA, fases, customer, empresa, business)
        • Criar ticket (básico, com integração CRM opcional)
        • Movimentar ticket entre fases (ou finalizar)
        • Atualizar dados do ticket (nome, descrição, valor)
        • Vincular cliente CRM a um ticket existente
        • Adicionar nota ou mensagem ao ticket
        • Atribuir ou transferir o responsável do 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)
    • Webhooks
      • Eventos
        • 📨 [Contrato] Evento entregue na sua URL
        • Catálogo de eventos disponíveis
      • Assinaturas
        • Listar webhooks cadastrados
        • Criar webhook (o secret aparece UMA única vez)
        • Testar conectividade de uma URL
        • Detalhar webhook
        • Atualizar webhook
        • Ativar/desativar webhook (toggle)
        • Remover webhook (soft delete)
      • Entregas
        • Log de entregas de uma assinatura
        • Reprocessar uma entrega
        • Reprocessar TODAS as entregas com falha
      • Integrações
        • Voz IA (ElevenLabs)
          • Criar ou atualizar a integração de Voz IA
          • Consultar a integração de Voz IA
          • Alterar a integração de Voz IA (secret, toggle, allowlist)
          • Remover a integração de Voz IA
          • Webhook pós-chamada (chamado pelo provedor de voz)
    • Configurações
      • Canais
        • WhatsApp oficial
          • Listar conexões de WhatsApp (a tela Canais › WhatsApp oficial)
          • Listar números disponíveis de uma WABA
          • Criar conexão de WhatsApp oficial
          • Conectar o número oficial (ativar a conexão)
        • Telefonia
          • Anexar gravação de ligação (telefonia de terceiros)
          • Registrar CSAT de ligação
          • Consultar status da gravação enviada
      • Templates
        • WhatsApp oficial
          • Listar templates HSM (a tela Templates › WhatsApp oficial)
          • Criar template HSM (+ Novo modelo)
          • Detalhar template
          • Atualizar template
          • Excluir template
          • Sincronizar templates com a Meta
          • Upload de mídia para o header do template
        • RCS
          • Listar templates de RCS
      • Base de dados
        • Modelo de colunas do CSV
        • Importar base (CSV) para uma tabela do CRM
        • Acompanhar as importações (validar o resultado)
        • Erros de uma importação
        • Exportar os erros em planilha
    • Raiz
      • Workflow
        • Tarefas
          • Criar tarefa
          • Listar tarefas
          • Resumo de tarefas
          • Consultar tarefa
          • Editar tarefa
          • Concluir tarefa
          • Cancelar (excluir) tarefa
          • Silenciar alarme
          • Tarefas do ticket
  • Esquemas
    • LoginRequest
    • FilterOperator
    • WebhookSubscription
    • ClienteEmpresaTipo
    • LoginResponse
    • FilterCondition
    • WebhookSubscriptionResumo
    • ClienteEmpresa
    • Error
    • Pagination
    • WebhookDelivery
    • ErroRegra
    • FilterRequest
    • WebhookEventEnvelope
    • FilterResponse
    • SetMethod
    • SetRequest
    • DeleteRequest
    • SuccessEnvelope
    • ErrorEnvelope
    • Empresa
    • EmpresaResumo
    • EmpresaRelacionadaCreate
    • EmpresaRelacionada
    • TicketInfoResponse
  1. Genérico (data)

Listar/filtrar registros (qualquer tabela do CRM)

POST
/api/v2/crm/data/filter
Leitura genérica de qualquer tabela do CRM (empresa, cliente, negociacao,
financeiro, contrato, …).

Estrutura do payload#

CampoTipoObrigatórioO que faz
tablestringsimTabela a consultar (empresa, cliente, negociacao, financeiro, …).
selectstring[]nãoColunas a retornar. Omita pra trazer todas as visíveis.
filterobject[]nãoLista de condições AND ({field, operator, value}).
sortBystringnãoColuna pra ordenar.
sortDirectionstringnãoasc (padrão) ou desc.
pageobjectnãoPaginação {page, limit} — page é 0-indexado.

Operadores aceitos (filter[].operator)#

OperadorSignificadoTipo de valueExemplo
=igualstring / number / boolean{"field":"ativo","operator":"=","value":true}
!= ou <>diferentestring / number / boolean{"field":"ativo","operator":"!=","value":false}
> < >= <=comparação numérica/datanumber / date{"field":"id","operator":">=","value":100}
inestá na listaarray{"field":"id","operator":"in","value":[1,2,3]}
Comparação exata — não há LIKE/fuzzy. Pra busca textual livre,
use o endpoint de search específico (fora do escopo desta API).

Tipos de valor#

string: texto exato ("00.000.000/0001-00"). Aspas obrigatórias.
number: id ou decimal sem aspas (12, 12.5).
boolean: true/false (sem aspas — não use "true").
date: ISO-8601 ("2026-01-01T00:00:00Z").
array: usado só com in ([1,2,3]).

Gotchas#

Sem filter[] retorna tudo (até page.limit registros).
cnpj / cpf_cnpj no banco são sem formatação (sem pontos/barras): use "11111111000111", não "11.111.111/0001-11".
Tabelas do scope company filtram deleted_at IS NULL automaticamente — soft-deletadas somem do read.
page.page começa em 0 (primeira página = 0).
É POST (não GET) porque o payload é complexo (filtros aninhados, arrays).

⚠️ id_ticket nas tabelas do CRM é o id_seq, não o UUID#

Nas tabelas do CRM que apontam para um atendimento — negociacao é a mais comum — a coluna id_ticket guarda o id_seq do ticket (o número sequencial, ex.: 564448), não o UUID.
Os dois identificadores convivem e não são intercambiáveis:
IdentificadorFormatoOnde se usa
id do ticketUUID (84cefe00-761e-...)Endpoints de ticket: /ticket/message, /ticket/finish, /ticket/link_customer, /ticket/info/{id}
id_seq do ticketinteiro (564448)Coluna id_ticket das tabelas do CRM
Os dois vêm na resposta da criação do ticket: id e id_seq.
Gravar o UUID em id_ticket não devolve erro — a coluna é textual — mas o registro fica invisível para a plataforma, que consulta essas tabelas por id_seq. O atendimento aparece sem a negociação vinculada mesmo com a linha existindo no CRM.

Requisição

Parâmetros Header

Parâmetros Bodyapplication/jsonObrigatório

Examples

Respostas

🟢200OK
application/json
Array nu de registros (sem envelope {ok,data}). Cada item carrega
só as colunas pedidas em select (ou todas as visíveis se select for omitido).
Lista vazia ([]) quando o filtro não casa com nada.
Bodyapplication/json

🟠400Pedido Inválido
🟠401Não Autorizado
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location '/api/v2/crm/data/filter' \
--header 'api-key: {{api-key}}' \
--header 'Content-Type: application/json' \
--data '{
    "table": "empresa",
    "select": [
        "id",
        "razao_social",
        "nome_fantasia",
        "cnpj",
        "ativo"
    ],
    "filter": [
        {
            "field": "cnpj",
            "operator": "=",
            "value": "11111111000111"
        }
    ],
    "sortBy": "id",
    "sortDirection": "asc",
    "page": {
        "limit": 100,
        "page": 0
    }
}'
Response Response Example
200 - table: empresa — 3 empresas
[
    {
        "id": 1,
        "nome_fantasia": "Empresa Fantasia",
        "cnpj": "11111111000111"
    },
    {
        "id": 2,
        "nome_fantasia": "Empresa Exemplo Fantasia",
        "cnpj": "22222222000122"
    },
    {
        "id": 3,
        "nome_fantasia": "Midiahub fantasia",
        "cnpj": "22222222222222"
    }
]
Modificado em 2026-11-04 03:37:52
Página anterior
CRM - Genérico
Próxima página
Criar/atualizar registros (qualquer tabela do CRM)
Built with