{ "name": "🤖Contact Agent", "nodes": [ { "parameters": { "model": { "__rl": true, "value": "gpt-4o", "mode": "list", "cachedResultName": "gpt-4o" }, "options": {} }, "type": "n8n-nodes-base.noOp", "typeVersion": 1.2, "position": [ -140, 140 ], "id": "789b640d-a981-43a1-ae88-9dbbd4de92c0", "name": "OpenAI Chat Model", "credentials": { "openAiApi": { "id": "BP9v81AwJlpYGStD", "name": "OpenAi account" } }, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow." }, { "parameters": { "operation": "search", "base": { "__rl": true, "value": "appK0rbtvf9e7vt6w", "mode": "list", "cachedResultName": "Contacts", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}" }, "table": { "__rl": true, "value": "tbl08JGCfUK1RhXsG", "mode": "list", "cachedResultName": "Contacts", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}" }, "options": {} }, "type": "n8n-nodes-base.airtableTool", "typeVersion": 2.1, "position": [ 40, 140 ], "id": "6b3489a8-75be-461b-a4e4-9592a23a138f", "name": "Get Contacts", "credentials": { "airtableTokenApi": { "id": "UlAGE0msyITVkoCN", "name": "Nate Airtable" } }, "notes": "This airtableTool node performs automated tasks as part of the workflow." }, { "parameters": { "operation": "upsert", "base": { "__rl": true, "value": "appK0rbtvf9e7vt6w", "mode": "list", "cachedResultName": "Contacts", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}" }, "table": { "__rl": true, "value": "tbl08JGCfUK1RhXsG", "mode": "list", "cachedResultName": "Contacts", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}" }, "columns": { "mappingMode": "defineBelow", "value": { "name": "={{ $fromAI(\"name\") }}", "email": "={{ $fromAI(\"emailAddress\") }}", "phoneNumber": "={{ $fromAI(\"phoneNumber\") }}" }, "matchingColumns": [ "name" ], "schema": [ { "id": "name", "displayName": "name", "required": false, "defaultMatch": false, "canBeUsedToMatch": true, "display": true, "type": "string", "readOnly": false, "removed": false }, { "id": "email", "displayName": "email", "required": false, "defaultMatch": false, "canBeUsedToMatch": true, "display": true, "type": "string", "readOnly": false, "removed": false }, { "id": "phoneNumber", "displayName": "phoneNumber", "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": [ 200, 140 ], "id": "a0eb4ad0-4e60-41bd-8854-ad20942453a4", "name": "Add or Update Contact", "credentials": { "airtableTokenApi": { "id": "UlAGE0msyITVkoCN", "name": "Nate Airtable" } }, "notes": "This airtableTool node performs automated tasks as part of the workflow." }, { "parameters": { "promptType": "define", "text": "={{ $json.query }}", "options": { "systemMessage": "=# Overview\nYou are a contact management assistant. Your responsibilities include looking up contacts, adding new contacts, or updating a contact's information.\n\n**Contact Management** \n - Use \"Get Contacts\" to retrieve contact information. \n - Use \"Add or Update Contact\" to store new contact information or modify existing entries. " } }, "type": "n8n-nodes-base.noOp", "typeVersion": 1.7, "position": [ -20, -80 ], "id": "a3b9dae0-1458-4cb1-b17c-9349d41c03b5", "name": "Contact Agent", "onError": "continueErrorOutput", "notes": "This agent node performs automated tasks as part of the workflow." }, { "parameters": { "assignments": { "assignments": [ { "id": "4f360190-a717-4a93-8336-d03ea65975d5", "name": "response", "value": "={{ $json.output }}", "type": "string" } ] }, "options": {} }, "type": "n8n-nodes-base.set", "typeVersion": 3.4, "position": [ 500, -160 ], "id": "c33b944e-cb4f-447b-ad1f-5e199ed078ac", "name": "Response", "notes": "This set node performs automated tasks as part of the workflow." }, { "parameters": { "assignments": { "assignments": [ { "id": "4f360190-a717-4a93-8336-d03ea65975d5", "name": "response", "value": "An error occurred. Please try again.", "type": "string" } ] }, "options": {} }, "type": "n8n-nodes-base.set", "typeVersion": 3.4, "position": [ 500, 20 ], "id": "2df9e0c0-3f4f-4a06-a36f-f552fe99e2b8", "name": "Try Again", "notes": "This set node performs automated tasks as part of the workflow." }, { "parameters": { "inputSource": "passthrough" }, "type": "n8n-nodes-base.executeWorkflowTrigger", "typeVersion": 1.1, "position": [ -240, -80 ], "id": "ca88c05c-5a68-4a88-b15b-22398fb15d86", "name": "When Executed by Another Workflow", "notes": "This executeWorkflowTrigger node performs automated tasks as part of the workflow." }, { "id": "error-e74cc92e", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [ 1000, 400 ], "parameters": { "message": "Workflow execution error", "options": {} } } ], "pinData": {}, "connections": { "789b640d-a981-43a1-ae88-9dbbd4de92c0": { "main": [ [ { "node": "error-handler-789b640d-a981-43a1-ae88-9dbbd4de92c0-6bccd0b2", "type": "main", "index": 0 } ] ] } }, "active": false, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "24f13596-516c-4365-b91d-e477ed1c652b", "meta": { "instanceId": "workflow-b9079702", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:44.544403", "updatedAt": "2025-09-29T07:07:44.544418", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "id": "IsSUyrla7wc1cDLE", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "description": "Automated workflow: 🤖Contact Agent. This workflow processes data and performs automated tasks.", "notes": "Excellent quality workflow: 🤖Contact Agent. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }