Workflow: Functionitem Workflow
Integrations: cron, functionItem, httpRequest, if, merge, pipedrive, set, zendesk

{"meta": {"instanceId": "workflow-95393c61", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:45.073109", "updatedAt": "2025-09-29T07:07:45.073131", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "nodes": [{"id": "9d40c0b9-498f-421c-b731-3a387402b69a", "name": "Get last execution timestamp", "type": "n8n-nodes-base.functionItem", "position": [380, 360], "parameters": {"functionCode": "// Code here will run once per input item.\n// More info and help: {{ $env.WEBHOOK_URL }}\n// Tip: You can use luxon for dates and $jmespath for querying JSON structures\n\n// Add a new field called 'myNewField' to the JSON of the item\nconst staticData = getWorkflowStaticData('global');\n\nif(!staticData.lastExecution){\n  staticData.lastExecution = new Date().getTime();\n}\n\nitem.executionTimeStamp = new Date().getTime();\nitem.lastExecution = staticData.lastExecution;\n\n\nreturn item;"}, "typeVersion": 1, "notes": "This functionItem node performs automated tasks as part of the workflow."}, {"id": "ddb12f68-1f6b-41fb-bfd4-038697ce4d75", "name": "Set new last execution timestamp", "type": "n8n-nodes-base.functionItem", "position": [3280, 380], "parameters": {"functionCode": "// Code here will run once per input item.\n// More info and help: {{ $env.WEBHOOK_URL }}\n// Tip: You can use luxon for dates and $jmespath for querying JSON structures\n\n// Add a new field called 'myNewField' to the JSON of the item\nconst staticData = getWorkflowStaticData('global');\n\nstaticData.lastExecution = $item(0).$node[\"Get last execution timestamp\"].executionTimeStamp;\n\nreturn item;"}, "executeOnce": true, "typeVersion": 1, "notes": "This functionItem node performs automated tasks as part of the workflow."}, {"id": "42888df0-1f7e-4990-87b3-3226a474110e", "name": "Get tickets created after last execution", "type": "n8n-nodes-base.zendesk", "position": [620, 360], "parameters": {"options": {"query": "=created>{{ $json[\"lastExecution\"] }}", "sortBy": "updated_at", "sortOrder": "desc"}, "operation": "getAll"}, "credentials": {"zendeskApi": {"id": "{{ $credentials.zendeskApi.id }}", "name": "Zendesk account"}}, "typeVersion": 1, "notes": "This zendesk node performs automated tasks as part of the workflow."}, {"id": "2f0f71f6-3d4c-4895-9313-7f47e3b2ed86", "name": "Get requester information", "type": "n8n-nodes-base.zendesk", "position": [840, 460], "parameters": {"id": "={{ $json[\"requester_id\"] }}", "resource": "user", "operation": "get"}, "credentials": {"zendeskApi": {"id": "{{ $credentials.zendeskApi.id }}", "name": "Zendesk account"}}, "typeVersion": 1, "notes": "This zendesk node performs automated tasks as part of the workflow."}, {"id": "284fd54b-bd7b-4fbb-8a14-0c4fa62a3200", "name": "Keep only needed requester information", "type": "n8n-nodes-base.set", "position": [1060, 460], "parameters": {"values": {"number": [{"name": "requester_id", "value": "={{ $json[\"id\"] }}"}], "string": [{"name": "requester_email", "value": "={{ $json[\"email\"] }}"}]}, "options": {}, "keepOnlySet": true}, "typeVersion": 1, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "17c3b860-60cb-4885-b503-9086b461bde0", "name": "Keep only requester owner email", "type": "n8n-nodes-base.set", "position": [2000, 480], "parameters": {"values": {"string": [{"name": "requester_pipedrive_email", "value": "={{ $node[\"Search requester in pipedrive\"].json[\"primary_email\"] }}"}, {"name": "requester_pipedrive_owner_email", "value": "={{ $json[\"data\"].email }}"}]}, "options": {}, "keepOnlySet": true}, "typeVersion": 1, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "a4ccf1d7-5d9f-4c4e-a5b9-c54ed77c5c44", "name": "Every 5 minutes", "type": "n8n-nodes-base.cron", "position": [160, 360], "parameters": {"triggerTimes": {"item": [{"mode": "everyX", "unit": "minutes", "value": 5}]}}, "typeVersion": 1, "notes": "This cron node performs automated tasks as part of the workflow."}, {"id": "99fb51d8-0d93-4db9-868d-757046d1bdc2", "name": "Add requester information to ticket data", "type": "n8n-nodes-base.merge", "position": [1280, 380], "parameters": {"mode": "mergeByKey", "propertyName1": "requester_id", "propertyName2": "requester_id"}, "typeVersion": 1, "notes": "This merge node performs automated tasks as part of the workflow."}, {"id": "a4c7acd0-b2b6-48bb-b7b7-d2826ddb1f9d", "name": "Search requester in pipedrive", "type": "n8n-nodes-base.pipedrive", "position": [1560, 480], "parameters": {"term": "={{ $json[\"requester_email\"] }}", "resource": "person", "operation": "search", "additionalFields": {"fields": "email"}}, "credentials": {"pipedriveApi": {"id": "{{ $credentials.pipedriveApi.id }}", "name": "Pipedrive account"}}, "typeVersion": 1, "notes": "This pipedrive node performs automated tasks as part of the workflow."}, {"id": "7a8a3bf3-9f57-40ad-a31f-45522264f101", "name": "Get owner information of Pipedrive contact", "type": "n8n-nodes-base.httpRequest", "position": [1780, 480], "parameters": {"url": "{{ $env.BASE_URL }}", "options": {}, "authentication": "{{ $credentials.predefinedCredentialType }}", "nodeCredentialType": "YOUR_CREDENTIAL_HERE"}, "credentials": {"pipedriveApi": {"id": "{{ $credentials.pipedriveApi.id }}", "name": "Pipedrive account"}}, "typeVersion": 2, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"id": "64a7fc0c-ddb4-4d84-86a6-3e9bd361ce46", "name": "Get agents and admins", "type": "n8n-nodes-base.zendesk", "position": [1780, 700], "parameters": {"filters": {"role": ["agent", "admin"]}, "resource": "user", "operation": "getAll", "returnAll": true}, "credentials": {"zendeskApi": {"id": "{{ $credentials.zendeskApi.id }}", "name": "Zendesk account"}}, "typeVersion": 1, "notes": "This zendesk node performs automated tasks as part of the workflow."}, {"id": "0117d5f8-e9b2-46c9-9777-7ae82e002cc2", "name": "Keep only email and Id", "type": "n8n-nodes-base.set", "position": [2000, 700], "parameters": {"values": {"string": [{"name": "agent_email", "value": "={{ $json[\"email\"] }}"}, {"name": "agent_id", "value": "={{ $json[\"id\"] }}"}]}, "options": {}, "keepOnlySet": true}, "typeVersion": 1, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "eaa7b072-0499-4b3a-96af-433d3afc12f9", "name": "Add Pipedrive agent data to pipedrive contact information", "type": "n8n-nodes-base.merge", "position": [2280, 500], "parameters": {"mode": "mergeByKey", "propertyName1": "requester_pipedrive_owner_email", "propertyName2": "agent_email"}, "typeVersion": 1, "notes": "This merge node performs automated tasks as part of the workflow."}, {"id": "b9619e3d-c951-47ae-bbb5-db50e7ae5abe", "name": "Add contact owner to ticket data", "type": "n8n-nodes-base.merge", "position": [2540, 400], "parameters": {"mode": "mergeByKey", "propertyName1": "requester_email", "propertyName2": "requester_pipedrive_email"}, "typeVersion": 1, "notes": "This merge node performs automated tasks as part of the workflow."}, {"id": "14f88f5f-2bab-42f2-bea7-a7566e6d45b1", "name": "Contact exists in Pipedrive", "type": "n8n-nodes-base.if", "position": [2760, 400], "parameters": {"conditions": {"string": [{"value1": "={{ $json[\"agent_id\"] }}", "operation": "isNotEmpty"}]}}, "typeVersion": 1, "notes": "This if node performs automated tasks as part of the workflow."}, {"id": "38da1ccc-3d23-41cd-84b3-6fc249aedca5", "name": "Change assignee to Pipedrive contact owner", "type": "n8n-nodes-base.zendesk", "position": [3020, 380], "parameters": {"id": "={{ $json[\"id\"] }}", "operation": "update", "updateFields": {"assigneeEmail": "={{$json[\"requester_pipedrive_owner_email\"]}}"}}, "credentials": {"zendeskApi": {"id": "{{ $credentials.zendeskApi.id }}", "name": "Zendesk account"}}, "typeVersion": 1, "notes": "This zendesk node performs automated tasks as part of the workflow."}, {"id": "4295e0e2-88e8-4f93-8432-47fff452cfc5", "name": "Add a note requester not found", "type": "n8n-nodes-base.zendesk", "position": [3020, 580], "parameters": {"id": "={{ $json[\"id\"] }}", "operation": "update", "updateFields": {"internalNote": "Requester not found in Pipedrive"}}, "credentials": {"zendeskApi": {"id": "{{ $credentials.zendeskApi.id }}", "name": "Zendesk account"}}, "typeVersion": 1, "notes": "This zendesk node performs automated tasks as part of the workflow."}], "connections": {"7a8a3bf3-9f57-40ad-a31f-45522264f101": {"main": [[{"node": "error-handler-7a8a3bf3-9f57-40ad-a31f-45522264f101", "type": "main", "index": 0}], [{"node": "error-handler-7a8a3bf3-9f57-40ad-a31f-45522264f101-9654ae12", "type": "main", "index": 0}], [{"node": "error-handler-7a8a3bf3-9f57-40ad-a31f-45522264f101-8d53099a", "type": "main", "index": 0}], [{"node": "error-handler-7a8a3bf3-9f57-40ad-a31f-45522264f101-b5d36658", "type": "main", "index": 0}], [{"node": "error-handler-7a8a3bf3-9f57-40ad-a31f-45522264f101-2c0a9e6a", "type": "main", "index": 0}], [{"node": "error-handler-7a8a3bf3-9f57-40ad-a31f-45522264f101-e0c3e559", "type": "main", "index": 0}], [{"node": "error-handler-7a8a3bf3-9f57-40ad-a31f-45522264f101-547dfb8d", "type": "main", "index": 0}], [{"node": "error-handler-7a8a3bf3-9f57-40ad-a31f-45522264f101-7c8ea604", "type": "main", "index": 0}], [{"node": "error-handler-7a8a3bf3-9f57-40ad-a31f-45522264f101-41a3df43", "type": "main", "index": 0}]]}}, "name": "Functionitem Workflow", "description": "Automated workflow: Functionitem Workflow. This workflow processes data and performs automated tasks.", "settings": {"executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "notes": "Excellent quality workflow: Functionitem Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}