{ "id": "aZSJ2BZQhNduZZ8w", "meta": { "instanceId": "workflow-f7aee3c1", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:51.770316", "updatedAt": "2025-09-29T07:07:51.770337", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Get Airtable data in Obsidian Notes", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "584cfe61-7f1b-4deb-ab4b-45a5ffd20daf", "name": "Airtable", "type": "n8n-nodes-base.airtableTool", "position": [ 540, 340 ], "parameters": { "base": { "__rl": true, "mode": "list", "value": "appP3ocJy1rXIo6ko", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "table" }, "table": { "__rl": true, "mode": "list", "value": "tblywtlpPtGQMTJRm", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Dummy" }, "options": {}, "operation": "search" }, "credentials": { "airtableTokenApi": { "id": "yiZ7ZC1md4geZovu", "name": "Airtable Personal Access Token account" } }, "typeVersion": 2.1, "notes": "This airtableTool node performs automated tasks as part of the workflow." }, { "id": "8a100c92-7971-464b-b3c0-18272f0a0bef", "name": "OpenAI Chat Model", "type": "n8n-nodes-base.noOp", "position": [ 220, 340 ], "parameters": { "model": "gpt-4o-mini", "options": {} }, "credentials": { "openAiApi": { "id": "q8L9oWVM7QyzYEE5", "name": "OpenAi account" } }, "typeVersion": 1, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow." }, { "id": "98887b9b-2eae-4a2e-af2b-d40c1786c5a2", "name": "AI Agent", "type": "n8n-nodes-base.noOp", "position": [ 280, 200 ], "parameters": { "text": "={{ $json.body.content }}", "options": {}, "promptType": "define" }, "typeVersion": 1.6, "notes": "This agent node performs automated tasks as part of the workflow." }, { "id": "91296976-3d78-4a9e-9f4c-a4136abcca4e", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ -160, -260 ], "parameters": { "color": 7, "width": 497.9113826976365, "height": 389.9939760040372, "content": "[![YouTube Video]({{ $env.WEBHOOK_URL }}]({{ $env.WEBHOOK_URL }}" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "7adae874-d388-4265-aff8-28a1970bd0fb", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 360, -240 ], "parameters": { "width": 563.3824678865192, "height": 368.0048034646952, "content": "## Get Airtable Data in Obsidian with AI Agent\n<-- Watch the video to see it in action!\n\n**How to Set Up:**\n- Install the [Post Webhook Plugin]({{ $env.WEBHOOK_URL }} in Obsidian.\n- Insert the n8n Webhook URL into the Post Webhook plugin settings.\n- Configure Your Airtable Node to match your workflow needs.\n\n\n**How to Use:**\n- Highlight text containing a question about your Airtable data.\n- Open the Obsidian Command Palette (Ctrl+P) and choose 'Send Selection to [Your Webhook]'.\n- Click, wait for the AI Agent to process your request, and see the result appear below your selected text." }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "52c40581-656d-45b5-b366-d67cf2474312", "name": "Respond to Obsidian", "type": "n8n-nodes-base.respondToWebhook", "position": [ 700, 200 ], "parameters": { "options": {}, "respondWith": "text", "responseBody": "={{ $json.output }}" }, "typeVersion": 1.1, "notes": "This respondToWebhook node performs automated tasks as part of the workflow." }, { "id": "f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67", "name": "Webhook Set Up in Obsidian", "type": "n8n-nodes-base.webhook", "position": [ -40, 200 ], "webhookId": "59fc8248-d3f7-4dbc-bdf3-39d59e427160", "parameters": { "path": "59fc8248-d3f7-4dbc-bdf3-39d59e427160", "options": {}, "httpMethod": "POST", "responseMode": "responseNode" }, "typeVersion": 2, "notes": "This webhook node performs automated tasks as part of the workflow." } ], "active": true, "pinData": {}, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "dab99881-2d04-4113-9a4e-2f942fdf1c24", "connections": { "52c40581-656d-45b5-b366-d67cf2474312": { "main": [ [ { "node": "error-handler-52c40581-656d-45b5-b366-d67cf2474312", "type": "main", "index": 0 } ], [ { "node": "error-handler-52c40581-656d-45b5-b366-d67cf2474312-634f202b", "type": "main", "index": 0 } ], [ { "node": "error-handler-52c40581-656d-45b5-b366-d67cf2474312-ab19c485", "type": "main", "index": 0 } ], [ { "node": "error-handler-52c40581-656d-45b5-b366-d67cf2474312-542eb84c", "type": "main", "index": 0 } ], [ { "node": "error-handler-52c40581-656d-45b5-b366-d67cf2474312-bf03c67f", "type": "main", "index": 0 } ], [ { "node": "error-handler-52c40581-656d-45b5-b366-d67cf2474312-24199c46", "type": "main", "index": 0 } ], [ { "node": "error-handler-52c40581-656d-45b5-b366-d67cf2474312-f7f41b8c", "type": "main", "index": 0 } ], [ { "node": "error-handler-52c40581-656d-45b5-b366-d67cf2474312-08bad05e", "type": "main", "index": 0 } ], [ { "node": "error-handler-52c40581-656d-45b5-b366-d67cf2474312-2647e9da", "type": "main", "index": 0 } ] ] }, "f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67": { "main": [ [ { "node": "error-handler-f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67", "type": "main", "index": 0 } ], [ { "node": "error-handler-f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67-97695351", "type": "main", "index": 0 } ], [ { "node": "error-handler-f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67-a53eaeea", "type": "main", "index": 0 } ], [ { "node": "error-handler-f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67-6438413e", "type": "main", "index": 0 } ], [ { "node": "error-handler-f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67-5719cd5f", "type": "main", "index": 0 } ], [ { "node": "error-handler-f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67-1d0c7d3f", "type": "main", "index": 0 } ], [ { "node": "error-handler-f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67-8aed3207", "type": "main", "index": 0 } ], [ { "node": "error-handler-f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67-b1f3c770", "type": "main", "index": 0 } ], [ { "node": "error-handler-f2bf502e-5e6f-4e71-8c4f-27ec2dc5ab67-2530b6ad", "type": "main", "index": 0 } ] ] }, "8a100c92-7971-464b-b3c0-18272f0a0bef": { "main": [ [ { "node": "error-handler-8a100c92-7971-464b-b3c0-18272f0a0bef-2b58d18f", "type": "main", "index": 0 } ] ] } }, "description": "Automated workflow: Get Airtable data in Obsidian Notes. This workflow integrates 7 different services: webhook, stickyNote, agent, respondToWebhook, stopAndError. It contains 12 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Get Airtable data in Obsidian Notes. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }