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.
Quando o contato vira cliente no CRM, cria automaticamente a consulta inicial no Google Calendar do advogado responsavel
{
"name": "CJ → Consulta Inicial no Google Calendar",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "cj-novo-cliente",
"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 CJ",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [470, 300]
},
{
"parameters": {
"calendarId": "primary",
"summary": "Consulta Inicial - {{ $json.data.name }}",
"description": "Cliente: {{ $json.data.name }}\nTelefone: {{ $json.data.phone }}\nArea: Trabalhista/Previdenciario\n\nVerificar documentos pendentes antes da reuniao.",
"start": "={{ $now.plus(2, 'days').set({ hour: 14, minute: 0 }).toISO() }}",
"end": "={{ $now.plus(2, 'days').set({ hour: 15, minute: 0 }).toISO() }}",
"attendees": "advogado@seuescritorio.com.br"
},
"name": "Criar Evento no Calendar",
"type": "n8n-nodes-base.googleCalendar",
"typeVersion": 3,
"position": [690, 300]
}
],
"connections": {
"Webhook": { "main": [[{ "node": "Buscar Contato CJ", "type": "main", "index": 0 }]] },
"Buscar Contato CJ": { "main": [[{ "node": "Criar Evento no Calendar", "type": "main", "index": 0 }]] }
}
}
Salva CNIS, laudos medicos, CTPS e outros documentos enviados pelo cliente direto numa pasta organizada no Drive
{
"name": "CJ → Documentos no Google Drive",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "cj-documento-recebido",
"responseMode": "onReceived"
},
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"conditions": {
"string": [
{ "value1": "={{ $json.message_type }}", "value2": "document" }
]
}
},
"name": "E Documento?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [470, 300]
},
{
"parameters": {
"url": "={{ $json.media_url }}",
"responseFormat": "file"
},
"name": "Baixar Arquivo",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [690, 300]
},
{
"parameters": {
"operation": "upload",
"folderId": "SEU_FOLDER_ID",
"name": "={{ $json.contact_name }} - {{ $json.filename }}",
"parents": ["SEU_FOLDER_ID"]
},
"name": "Salvar no Google Drive",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [910, 300]
}
],
"connections": {
"Webhook": { "main": [[{ "node": "E Documento?", "type": "main", "index": 0 }]] },
"E Documento?": { "main": [[{ "node": "Baixar Arquivo", "type": "main", "index": 0 }]] },
"Baixar Arquivo": { "main": [[{ "node": "Salvar no Google Drive", "type": "main", "index": 0 }]] }
}
}
Quando o cliente paga os honorarios no Asaas, atualiza o status no CRM e avisa o advogado no Slack
{
"name": "Asaas → CJ Atualizar Funil + Slack",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "asaas-pagamento-confirmado",
"responseMode": "onReceived"
},
"name": "Webhook Asaas",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"conditions": {
"string": [
{ "value1": "={{ $json.event }}", "value2": "PAYMENT_CONFIRMED" }
]
}
},
"name": "Pagamento Confirmado?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [470, 300]
},
{
"parameters": {
"url": "https://api.jur.chat/v1/contacts?search={{ $json.payment.customer.cpfCnpj }}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "X-API-Key", "value": "cj_live_SUA_CHAVE_AQUI" }
]
}
},
"name": "Buscar Contato por CPF",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [690, 300]
},
{
"parameters": {
"channel": "#financeiro",
"text": "💰 *Honorarios pagos!*\n\n👤 *Cliente:* {{ $json.payment.customer.name }}\n💵 *Valor:* R$ {{ $json.payment.value }}\n📋 *Descricao:* {{ $json.payment.description }}\n\nContato atualizado no CRM automaticamente."
},
"name": "Notificar no Slack",
"type": "n8n-nodes-base.slack",
"typeVersion": 1,
"position": [910, 300]
}
],
"connections": {
"Webhook Asaas": { "main": [[{ "node": "Pagamento Confirmado?", "type": "main", "index": 0 }]] },
"Pagamento Confirmado?": { "main": [[{ "node": "Buscar Contato por CPF", "type": "main", "index": 0 }]] },
"Buscar Contato por CPF": { "main": [[{ "node": "Notificar no Slack", "type": "main", "index": 0 }]] }
}
}
Puxa audiencias do Google Calendar e avisa o cliente pelo WhatsApp 48h antes, pedindo para separar documentos
{
"name": "Calendar → 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": {
"calendarId": "primary",
"timeMin": "={{ $now.plus(2, 'days').startOf('day').toISO() }}",
"timeMax": "={{ $now.plus(2, 'days').endOf('day').toISO() }}",
"q": "audiencia"
},
"name": "Buscar Audiencias em 48h",
"type": "n8n-nodes-base.googleCalendar",
"typeVersion": 3,
"position": [470, 300]
},
{
"parameters": {
"batchSize": 1,
"options": {}
},
"name": "Loop por Audiencia",
"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.conversation_id }}" },
{ "name": "text", "value": "Ola! Lembrando que sua audiencia esta marcada para {{ $json.start.dateTime }}. Por favor, separe RG, CPF, CTPS e comprovante de residencia. Chegue com 30 minutos de antecedencia. Qualquer duvida, estamos aqui." }
]
}
},
"name": "Avisar Cliente no WhatsApp",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [910, 300]
}
],
"connections": {
"Cron (8h diario)": { "main": [[{ "node": "Buscar Audiencias em 48h", "type": "main", "index": 0 }]] },
"Buscar Audiencias em 48h": { "main": [[{ "node": "Loop por Audiencia", "type": "main", "index": 0 }]] },
"Loop por Audiencia": { "main": [[{ "node": "Avisar Cliente no WhatsApp", "type": "main", "index": 0 }]] }
}
}
Registra cada novo caso numa planilha do Google Sheets com area, advogado responsavel e status para gestao do escritorio
{
"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,Advogado,Status,Data Entrada,Valor Honorarios",
"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 }]] }
}
}
Toda segunda envia no Slack o resumo da semana com total de leads, casos novos por area e taxa de conversao
{
"name": "CJ → Relatorio Semanal no Slack",
"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.tags || []).some(t => t.includes('trabalhista'))).length;\nconst previdenciario = contatos.filter(c => (c.tags || []).some(t => t.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*\n\n📥 *Total de leads:* {{ $json.total }}\n⚖️ *Trabalhista:* {{ $json.trabalhista }}\n🏥 *Previdenciario:* {{ $json.previdenciario }}\n✅ *Convertidos:* {{ $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.
Configuracao manual
Substitua cj_live_sua_chave pela chave do painel do Chat Juridico.
Reinicie o app apos rodar o comando.
Cursor: salve em .cursor/mcp.json. Outros editores: use o mesmo endpoint e chave.
Configuracoes → Conectores → Adicionar conector. Informe:
Para verificar, pergunte ao agente:
Acesse a documentacao completa ou fale com nosso time para ativar o plano IA Exclusive.
Duvidas comuns sobre integracao, limites e como comecar
Nao. Os fluxos n8n prontos nesta pagina funcionam sem codigo. Basta copiar o JSON, importar no n8n e trocar a chave de API. Se preferir usar Make ou Pluga, o processo e parecido: arrastar blocos e conectar.
Se voce quer integracoes mais avancadas (ERP proprio, sistema legado), ai sim precisara de um desenvolvedor ou freelancer com conhecimento basico em API REST.
A API esta disponivel exclusivamente no plano IA Exclusive, com um acrescimo de R$ 149/mes. Esse valor libera o acesso completo a API REST, incluindo contatos, conversas e envio de mensagens.
Os planos IA e IA+ nao possuem acesso a API. Veja os planos disponiveis.
Sim. Os limites atuais sao:
Esses limites atendem a maioria dos escritorios. Se o seu volume for maior, entre em contato com nosso time para avaliar um plano personalizado.
A API permite envio de mensagens, mas dentro das regras da Meta para a API Oficial do WhatsApp. Isso significa que voce precisa usar templates aprovados para iniciar conversas e respeitar a janela de 24 horas para mensagens livres.
Disparos em massa sem consentimento violam os termos da Meta e podem resultar em banimento do numero.
Usam a mesma base, mas funcionam de formas diferentes. A API REST e para integracoes tecnicas (n8n, Make, sistemas externos). O servidor MCP permite que agentes de IA como o Claude acessem o CRM por linguagem natural.
Na pratica: a API e para automacoes entre sistemas. O MCP e para conversar com a IA e pedir que ela execute acoes no Chat Juridico. Saiba mais sobre o MCP.