{ "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", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "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, "pinData": {}, "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": { "5bc0a423-91bc-4b52-af05-2869223bbbff": { "main": [ [ { "node": "error-handler-5bc0a423-91bc-4b52-af05-2869223bbbff", "type": "main", "index": 0 } ], [ { "node": "error-handler-5bc0a423-91bc-4b52-af05-2869223bbbff-2645aeac", "type": "main", "index": 0 } ], [ { "node": "error-handler-5bc0a423-91bc-4b52-af05-2869223bbbff-b231cdb1", "type": "main", "index": 0 } ], [ { "node": "error-handler-5bc0a423-91bc-4b52-af05-2869223bbbff-63cb1071", "type": "main", "index": 0 } ], [ { "node": "error-handler-5bc0a423-91bc-4b52-af05-2869223bbbff-edfbacee", "type": "main", "index": 0 } ], [ { "node": "error-handler-5bc0a423-91bc-4b52-af05-2869223bbbff-d795cd76", "type": "main", "index": 0 } ], [ { "node": "error-handler-5bc0a423-91bc-4b52-af05-2869223bbbff-aeaa4307", "type": "main", "index": 0 } ], [ { "node": "error-handler-5bc0a423-91bc-4b52-af05-2869223bbbff-5a8398ab", "type": "main", "index": 0 } ], [ { "node": "error-handler-5bc0a423-91bc-4b52-af05-2869223bbbff-0662c04f", "type": "main", "index": 0 } ] ] }, "b5962a7b-27d3-45f1-adc4-1abff5d1c990": { "main": [ [ { "node": "error-handler-b5962a7b-27d3-45f1-adc4-1abff5d1c990", "type": "main", "index": 0 } ], [ { "node": "error-handler-b5962a7b-27d3-45f1-adc4-1abff5d1c990-3038b873", "type": "main", "index": 0 } ], [ { "node": "error-handler-b5962a7b-27d3-45f1-adc4-1abff5d1c990-dac88d7c", "type": "main", "index": 0 } ], [ { "node": "error-handler-b5962a7b-27d3-45f1-adc4-1abff5d1c990-baa4e84e", "type": "main", "index": 0 } ], [ { "node": "error-handler-b5962a7b-27d3-45f1-adc4-1abff5d1c990-3f1907cc", "type": "main", "index": 0 } ], [ { "node": "error-handler-b5962a7b-27d3-45f1-adc4-1abff5d1c990-1b6ebcf5", "type": "main", "index": 0 } ], [ { "node": "error-handler-b5962a7b-27d3-45f1-adc4-1abff5d1c990-a0e29fd2", "type": "main", "index": 0 } ], [ { "node": "error-handler-b5962a7b-27d3-45f1-adc4-1abff5d1c990-7a3c3425", "type": "main", "index": 0 } ], [ { "node": "error-handler-b5962a7b-27d3-45f1-adc4-1abff5d1c990-4f67979c", "type": "main", "index": 0 } ] ] }, "0b8f5007-d28d-4406-a7ec-aa69d2b865d5": { "main": [ [ { "node": "error-handler-0b8f5007-d28d-4406-a7ec-aa69d2b865d5", "type": "main", "index": 0 } ], [ { "node": "error-handler-0b8f5007-d28d-4406-a7ec-aa69d2b865d5-f31f2f94", "type": "main", "index": 0 } ], [ { "node": "error-handler-0b8f5007-d28d-4406-a7ec-aa69d2b865d5-afbb9463", "type": "main", "index": 0 } ], [ { "node": "error-handler-0b8f5007-d28d-4406-a7ec-aa69d2b865d5-0b66f64c", "type": "main", "index": 0 } ], [ { "node": "error-handler-0b8f5007-d28d-4406-a7ec-aa69d2b865d5-bf13522a", "type": "main", "index": 0 } ], [ { "node": "error-handler-0b8f5007-d28d-4406-a7ec-aa69d2b865d5-6910c4ac", "type": "main", "index": 0 } ], [ { "node": "error-handler-0b8f5007-d28d-4406-a7ec-aa69d2b865d5-3306469f", "type": "main", "index": 0 } ], [ { "node": "error-handler-0b8f5007-d28d-4406-a7ec-aa69d2b865d5-6420bf68", "type": "main", "index": 0 } ], [ { "node": "error-handler-0b8f5007-d28d-4406-a7ec-aa69d2b865d5-f6414c7f", "type": "main", "index": 0 } ] ] }, "f37ea772-a953-4b5b-8e54-c76e42938544": { "main": [ [ { "node": "error-handler-f37ea772-a953-4b5b-8e54-c76e42938544-ed25d4f6", "type": "main", "index": 0 } ] ] } }, "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." }