{"name":"🤖Contact Agent","nodes":[{"parameters":{"model":{"__rl":true,"value":"gpt-4o","mode":"list","cachedResultName":"gpt-4o"},"options":{}},"type":"n8n-nodes-base.noOp","typeVersion":1,"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,"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":{}}}],"connections":{"OpenAI Chat Model":{"main":[[]]}},"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","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."}