This workflow follows the Agent → Airtabletool 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": "\ud83d\udd25 AI Agent with Airtable",
"nodes": [
{
"parameters": {
"options": {
"systemMessage": "=You are a helpful assistant\n\n- use airtable for getting Customer information from workspace (app5DqpHK079EzzQj)\n\nairtable default setting \n- baseid: app5DqpHK079EzzQj\n- tableid: Customer\n\nmake sure to ListTool first then the executeTool\n\n\u8f38\u51fa\u898f\u5247\n\u5730\u5340\uff1a\u53f0\u7063 \n\u6642\u9593\uff1aUTC8\n\u8f38\u51fa\u8a9e\u8a00\uff1a\u7e41\u9ad4\u4e2d\u6587"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.7,
"position": [
420,
-40
],
"id": "ff2e814a-0fba-458a-a9c5-8665fc5ee661",
"name": "AI Agent"
},
{
"parameters": {
"content": "## Airtable \u5de5\u5177 \n",
"height": 220,
"width": 640
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
520,
120
],
"id": "e1cc8938-db1b-4e3b-ba20-1afd5bb2a1d3",
"name": "Sticky Note"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "gpt-4o",
"mode": "list",
"cachedResultName": "gpt-4o"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
280,
180
],
"id": "9730e910-2086-43a1-84e9-b4c54ea1cb65",
"name": "OpenAI 4o",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## AI Agent + Airtable \u5de5\u5177\n",
"height": 520,
"width": 1060,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
120,
-160
],
"id": "b90e70d8-ea68-4c97-abc5-abe26fc54313",
"name": "Sticky Note1"
},
{
"parameters": {},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
420,
180
],
"id": "ed55eacf-b74f-423c-bb72-9889d5db2a09",
"name": "\u8a18\u61b6"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.1,
"position": [
180,
-40
],
"id": "82824763-eafa-4c05-9709-b55b56ca1089",
"name": "\u6536\u5230\u5c0d\u8a71\u8a0a\u606f"
},
{
"parameters": {
"authentication": "airtableOAuth2Api",
"operation": "create",
"base": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"table": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"\u516c\u53f8\u540d\u7a31": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('____', ``, 'string') }}",
"\u96fb\u8a71": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('__', ``, 'string') }}",
"\u96fb\u5b50\u90f5\u4ef6": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('____', ``, 'string') }}",
"Notes": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Notes', ``, 'string') }}"
},
"matchingColumns": [],
"schema": [
{
"id": "\u516c\u53f8\u540d\u7a31",
"displayName": "\u516c\u53f8\u540d\u7a31",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "\u96fb\u8a71",
"displayName": "\u96fb\u8a71",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "\u96fb\u5b50\u90f5\u4ef6",
"displayName": "\u96fb\u5b50\u90f5\u4ef6",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Status",
"displayName": "Status",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "\u5c1a\u672a\u62dc\u8a2a",
"value": "\u5c1a\u672a\u62dc\u8a2a"
},
{
"name": "\u6f5b\u5728\u6a5f\u6703",
"value": "\u6f5b\u5728\u6a5f\u6703"
},
{
"name": "\u6d3d\u8ac7\u4e2d",
"value": "\u6d3d\u8ac7\u4e2d"
},
{
"name": "\u6210\u4ea4",
"value": "\u6210\u4ea4"
}
],
"readOnly": false,
"removed": false
},
{
"id": "Notes",
"displayName": "Notes",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtableTool",
"typeVersion": 2.1,
"position": [
800,
200
],
"id": "39fdf130-484f-48ba-8ad5-781326f3c16e",
"name": "Create Record",
"credentials": {
"airtableOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"authentication": "airtableOAuth2Api",
"base": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"table": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"id": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Record_ID', ``, 'string') }}",
"options": {}
},
"type": "n8n-nodes-base.airtableTool",
"typeVersion": 2.1,
"position": [
680,
200
],
"id": "efcc35d6-bd74-4d58-952e-eaac125ee287",
"name": "Get Record",
"credentials": {
"airtableOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"authentication": "airtableOAuth2Api",
"operation": "update",
"base": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"table": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"\u516c\u53f8\u540d\u7a31": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('____', ``, 'string') }}",
"\u96fb\u8a71": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('__', ``, 'string') }}",
"\u96fb\u5b50\u90f5\u4ef6": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('____', ``, 'string') }}",
"Notes": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Notes', ``, 'string') }}"
},
"matchingColumns": [],
"schema": [
{
"id": "\u516c\u53f8\u540d\u7a31",
"displayName": "\u516c\u53f8\u540d\u7a31",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "\u96fb\u8a71",
"displayName": "\u96fb\u8a71",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "\u96fb\u5b50\u90f5\u4ef6",
"displayName": "\u96fb\u5b50\u90f5\u4ef6",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Status",
"displayName": "Status",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "\u5c1a\u672a\u62dc\u8a2a",
"value": "\u5c1a\u672a\u62dc\u8a2a"
},
{
"name": "\u6f5b\u5728\u6a5f\u6703",
"value": "\u6f5b\u5728\u6a5f\u6703"
},
{
"name": "\u6d3d\u8ac7\u4e2d",
"value": "\u6d3d\u8ac7\u4e2d"
},
{
"name": "\u6210\u4ea4",
"value": "\u6210\u4ea4"
}
],
"readOnly": false,
"removed": false
},
{
"id": "Notes",
"displayName": "Notes",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtableTool",
"typeVersion": 2.1,
"position": [
920,
200
],
"id": "7ec63b98-1cdc-462a-873b-c546009f3efe",
"name": "Update Record",
"credentials": {
"airtableOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"authentication": "airtableOAuth2Api",
"operation": "create",
"base": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"table": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"\u516c\u53f8\u540d\u7a31": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('____', ``, 'string') }}",
"\u96fb\u8a71": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('__', ``, 'string') }}",
"\u96fb\u5b50\u90f5\u4ef6": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('____', ``, 'string') }}",
"Notes": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Notes', ``, 'string') }}"
},
"matchingColumns": [],
"schema": [
{
"id": "\u516c\u53f8\u540d\u7a31",
"displayName": "\u516c\u53f8\u540d\u7a31",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "\u96fb\u8a71",
"displayName": "\u96fb\u8a71",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "\u96fb\u5b50\u90f5\u4ef6",
"displayName": "\u96fb\u5b50\u90f5\u4ef6",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Status",
"displayName": "Status",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "\u5c1a\u672a\u62dc\u8a2a",
"value": "\u5c1a\u672a\u62dc\u8a2a"
},
{
"name": "\u6f5b\u5728\u6a5f\u6703",
"value": "\u6f5b\u5728\u6a5f\u6703"
},
{
"name": "\u6d3d\u8ac7\u4e2d",
"value": "\u6d3d\u8ac7\u4e2d"
},
{
"name": "\u6210\u4ea4",
"value": "\u6210\u4ea4"
}
],
"readOnly": false,
"removed": false
},
{
"id": "Notes",
"displayName": "Notes",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtableTool",
"typeVersion": 2.1,
"position": [
1040,
200
],
"id": "f342d2c2-e09a-4419-9c86-b91895956cef",
"name": "Delete Record",
"credentials": {
"airtableOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"authentication": "airtableOAuth2Api",
"operation": "search",
"base": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"table": {
"__rl": true,
"value": "https://airtable.com/app5DqpHK079EzzQj/tbldGkpPw10LpKQmZ/viwKBHqMBCZBGQ5UU",
"mode": "url"
},
"filterByFormula": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Filter_By_Formula', ``, 'string') }}",
"options": {}
},
"type": "n8n-nodes-base.airtableTool",
"typeVersion": 2.1,
"position": [
580,
200
],
"id": "ea2eb74a-5fc2-4683-a8ba-8655eecb393a",
"name": "List Record",
"credentials": {
"airtableOAuth2Api": {
"name": "<your credential>"
}
}
}
],
"connections": {
"AI Agent": {
"main": [
[]
]
},
"OpenAI 4o": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"\u8a18\u61b6": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"\u6536\u5230\u5c0d\u8a71\u8a0a\u606f": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Create Record": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get Record": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Update Record": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Delete Record": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"List Record": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "b6e4dca5-ce45-4194-954b-6e2c880964b6",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "1hsDpzv9ejfo1NGF",
"tags": [
{
"createdAt": "2025-01-21T07:13:36.575Z",
"updatedAt": "2025-01-21T07:13:36.575Z",
"id": "yM2YsERN8eAqo2ZC",
"name": "ai-agent"
},
{
"createdAt": "2025-03-17T08:20:06.861Z",
"updatedAt": "2025-03-17T08:20:06.861Z",
"id": "pvRmfUcHdkTEgrk9",
"name": "yt"
}
]
}
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.
airtableOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
🔥 AI Agent with Airtable. Uses agent, lmChatOpenAi, memoryBufferWindow, chatTrigger. Chat trigger; 11 nodes.
Source: https://github.com/qwedsazxc78/ai-automation-n8n/blob/bc074b119e8c8f42b3ceaf6f05d016d893869008/n8n/9-ai-agent-with-mcp/ai-agent.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.
✨ Intro This workflow shows how to go beyond a “plain” AI chatbot by:
Build an MCP server with Airtable. Uses chatTrigger, agent, memoryBufferWindow, mcpClientTool. Chat trigger; 13 nodes.
Build an MCP server with Airtable. Uses chatTrigger, agent, memoryBufferWindow, mcpClientTool. Chat trigger; 13 nodes.
This template is designed for anyone who wants to integrate MCP with their AI Agents using Airtable. Whether you're a developer, a data analyst, or an automation enthusiast, if you're looking to lever
This workflow creates an intelligent chatbot that uses your Airtable database as a knowledge base. The AI agent can automatically query your Airtable records to provide accurate, contextual responses