ClienX CRM API Docs
Guia do Desenvolvedor

Documentação da API REST v1 do ClienX CRM

A API aberta do ClienX permite integrar o WhatsApp, formulários de captura, plataformas de checkout (Hotmart, Kiwify, PerfectPay, Eduzz), ferramentas de automação (n8n, Make) e ERPs diretamente com a inteligência do seu funil comercial.

URL Base de Produção
https://back.clienx.com.br/api/v1

Todas as requisições devem ser feitas obrigatoriamente através do protocolo HTTPS com cabeçalho Content-Type: application/json.

Processamento Assíncrono

Disparos de mensagens e templates entram em filas RabbitMQ dedicadas para proteção contra bloqueios.

Webhooks Assinados

Cada notificação de evento possui assinatura HMAC-SHA256 garantindo a autenticidade dos dados.

Conexão Meta & Google

Vendas criadas via endpoint /funnel/cards/{id}/sales disparam automaticamente os eventos CAPI e conversões offline.

Autenticação & Tokens de Acesso

A API do ClienX utiliza autenticação via Bearer Token. Cada token é gerado no painel da sua empresa e possui um prefixo identificador único clx_.

Header HTTP Obrigatório em Todas as Requisições:
Authorization: Bearer clx_a1b2c3d4e5f678901234567890abcdef1234567890abcdef
Segurança do Token

Nunca exponha seu token clx_ no código front-end (React, Vue, mobile app). Utilize sempre requisições a partir de um servidor back-end seguro para evitar acessos não autorizados.

Tabela de Scopes de Acesso

Scope Permissão Concedida
messages:send Permite enviar mensagens de texto e arquivos de mídia no WhatsApp
messages:read Permite ler mensagens e histórico de conversas
contacts:read / write Permite listar, consultar e cadastrar contatos
funnel:read / write Permite criar, mover, editar cards, adicionar notas e registrar vendas no Kanban
templates:read / send Permite consultar e disparar templates HSM aprovados pela Meta
webhooks:manage Permite criar, listar e remover endpoints de webhook
* Acesso total a todos os endpoints do workspace

Erros & Códigos HTTP

A API do ClienX adota códigos de resposta padrão HTTP. Todas as respostas de erro retornam um objeto JSON estruturado com a propriedade success: false e uma mensagem explicativa.

200 OK Sucesso

A requisição foi processada com êxito.

400 Bad Request Parâmetros Inválidos

Campos obrigatórios ausentes ou payload mal formatado.

401 Unauthorized Token Inválido ou Ausente

O cabeçalho Authorization não foi fornecido ou o token expirou.

403 Forbidden Permissão Insuficiente

O token fornecido não possui o scope necessário para o endpoint.

POST /messages/send Scope: messages:send

Enviar Mensagem de Texto

Enfileira e envia uma mensagem de texto simples pelo WhatsApp para o número indicado.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
phone string Sim Número do destinatário com DDI e DDD (ex: 5511999999999)
message string Sim Texto da mensagem a ser enviada
channelId string Não ID do canal. Se omitido, usa o primeiro canal ativo do workspace
curl -X POST "https://back.clienx.com.br/api/v1/messages/send" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "phone": "5511999999999",
  "message": "Ol\u00e1! Sua proposta comercial j\u00e1 est\u00e1 dispon\u00edvel.",
  "channelId": "1"
}'

Resposta 200 OK

{
  "success": true,
  "message": "Mensagem enviada para a fila de processamento",
  "data": {
    "jobId": "msg_job_984123",
    "phone": "5511999999999",
    "channelId": "1"
  }
}
POST /messages/send-media Scope: messages:send

Enviar Mensagem com Mídia

Envia imagens (JPEG/PNG), áudios (OGG/MP3), vídeos (MP4) ou documentos PDF via URL pública.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
phone string Sim Número do destinatário com DDI e DDD (ex: 5511999999999)
mediaUrl string Sim URL pública acessível do arquivo
caption string Não Legenda de texto exibida junto à imagem ou documento
channelId string Não ID do canal remetente opcional
curl -X POST "https://back.clienx.com.br/api/v1/messages/send-media" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "phone": "5511999999999",
  "mediaUrl": "https://midia.clienx.com.br/file/bucket/proposta.pdf",
  "caption": "Segue o contrato em anexo."
}'

Resposta 200 OK

{
  "success": true,
  "message": "M\u00eddia enviada para a fila de processamento",
  "data": {
    "jobId": "media_job_71249"
  }
}
GET /messages/{conversationKey} Scope: messages:read

Histórico da Conversa

Retorna a lista cronológica de mensagens trocadas em uma conversa, com suporte a paginação.

Query Parameters

Campo Tipo Obrigatório Descrição
limit number Não Quantidade máxima de mensagens (padrão 50, máx 100)
offset number Não Deslocamento para paginação (padrão 0)
curl -X GET "https://back.clienx.com.br/api/v1/messages/{conversationKey}" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "id": "184029",
      "key": "msg_901a8f",
      "fromMe": false,
      "text": "Ol\u00e1, gostaria de saber o valor do plano.",
      "timestamp": "2026-10-19T09:20:10.000Z"
    }
  ],
  "total": 1
}
GET /templates Scope: templates:read

Listar Templates Aprovados

Retorna todos os modelos de mensagem HSM da Meta aprovados e prontos para disparo no canal.

Query Parameters

Campo Tipo Obrigatório Descrição
channelId string Não Filtrar templates por canal específico do WhatsApp Oficial
curl -X GET "https://back.clienx.com.br/api/v1/templates" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "name": "confirmacao_pedido",
      "language": "pt_BR",
      "status": "APPROVED",
      "category": "UTILITY"
    }
  ]
}
POST /templates/send Scope: templates:send

Disparar Template Oficial WhatsApp (HSM)

Envia um modelo aprovado pela Meta. Essencial para iniciar conversas fora da janela de 24h ou disparar notificações de pedidos.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
phone string Sim Número do destinatário com DDI e DDD (ex: 5511999999999)
templateName string Sim Nome exato do template aprovado
language string Sim Código do idioma (ex: pt_BR)
variables object Não Objeto chave-valor com variáveis nominais para o corpo
curl -X POST "https://back.clienx.com.br/api/v1/templates/send" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "phone": "5511999999999",
  "templateName": "confirmacao_pedido",
  "language": "pt_BR",
  "variables": {
    "nome": "Mariana",
    "pedido": "#84920"
  }
}'

Resposta 200 OK

{
  "success": true,
  "message": "Template enviado com sucesso",
  "data": {
    "messageId": "wamid.HBgLM...="
  }
}
GET /contacts Scope: contacts:read

Listar Contatos

Retorna os contatos do workspace com suporte a busca textual por nome, telefone ou e-mail.

Query Parameters

Campo Tipo Obrigatório Descrição
search string Não Termo de busca (nome, telefone ou e-mail)
limit number Não Quantidade por página (padrão 50, máx 100)
offset number Não Deslocamento da paginação
curl -X GET "https://back.clienx.com.br/api/v1/contacts" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "id": "951",
      "name": "Mariana Souza",
      "phone": "5511999999999",
      "email": "mariana@empresa.com"
    }
  ],
  "total": 1
}
POST /contacts Scope: contacts:write

Criar ou Atualizar Contato

Cadastra um contato no CRM e opcionalmente cria a oportunidade no funil na etapa desejada.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
name string Sim Nome completo do contato
phone string Condicional Telefone (obrigatório se email não informado)
email string Condicional E-mail (obrigatório se phone não informado)
value number Não Valor potencial da oportunidade em R$
pipelineId string Não ID do funil para criar o card
columnId string Não ID da coluna/etapa do funil
customFields object Não Campos dinâmicos adicionais (ex: cidade, cargo, empresa)
curl -X POST "https://back.clienx.com.br/api/v1/contacts" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Carlos Eduardo",
  "phone": "5511988887777",
  "email": "carlos@empresa.com.br",
  "value": 1490.0,
  "customFields": {
    "cidade": "S\u00e3o Paulo",
    "estado": "SP"
  }
}'

Resposta 200 OK

{
  "success": true,
  "data": {
    "id": "952",
    "name": "Carlos Eduardo",
    "phone": "5511988887777",
    "cardId": "7842"
  }
}
GET /contacts/{phone} Scope: contacts:read

Buscar Contato por Telefone

Obtém o cadastro completo de um contato e seus dados comerciais a partir do número de telefone.

Path Parameter

Campo Tipo Obrigatório Descrição
phone string Sim Número do telefone com código do país (ex: 5511999999999)
curl -X GET "https://back.clienx.com.br/api/v1/contacts/{phone}" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": {
    "id": "951",
    "name": "Mariana Souza",
    "phone": "5511999999999",
    "cardsCount": 2
  }
}
GET /funnel/pipelines Scope: funnel:read

Listar Pipelines e Etapas

Retorna todos os funis de venda do workspace e suas respectivas colunas/etapas com IDs.

curl -X GET "https://back.clienx.com.br/api/v1/funnel/pipelines" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "id": "3",
      "name": "Funil Comercial Padr\u00e3o",
      "columns": [
        {
          "id": "12",
          "name": "Novos Leads",
          "order": 0
        },
        {
          "id": "14",
          "name": "Em Negocia\u00e7\u00e3o",
          "order": 1
        },
        {
          "id": "16",
          "name": "Venda Ganha",
          "order": 2
        }
      ]
    }
  ]
}
GET /funnel/cards Scope: funnel:read

Listar Cards do Funil

Lista cards e oportunidades do Kanban com filtros por pipeline e coluna.

Query Parameters

Campo Tipo Obrigatório Descrição
pipelineId string Não Filtrar por pipeline específico
columnId string Não Filtrar por coluna/etapa específica
limit number Não Limite por página (padrão 50)
offset number Não Deslocamento para paginação
curl -X GET "https://back.clienx.com.br/api/v1/funnel/cards" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "id": "7841",
      "pipelineId": "3",
      "columnId": "12",
      "value": 1490.0,
      "contact": {
        "name": "Mariana Souza",
        "phone": "5511999999999"
      }
    }
  ],
  "total": 1
}
POST /funnel/cards Scope: funnel:write

Criar Card de Oportunidade

Cria um novo card de oportunidade diretamente em uma etapa do funil.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
pipelineId string Sim ID do pipeline de destino
columnId string Sim ID da coluna/etapa inicial
name string Não Nome do contato / negócio
phone string Não Telefone do contato
value number Não Valor financeiro do negócio em R$
responsibleUserId string Não ID do atendente responsável pelo card
curl -X POST "https://back.clienx.com.br/api/v1/funnel/cards" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "pipelineId": "3",
  "columnId": "12",
  "name": "Mariana Souza",
  "phone": "5511999999999",
  "value": 1490.0
}'

Resposta 200 OK

{
  "success": true,
  "message": "Card criado com sucesso",
  "data": {
    "id": "7841",
    "columnId": "12",
    "value": 1490.0
  }
}
PUT /funnel/cards/{id} Scope: funnel:write

Atualizar Dados do Card

Altera campos básicos do card, como título do negócio, valor estimado e atendente responsável.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
value number Não Novo valor financeiro da oportunidade
responsibleUserId string Não Novo atendente responsável
notes string Não Observação interna atualizada
curl -X PUT "https://back.clienx.com.br/api/v1/funnel/cards/{id}" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "value": 2190.0,
  "notes": "Aumentou o escopo da proposta."
}'

Resposta 200 OK

{
  "success": true,
  "message": "Card atualizado com sucesso",
  "data": {
    "id": "7841",
    "value": 2190.0
  }
}
PUT /funnel/cards/{id}/move Scope: funnel:write

Mover Card de Etapa

Avança ou retrocede o card entre etapas do mesmo pipeline. Dispara automações e webhooks de movimentação.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
columnId string Sim ID da nova coluna/etapa de destino
curl -X PUT "https://back.clienx.com.br/api/v1/funnel/cards/{id}/move" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "columnId": "14"
}'

Resposta 200 OK

{
  "success": true,
  "message": "Card movido com sucesso",
  "data": {
    "id": "7841",
    "columnId": "14"
  }
}
PUT /funnel/cards/{id}/change-pipeline Scope: funnel:write

Trocar Card de Pipeline

Transfere o card para outro funil de vendas, posicionando-o na primeira etapa do novo funil.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
pipelineId string Sim ID do novo pipeline
columnId string Não ID da etapa inicial no novo pipeline (opcional)
curl -X PUT "https://back.clienx.com.br/api/v1/funnel/cards/{id}/change-pipeline" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "pipelineId": "4"
}'

Resposta 200 OK

{
  "success": true,
  "message": "Card transferido para novo pipeline"
}
POST /funnel/cards/{id}/notes Scope: funnel:write

Adicionar Nota Interna

Insere um comentário ou anotação interna visível apenas para os atendentes da equipe dentro do card.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
content string Sim Texto da nota interna
curl -X POST "https://back.clienx.com.br/api/v1/funnel/cards/{id}/notes" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "content": "Cliente solicitou prazo estendido at\u00e9 quinta-feira."
}'

Resposta 200 OK

{
  "success": true,
  "message": "Nota adicionada com sucesso"
}
POST /funnel/cards/{id}/sales Scope: funnel:write

Registrar Venda Ganha no Card

Registra uma venda confirmada com valor monetário real. Esse endpoint automaticamente alimenta o evento oficial Purchase no Pixel de Mensagens da Meta e a Conversão Offline do Google Ads.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
value number Sim Valor da venda em reais (ex: 1490.00)
paymentMethod string Não Forma de pagamento ("pix", "credit_card", "boleto")
orderId string Não Identificador externo do pedido para deduplicação
notes string Não Observações internas sobre o fechamento
curl -X POST "https://back.clienx.com.br/api/v1/funnel/cards/{id}/sales" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "value": 1490.0,
  "paymentMethod": "pix",
  "orderId": "PED-98210",
  "notes": "Cliente fechou o plano anual via WhatsApp."
}'

Resposta 200 OK

{
  "success": true,
  "message": "Venda registrada com sucesso",
  "data": {
    "id": "sale_5102",
    "cardId": "7841",
    "value": 1490.0
  }
}
GET /funnel/cards/{id}/sales Scope: funnel:read

Listar Vendas do Card

Lista todas as vendas e faturamentos vinculados a um card específico.

Path Parameter

Campo Tipo Obrigatório Descrição
id string Sim ID do card no funil
curl -X GET "https://back.clienx.com.br/api/v1/funnel/cards/{id}/sales" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "id": "sale_5102",
      "value": 1490.0,
      "paymentMethod": "pix",
      "createdAt": "2026-10-19T09:30:00.000Z"
    }
  ]
}
PUT /funnel/cards/{id}/sales/{saleId} Scope: funnel:write

Atualizar Venda

Altera dados de uma venda registrada, como valor corrigido ou método de pagamento.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
value number Não Novo valor em reais
paymentMethod string Não Forma de pagamento
notes string Não Observações
curl -X PUT "https://back.clienx.com.br/api/v1/funnel/cards/{id}/sales/{saleId}" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "value": 1590.0,
  "notes": "Ajuste de taxa de setup."
}'

Resposta 200 OK

{
  "success": true,
  "message": "Venda atualizada com sucesso"
}
DELETE /funnel/cards/{id}/sales/{saleId} Scope: funnel:write

Excluir Venda

Remove um registro de venda do card.

Path Parameters

Campo Tipo Obrigatório Descrição
id string Sim ID do card
saleId string Sim ID da venda a excluir
curl -X DELETE "https://back.clienx.com.br/api/v1/funnel/cards/{id}/sales/{saleId}" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "message": "Venda exclu\u00edda com sucesso"
}
GET /tags Scope: tags:read

Listar Tags

Retorna todas as etiquetas (tags) cadastradas no workspace com seus nomes e cores.

curl -X GET "https://back.clienx.com.br/api/v1/tags" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "id": "tag_1",
      "name": "Lead Qualificado",
      "color": "#3b82f6"
    },
    {
      "id": "tag_2",
      "name": "VIP",
      "color": "#10b981"
    }
  ]
}
POST /funnel/cards/{id}/tags Scope: funnel:write

Adicionar Tag ao Card

Vincula uma etiqueta a uma oportunidade no Kanban.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
tagId string Sim ID da tag a ser vinculada
curl -X POST "https://back.clienx.com.br/api/v1/funnel/cards/{id}/tags" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "tagId": "tag_1"
}'

Resposta 200 OK

{
  "success": true,
  "message": "Tag vinculada ao card"
}
DELETE /funnel/cards/{id}/tags/{tagId} Scope: funnel:write

Remover Tag do Card

Desvincula uma etiqueta de uma oportunidade no Kanban.

Path Parameters

Campo Tipo Obrigatório Descrição
id string Sim ID do card
tagId string Sim ID da tag a remover
curl -X DELETE "https://back.clienx.com.br/api/v1/funnel/cards/{id}/tags/{tagId}" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "message": "Tag desvinculada do card"
}
GET /users Scope: users:read

Listar Atendentes da Equipe

Retorna os membros e atendentes ativos do workspace para permitir distribuição automática de leads.

curl -X GET "https://back.clienx.com.br/api/v1/users" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "id": "usr_1",
      "name": "Renan Keny",
      "email": "renan@clienx.com.br",
      "role": "admin"
    }
  ]
}
Tempo Real

Webhooks de Saída (Event-Driven)

Em vez de fazer consultas contínuas (polling), registre um endpoint HTTPS para que o ClienX notifique seu servidor instantaneamente sempre que uma mensagem for recebida, um lead mudar de etapa ou uma venda for registrada.

Estrutura do Payload Enviado

{
  "event": "card.moved",
  "timestamp": "2026-10-19T09:35:00.000Z",
  "workspace_id": "18",
  "data": {
    "cardId": "7841",
    "pipelineId": "3",
    "fromColumnId": "12",
    "toColumnId": "14",
    "contact": {
      "id": "951",
      "name": "Mariana Souza",
      "phone": "5511999999999"
    },
    "value": 1490.00
  }
}
Validação de Assinatura Criptográfica (HMAC-SHA256)

Cada requisição enviada pelo ClienX inclui o cabeçalho X-Webhook-Signature: sha256={hash}. Você pode validar que a mensagem veio legitimamente do ClienX comparando a assinatura gerada com o seu webhook secret.

Exemplo de Validação em Node.js:
const crypto = require('crypto'); function verifyWebhook(payloadRawBody, secret, signatureHeader) { const hash = 'sha256=' + crypto.createHmac('sha256', secret).update(payloadRawBody).digest('hex'); return crypto.timingSafeEqual(Buffer.from(hash), Buffer.from(signatureHeader)); }

Eventos Disponíveis para Inscrição

message.received Mensagem recebida do lead
message.sent Mensagem enviada
card.created Novo card criado no funil
card.moved Card avançou de etapa
sale.created Venda registrada com valor
tag.added / removed Etiqueta vinculada ou removida
GET /webhooks Scope: webhooks:manage

Listar Webhooks

Retorna os endpoints de webhook cadastrados e seus respectivos status de envio.

curl -X GET "https://back.clienx.com.br/api/v1/webhooks" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "id": "wh_1",
      "url": "https://api.empresa.com.br/webhook",
      "events": [
        "card.moved",
        "sale.created"
      ],
      "isActive": true
    }
  ]
}
POST /webhooks Scope: webhooks:manage

Cadastrar Webhook

Registra uma URL HTTPS de destino para receber eventos em tempo real. Retorna o secret para assinatura HMAC.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
url string Sim URL HTTPS válida de destino
events array Sim Array de eventos a escutar (ex: ["card.moved", "sale.created"])
curl -X POST "https://back.clienx.com.br/api/v1/webhooks" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://api.empresa.com.br/webhook",
  "events": [
    "card.moved",
    "sale.created",
    "message.received"
  ]
}'

Resposta 200 OK

{
  "success": true,
  "message": "Webhook criado com sucesso",
  "data": {
    "id": "wh_1",
    "secret": "whsec_a8b9c0d1e2f3..."
  }
}
PUT /webhooks/{id} Scope: webhooks:manage

Atualizar Webhook

Altera a URL de destino, eventos inscritos ou status ativo/inativo.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
url string Não Nova URL HTTPS
events array Não Nova lista de eventos inscritos
isActive boolean Não Status de ativação
curl -X PUT "https://back.clienx.com.br/api/v1/webhooks/{id}" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "events": [
    "sale.created"
  ]
}'

Resposta 200 OK

{
  "success": true,
  "message": "Webhook atualizado com sucesso"
}
DELETE /webhooks/{id} Scope: webhooks:manage

Excluir Webhook

Remove o endpoint de webhook e cessa os envios de eventos.

Path Parameter

Campo Tipo Obrigatório Descrição
id string Sim ID do webhook a excluir
curl -X DELETE "https://back.clienx.com.br/api/v1/webhooks/{id}" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "message": "Webhook exclu\u00eddo com sucesso"
}
POST /webhooks/{id}/test Scope: webhooks:manage

Disparar Teste de Webhook

Dispara um payload fictício de teste para validar a conectividade e a assinatura HMAC da sua URL.

Path Parameter

Campo Tipo Obrigatório Descrição
id string Sim ID do webhook a testar
curl -X POST "https://back.clienx.com.br/api/v1/webhooks/{id}/test" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json"

Resposta 200 OK

{
  "success": true,
  "message": "Disparo de teste enviado com status 200 OK"
}
GET /workflows Scope: workflows:read

Listar Workflows

Retorna todas as automações e fluxos de atendimento criados no workspace.

curl -X GET "https://back.clienx.com.br/api/v1/workflows" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": [
    {
      "id": "wf_1",
      "name": "Boas-vindas Lead Novo",
      "trigger": "card.created",
      "isActive": true
    }
  ]
}
POST /workflows Scope: workflows:write

Criar Workflow

Cadastra um novo fluxo automatizado no CRM.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
name string Sim Nome do workflow
trigger string Sim Gatilho de execução (ex: card.moved, message.received)
curl -X POST "https://back.clienx.com.br/api/v1/workflows" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Distribui\u00e7\u00e3o Roleta Atendentes",
  "trigger": "card.created"
}'

Resposta 200 OK

{
  "success": true,
  "message": "Workflow criado com sucesso",
  "data": {
    "id": "wf_2"
  }
}
GET /workflows/{id} Scope: workflows:read

Detalhes do Workflow

Retorna a estrutura completa e passos de um fluxo automatizado.

Path Parameter

Campo Tipo Obrigatório Descrição
id string Sim ID do workflow
curl -X GET "https://back.clienx.com.br/api/v1/workflows/{id}" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "data": {
    "id": "wf_1",
    "name": "Boas-vindas Lead Novo",
    "steps": [
      {
        "type": "sendMessage",
        "text": "Ol\u00e1!"
      }
    ]
  }
}
PUT /workflows/{id} Scope: workflows:write

Atualizar Workflow

Edita as etapas, gatilhos ou status de um fluxo automatizado.

Parâmetros do Body (JSON)

Campo Tipo Obrigatório Descrição
name string Não Nome atualizado
isActive boolean Não Status ativo/inativo
curl -X PUT "https://back.clienx.com.br/api/v1/workflows/{id}" \
  -H "Authorization: Bearer clx_seu_token_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "isActive": false
}'

Resposta 200 OK

{
  "success": true,
  "message": "Workflow atualizado com sucesso"
}
DELETE /workflows/{id} Scope: workflows:write

Excluir Workflow

Exclui definitivamente um fluxo automatizado.

Path Parameter

Campo Tipo Obrigatório Descrição
id string Sim ID do workflow
curl -X DELETE "https://back.clienx.com.br/api/v1/workflows/{id}" \
  -H "Authorization: Bearer clx_seu_token_aqui"

Resposta 200 OK

{
  "success": true,
  "message": "Workflow exclu\u00eddo com sucesso"
}
Copiado com sucesso!