Din Zammad-användarlista glider isär. Någon börjar på företaget och kan inte logga in. Någon slutar, och kontot ligger kvar aktivt. Och på något sätt blir det alltid en ”snabb adminuppgift” som stjäl en timme.
Den här Entra Zammad sync drabbar först IT-administratörer, men driftsansvariga och byråägare som driver en supportdesk känner av den också. Du hamnar i reaktiv felsökning av åtkomst, hanterar ”jag kan inte logga in”-ärenden och städar upp användare en och en.
Det här n8n-flödet håller Zammad-användare automatiskt synkade mot en Microsoft Entra-grupp. Du får se hur det fungerar, vad du behöver och vilka resultat du kan förvänta dig när det väl är igång.
Så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Microsoft Entra + Zammad: användare synkas
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Groups from Entra"]
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Remove outer Array", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Select Entra Zammad default ..", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Remove outer Array from Entr..", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Zammad Univeral User Object", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/zammad.svg' width='40' height='40' /></div><br/>Get Zammad Users"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Members of the default g.."]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/compare.svg' width='40' height='40' /></div><br/>Find new Zammad Users"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/zammad.svg' width='40' height='40' /></div><br/>Update Zammad User"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/zammad.svg' width='40' height='40' /></div><br/>Create Zammad User"]
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/zammad.svg' width='40' height='40' /></div><br/>Deactivate Zammad User"]
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/compare.svg' width='40' height='40' /></div><br/>Find removed Users"]
n14@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Select only active Users and..", pos: "b", h: 48 }
n14 --> n5
n7 --> n10
n6 --> n15
n13 --> n12
n2 --> n3
n9 --> n11
n1 --> n2
n5 --> n7
n5 --> n9
n5 --> n13
n8 --> n4
n3 --> n8
n0 --> n6
n0 --> n1
n4 --> n14
n15 --> n7
n15 --> n9
n15 --> n13
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n3,n14,n15 decision
class n1,n8 api
classDef customIcon fill:none,stroke:none
class n1,n6,n7,n8,n9,n10,n11,n12,n13 customIcon
Problemet: användaråtkomst i Zammad blir snabbt rörig
Zammad är bara så strukturerat som användarlistan bakom det. I verkliga team blir den listan snabbt rörig eftersom identiteten bor i Microsoft Entra, medan det dagliga supportarbetet sker i Zammad. Onboarding blir då en manuell rutin: ”skapa användare, sätt fält, dubbelkolla e-post”. Offboarding är värre. Om du glömmer att inaktivera någon får du kvarhängande åtkomst, förvirrande omnämnanden och supporthistorik kopplad till konton som inte borde finnas. Även när du kommer ihåg det växlar du fortfarande mellan flikar och gör om samma kontroller varje gång.
Det här byggs upp snabbt. Så här brakar det ihop i praktiken.
- Nyanställda får inte Zammad-åtkomst förrän någon upptäcker det och manuellt skapar kontot.
- Användaruppgifter driver iväg eftersom telefonnummer och namn ändras i Entra men aldrig uppdateras i Zammad.
- Tidigare anställda kan ibland ligga kvar aktiva i Zammad, vilket är en åtkomstrisk och ett revisionsproblem.
- Anpassade fält ignoreras under stressiga veckor, så rapportering och segmentering blir mindre tillförlitliga över tid.
Lösningen: automatisk Entra-grupp → Zammad-användarsynk
Det här flödet hämtar medlemmar från en specifik Microsoft Entra-grupp, gör om varje person till ett ”universellt användarobjekt” som matchar formatet Zammad förväntar sig och synkar sedan förändringar till Zammad. Det kontrollerar vilka som redan finns, vilka som behöver uppdateras och vilka som ska inaktiveras eftersom de har tagits bort från Entra-gruppen. E-post är den primära matchningsnyckeln, vilket gör logiken förutsägbar. Om du underhåller anpassade användarfält i Zammad (som entra_key och entra_object_type) kan flödet även lagra identitetsmetadata, så att framtida synkar blir konsekventa. Kör det enligt schema så håller sig Zammad i linje utan att du behöver passa det.
Flödet startar när du kör det manuellt (eller på ett dagligt schema). Det hämtar Entra-grupper, filtrerar fram din målgrupp, hämtar sedan målgruppens medlemmar och mappar dem till Zammad-anpassade användardata. Till sist jämför det Entra-användare med aktiva Zammad-användare så att det kan uppdatera befintliga konton, skapa saknade och inaktivera konton som inte längre tillhör gruppen.
Vad du får: automatisering vs. resultat
| Det här automatiserar flödet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du hanterar ett team på 30 personer och i snitt har 3 användarförändringar i veckan (nyanställningar, rollbyten, konsulter som avslutar). Manuellt tar varje ändring oftast 10 minuter med kontroller i Entra plus 10 minuter med uppdateringar i Zammad, så du landar på runt 1 timme i veckan, och det förutsätter att du inte missar någon. Med det här flödet är ”jobbet” att lägga personer i rätt Entra-grupp och låta en daglig synk köra. Din veckoinsats blir en snabb kontroll, kanske 5 minuter, medan automatiseringen sköter resten i bakgrunden.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Självhostat alternativ om du föredrar det (Hostinger fungerar bra)
- Microsoft Entra (Azure AD) för källdata om grupper och medlemmar.
- Zammad för att skapa, uppdatera och inaktivera användare.
- Microsoft OAuth2 + Zammad API-token (hämta dem från Azure App Registrations och Zammad admininställningar).
Kunskapsnivå: Medel. Du kopplar in autentiseringar, verifierar API-behörigheter och mappar ett par anpassade användarfält.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Manuell körning (eller schemalagd) sätter igång. Flödet är byggt för att köras vid begäran och kan sedan flyttas till schema när du är nöjd med resultatet.
Upptäckt och filtrering av Entra-grupp. n8n hämtar Entra-grupperna, delar upp listan och filtrerar ner till den enda gruppen du faktiskt vill synka. Det spelar roll eftersom många Entra-tenants har dussintals (eller hundratals) grupper.
Hämta medlemmar och korrekt formaterad mappning för Zammad. Det hämtar gruppmedlemmarna, validerar varje medlems post och mappar sedan fält som e-post, namn och telefon till ett konsekvent Zammad-användarobjekt. Anpassade fält som entra_key och entra_object_type kan också fyllas i här.
Jämför, och skapa/uppdatera/inaktivera. Zammad-användare hämtas och filtreras till aktiva konton. Därifrån jämför flödet dataset för att upptäcka nya användare (skapa dem), befintliga användare som har ändrats (uppdatera dem) och användare som inte längre finns i gruppen (inaktivera dem).
Du kan enkelt ändra vilken Entra-grupp som räknas som ”källan som gäller” för att synka ett annat team, en annan avdelning eller plats utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Konfigurera den manuella triggern för att starta arbetsflödet och förgrena till Microsoft Entra- och Zammad-strömmar.
- Lägg till Manual Launch Trigger som arbetsflödets startpunkt.
- Bekräfta att noden är ansluten så att Manual Launch Trigger skickar utdata till både Retrieve Zammad Users och Fetch Entra Groups parallellt.
Steg 2: Anslut hämtning av Microsoft Entra-grupper
Hämta gruppdata från Microsoft Graph och välj målgruppen i Entra.
- Öppna Fetch Entra Groups och ställ in URL till
https://graph.microsoft.com/v1.0/groups. - Autentiseringsuppgifter krävs: anslut era microsoftOAuth2Api-uppgifter i Fetch Entra Groups.
- I Split Group List ställer ni in Field to Split Out till
value. - Konfigurera Filter Target Group för att matcha gruppnamnet genom att sätta Left Value till
={{ $json.displayName }}och Right Value tillENTRA. - Säkerställ att Filter Target Group routar till Retrieve Group Members.
ENTRA kommer Filter Target Group att filtrera bort alla resultat.Steg 3: Hämta och validera gruppmedlemmar
Hämta gruppmedlemmar, dela upp dem i enskilda objekt och validera att de finns innan ni mappar fält.
- I Retrieve Group Members ställer ni in URL till
=https://graph.microsoft.com/v1.0/groups/{{ $json.id }}/members. - Autentiseringsuppgifter krävs: anslut era microsoftOAuth2Api-uppgifter i Retrieve Group Members.
- I Split Member List ställer ni in Field to Split Out till
value. - Konfigurera Validate Member Exists med Left Value satt till
={{ $json }}och operatorn Exists.
Steg 4: Mappa medlemsfält för Zammad
Transformera medlemsdata från Entra till den struktur som krävs för att uppdatera och skapa användare i Zammad.
- I Map Zammad User Fields aktiverar ni Keep Only Set.
- Sätt entra_key till
={{ $json.id }}. - Sätt email till
={{ $json.userPrincipalName }}, lastname till={{ $json.surname }}och firstname till={{ $json.givenName }}. - Sätt mobile till
={{ $json.mobilePhone }}och phone till={{ $json.businessPhones[0] }}. - Bekräfta att Map Zammad User Fields skickar utdata till Combine User Streams, Detect New Zammad Users och Detect Removed Users parallellt.
Steg 5: Hämta och filtrera befintliga Zammad-användare
Hämta alla Zammad-användare och filtrera fram aktiva Entra-synkade konton innan jämförelser.
- I Retrieve Zammad Users ställer ni in Operation till
getAlloch aktiverar Return All. - Autentiseringsuppgifter krävs: anslut era zammadTokenAuthApi-uppgifter i Retrieve Zammad Users.
- Konfigurera Filter Active Zammad Users med Left Value
={{ $json.entra_object_type }}lika meduseroch Left Value={{ $json.active }}satt till true. - Säkerställ att Filter Active Zammad Users skickar utdata till Combine User Streams, Detect New Zammad Users och Detect Removed Users parallellt.
Steg 6: Jämför datamängder och synka Zammad-användare
Slå ihop datamängder för att uppdatera befintliga användare, skapa nya användare och inaktivera borttagna användare.
- I Combine User Streams ställer ni in Mode till
combineoch Fields to Match tillemail. - Konfigurera Detect New Zammad Users för att jämföra på email på båda indata, och routa sedan utdata “new” till Generate Zammad User.
- Konfigurera Detect Removed Users med Resolve satt till
preferInput1och jämför på entra_key för att styra Disable Zammad User. - Modify Zammad User ska uppdatera id med
={{ $json.id }}och mappa fält som phone, mobile, lastname, firstname samt det anpassade fältet entra_key med uttryck som redan är definierade. - Generate Zammad User ska sätta lastname till
={{ $json.lastname }}, firstname till={{ $json.firstname }}och inkludera ytterligare fält email, phone, mobile samt anpassade fält för entra_key och entra_object_type. - Disable Zammad User ska uppdatera id till
={{ $json.id }}och sätta active tillfalsesamtidigt som telefon-, mobil- och namn-värden bevaras. - Autentiseringsuppgifter krävs: anslut era zammadTokenAuthApi-uppgifter i Modify Zammad User, Generate Zammad User och Disable Zammad User.
Steg 7: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera hela synklogiken och aktivera sedan för löpande användning.
- Klicka på Execute Workflow från Manual Launch Trigger för att testa hela flödet.
- Verifiera att Generate Zammad User skapar nya användare, Modify Zammad User uppdaterar befintliga användare och Disable Zammad User inaktiverar borttagna användare.
- Kontrollera körningsdatan för att bekräfta att båda parallella grenarna från Manual Launch Trigger slutfördes utan fel.
- När allt fungerar växlar ni arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Microsoft Entra-autentisering kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först API-behörigheter och samtyckesstatus i din Azure App Registration.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstider. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Zammad API-tokens kan vara för hårt begränsade, vilket gör att anrop för ”skapa/uppdatera användare” misslyckas utan tydliga fel. Om du ser att ändringar saknas, bekräfta att token har adminrättigheter och att dina anpassade fält (som entra_key) finns.
Vanliga frågor
Cirka 45 minuter om din Entra-app och Zammad-token redan är klara.
Nej. Du kopplar mest in autentiseringar och justerar fältmappning. Den enda ”tekniska” delen är att bekräfta att dina Entra-behörigheter är korrekta.
Ja. n8n har ett gratis självhostat alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volymer. Du behöver också räkna in dina kostnader för Zammad-hosting (och Microsoft-licenser om tillämpligt), men själva flödet kräver inga betalda AI-API:er.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärt och kör n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, men gör det med eftertanke. Du kan ändra steget som filtrerar målgrupp så att det matchar mer än en Entra-grupp, och sedan tagga användare i Zammad baserat på vilken grupp de kom ifrån. Vanliga anpassningar är att mappa fler Entra-fält till Zammad-anpassade fält, synka endast specifika domäner och sätta olika standarder för ”user” vs ”contact” med fältet entra_object_type.
Oftast beror det på saknade Graph-behörigheter eller administratörssamtycke som aldrig godkändes i Azure. Kontrollera App Registration igen, bekräfta rätt API-scope för att läsa grupper och medlemmar och uppdatera sedan OAuth-anslutningen i n8n. Om det bara misslyckas ibland kan det bero på rate limits, särskilt i större tenants, så att sakta ner körningen eller batcha anrop kan hjälpa.
Hundratals är normalt, och tusentals kan fungera om dina Entra- och Zammad-API:er svarar bra.
Ofta, ja, eftersom det här inte är en enkel 2-stegs-zap. Du jämför dataset, filtrerar aktiva användare och avgör när du ska skapa vs. uppdatera vs. inaktivera, vilket är där n8n känns mer naturligt (och blir billigare i skala om du självhostar). Zapier och Make kan lösa delar, men du landar oftast i flera scenarier och mer skör logik runt inaktivering. Om ditt use case är litet och du aldrig inaktiverar användare kan de verktygen räcka. Om du bryr dig om god åtkomsthygien är n8n ett säkrare val. Prata med en automationsexpert om du vill ha en snabb rekommendation för din miljö.
När det här väl är igång slutar Zammad vara ytterligare en användardatabas du måste underhålla. Flödet hanterar den repetitiva kontoomsättningen så att du kan fokusera på supportdrift, inte lösenords- och åtkomststrul.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.