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)

Criar/atualizar registros (qualquer tabela do CRM)

POST
/api/v2/crm/data/set
Criação ou atualização de qualquer tabela do CRM.

Estrutura do payload#

CampoTipoObrigatórioO que faz
tablestringsimTabela alvo.
methodstringsim"post" (cria) ou "patch" (atualiza).
payloadobjectsim{coluna: valor} — só as colunas a definir/atualizar.
filterobject[]só pra patchDefine quais registros atualizar (mesma sintaxe de data/filter).

post vs patch#

post cria um registro novo. Não use filter. O payload vira a linha inserida (auto-incremento do id).
patch atualiza registros existentes que casarem com filter. Sem filter o patch é rejeitado (proteção contra update global acidental).

Inativar vs soft-delete em tabela company (WF-3636)#

data/delete em tabela do scope company retorna 400 (bloqueado). Pra "remover":
OperaçãopayloadEfeito
Inativar (reversível){"ativo": false}Some dos seletores; reversível com ativo: true.
Soft-delete (destrutivo, auditável){"ativo": false, "deleted_at": "<ISO-8601>"}Marca como deletado; reads filtram automaticamente. Setar os dois campos.

Auditoria (WF-3636)#

Toda mutação (post/patch) em tabela company grava trilha em crm_data_audit (registro antes/depois + id_usuario). Trilha interna — sem endpoint público de leitura.

⚠️ 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 com o(s) registro(s) afetado(s) (mesmo formato do /data/filter).
Em post vem 1 item (a linha inserida, com id auto-incrementado e campos
sistêmicos preenchidos). Em patch vem N itens (todos os registros que casaram).
Bodyapplication/json

🟠400Pedido Inválido
🟠401Não Autorizado
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location '/api/v2/crm/data/set' \
--header 'api-key: {{api-key}}' \
--header 'Content-Type: application/json' \
--data '{
    "table": "empresa",
    "method": "post",
    "payload": {
        "razao_social": "ACME S.A.",
        "nome_fantasia": "ACME",
        "cnpj": "00000000000100",
        "ativo": true
    }
}'
Response Response Example
200 - post — registro criado em tabela company (financeiro)
[
    {
        "id": 3,
        "id_empresa": 1,
        "juros": 99.99,
        "criado_em": "2026-05-28T15:58:33.461805Z",
        "alterado_em": null,
        "deleted_at": null
    }
]
Modificado em 2026-11-04 02:31:07
Página anterior
Listar/filtrar registros (qualquer tabela do CRM)
Próxima página
Hard-delete (não permitido para tabelas company)
Built with