Workflow: Update Roles by Excel
Integrations: extractFromFile, httpRequest, manualTrigger, merge, set, stickyNote

{"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."}