Entra-Kontakte zu Zammad-Benutzern synchronisieren

Fortgeschritten

Dies ist ein Automatisierungsworkflow mit 14 Nodes. Hauptsächlich werden If, Set, Merge, Zammad, SplitOut und andere Nodes verwendet. Synkronisierung von Entra-Kontakten zu Zammad-Benutzern

Voraussetzungen
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich

Kategorie

-
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "ikxQzs58WxtUjbuE",
  "meta": {
    "instanceId": "494d0146a0f47676ad70a44a32086b466621f62da855e3eaf0ee51dee1f76753",
    "templateCredsSetupCompleted": true
  },
  "name": "Entra Contacts to Zammad User Sync",
  "tags": [],
  "nodes": [
    {
      "id": "5cf615cd-d555-4efa-bde4-5e1e2bda0c71",
      "name": "Bei Klick auf 'Test workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -2120,
        160
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "334e380c-ce6b-48c6-be2a-e688cd52ef14",
      "name": "Hinweis1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1700,
        380
      ],
      "parameters": {
        "width": 1635.910561370123,
        "height": 329.7269624573379,
        "content": "## Select Entra Contacts that should be synced to Zammad\n\n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "39b9ace7-97ba-4202-9c7a-752f67c6a60b",
      "name": "Zammad Universal User Object",
      "type": "n8n-nodes-base.set",
      "position": [
        -500,
        500
      ],
      "parameters": {
        "values": {
          "number": [
            {
              "name": "entra_key",
              "value": "={{ $json.id }}"
            }
          ],
          "string": [
            {
              "name": "email",
              "value": "={{ $json.mail }}"
            },
            {
              "name": "lastname",
              "value": "={{ $json.surname }}"
            },
            {
              "name": "firstname",
              "value": "={{ $json.givenName }}"
            },
            {
              "name": "mobile",
              "value": "={{ $json.phones[1].number }}"
            },
            {
              "name": "phone",
              "value": "={{ $json.phones[2].number }}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "id": "df5b4173-e1bd-49ce-9827-1b51a5e98da0",
      "name": "Zammad-Benutzer abrufen",
      "type": "n8n-nodes-base.zammad",
      "position": [
        -1000,
        160
      ],
      "parameters": {
        "filters": {},
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "zammadTokenAuthApi": {
          "id": "fj5GuzcJuNLQeMxz",
          "name": "Zammad Token Auth account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7f1d3b74-48dd-4245-9f17-286bcc552047",
      "name": "Zusammenführen",
      "type": "n8n-nodes-base.merge",
      "position": [
        200,
        180
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "fieldsToMatchString": "email"
      },
      "typeVersion": 3
    },
    {
      "id": "c98c849e-8b0c-45b0-9b05-6b648bf9329c",
      "name": "Neue Zammad-Benutzer finden",
      "type": "n8n-nodes-base.compareDatasets",
      "position": [
        200,
        460
      ],
      "parameters": {
        "options": {},
        "mergeByFields": {
          "values": [
            {
              "field1": "email",
              "field2": "email"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "079437ca-a379-48ba-a4e5-52b87454adba",
      "name": "Zammad-Benutzer aktualisieren",
      "type": "n8n-nodes-base.zammad",
      "position": [
        560,
        180
      ],
      "parameters": {
        "id": "={{ $json.id }}",
        "operation": "update",
        "updateFields": {
          "phone": "={{ $json.phone }}",
          "mobile": "={{ $json.mobile }}",
          "lastname": "={{ $json.lastname }}",
          "firstname": "={{ $json.firstname }}",
          "customFieldsUi": {
            "customFieldPairs": [
              {
                "name": "entra_key",
                "value": "={{ $json.entra_key }}"
              },
              {
                "name": "entra_object_type",
                "value": "contact"
              }
            ]
          }
        }
      },
      "credentials": {
        "zammadTokenAuthApi": {
          "id": "fj5GuzcJuNLQeMxz",
          "name": "Zammad Token Auth account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "34140616-c9c2-4899-a6a8-dc6e89a87c5c",
      "name": "Zammad-Benutzer erstellen",
      "type": "n8n-nodes-base.zammad",
      "position": [
        580,
        480
      ],
      "parameters": {
        "lastname": "={{ $json.lastname }}",
        "firstname": "={{ $json.firstname }}",
        "additionalFields": {
          "email": "={{ $json.email }}",
          "phone": "={{ $json.phone }}",
          "mobile": "={{ $json.mobile }}",
          "customFieldsUi": {
            "customFieldPairs": [
              {
                "name": "entra_key",
                "value": "={{ $json.entra_key }}"
              },
              {
                "name": "entra_object_type",
                "value": "contact"
              }
            ]
          }
        }
      },
      "credentials": {
        "zammadTokenAuthApi": {
          "id": "fj5GuzcJuNLQeMxz",
          "name": "Zammad Token Auth account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6c8ef4d9-7bb2-4090-a0cf-411269f766aa",
      "name": "Zammad-Benutzer deaktivieren",
      "type": "n8n-nodes-base.zammad",
      "position": [
        600,
        860
      ],
      "parameters": {
        "id": "={{ $json.id }}",
        "operation": "update",
        "updateFields": {
          "phone": "={{ $json.phone }}",
          "active": false,
          "mobile": "={{ $json.mobile }}",
          "lastname": "={{ $json.lastname }}",
          "firstname": "={{ $json.firstname }}",
          "customFieldsUi": {
            "customFieldPairs": [
              {
                "name": "entra_key",
                "value": "={{ $json.entra_key }}"
              },
              {
                "name": "entra_object_type",
                "value": "contact"
              }
            ]
          }
        }
      },
      "credentials": {
        "zammadTokenAuthApi": {
          "id": "fj5GuzcJuNLQeMxz",
          "name": "Zammad Token Auth account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e3db9840-666a-42d3-9466-70e970a57f29",
      "name": "Entfernte Benutzer finden",
      "type": "n8n-nodes-base.compareDatasets",
      "position": [
        200,
        880
      ],
      "parameters": {
        "options": {},
        "resolve": "preferInput1",
        "mergeByFields": {
          "values": [
            {
              "field1": "entra_key",
              "field2": "entra_key"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "6100fd80-8d9c-44ed-bfc1-6d39794c5405",
      "name": "Kontakte aus Entra abrufen",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1600,
        500
      ],
      "parameters": {
        "url": "https://graph.microsoft.com/v1.0/contacts",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "microsoftOAuth2Api"
      },
      "credentials": {
        "microsoftOAuth2Api": {
          "id": "U2E5p3lreqSi8v1N",
          "name": "ms365test.zammad.org"
        },
        "microsoftGraphSecurityOAuth2Api": {
          "id": "b09tqOxzkl0P8UQD",
          "name": "ms365test.zammad.org"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "27e598a5-39a5-408b-a8ab-bf0ada9a6870",
      "name": "Entra-Kontakte",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1220,
        500
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "value"
      },
      "typeVersion": 1
    },
    {
      "id": "ac38d73e-7a71-4b7d-913e-abc96236b124",
      "name": "Kontakte bei Bedarf filtern",
      "type": "n8n-nodes-base.if",
      "position": [
        -840,
        500
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "15da9b4f-46fa-4e9b-bd33-40ae79b88cd5",
              "operator": {
                "type": "object",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "28d3faf9-7cf4-4470-941b-abada3de3b9c",
      "name": "Bei Bedarf filtern",
      "type": "n8n-nodes-base.if",
      "position": [
        -400,
        160
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "5b258616-66b2-4378-8215-5dce8edd19b3",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.entra_object_type }}",
              "rightValue": "contact"
            },
            {
              "id": "0d569bde-d384-48d0-a208-aa707752d6e5",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.active }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "55f3ac0f-d15e-4643-a1ca-26f4ade7bb14",
  "connections": {
    "7f1d3b74-48dd-4245-9f17-286bcc552047": {
      "main": [
        [
          {
            "node": "079437ca-a379-48ba-a4e5-52b87454adba",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "27e598a5-39a5-408b-a8ab-bf0ada9a6870": {
      "main": [
        [
          {
            "node": "ac38d73e-7a71-4b7d-913e-abc96236b124",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "28d3faf9-7cf4-4470-941b-abada3de3b9c": {
      "main": [
        [
          {
            "node": "7f1d3b74-48dd-4245-9f17-286bcc552047",
            "type": "main",
            "index": 0
          },
          {
            "node": "c98c849e-8b0c-45b0-9b05-6b648bf9329c",
            "type": "main",
            "index": 0
          },
          {
            "node": "e3db9840-666a-42d3-9466-70e970a57f29",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "df5b4173-e1bd-49ce-9827-1b51a5e98da0": {
      "main": [
        [
          {
            "node": "28d3faf9-7cf4-4470-941b-abada3de3b9c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e3db9840-666a-42d3-9466-70e970a57f29": {
      "main": [
        [
          {
            "node": "6c8ef4d9-7bb2-4090-a0cf-411269f766aa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c98c849e-8b0c-45b0-9b05-6b648bf9329c": {
      "main": [
        [],
        [],
        [],
        [
          {
            "node": "34140616-c9c2-4899-a6a8-dc6e89a87c5c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6100fd80-8d9c-44ed-bfc1-6d39794c5405": {
      "main": [
        [
          {
            "node": "27e598a5-39a5-408b-a8ab-bf0ada9a6870",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ac38d73e-7a71-4b7d-913e-abc96236b124": {
      "main": [
        [
          {
            "node": "39b9ace7-97ba-4202-9c7a-752f67c6a60b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "39b9ace7-97ba-4202-9c7a-752f67c6a60b": {
      "main": [
        [
          {
            "node": "7f1d3b74-48dd-4245-9f17-286bcc552047",
            "type": "main",
            "index": 1
          },
          {
            "node": "c98c849e-8b0c-45b0-9b05-6b648bf9329c",
            "type": "main",
            "index": 1
          },
          {
            "node": "e3db9840-666a-42d3-9466-70e970a57f29",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "5cf615cd-d555-4efa-bde4-5e1e2bda0c71": {
      "main": [
        [
          {
            "node": "df5b4173-e1bd-49ce-9827-1b51a5e98da0",
            "type": "main",
            "index": 0
          },
          {
            "node": "6100fd80-8d9c-44ed-bfc1-6d39794c5405",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes14
Kategorie-
Node-Typen9
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Autor
Sirhexalot

Sirhexalot

@sirhexalot

Open source enthusiast and Zammad user with a passion for sharing knowledge and building simple, effective automation solutions with n8n.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34