{"meta":{"instanceId":"workflow-0f228746","versionId":"1.0.0","createdAt":"2025-09-29T07:07:45.084121","updatedAt":"2025-09-29T07:07:45.084194","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"nodes":[{"id":"a4280167-97e0-4d12-bdfc-735dd9c69f03","name":"NoOp","type":"n8n-nodes-base.noOp","position":[1160,540],"parameters":{},"typeVersion":1,"notes":"This noOp node performs automated tasks as part of the workflow."},{"id":"a3ad4e3b-0841-4a6e-993b-5239d9e56eaf","name":"Get last execution timestamp","type":"n8n-nodes-base.functionItem","position":[420,300],"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().toISOString();\n}\n\nitem.executionTimeStamp = new Date().toISOString();\nitem.lastExecution = staticData.lastExecution;\n\n\nreturn item;"},"typeVersion":1,"notes":"This functionItem node performs automated tasks as part of the workflow."},{"id":"f917bc42-8b9f-4b60-860c-360eeb86b88c","name":"Set new last execution timestamp","type":"n8n-nodes-base.functionItem","position":[4440,140],"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":"ff141018-5307-4754-a48a-2311fcd15f85","name":"Pipedrive person Id found","type":"n8n-nodes-base.if","position":[2280,300],"parameters":{"conditions":{"string":[{"value1":"={{ $json[\"PipeDrivePersonId\"] }}","operation":"isNotEmpty"}]}},"typeVersion":1,"notes":"This if node performs automated tasks as part of the workflow."},{"id":"d06b1dae-77cb-4c0b-98dc-0e7184f95095","name":"NoOp1","type":"n8n-nodes-base.noOp","position":[2620,480],"parameters":{},"typeVersion":1,"notes":"This noOp node performs automated tasks as part of the workflow."},{"id":"e8a01cec-06d1-4fe6-8920-55fdd143f626","name":"Get Zendesk comments for tickets","type":"n8n-nodes-base.httpRequest","position":[2620,280],"parameters":{"url":"{{ $env.BASE_URL }}","options":{},"authentication":"{{ $credentials.predefinedCredentialType }}","nodeCredentialType":"YOUR_CREDENTIAL_HERE"},"credentials":{"zendeskApi":{"id":"{{ $credentials.zendeskApi.id }}","name":"Zendesk account"}},"typeVersion":2,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"7f7addcb-4858-4fd0-b1c2-29800365241b","name":"Add comments to tickets","type":"n8n-nodes-base.merge","position":[2860,160],"parameters":{"join":"inner","mode":"mergeByIndex"},"typeVersion":1,"notes":"This merge node performs automated tasks as part of the workflow."},{"id":"4ab3e897-b3d1-47f8-8c81-640e2ca6b3de","name":"Add Pipedrive person Id to Zendesk tickets","type":"n8n-nodes-base.merge","position":[2060,300],"parameters":{"mode":"mergeByKey","propertyName1":"via.source.from.address","propertyName2":"primary_email"},"typeVersion":1,"notes":"This merge node performs automated tasks as part of the workflow."},{"id":"1b25adda-15eb-4e23-bfb2-0a034656d8e2","name":"Get tickets updated after last execution","type":"n8n-nodes-base.zendesk","position":[640,300],"parameters":{"options":{"query":"=updated>{{ $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":"4884b8f5-d3f1-404d-87b3-1a802553cbee","name":"Channel is email","type":"n8n-nodes-base.if","position":[860,300],"parameters":{"conditions":{"string":[{"value1":"={{ $json[\"via\"].channel }}","value2":"email"}]}},"typeVersion":1,"notes":"This if node performs automated tasks as part of the workflow."},{"id":"48541dcf-8ea6-47b8-ad52-1b3045df6832","name":"Rename fields and keep only needed fields","type":"n8n-nodes-base.set","position":[1820,360],"parameters":{"values":{"number":[{"name":"PipeDrivePersonId","value":"={{ $json[\"id\"] }}"}],"string":[{"name":"primary_email","value":"={{ $json[\"primary_email\"] }}"}]},"options":{},"keepOnlySet":true},"typeVersion":1,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"e66d6b04-6a4e-4ab4-98a4-efba4bc5ec12","name":"Search persons by email","type":"n8n-nodes-base.pipedrive","position":[1600,360],"parameters":{"term":"={{ $json[\"SearchEmail\"] }}","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":"01e008cf-6867-48b3-9a0d-b1b264bb5c08","name":"Remove duplicates to make search efficient","type":"n8n-nodes-base.itemLists","position":[1360,360],"parameters":{"compare":"selectedFields","options":{},"operation":"removeDuplicates","fieldsToCompare":{"fields":[{"fieldName":"SearchEmail"}]}},"typeVersion":1,"notes":"This itemLists node performs automated tasks as part of the workflow."},{"id":"bc3ac74d-ac87-46b8-bd59-6cafe0e0e59c","name":"Set search email","type":"n8n-nodes-base.set","position":[1160,360],"parameters":{"values":{"string":[{"name":"SearchEmail","value":"={{ $json[\"via\"].source.from.address }}"}]},"options":{},"keepOnlySet":true},"typeVersion":1,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"e0cf4204-7640-41c7-9adc-39d2d86b6144","name":"Process commenst per ticket","type":"n8n-nodes-base.splitInBatches","position":[3080,160],"parameters":{"options":{},"batchSize":1},"typeVersion":1,"notes":"This splitInBatches node performs automated tasks as part of the workflow."},{"id":"056646c3-7e1f-4195-92bd-1c3c1c9e8d25","name":"New comment","type":"n8n-nodes-base.if","position":[3540,160],"parameters":{"conditions":{"dateTime":[{"value1":"={{ $json[\"created_at\"] }}","value2":"={{$item(0).$node[\"Get last execution timestamp\"].json[\"lastExecution\"]}}"}]}},"typeVersion":1,"alwaysOutputData":true,"notes":"This if node performs automated tasks as part of the workflow."},{"id":"77ef979c-313e-4904-bf3e-8716f1e5c86f","name":"Split comments to seperate items","type":"n8n-nodes-base.itemLists","position":[3320,160],"parameters":{"options":{},"fieldToSplitOut":"comments"},"typeVersion":1,"notes":"This itemLists node performs automated tasks as part of the workflow."},{"id":"01fbc85c-0c85-48d1-b2b2-cdf8d6310578","name":"Add comment as a note in Pipedrive","type":"n8n-nodes-base.pipedrive","position":[3820,0],"parameters":{"content":"=Message imported from Zendesk\n------------------------------------------------\nFrom {{$json[\"via\"][\"source\"][\"from\"][\"name\"] ?? 'Zendesk user'}}\n------------------------------------------------\n{{$json[\"body\"]}}","resource":"note","additionalFields":{"person_id":"={{$item(0).$node[\"Process commenst per ticket\"].json[\"PipeDrivePersonId\"]}}"}},"credentials":{"pipedriveApi":{"id":"{{ $credentials.pipedriveApi.id }}","name":"Pipedrive account"}},"typeVersion":1,"notes":"This pipedrive node performs automated tasks as part of the workflow."},{"id":"12296cee-7786-489d-9a33-7d0d1d7d755b","name":"NoOp2","type":"n8n-nodes-base.noOp","position":[3820,180],"parameters":{},"typeVersion":1,"notes":"This noOp node performs automated tasks as part of the workflow."},{"id":"0c21dbce-0820-4300-8da4-6e795288aa0b","name":"Every day at 09:00","type":"n8n-nodes-base.cron","position":[220,300],"parameters":{"triggerTimes":{"item":[{"hour":9}]}},"typeVersion":1,"notes":"This cron node performs automated tasks as part of the workflow."},{"id":"e6990744-45e2-4c08-b611-7f5bbac7ad9a","name":"Done processing","type":"n8n-nodes-base.if","position":[4160,160],"parameters":{"conditions":{"boolean":[{"value1":"={{$node[\"Process commenst per ticket\"].context[\"noItemsLeft\"]}}","value2":true}]},"combineOperation":"any"},"typeVersion":1,"notes":"This if node performs automated tasks as part of the workflow."}],"connections":{"Get Zendesk comments for tickets":{"main":[[],[],[],[],[],[],[],[],[]]}},"name":"Noop Workflow","description":"Automated workflow: Noop 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},"notes":"Excellent quality workflow: Noop Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}