Das Problem: Abwesenheitsstatus in zwei Systemen pflegen

Kennen Sie das? Ein Agent aktiviert seinen Abwesenheitsassistenten in Outlook - aber vergisst, den Status auch in Znuny zu setzen. Tickets werden zugewiesen, bleiben unbearbeitet, Kunden warten.

In vielen Unternehmen führt die manuelle Pflege des Abwesenheitsstatus in mehreren Systemen zu:

  • Verwaisten Tickets - Zuweisungen an abwesende Agenten
  • Doppelter Pflege - Status muss in Outlook und Znuny separat gesetzt werden
  • Vergessenen Updates - Agent kommt zurück, vergisst Znuny-Status zu deaktivieren
  • Fehlender Übersicht - Teamleiter sehen nicht, wer tatsächlich abwesend ist
  • Inkonsistenten Daten - Outlook sagt "abwesend", Znuny sagt "verfügbar"

Die Lösung: Automatische Synchronisation aus Exchange Online

Das ExoOooSync Addon für Znuny 7.2.x löst dieses Problem vollautomatisch. Es liest den Abwesenheitsstatus aller Agenten aus Microsoft Exchange Online per Graph API und überträgt ihn in die Znuny-Agenten-Einstellungen - ohne manuelles Zutun.

Der Agent setzt seinen OOO nur noch in Outlook - Znuny übernimmt den Rest.

So funktioniert es

Automatische Synchronisation

Das Addon läuft als Hintergrund-Job im Znuny-Daemon:

  1. Token holen - OAuth2 Client Credentials gegen Azure AD
  2. Status abfragen - Automatische Antworten jedes Agenten per Graph API lesen
  3. Vergleichen - Aktuellen Znuny-Status mit Exchange-Status abgleichen
  4. Aktualisieren - Nur bei Änderungen die Znuny-Preferences setzen
  5. Protokollieren - Jede Änderung einzeln ins Systemprotokoll schreiben

Drei Exchange-Zustände werden erkannt

Exchange-StatusZnuny-Ergebnis
DeaktiviertAbwesenheit in Znuny wird deaktiviert
Geplant (mit Zeitraum)Start-/Enddatum aus Exchange übernommen, Znuny aktiviert automatisch zum Startdatum
Immer aktiviert (ohne Enddatum)Abwesenheit aktiv, synthetisches Enddatum +365 Tage

Flexible Benutzerzuordnung

Znuny und Exchange verwenden oft unterschiedliche Bezeichner für denselben Benutzer. Das Addon unterstützt drei Zuordnungsmodi:

ModusZnuny-FeldExchange-Suche
UserEmail_UPNE-Mail-AdresseDirekt als User Principal Name
UserLogin_SAMUserLoginSuche über onPremisesSamAccountName in Entra ID
UserEmail_PrimarySMTPE-Mail-AdresseSuche über mail-Attribut in Entra ID
Der passende Modus hängt von der jeweiligen Umgebung ab und wird in der Systemkonfiguration eingestellt.

Zeitgesteuerte Ausführung

Die Synchronisation läuft zeitgesteuert im Hintergrund:

ZeitraumIntervall
Werktags 06:00-18:00Alle 15 Minuten
Sonst (Abende, Nächte, Wochenenden)Stündlich
Die Zeitpläne sind über die Znuny-Systemkonfiguration frei anpassbar.

Detailliertes Logging

Jede Änderung wird einzeln im Znuny-Systemprotokoll dokumentiert:

[notice] ExoOooSync: Updated user 'jdoe' (ID: 5): OutOfOffice: '0' -> '1',
OutOfOfficeStartYear: '' -> '2026', OutOfOfficeStartMonth: '' -> '3', ...
[info] ExoOooSync: Synchronization completed. Synced: 45, Changed: 2,
Skipped: 1, NoMailbox: 0, Errors: 0.

E-Mail-Domänenfilter

Nicht alle Agenten haben ein Exchange Online-Postfach. Mit dem konfigurierbaren Domänenfilter lässt sich einschränken, welche Agenten synchronisiert werden - z.B. nur interne Domänen. Externe Agenten ohne Exchange-Postfach werden automatisch übersprungen.

Skalierbarkeit

Das Addon nutzt den Graph API $batch-Endpunkt und bündelt bis zu 20 Abfragen pro HTTP-Request. Bei Drosselung durch Microsoft (HTTP 429) wartet es automatisch und wiederholt die Anfrage. Installationen mit mehreren tausend Agenten sind damit kein Problem.

Typische Szenarien

Szenario 1: Agent geht in den Urlaub

  1. Agent stellt in Outlook die automatischen Antworten ein (z.B. 01.04. - 14.04.)
  2. ExoOooSync erkennt den scheduled-Status beim nächsten Sync-Lauf
  3. Znuny zeigt automatisch "Abwesend bis 14.04." beim Agenten an
  4. Am 14.04. deaktiviert Exchange automatisch die Antworten → nächster Sync deaktiviert OOO in Znuny

Szenario 2: Agent ist spontan krank

  1. Agent (oder Teamleiter) aktiviert automatische Antworten in Outlook ohne Enddatum
  2. ExoOooSync erkennt alwaysEnabled und setzt OOO in Znuny (Enddatum: +365 Tage)
  3. Agent kommt zurück, deaktiviert automatische Antworten in Outlook
  4. Nächster Sync-Lauf deaktiviert OOO in Znuny

Technische Voraussetzungen

VoraussetzungDetails
Znuny7.2.x mit laufendem Daemon
Microsoft 365Exchange Online mit Azure AD (Entra ID)
Azure ADApp-Registrierung mit MailboxSettings.Read Berechtigung
NetzwerkAusgehend HTTPS zu login.microsoftonline.com und graph.microsoft.com
Die Authentifizierung erfolgt über den OAuth2 Client Credentials Flow - eine reine Anwendungsauthentifizierung ohne Benutzerinteraktion, ideal für Hintergrundprozesse.

Installation

Die Installation erfolgt wie bei jedem Znuny-Paket:

Option A: Paket-Repository (empfohlen)

  1. Admin → Systemkonfiguration → Package::RepositoryList
  2. Repository hinzufügen: Name wolkig.it, URL https://wolkig.it/packages
  3. Admin → Paketverwaltung → "ExoOooSync" installieren

Option B: Manuell

  1. OPM-Paket herunterladen
  2. Admin → Paketverwaltung → Paket installieren

Nach der Installation:

  1. Azure AD Zugangsdaten in der Systemkonfiguration eintragen
  2. Zuordnungsmodus wählen
  3. Optional: E-Mail-Domänenfilter setzen (z.B. nur firma.de synchronisieren)
  4. Feature aktivieren (ExoOooSync::Enabled)
  5. Manuelle Testausführung: bin/znuny.Console.pl Maint::ExoOooSync::Run --force

Das Addon deaktiviert automatisch das manuelle Abwesenheits-Widget in den Agenten-Einstellungen, da der Status jetzt zentral aus Exchange verwaltet wird.

Open Source

ExoOooSync ist Open Source unter der AGPL v3 Lizenz:

  • Kostenlos nutzbar
  • Quellcode einsehbar
  • Anpassungen erlaubt
  • Community-Beiträge willkommen

Repository: codeberg.org/wolkig-it/znuny_exo_ooo_sync

Fazit

Mit ExoOooSync gehört die doppelte Pflege des Abwesenheitsstatus der Vergangenheit an. Agent setzt OOO in Outlook - Znuny weiß Bescheid.

Vorteile auf einen Blick:

  • Vollautomatische Synchronisation aus Exchange Online
  • Keine doppelte Pflege mehr
  • Drei Zuordnungsmodi für jede Umgebung
  • Zeitgesteuerte Hintergrundausführung
  • Detailliertes Änderungsprotokoll
  • CLI-Befehl für manuelle Ausführung und Tests
  • Kostenlos und Open Source

Jetzt ausprobieren!

Download und Dokumentation: codeberg.org/wolkig-it/znuny_exo_ooo_sync