IT-Lizenzmanagement, Baustoffindustrie
Ungenutzte KI-Lizenzen finden — ohne sie automatisch zu entziehen
Ein Wochenbericht sortiert jeden Lizenznehmer in behalten, schulen, zurückholen oder prüfen. Wer Copilot nicht nutzt, sonst aber aktiv ist, gilt als Schulungsfall — nicht als Kostenfall.
- Jahr
- 2026
- Leistungen
- Automatisierung
- Bereich
- Konzern-IT
- Rolle
- Intern, angestellt
Umgesetzt in angestellter Rolle für einen internen Fachbereich, nicht als externes Beratungsmandat. Das Unternehmen wird nicht genannt.
Ausgangslage
Der Projektordner dokumentiert das nicht. Kein README, keine Entwurfsnotizen, keine Ticketverweise — und keine Commit-Nachrichten, weil das Repository überhaupt keine Commits enthält. Jede Darstellung des Vorher-Zustands wäre erfunden.
Was der Code nahelegt, und mehr nicht: Er beantwortet die Frage „zahlen wir für Lizenzen, die niemand nutzt?“ — ein Preis je Platz ist konfigurierbar, ungenutzte Plätze werden auf eine jährliche Verschwendungssumme hochgerechnet. Und die E-Mail fordert dazu auf, die angehängte Tabelle „vor jeder Massenaktion“ in Excel zu filtern, was auf vorherige Handarbeit hindeutet. Eine Folgerung, keine Feststellung.
Ansatz
Eine einzelne Function App mit zwei Einstiegspunkten: ein Wochen-Timer und ein HTTP-Endpunkt für Läufe auf Zuruf. Beide rufen dieselbe Verarbeitung auf.
Authentifiziert wird über die verwaltete Identität — nirgends im Code liegen Zugangsdaten. Geholt werden das Benutzerverzeichnis mit Lizenzzuweisungen und letzten Anmeldungen, der Nutzungsbericht je Person und drei Basis-Aktivitätsberichte zu E-Mail, Teams und Dateien. Verzeichnisdaten kommen als JSON; die Basisberichte werden nur als CSV zuverlässig geliefert und vom Client in dieselbe Form gebracht.
Diese Quellen werden je Person zu einem breiten Datensatz mit 47 Feldern zusammengeführt: Identität, Abteilung, Land, Führungskraft, in welchen Anwendungen die KI genutzt wurde und wie lange das her ist.
Darüber liegt ein Abteilungsvergleich: Median und oberes Quartil der Tage seit letzter Nutzung, berechnet nur für Abteilungen mit mindestens drei Lizenznehmern, damit kleine Teams das Bild nicht verzerren. Eine Regelmaschine ordnet jeden Nutzer ein; die Ergebnisse gehen als CSV und JSON in den Speicher und als HTML-Mail mit angehängter Tabelle heraus.
Der Punkt, an dem es anders hätte laufen können
Das System empfiehlt, aber handelt nie.
Jeder Aufruf im gesamten Code ist lesend. Kein Pfad entzieht eine Lizenz, ändert eine Gruppenmitgliedschaft oder schreibt einen Endnutzer an — obwohl alles dafür Nötige vorliegt, einschließlich der jeweiligen Führungskraft.
Am deutlichsten wird die Abwägung in den Einstufungsregeln. Ein Nutzer ohne KI-Aktivität wird nicht automatisch zum Entzug vorgeschlagen. Die Regeln prüfen zuerst, ob diese Person sonst aktiv ist — Besprechungen, gesendete E-Mails, bearbeitete Dateien. Wenn ja, lautet die Empfehlung schulen, nicht zurückholen. Aus einem Kostenproblem wird ein Schulungsproblem.
Das hätte anders laufen können: Ein einfacheres Werkzeug hätte jeden Nichtnutzer als Verschwendung markiert und den Entzug automatisiert. Der Entwurf gibt diese Automatisierung bewusst auf, und mehrere „prüfen“-Fälle existieren ausschließlich dafür, Uneindeutigkeit an einen Menschen zu geben — etwa Nutzer, die nur im Chat gesehen wurden, den es auch als kostenlose Stufe gibt.
Ergebnis
13 Module, rund 1.690 Zeilen, davon etwa 750 allein für die Aufbereitung der E-Mail. Vier angebundene Systeme, neun Schnittstellen-Endpunkte, zwei Einstiegspunkte.
Eine zweite Zugangsart wird getrennt behandelt: Der KI-Arbeitsbereich ist keine Lizenz je Platz, der Zugang kommt über nutzungsbasierte Ausgabenrichtlinien auf Sicherheitsgruppen. Das System löst dafür die transitive Mitgliedschaft zweier konfigurierter Gruppen auf.
Offen benannte Grenzen: Es gibt keine Testsuite — auch nicht für die Einstufungsregeln, deren Ergebnis Kostenentscheidungen auslöst. Der Verbrauch im Arbeitsbereich ist über die Schnittstelle gar nicht messbar; der Bericht sagt das in seiner eigenen Ausgabe und verweist auf das Admin Center, statt eine Ersatzkennzahl zu erfinden.
Und die ehrlichste Einschränkung steht ebenfalls im Projekt: Aktivität ist ein Näherungswert für Nutzen. „Zuletzt aktiv“ sagt, dass jemand die Anwendung geöffnet hat — nicht, dass sie geholfen hat. Seltene, aber wichtige Nutzung sieht aus wie gewohnheitsmäßige Nutzung ohne Wert.
Eingesetzte Technik
- Python
- Azure Functions
- Microsoft Graph API
- Azure Blob Storage
- SendGrid
Weitere Projekte
Konzern-Kundenservice, Bauchemie
2026Ein Contact Center für elf Länder — eine Plattform statt elf Inseln
Kundenservice in elf Ländern über Sprache und SMS, mit Daten aus SAP, Salesforce und dem Produktsystem direkt im Arbeitsplatz der Agenten. Länderunterschiede sind Konfiguration, keine eigene Installation.
- Twilio Flex
- Twilio TaskRouter
- Twilio Studio
- SAP
Konzern-Compliance, Bauchemie
202610.872 EU-Konformitätserklärungen statt Copy-Paste
Für die neue EU-Verpackungsverordnung waren Konformitätserklärungen in 12 Sprachen für rund 900 Verpackungsmaterialien nötig. Statt sie einzeln zu füllen, erzeugt und verteilt eine Pipeline sie in einem Lauf.
- Python
- docxtpl / Jinja2
- Microsoft Word COM
- Microsoft Graph API
Vertrieb & Innendienst, Bauchemie
2026Ein Orchestrator, drei Fachagenten für Produktauskünfte
Statt eines Agenten mit drei Wissensquellen leitet ein übergeordneter Agent an drei spezialisierte weiter — je einer für ERP-Artikeldaten, Produktinhalte und SharePoint-Dokumente.
- Microsoft Copilot Studio
- Azure AI Search
- Azure Functions
- SharePoint
Ähnlicher Prozess bei Ihnen?
30 Minuten, kostenlos, ohne Verkaufsgespräch. Sie beschreiben, was Zeit kostet — ich sage Ihnen ehrlich, ob sich Automatisierung lohnt.