{"id":"xzKlhjcc6QEzA98Z","meta":{"instanceId":"workflow-8623366b","versionId":"1.0.0","createdAt":"2025-09-29T07:07:50.793098","updatedAt":"2025-09-29T07:07:50.793126","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"Update Roles by Excel","nodes":[{"id":"580d8a47-32cc-4976-a464-793523ae3d1e","name":"When clicking \"Execute Workflow\"","type":"n8n-nodes-base.manualTrigger","position":[80,140],"parameters":{},"typeVersion":1,"notes":"This manualTrigger node performs automated tasks as part of the workflow."},{"id":"f37ea772-a953-4b5b-8e54-c76e42938544","name":"Extract from File","type":"n8n-nodes-base.extractFromFile","position":[760,140],"parameters":{"options":{},"operation":"xlsx"},"typeVersion":1,"notes":"This extractFromFile node performs automated tasks as part of the workflow."},{"id":"60ab7913-d421-41cd-af04-ccec2ed6838e","name":"Merge","type":"n8n-nodes-base.merge","position":[1700,120],"parameters":{"mode":"combine","options":{},"fieldsToMatchString":"email"},"typeVersion":3,"notes":"This merge node performs automated tasks as part of the workflow."},{"id":"ad6719b4-95dc-419e-94cb-97039014be62","name":"Basic Variables","type":"n8n-nodes-base.set","position":[320,140],"parameters":{"options":{},"assignments":{"assignments":[{"id":"68b32087-5e23-4590-8042-0061234ce479","name":"zammad_base_url","type":"string","value":"{{ $env.WEBHOOK_URL }}"},{"id":"240f4dc5-a070-4623-96e7-1e0750dbeba5","name":"excel_source_url","type":"string","value":"{{ $env.WEBHOOK_URL }}"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"8f18e493-5dbe-4447-a422-450c610e9585","name":"Zammad Univeral User Object","type":"n8n-nodes-base.set","position":[1020,140],"parameters":{"values":{"string":[{"name":"email","value":"={{ $json.email }}"},{"name":"role_ids","value":"={{ $json.role_ids }}\n"}]},"options":{},"keepOnlySet":true},"typeVersion":1,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"5bc0a423-91bc-4b52-af05-2869223bbbff","name":"Download Excel","type":"n8n-nodes-base.httpRequest","position":[540,140],"parameters":{"url":"{{ $env.BASE_URL }}","options":{"response":{"response":{"responseFormat":"file"}}}},"typeVersion":4.1,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"b5962a7b-27d3-45f1-adc4-1abff5d1c990","name":"Find Zammad User by email","type":"n8n-nodes-base.httpRequest","position":[1360,-60],"parameters":{"url":"{{ $env.BASE_URL }}","options":{},"authentication":"{{ $credentials.genericCredentialType }}","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"GJ7tG0KxDpEUv3DS","name":"zammad.sirhexalot.de"}},"executeOnce":false,"typeVersion":4.2,"alwaysOutputData":false,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"0b8f5007-d28d-4406-a7ec-aa69d2b865d5","name":"Update User Roles","type":"n8n-nodes-base.httpRequest","onError":"continueErrorOutput","position":[2020,120],"parameters":{"url":"{{ $env.BASE_URL }}","method":"PUT","options":{},"jsonBody":"={\n  \"role_ids\": [\n  {{ $json.role_ids }}\n  ]\n} ","sendBody":true,"specifyBody":"json","authentication":"{{ $credentials.genericCredentialType }}","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"GJ7tG0KxDpEUv3DS","name":"zammad.sirhexalot.de"}},"typeVersion":4.2,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"7724e271-0beb-4fc3-a9dd-4e55bcf033a1","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[60,-500],"parameters":{"width":577.5890410958907,"height":253.58904109589045,"content":"## Authentication for Zammad\n\nCreate in the Node Find Zammad User by email a Header Auth Authentication\n\nUse:\n\nName: Authorization\nValue: Bearer - put here your zammad api token - \n"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."}],"active":false,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"2e34f31f-cb00-43e1-8709-6405ea8521ac","connections":{"Download Excel":{"main":[[],[],[],[],[],[],[],[],[]]},"Find Zammad User by email":{"main":[[],[],[],[],[],[],[],[],[]]},"Update User Roles":{"main":[[],[],[],[],[],[],[],[],[]]},"Extract from File":{"main":[[]]}},"description":"Automated workflow: Update Roles by Excel. This workflow integrates 7 different services: stickyNote, httpRequest, merge, set, stopAndError. It contains 16 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Update Roles by Excel. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}