This workflow follows the Agent → Airtable 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 →
{
"active": false,
"activeVersion": null,
"activeVersionId": null,
"connections": {
"When chat message received": {
"main": [
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Code in JavaScript1",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript1": {
"main": [
[
{
"node": "Code in JavaScript2",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript2": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Basic LLM Chain1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Basic LLM Chain1",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain1": {
"main": [
[
{
"node": "Message a model",
"type": "main",
"index": 0
}
]
]
},
"Message a model": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Message a model1",
"type": "main",
"index": 0
}
]
]
},
"Message a model1": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Limit": {
"main": [
[
{
"node": "Search records",
"type": "main",
"index": 0
}
]
]
},
"Search records": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
}
},
"createdAt": "2025-10-23T22:17:16.563Z",
"id": "tFXRsvO2ijW5MFZa",
"isArchived": true,
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Ejemplo",
"nodes": [
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.4,
"position": [
-176,
16
],
"id": "7220348a-549b-4baf-9101-c04ee167930b",
"name": "When chat message received"
},
{
"parameters": {
"jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n item.json.myNewField = 1;\n}\n\nreturn $input.all();"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-32,
-96
],
"id": "1ebcd616-f2de-4f0c-ad1b-a92b222b3d16",
"name": "Code in JavaScript"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.4,
"position": [
128,
0
],
"id": "ce09277c-5e53-450c-94aa-dfa79cafb217",
"name": "HTTP Request"
},
{
"parameters": {
"jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n item.json.myNewField = 1;\n}\n\nreturn $input.all();"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
272,
-96
],
"id": "336ca915-7aa9-45db-907d-0334b6f1770f",
"name": "Code in JavaScript1"
},
{
"parameters": {
"jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n item.json.myNewField = 1;\n}\n\nreturn $input.all();"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
432,
16
],
"id": "b66d6105-64cd-4624-a851-5dd04e7a5865",
"name": "Code in JavaScript2"
},
{
"parameters": {
"batching": {}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.9,
"position": [
640,
16
],
"id": "1699824c-eb15-46ad-8e9c-9d5b6bd8f39e",
"name": "Basic LLM Chain"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "gpt-4o-mini",
"mode": "list",
"cachedResultName": "gpt-4o-mini"
},
"builtInTools": {},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.3,
"position": [
960,
288
],
"id": "94ab5cfd-4d43-456c-af40-04a68ea09d78",
"name": "OpenAI Chat Model",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"batching": {}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.9,
"position": [
1120,
32
],
"id": "a52716e4-b3a6-4536-9afb-9ff9d1a0dab2",
"name": "Basic LLM Chain1"
},
{
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": ""
},
"responses": {
"values": [
{}
]
},
"builtInTools": {},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 2.1,
"position": [
1472,
32
],
"id": "a074fdc6-6c64-4e04-a2a9-c653c08beda9",
"name": "Message a model",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
1824,
32
],
"id": "bd659f98-1bd8-4a3d-bab9-dae77e353998",
"name": "Split Out"
},
{
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": ""
},
"responses": {
"values": [
{}
]
},
"builtInTools": {},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 2.1,
"position": [
2032,
32
],
"id": "e569ce73-a375-4ab0-a8bf-1ae9bc0b2e2a",
"name": "Message a model1",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 3
},
"conditions": [
{
"leftValue": "",
"rightValue": "",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "db066af7-3b32-4f3b-8643-8ca55c9e4d77"
}
],
"combinator": "and"
}
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.4,
"position": [
2384,
32
],
"id": "a98081a8-821b-4149-a1d7-2a90a24d0ee8",
"name": "Switch"
},
{
"parameters": {},
"type": "n8n-nodes-base.limit",
"typeVersion": 1,
"position": [
2544,
-80
],
"id": "9727278b-05c1-4964-9027-20179ee3beb1",
"name": "Limit"
},
{
"parameters": {
"operation": "search",
"base": {
"__rl": true,
"mode": "list",
"value": ""
},
"table": {
"__rl": true,
"mode": "list",
"value": ""
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
2704,
-160
],
"id": "35e8ba76-e9c0-4234-bed3-40222275bdb6",
"name": "Search records",
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"fieldsToAggregate": {
"fieldToAggregate": [
{}
]
},
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
2848,
-96
],
"id": "5260b748-8688-478f-9684-741f55fc8d13",
"name": "Aggregate"
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
2720,
144
],
"id": "ef2b0e8b-8841-42e2-9d77-64140f73d12b",
"name": "Merge"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3.1,
"position": [
2928,
144
],
"id": "93e2af73-1a34-445b-8c88-69a943e23d23",
"name": "AI Agent"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "gpt-4o",
"mode": "list",
"cachedResultName": "gpt-4o"
},
"builtInTools": {},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.3,
"position": [
2880,
368
],
"id": "ab1760f5-c495-4abd-9384-268a39b7b7c9",
"name": "OpenAI Chat Model1",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
3008,
384
],
"id": "89a122e1-2278-476b-b6b2-1368fbc9c8e0",
"name": "Simple Memory"
}
],
"settings": {
"executionOrder": "v1"
},
"shared": [
{
"updatedAt": "2025-10-23T22:17:16.574Z",
"createdAt": "2025-10-23T22:17:16.574Z",
"role": "workflow:owner",
"workflowId": "tFXRsvO2ijW5MFZa",
"projectId": "u2lnFFYk1yGEaOcS"
}
],
"staticData": null,
"tags": [],
"triggerCount": 0,
"updatedAt": "2026-03-18T21:15:57.000Z",
"versionId": "f209b61a-930c-4cec-ac70-790ddd3973f7"
}
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.
airtableTokenApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Ejemplo. Uses chatTrigger, httpRequest, chainLlm, lmChatOpenAi. Chat trigger; 19 nodes.
Source: https://github.com/silvasJu/SERVER/blob/c0acc8daf66b5f007efced5eeeb45bb6125030aa/workflows/Ejemplo.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.
Who is this workflow for? This workflow is designed for SEO analysts, content creators, marketing agencies, and developers who need to index a website and then interact with its content as if it were
Airtable AI Agent. Uses lmChatOpenAi, agent, toolWorkflow, toolCode. Chat trigger; 42 nodes.
Ai Agent To Chat With Airtable And Analyze Data. Uses lmChatOpenAi, agent, stickyNote, memoryBufferWindow. Chat trigger; 41 nodes.
I prepared a detailed guide that shows the entire process of building an AI agent that integrates with Airtable data in n8n. This template covers everything from data preparation to advanced configura
Categories: AI Agents, Design Automation, Business Tools