Acesse contatos, conversas e mensagens do seu escritório via API REST. Integre com n8n, Make, Zapier ou qualquer sistema.
Automatize processos, integre com seu stack e escale o atendimento do escritório
Crie, atualize, busque e exclua contatos. Filtre por tags, status e busque por nome ou telefone com paginação por cursor.
Liste e crie conversas do WhatsApp. Filtre por contato, instância ou status de arquivamento. Cada conversa vincula contato e número.
Envie texto, mídia e templates aprovados pela Meta. Envio assíncrono via fila com status automático (pending → sent → delivered → read).
Consulte os números de WhatsApp conectados ao escritório, status de conexão e provedor da integração (Meta, WAHA).
Crie e revogue chaves com escopos granulares (contacts:read, messages:send, etc). Cada chave tem uso rastreado e permissões independentes.
Limites diferenciados: 100 req/min para leitura, 20/min para envio de mensagens, 500 envios/dia. Headers com status em tempo real.
Copie o JSON, importe no n8n e adapte ao seu escritório. Todos usam a API pública do Chat Jurídico.
Classifica automaticamente se o lead precisa de trabalhista ou previdenciario e encaminha para o advogado certo
{
"name": "CJ → Triagem Trabalhista/Previdenciario",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "cj-triagem-demanda",
"responseMode": "onReceived"
},
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/conversations/={{ $json.conversation_id }}/messages?limit=10",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
}
},
"name": "Buscar Mensagens",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [470, 300]
},
{
"parameters": {
"model": "gpt-4o-mini",
"messages": {
"values": [
{
"role": "system",
"content": "Voce e um triador de demandas juridicas. Classifique a conversa em uma das categorias: TRABALHISTA_RESCISAO (demissao, verbas rescisorias, FGTS), TRABALHISTA_ASSEDIO (assedio moral/sexual, dano moral), TRABALHISTA_HORAS (horas extras, banco de horas, adicional noturno), PREVIDENCIARIO_APOSENTADORIA (aposentadoria por tempo, idade, especial), PREVIDENCIARIO_AUXILIO (auxilio-doenca, acidente de trabalho, BPC/LOAS), PREVIDENCIARIO_REVISAO (revisao de beneficio, teto). Responda APENAS com a categoria e uma justificativa de 1 linha, separados por |"
},
{
"role": "user",
"content": "Conversa: {{ $json.data.map(m => m.text).join(' | ') }}"
}
]
}
},
"name": "Classificar Demanda",
"type": "n8n-nodes-base.openAi",
"typeVersion": 1,
"position": [690, 300]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/contacts/={{ $json.contact_id }}",
"method": "PATCH",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{ "name": "area", "value": "={{ $json.choices[0].message.content.split('|')[0].trim() }}" },
{ "name": "triagem_obs", "value": "={{ $json.choices[0].message.content.split('|')[1].trim() }}" }
]
}
},
"name": "Atualizar Contato",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [910, 300]
}
],
"connections": {
"Webhook": { "main": [[{ "node": "Buscar Mensagens", "type": "main", "index": 0 }]] },
"Buscar Mensagens": { "main": [[{ "node": "Classificar Demanda", "type": "main", "index": 0 }]] },
"Classificar Demanda": { "main": [[{ "node": "Atualizar Contato", "type": "main", "index": 0 }]] }
}
}
Envia lembrete automatico para clientes que ainda nao enviaram CNIS, laudos medicos ou PPP
{
"name": "CJ → Cobrar Documentos Pendentes",
"nodes": [
{
"parameters": {
"rule": {
"interval": [{ "triggerAtHour": 10 }]
}
},
"name": "Cron (10h diario)",
"type": "n8n-nodes-base.cron",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/contacts?label=docs_pendentes",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
}
},
"name": "Buscar Clientes com Docs Pendentes",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [470, 300]
},
{
"parameters": {
"batchSize": 1,
"options": {}
},
"name": "Loop por Cliente",
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 1,
"position": [690, 300]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/conversations/={{ $json.conversation_id }}/messages",
"method": "POST",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{ "name": "conversation_id", "value": "={{ $json.id }}" },
{ "name": "text", "value": "Ola, {{ $json.name }}! Passando para lembrar que ainda precisamos de alguns documentos para dar entrada no seu processo. Pode nos enviar por aqui mesmo pelo WhatsApp? Qualquer duvida, estamos a disposicao." }
]
}
},
"name": "Enviar Lembrete",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [910, 300]
}
],
"connections": {
"Cron (10h diario)": { "main": [[{ "node": "Buscar Clientes com Docs Pendentes", "type": "main", "index": 0 }]] },
"Buscar Clientes com Docs Pendentes": { "main": [[{ "node": "Loop por Cliente", "type": "main", "index": 0 }]] },
"Loop por Cliente": { "main": [[{ "node": "Enviar Lembrete", "type": "main", "index": 0 }]] }
}
}
Registra cada novo cliente na planilha de controle com area (trabalhista/previdenciario), status e advogado responsavel
{
"name": "CJ → Controle de Casos no Sheets",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "cj-novo-caso",
"responseMode": "onReceived"
},
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/contacts/={{ $json.contact_id }}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
}
},
"name": "Buscar Contato",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [470, 300]
},
{
"parameters": {
"operation": "append",
"sheetId": "SEU_SHEET_ID",
"range": "Casos!A:H",
"columns": "Nome,Telefone,Area,Tipo Demanda,Status,Advogado,Data Entrada,Observacoes",
"options": {
"valueInputMode": "USER_ENTERED"
}
},
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 2,
"position": [690, 300]
}
],
"connections": {
"Webhook": { "main": [[{ "node": "Buscar Contato", "type": "main", "index": 0 }]] },
"Buscar Contato": { "main": [[{ "node": "Google Sheets", "type": "main", "index": 0 }]] }
}
}
Avisa o advogado no Slack e o cliente no WhatsApp 48h antes da audiencia trabalhista
{
"name": "CJ → Lembrete de Audiencia",
"nodes": [
{
"parameters": {
"rule": {
"interval": [{ "triggerAtHour": 8 }]
}
},
"name": "Cron (8h diario)",
"type": "n8n-nodes-base.cron",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/contacts?label=audiencia_proxima",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
}
},
"name": "Buscar Audiencias Proximas",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [470, 300]
},
{
"parameters": {
"channel": "#audiencias",
"text": "📋 *Audiencia em 48h*\n\n👤 *Cliente:* {{ $json.contact_name }}\n⚖️ *Processo:* {{ $json.numero_processo }}\n📍 *Vara:* {{ $json.vara }}\n📅 *Data:* {{ $json.data_audiencia }}\n👨⚖️ *Advogado:* {{ $json.advogado_responsavel }}"
},
"name": "Notificar Advogado no Slack",
"type": "n8n-nodes-base.slack",
"typeVersion": 1,
"position": [690, 280]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/conversations/={{ $json.conversation_id }}/messages",
"method": "POST",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{ "name": "conversation_id", "value": "={{ $json.conversation_id }}" },
{ "name": "text", "value": "Ola, {{ $json.contact_name }}! Lembrando que sua audiencia esta marcada para {{ $json.data_audiencia }}. Por favor, separe seus documentos e chegue com 30 minutos de antecedencia. Qualquer duvida, estamos aqui." }
]
}
},
"name": "Avisar Cliente no WhatsApp",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [690, 420]
}
],
"connections": {
"Cron (8h diario)": { "main": [[{ "node": "Buscar Audiencias Proximas", "type": "main", "index": 0 }]] },
"Buscar Audiencias Proximas": { "main": [[{ "node": "Notificar Advogado no Slack", "type": "main", "index": 0 }, { "node": "Avisar Cliente no WhatsApp", "type": "main", "index": 0 }]] }
}
}
Quando o lead aceita a proposta, envia o contrato de honorarios para assinatura digital pelo WhatsApp
{
"name": "CJ → Contrato de Honorarios ZapSign",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "cj-enviar-contrato",
"responseMode": "onReceived"
},
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"conditions": {
"string": [
{ "value1": "={{ $json.label }}", "value2": "contrato_aprovado" }
]
}
},
"name": "Cliente Aprovou?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [470, 300]
},
{
"parameters": {
"url": "https://api.zapsign.com.br/api/v1/docs/",
"method": "POST",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "Authorization", "value": "Bearer SUA_ZAPSIGN_KEY" }
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{ "name": "name", "value": "Honorarios - {{ $json.contact_name }}" },
{ "name": "template_id", "value": "SEU_TEMPLATE_HONORARIOS" },
{ "name": "signer_name", "value": "={{ $json.contact_name }}" },
{ "name": "signer_phone", "value": "={{ $json.contact_phone }}" }
]
}
},
"name": "Criar Contrato ZapSign",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [690, 280]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/conversations/={{ $json.conversation_id }}/messages",
"method": "POST",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{ "name": "conversation_id", "value": "={{ $json.conversation_id }}" },
{ "name": "text", "value": "Ola, {{ $json.contact_name }}! Segue o contrato de honorarios para assinatura digital: {{ $json.sign_url }}\n\nE rapido e seguro. Apos assinar, ja iniciamos os trabalhos no seu caso." }
]
}
},
"name": "Enviar Link no WhatsApp",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [910, 280]
}
],
"connections": {
"Webhook": { "main": [[{ "node": "Cliente Aprovou?", "type": "main", "index": 0 }]] },
"Cliente Aprovou?": { "main": [[{ "node": "Criar Contrato ZapSign", "type": "main", "index": 0 }]] },
"Criar Contrato ZapSign": { "main": [[{ "node": "Enviar Link no WhatsApp", "type": "main", "index": 0 }]] }
}
}
Toda segunda-feira envia no Slack um resumo com total de leads, casos novos por area e taxa de conversao
{
"name": "CJ → Relatorio Semanal",
"nodes": [
{
"parameters": {
"rule": {
"interval": [{ "triggerAtDay": 1, "triggerAtHour": 9 }]
}
},
"name": "Cron (segunda 9h)",
"type": "n8n-nodes-base.cron",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/contacts?created_after=7d",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
}
},
"name": "Buscar Contatos da Semana",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [470, 300]
},
{
"parameters": {
"functionCode": "const contatos = items[0].json.data;\nconst total = contatos.length;\nconst trabalhista = contatos.filter(c => (c.area || '').includes('TRABALHISTA')).length;\nconst previdenciario = contatos.filter(c => (c.area || '').includes('PREVIDENCIARIO')).length;\nconst convertidos = contatos.filter(c => c.label === 'cliente_ativo').length;\nconst taxa = total > 0 ? ((convertidos/total)*100).toFixed(1) : 0;\n\nreturn [{ json: { total, trabalhista, previdenciario, convertidos, taxa } }];"
},
"name": "Calcular Metricas",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [690, 300]
},
{
"parameters": {
"channel": "#gestao-escritorio",
"text": "📊 *Relatorio Semanal de Atendimentos*\n\n📥 *Total de leads:* {{ $json.total }}\n⚖️ *Trabalhista:* {{ $json.trabalhista }}\n🏥 *Previdenciario:* {{ $json.previdenciario }}\n✅ *Convertidos em cliente:* {{ $json.convertidos }}\n📈 *Taxa de conversao:* {{ $json.taxa }}%"
},
"name": "Enviar no Slack",
"type": "n8n-nodes-base.slack",
"typeVersion": 1,
"position": [910, 300]
}
],
"connections": {
"Cron (segunda 9h)": { "main": [[{ "node": "Buscar Contatos da Semana", "type": "main", "index": 0 }]] },
"Buscar Contatos da Semana": { "main": [[{ "node": "Calcular Metricas", "type": "main", "index": 0 }]] },
"Calcular Metricas": { "main": [[{ "node": "Enviar no Slack", "type": "main", "index": 0 }]] }
}
}
A mesma API, acessível por linguagem natural. Claude, Cursor ou qualquer cliente MCP opera o CRM do seu escritório.
Configuração manual
Escolha o cliente que você usa. Sempre que aparecer chave de API, use a do painel do Chat Jurídico.
Baixe o Claude Desktop (macOS ou Windows). Abra o Terminal, rode o comando e reinicie o app para o MCP aparecer.
Alternativa: Configurações → Desenvolvedor → Editar config e o JSON do guia MCP com sua chave de API.
Terminal do Claude Code ou shell do sistema: cole o bloco inteiro de uma vez (ele já traz URL e cabeçalho).
Substitua cj_live_sua_chave pela sua chave de API.
Cursor: crie ou edite .cursor/mcp.json na raiz do repositório e cole o JSON abaixo.
Google Antigravity: em MCP Servers (gestão de servidores MCP), cadastre o mesmo endpoint https://api.jur.chat/mcp e a mesma chave no cabeçalho; o nome do arquivo e os campos podem seguir o formato do app.
No Antigravity, confira o guia oficial do produto se o editor exigir nomes de campo diferentes de url / headers.
Configurações → Conectores → Adicionar conector (personalizado). Informe a URL do servidor:
Complete a autenticação no assistente que o Claude.ai mostrar ao salvar o conector.
Se estiver tudo certo, o agente lista as ferramentas do servidor. Experimente perguntar:
Acesse a documentacao completa ou fale com nosso time para ativar o plano IA Exclusive.