This workflow follows the Agent → Google Sheets Tool recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "consulta-cnpj",
"nodes": [
{
"parameters": {
"promptType": "define",
"text": "={{ $json.body.data.message.conversation }}",
"options": {
"systemMessage": "=Voc\u00ea \u00e9 um agente de IA respons\u00e1vel por consultar informa\u00e7\u00f5es de empresas a partir de um ou mais n\u00fameros de CNPJ fornecidos pelo usu\u00e1rio. \nUtilize a API p\u00fablica [OpenCNPJ](https://opencnpj.org) para buscar os dados e sempre retorne a resposta em formato exemplificado e formatado.\n\n---\n\n### Passo 1 \nOl\u00e1! {{ $json.body.data.pushName }}\ud83d\udc4b Sou seu assistente de consultas de CNPJ na Receita Federal. \nPor favor, informe o CNPJ que deseja consultar. Aceito tanto n\u00fameros puros quanto formatados, por exemplo: \n\n- '00000000000000' \n- '`'00.000.000/0000-00'\n\nPara consultar mais de um CNPJ, envie 1 de cada vez.\n\n---\n\n### Regras principais:\n\n1. **Valida\u00e7\u00e3o de formato** \n - Cada CNPJ deve conter exatamente **14 d\u00edgitos num\u00e9ricos** ap\u00f3s remover qualquer pontua\u00e7\u00e3o (pontos, barras, tra\u00e7os, espa\u00e7os). \n - Formatos aceitos: \n - `00000000000000` (somente n\u00fameros) \n - `00.000.000/0000-00` (formatado) \n - Se algum CNPJ for inv\u00e1lido (menos ou mais de 14 d\u00edgitos), retorne para ele um objeto JSON de erro: \n ```json\n {\n \"erro\": \"CNPJ inv\u00e1lido. Um CNPJ deve conter exatamente 14 d\u00edgitos num\u00e9ricos.\",\n \"cnpj\": \"CNPJ_FORNECIDO\"\n }\n ```\n\n2. **Consulta na API** \n - Para cada CNPJ v\u00e1lido, consulte os dados na API do OpenCNPJ. \n - Retorne apenas informa\u00e7\u00f5es oficiais disponibilizadas pela API, no formato especificado abaixo.\n\n3. **Tratamento de erros** \n - Se o **CNPJ n\u00e3o for encontrado**, retorne: \n ```json\n {\n \"erro\": \"CNPJ n\u00e3o encontrado na base da Receita Federal.\",\n \"cnpj\": \"CNPJ_FORNECIDO\"\n }\n ``` \n - Se ocorrer **falha na API** (erro 500, 404, indisponibilidade), retorne: \n ```json\n {\n \"erro\": \"N\u00e3o foi poss\u00edvel consultar o CNPJ no momento. Tente novamente mais tarde.\",\n \"cnpj\": \"CNPJ_FORNECIDO\"\n }\n ``` \n - Nunca invente ou alucine dados.\n\n4. **Formato da resposta do payload** \n \n - Se for um \u00fanico CNPJ v\u00e1lido, retorne um objeto JSON. \n - Se forem m\u00faltiplos CNPJs, retorne um array de objetos JSON, cada um no formato abaixo. \n - Quando o CNPJ for encontrado, retorne no seguinte modelo: \n ```json\n {\n \"cnpj\": \"12345678000195\",\n \"razao_social\": \"NOME DA EMPRESA LTDA\",\n \"nome_fantasia\": \"NOME FANTASIA\",\n \"atividade_principal\": \"Descri\u00e7\u00e3o da atividade principal\",\n \"atividades_secundarias\": [\n \"Descri\u00e7\u00e3o atividade 1\",\n \"Descri\u00e7\u00e3o atividade 2\"\n ],\n \"natureza_juridica\": \"Natureza jur\u00eddica\",\n \"endereco\": {\n \"logradouro\": \"Rua Exemplo\",\n \"numero\": \"123\",\n \"complemento\": \"Sala 5\",\n \"bairro\": \"Centro\",\n \"cep\": \"00000000\",\n \"municipio\": \"S\u00e3o Paulo\",\n \"uf\": \"SP\"\n },\n \"contato\": {\n \"telefone\": \"(11) 0000-0000\",\n \"email\": \"email@exemplo.com.br\"\n },\n \"situacao_cadastral\": \"ATIVA\"\n }\n ```\n\n---\n\nFormato da resposta que deve enviar ao usu\u00e1rio:\n\nAqui est\u00e3o as informa\u00e7\u00f5es do CNPJ 38.292.673/0001-35:\n\n*Raz\u00e3o Social:* FACEBOOK SERVICOS ONLINE DO BRASIL LTDA. \n*Nome Fantasia:* (n\u00e3o informado) \n*Situa\u00e7\u00e3o Cadastral:* Ativa desde 2011-02-14 \n*Matriz/Filial:* Matriz \n*In\u00edcio da Atividade:* 2011-02-14 \n*CNAE Principal:* 7312200 \n*Atividades Secund\u00e1rias:* \n- 7319004 \n- 7020400 \n*Natureza Jur\u00eddica:* Sociedade Empres\u00e1ria Limitada \n*Endere\u00e7o:* BRIG FARIA LIMA, 3732, ANDAR 3AO7 8ALASUL 9 E 10, Bairro ITAIM BIBI, SAO PAULO - SP, CEP 04538132 \n*Email:* TAXCOMPLIANCEBR@FB.COM \n*Telefone*: (11) 30736800 \n*Capital Social:* R$ 3.631.639,00 \n*Porte da Empresa:* Demais \n*Op\u00e7\u00e3o pelo Simples Nacional:* N\u00e3o informado \n*Op\u00e7\u00e3o MEI:* N\u00e3o informado \n*S\u00f3cios:* \n- Nome: FACEBOOK MIAMI, INC., Qualifica\u00e7\u00e3o: S\u00f3cio Pessoa Jur\u00eddica Domiciliado no Exterior, Entrada na Sociedade: 2015-09-17, Pessoa Jur\u00eddica \n- Nome: CONRADO LEISTER, Qualifica\u00e7\u00e3o: Administrador, Entrada na Sociedade: 2018-11-14, Pessoa F\u00edsica, Faixa Et\u00e1ria: 41 a 50 anos\n\n### Instru\u00e7\u00f5es finais: \n- Seja tolerante a diferentes formatos de entrada de CNPJ, desde que respeitem os 14 d\u00edgitos num\u00e9ricos. \n- Para m\u00faltiplos CNPJs, mantenha a ordem da entrada na resposta. \n- N\u00e3o inclua explica\u00e7\u00f5es ou mensagens fora do contexto. \n- Nunca gere dados fict\u00edcios ou n\u00e3o confirmados pela API.\n```"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.2,
"position": [
224,
-112
],
"id": "1fae313d-b7c3-43c0-a60d-dc2af7945a7c",
"name": "AI Agent"
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
64,
96
],
"id": "00b19fff-c5ea-4839-bb2b-3cca7d2040bf",
"name": "OpenAI Chat Model",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $json.body.data.key.remoteJid }}"
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
224,
96
],
"id": "d98d3aef-9209-4aaf-85e8-109f3ead3dd7",
"name": "Simple Memory"
},
{
"parameters": {
"toolDescription": "a url para consulta do CNPJ \u00e9 https://api.opencnpj.org/\nvoc\u00ea deve inserir o cnpj logo ap\u00f3s a /\n",
"url": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', `Exemplo:\n\"https://api.opencnpj.org/38.292.673/0001-35\"`, 'string') }}",
"options": {}
},
"type": "n8n-nodes-base.httpRequestTool",
"typeVersion": 4.2,
"position": [
368,
96
],
"id": "c7e311de-8c50-4f39-b271-c0c3ef68528b",
"name": "HTTP Request"
},
{
"parameters": {
"httpMethod": "POST",
"path": "consulta-cnpj",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2.1,
"position": [
-256,
-112
],
"id": "f1251e0c-773d-4bc0-b4b4-ee025802c7cd",
"name": "Webhook"
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "consulta-cnpj",
"remoteJid": "={{ $('Webhook').item.json.body.data.key.remoteJid }}",
"messageText": "={{ $json.output }}",
"options_message": {}
},
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
864,
-112
],
"id": "e41d6d4c-f9ea-4268-921a-308b4a6c7d11",
"name": "Enviar texto",
"credentials": {
"evolutionApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## Trigger & AI Agent\n\n**When chat message received**:\n- Aciona o fluxo quando uma mensagem do usu\u00e1rio \u00e9 recebida.\n\n**AI Agent**:\n- Orquestra o fluxo de conversa\u00e7\u00e3o.\n- Recebe input do gatilho e usa modelos, mem\u00f3ria e ferramentas.",
"height": 216,
"width": 680,
"color": 4
},
"name": "Note: Trigger + Agent",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
256
],
"id": "generated-0d6b936d-792d-4c4f-baa5-dda8759686b4"
},
{
"parameters": {
"content": "## Processamento de Dados\n\n**OpenAI Chat Model**:\n- Executa chamadas ao modelo GPT para gerar respostas.\n\n**Simple Memory**:\n- Armazena o contexto das \u00faltimas intera\u00e7\u00f5es para manter o hist\u00f3rico.\n\n**HTTP Request**:\n- Consulta a API OpenCNPJ para obter dados de CNPJ.\n\n\n**Append row in sheet in Google Sheets**:\n- Grava a consulta na planilha google sheet.",
"height": 704,
"width": 680,
"color": 4
},
"name": "Note: Modelo, Mem\u00f3ria & HTTP",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
-464
],
"id": "generated-384ee6c6-1330-46ab-a012-c95ad6981adb"
},
{
"parameters": {
"content": "## Webhook Trigger Node\n\n- Recebe mensagens de chat via webhook.\n- Ponto de entrada do workflow.\n- Exposi\u00e7\u00e3o do endpoint usado pelo node \u201cWhen chat message received\u201d.\n- Inicia o agente de IA para processar a entrada.",
"height": 372,
"width": 460
},
"name": "Webhook Explanation",
"type": "n8n-nodes-base.stickyNote",
"position": [
-480,
-336
],
"id": "generated-04c8eaa3-1032-4011-8d0e-989ce08953d9"
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"value": "15zvnX5gWCzowoj_MmJp61EsWr3uk6vY__Z9yT0M5TFU",
"mode": "list",
"cachedResultName": "Busca CNPJ",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/15zvnX5gWCzowoj_MmJp61EsWr3uk6vY__Z9yT0M5TFU/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "P\u00e1gina1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/15zvnX5gWCzowoj_MmJp61EsWr3uk6vY__Z9yT0M5TFU/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"CNPJ": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('CNPJ', ``, 'string') }}",
"Dados": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Dados', `Insira todos os dados da consulta do CNPJ\nDados de exemplo:\nRaz\u00e3o Social: FACEBOOK SERVICOS ONLINE DO BRASIL LTDA. \nNome Fantasia: (n\u00e3o informado) \nSitua\u00e7\u00e3o Cadastral: Ativa desde 2011-02-14 \nMatriz/Filial: Matriz \nIn\u00edcio da Atividade: 2011-02-14 \nCNAE Principal: 7312200 \nAtividades Secund\u00e1rias: \n- 7319004 \n- 7020400 \nNatureza Jur\u00eddica: Sociedade Empres\u00e1ria Limitada \nEndere\u00e7o: BRIG FARIA LIMA, 3732, ANDAR 3AO7 8ALASUL 9 E 10, Bairro ITAIM BIBI, SAO PAULO - SP, CEP 04538132 \nEmail: TAXCOMPLIANCEBR@FB.COM \nTelefone: (11) 30736800 \nCapital Social: R$ 3.631.639,00 \nPorte da Empresa: Demais \nOp\u00e7\u00e3o pelo Simples Nacional: N\u00e3o informado \nOp\u00e7\u00e3o MEI: N\u00e3o informado \nS\u00f3cios: \n- Nome: FACEBOOK MIAMI, INC., Qualifica\u00e7\u00e3o: S\u00f3cio Pessoa Jur\u00eddica Domiciliado no Exterior, Entrada na Sociedade: 2015-09-17, Pessoa Jur\u00eddica \n- Nome: CONRADO LEISTER, Qualifica\u00e7\u00e3o: Administrador, Entrada na Sociedade: 2018-11-14, Pessoa F\u00edsica, Faixa Et\u00e1ria: 41 a 50 anos\n\nExemplo:`, 'string') }}"
},
"matchingColumns": [],
"schema": [
{
"id": "CNPJ",
"displayName": "CNPJ",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Dados",
"displayName": "Dados",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheetsTool",
"typeVersion": 4.7,
"position": [
528,
80
],
"id": "35c11c6d-0046-4129-94a5-01845821cd5c",
"name": "Append row in sheet in Google Sheets",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## RESPONDE WHATSAPP",
"height": 216,
"width": 392,
"color": 5
},
"name": "Note: Trigger + Agent1",
"type": "n8n-nodes-base.stickyNote",
"position": [
688,
-176
],
"id": "ababf7e3-47ed-431b-b03c-f29bff6bb1be",
"typeVersion": 1
}
],
"connections": {
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"HTTP Request": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Enviar texto",
"type": "main",
"index": 0
}
]
]
},
"Enviar texto": {
"main": [
[]
]
},
"Append row in sheet in Google Sheets": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "b785c540-f394-4bd0-bc6c-896caf18e455",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "Rlu55pVt0TrESs58",
"tags": []
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
evolutionApigoogleSheetsOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
consulta-cnpj. Uses agent, lmChatOpenAi, memoryBufferWindow, httpRequestTool. Webhook trigger; 11 nodes.
Source: https://github.com/Eddym06/n8n-ai-assistant/blob/d816fc4b90dc73f71918346ba0f2a5625d358905/woka/consulta-cnpj/consulta-cnpj.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This template is for businesses using WhatsApp for customer communication who want to automate support using AI and real-time CRM data — especially in retail, food & beverage, e-commerce, or service s
This workflow transforms WhatsApp into a powerful personal AI using n8n + Green-API. Send text or voice messages — the assistant understands intent and handles daily tasks automatically. 💰 Expense & i
agente wpp audio msg separada. Uses agent, lmChatOpenAi, n8n-nodes-evolution-api, toolThink. Webhook trigger; 39 nodes.
This workflow automates Identity and Access Management (IAM) event governance using an AI agent, targeting security operations teams, compliance officers, and IT governance teams managing cloud or ent
12-Automate_WhatsApp_Booking_System_with_GPT_4_Assistant__Cal_com_and_SMS_Reminders. Uses agent, lmChatOpenAi, memoryBufferWindow, googleSheetsTool. Webhook trigger; 26 nodes.