AutomationFlowsGeneral › Reset Zammad Roles to Defaults

Reset Zammad Roles to Defaults

Original n8n title: Update All Zammad Roles to Default Values

Update all Zammad Roles to default values. Uses manualTrigger, zammad, httpRequest, convertToFile. Event-driven trigger; 10 nodes.

Event trigger★★★★☆ complexity10 nodesZammadHTTP Request
General Trigger: Event Nodes: 10 Complexity: ★★★★☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "cDmsWx8ASzIxE3zw",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Update all Zammad Roles to default values",
  "tags": [],
  "nodes": [
    {
      "id": "32904945-fd7b-413f-898c-62b04406dfb0",
      "name": "When clicking \u2018Test workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -920,
        160
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "cbb0abd2-e153-477a-9346-00eaa1628c78",
      "name": "Zammad Univeral User Object",
      "type": "n8n-nodes-base.set",
      "position": [
        100,
        220
      ],
      "parameters": {
        "values": {
          "number": [
            {
              "name": "user_id",
              "value": "={{ $json.id }}"
            },
            {
              "name": "organization_id",
              "value": "={{ $json.organization_id }}"
            }
          ],
          "string": [
            {
              "name": "email",
              "value": "={{ $json.email }}"
            },
            {
              "name": "firstname",
              "value": "={{ $json.firstname }}"
            },
            {
              "name": "lastname",
              "value": "={{ $json.lastname }}"
            },
            {
              "name": "role_ids",
              "value": "={{ $json.role_ids.join() }}\n"
            },
            {
              "name": "groups",
              "value": "={{ $json.group_ids }}"
            },
            {
              "name": "active",
              "value": "={{ $json.active }}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "id": "bbf82b69-07b5-4dff-afec-ee65eeedd037",
      "name": "Get all Users",
      "type": "n8n-nodes-base.zammad",
      "position": [
        -220,
        220
      ],
      "parameters": {
        "filters": {},
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "zammadTokenAuthApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0c122c6b-22a7-41f5-8ea1-c9a32cd12ed6",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        400,
        220
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "0be03c44-5017-4db6-87cd-91838b953d09",
              "operator": {
                "type": "array",
                "operation": "notContains",
                "rightType": "any"
              },
              "leftValue": "={{ $('Basic Variables').item.json.exclude_zammad_users_by_id }}",
              "rightValue": "={{ $json.user_id }}"
            },
            {
              "id": "6a730e91-fa40-4e8a-b6cb-894f2cb367c5",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.active }}",
              "rightValue": ""
            },
            {
              "id": "b3d13440-f3fc-4172-b16d-e191f050a2bf",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "63f98607-1f56-4f83-93be-aa3b271da11b",
      "name": "Get all Roles",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -220,
        -20
      ],
      "parameters": {
        "url": "={{ $json.zammad_base_url }}/api/v1/roles",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $json.zammad_api_key }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "961bf663-30be-45b4-87f0-d7ec94c3435b",
      "name": "Basic Variables",
      "type": "n8n-nodes-base.set",
      "position": [
        -620,
        160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "68b32087-5e23-4590-8042-0061234ce479",
              "name": "zammad_base_url",
              "type": "string",
              "value": "-put-your-zammad-base-url-"
            },
            {
              "id": "7db7572e-2524-4f2a-a1d6-b44330662c30",
              "name": "zammad_api_key",
              "type": "string",
              "value": "-put-your-api-key-"
            },
            {
              "id": "7cd0a1d2-8898-47c7-a1c6-195ff6162bb9",
              "name": "default_roles",
              "type": "array",
              "value": "={{ [-put-in-the-default-roles-ids-separated-by-comma-] }}"
            },
            {
              "id": "4628705c-4875-4d42-90d1-692b9b44fc24",
              "name": "exclude_zammad_users_by_id",
              "type": "array",
              "value": "={{ [-put-in-the-user-ids-separated-by-comma-] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a86577aa-1eb2-48e6-b941-bdfb37b58073",
      "name": "Zammad Univeral Role Object",
      "type": "n8n-nodes-base.set",
      "position": [
        100,
        -20
      ],
      "parameters": {
        "values": {
          "number": [
            {
              "name": "role_id",
              "value": "={{ $json.id }}"
            },
            {
              "name": "name",
              "value": "={{ $json.name }}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "id": "ecc387b3-092d-43c9-9187-784f07c4df77",
      "name": "Convert to Excel Roles",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        760,
        -40
      ],
      "parameters": {
        "options": {
          "fileName": "Zammad_Roles.xlsx"
        },
        "operation": "xlsx"
      },
      "typeVersion": 1.1
    },
    {
      "id": "e8055ae6-78d8-4736-adee-4b8c883b4000",
      "name": "Filter Roles if needed",
      "type": "n8n-nodes-base.if",
      "position": [
        400,
        -20
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "0ca9d3a3-b726-4396-8cec-4a74c8e3949b",
              "operator": {
                "type": "object",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": 1781
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "45b01919-ba58-4c7a-a97f-d169cb361855",
      "name": "Update Users to default Role(s)",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        760,
        200
      ],
      "parameters": {
        "url": "={{ $('Basic Variables').item.json.zammad_base_url }}/api/v1/users/{{ $json.user_id }}",
        "method": "PUT",
        "options": {},
        "jsonBody": "={\n  \"role_ids\": [\n    {{ $('Basic Variables').item.json.default_roles }}\n  ]\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('Basic Variables').item.json.zammad_api_key }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "4fa55089-104d-477e-8a93-c8cb0caf7bed",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Update Users to default Role(s)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all Roles": {
      "main": [
        [
          {
            "node": "Zammad Univeral Role Object",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all Users": {
      "main": [
        [
          {
            "node": "Zammad Univeral User Object",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic Variables": {
      "main": [
        [
          {
            "node": "Get all Roles",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get all Users",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Roles if needed": {
      "main": [
        [
          {
            "node": "Convert to Excel Roles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Zammad Univeral Role Object": {
      "main": [
        [
          {
            "node": "Filter Roles if needed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Zammad Univeral User Object": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Users to default Role(s)": {
      "main": [
        [],
        []
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Basic Variables",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

How this works

Restoring Zammad roles to their default values ensures your helpdesk system's permissions align with standard configurations, preventing access issues and maintaining compliance without manual reconfiguration. This workflow suits Zammad administrators facing role customisations that have drifted from defaults, particularly after migrations or updates. It begins by fetching all users and roles via the Zammad integration and an HTTP request, then systematically updates each role to predefined defaults, streamlining what could otherwise be a tedious process.

Use this workflow when bulk-resetting roles after significant system changes or to enforce uniformity across your Zammad instance. Avoid it for selective role adjustments, as it applies defaults universally; opt for manual edits in such cases. Common variations include triggering via scheduled events instead of manual for regular audits, or integrating with email notifications to alert on completion.

About this workflow

Update all Zammad Roles to default values. Uses manualTrigger, zammad, httpRequest, convertToFile. Event-driven trigger; 10 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Export Zammad Objects Users, Roles, Groups and Organizations to Excel. Uses manualTrigger, zammad, httpRequest, convertToFile. Event-driven trigger; 18 nodes.

Zammad, HTTP Request
General

Create Animated Stories using GPT-4o-mini, Midjourney, Kling and Creatomate API. Uses httpRequest, stickyNote, manualTrigger. Event-driven trigger; 51 nodes.

HTTP Request
General

Generate Leads with Google Maps - AlexK1919. Uses manualTrigger, scheduleTrigger, executeWorkflowTrigger, stopAndError. Event-driven trigger; 42 nodes.

Execute Workflow Trigger, Stop And Error, HTTP Request +1
General

Limit Code. Uses microsoftOutlookTrigger, httpRequest, limit, noOp. Event-driven trigger; 41 nodes.

Microsoft Outlook Trigger, HTTP Request
General

AutoQoutesV2_template. Uses manualTrigger, httpRequest, stickyNote, googleSheets. Event-driven trigger; 28 nodes.

HTTP Request, Google Sheets, Google Drive +2