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.
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_.
Authorization: Bearer clx_a1b2c3d4e5f678901234567890abcdef1234567890abcdef
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.
A requisição foi processada com êxito.
Campos obrigatórios ausentes ou payload mal formatado.
O cabeçalho Authorization não foi fornecido ou o token expirou.
O token fornecido não possui o scope necessário para o endpoint.
/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"
}
}
/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"
}
}
/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
}
/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"
}
]
}
/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...="
}
}
/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
}
/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) |
| 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"
}
}
/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
}
}
/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
}
]
}
]
}
/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
}
/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
}
}
/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
}
}
/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"
}
}
/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"
}
/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"
}
/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
}
}
/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"
}
]
}
/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"
}
/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"
}
/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"
}
]
}
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
}
}
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.
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
/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
}
]
}
/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..."
}
}
/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"
}
/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"
}
/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"
}
/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
}
]
}
/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"
}
}
/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!"
}
]
}
}
/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"
}
/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"
}