{"meta":{"instanceId":"workflow-f2bbc004","versionId":"1.0.0","createdAt":"2025-09-29T07:07:47.161988","updatedAt":"2025-09-29T07:07:47.162000","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"nodes":[{"id":"35451a0c-1ad5-4c02-804b-d19afd282b09","name":"Get last execution timestamp","type":"n8n-nodes-base.functionItem","position":[540,100],"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();\n}\n\nitem.executionTimeStamp = new Date();\nitem.lastExecution = staticData.lastExecution;\n\n\nreturn item;"},"typeVersion":1,"notes":"This functionItem node performs automated tasks as part of the workflow."},{"id":"18ff2308-216e-4c1e-afb9-bd41ae7b5e4d","name":"Every day at 07:00","type":"n8n-nodes-base.cron","position":[320,100],"parameters":{"triggerTimes":{"item":[{"hour":7}]}},"typeVersion":1,"notes":"This cron node performs automated tasks as part of the workflow."},{"id":"53d3203b-2518-471f-9c72-2ab41303cdf2","name":"Set new last execution timestamp","type":"n8n-nodes-base.functionItem","position":[1240,100],"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":"bf6f8843-53e8-4096-8614-da0b43f5f193","name":"Create/Update contact","type":"n8n-nodes-base.hubspot","position":[1020,100],"parameters":{"email":"={{ $json[\"email_address\"] }}","resource":"contact","authentication":"{{ $credentials.appToken }}","additionalFields":{"lastName":"={{ $json[\"merge_fields\"].LNAME }}","firstName":"={{ $json[\"merge_fields\"].FNAME }}"}},"credentials":{"hubspotAppToken":{"id":"{{ $credentials.hubspotAppToken.id }}","name":"HubSpot App Token account"}},"typeVersion":1,"notes":"This hubspot node performs automated tasks as part of the workflow."},{"id":"6bce7f89-e22e-4372-a1cc-1723756bb617","name":"Get changed members","type":"n8n-nodes-base.mailchimp","position":[780,100],"parameters":{"list":"bcfb6ff8f1","options":{"sinceLastChanged":"={{ $json[\"lastExecution\"] }}"},"operation":"getAll"},"credentials":{"mailchimpApi":{"id":"{{ $credentials.mailchimpApi.id }}","name":"Mailchimp account"}},"typeVersion":1,"notes":"This mailchimp node performs automated tasks as part of the workflow."},{"id":"error-8870bdf1","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"connections":{},"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},"notes":"Excellent quality workflow: Functionitem Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}