Low-Code zu programmieren ist das eine, unbescholtene Benutzer ohne Programmiererfahrung in die Position eines Low-Code Users oder Citizen Developer zu versetzen das andere. Genau das versucht das Team von ilogixx.
Grafischer Editor von myCC, der die Programmieroberfläche darstellt und den eigentlichen Flow erzeugt.
(Bild: ilogixx)
Mit myContactCenter entwickeln wir eine Software für Contact Center und für den Kundendienst. Da ein solches Kontaktzentrum weit mehr Kommunikationswege anbietet als ein Callcenter, muss die Software Anrufe, Chats, E-Mails und Faxen intelligent verteilen, sich an Datenbanken bedienen und andere Applikationen steuern können.
Die Low-Code-Plattform basiert dabei auf sogenannten Skills und Sprachfähigkeiten der Agenten. Jeder Skill hat eine ACD, eine Automatic Contact Distribution. Die ACD ist per Anruf, Chat, Mail und Fax für Anfragende erreichbar. Jede ACD besitzt ihre eigene Logik und ihren eigenen Ablauf, bei uns Flow genannt.
Bildergalerie
Unser System wollten wir nun so weiterentwickeln, dass Anwender völlig ohne Coding-Kenntnisse per Drag and Drop Fälle und Ereignisse eingeben und damit den Flow ohne externe Hilfe verändern können.
Low-Code für User ohne Coding-Kenntnisse
Als Beispiel dient eine Begrüßungsansage, die bei Anrufen läuft – viele Punkte verfeinern die Begrüßung und legen den Flow fest: Läuft Musik im Hintergrund? Kommen kombiniert Daten aus Datenbanken zum Einsatz? Wenn ja, wie werden diese verarbeitet? Es existieren so viele Flows wie Fälle. Und je differenzierter die Flows, desto zufriedener der Verbraucher.
Wonach wir also suchten, war eine Lösung, die auch Nutzern ohne jegliche Coding-Kenntnisse und Geduld Eigenständigkeit für das Einrichten eigener Flows überlässt. Das bewog uns dazu einen Low-Code-Ansatz zu verfolgen.
Erfahrungswerte
In den vergangenen Jahren sammelten wir viel Erfahrung, wozu Verantwortliche im Kundendienst oder im Contactcenter in der Lage sind und wozu nicht. Wir analysierten, was verschiedene Anbieter von Private-Branch-Exchange-Systemen im Bereich Flow-Design (Programmierung) anbieten, um den Ablauf eines Anrufes festzulegen: So erstellte bei einem Modell ein Art Designer aus der grafischen Darstellung VBScript (im Folgenden: VB Script) oder ähnliches und entsprach somit keiner echten Domänenspezifischen Sprache (Domain Specific Language, DSL).
Jeder Block brachte seinen Quellcode als VB Script selber mit und wurde anschließend weder kompiliert noch syntaktisch geprüft – eine Eignung als No-Code war damit ausgeschlossen. Andere Low-Code Systeme wiederum erschienen uns als viel zu zu komplex, um das gewünschte Ziel einer schnellen, einfachen Erstellung zu erreichen. Ebenso häufig beobachteten wir bei vergleichbaren Systemen das Fehlen einer Ereignissteuerung.
Ereignissteuerung: ja oder nein?
Viele Systeme sehen von Ereignissteuerung ab, was zu einer gewissen Schwerfälligkeit führt. Zusätzlich verbrauchen Polling und Interpreter viel Ressourcen. Der Grund für den Verzicht liegt auf der Hand: Kunden können mit einer Ereignissteuerung häufig nicht umgehen. 90 Prozent nutzt Standardfälle – was in der Telefonie bedeutet: Startblock, Wartefeldblock, Übermittlung an Agenten. Weiterhin beliebt sind Begrüßung und Wartemusik.
Weil Ereignissteuerung jedoch Arbeit erleichtern und Ressourcen schonen kann, wollten wir sie dennoch unbedingt integrieren. Um Kunden nicht zu überfordern, sollten möglichst viele Standardfälle ohne Ereignisse abbildbar sein: Sie sollten wählen können, ob sie Standard oder Premium fahren. Das warf Fragen auf: Welche Ereignisse brauchen wir? Mit wie vielen Ereignissen können Kunden umgehen?
Low-Code-Implementierung: Anforderungen ans Programmieren
Aus dem Wunsch des Low-Code-Ansatzes entsprangen folgende Anforderungen an die zu erstellende Low-Code-Implementierung fürs Flow Design:
1. Alle verschiedenen Abläufe für alle verfügbaren Kommunikationskanäle (Anruf, Chat, Mail, Fax, Social Media, Dokumente, etc.) müssen aus Gründen der Nachvollziehbar- und Wiederholbarkeit mit genau den gleichen Mitteln erstellbar sein.
2. 95 Prozent aller Kundenanforderungen müssen in No-Code abbildbar sein
3. Aus dem grafischen Ablauf muss ein ausführbares Assembly entstehen, welches auf beliebigen Plattformen ausführbar ist
4. Sowohl synchrone als auch asynchrone Operationen müssen laufen
5. Jede Operation benötigt ein eigenes graphisches Element
6. Ereignisse müssen als Blöcke verfügbar sein
7. Linien müssen alle Elemente miteinander verbinden, um flexibel die Reihenfolge festlegen zu können
8. Unmittelbare Fehleranzeige unterstützt den Nutzer beim selbstständigen Festlegen von Flows
9. Ein in C# darstellbarer Code soll entstehen
10. Mit einzelnen Blöcken sollen externe Dienste wie beispielsweise Microsoft Cognitive Services nutzbar sein
11. Mit einzelnen Blöcken muss auf Datenbanken/Web Services wie MSSQL zugegriffen werden können
12. Daten müssen stark typisiert sein, um Fehler durch implizite Typkonvertierungen zu vermeiden
13. Die dynamische Codeerstellung/Kompilierung (via Roslyn) soll mit Standardmitteln ermöglicht werden
Ergebnis: grafische DSL
Aus diesen Anforderungen schufen wir als Ergebnis eine grafische Domain Specific Language. Sie endet in einer direkt in .NET ausführbaren Softwarekomponente, die wir innerhalb eines unserer Dienste ausführen. Die einzelnen Blöcke erzeugen direkt keinen Code, sondern stehen für eine im Funktionsgraphen abgebildete Funktion. Das war es, wonach wir strebten: nach direkt Ausführbarem.
Da wir aus der Microsoft-Dotnet-Welt kommen, wussten wir, dass wir aus der grafischen Oberfläche ein .NET Assembly erstellen wollten. Hier griffen wir auf Roslyn zurück. Mit Roslyn können wir sowohl den dynamischen Code und den Graph erstellen als auch das Assembly oder die C# Darstellung. Das bedeutet: Das gesamte Tooling liegt vollständig vor und die Flows funktionieren auf jeder Plattform. Der Strang lautet:
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Grafisches Design -> Roslyn -> Graph der Applikation -> Roslyn -> Assembly oder C#-Darstellung
Nutzen per Drag and Drop
Wir entwarfen das System so, dass User Standardfälle auch ohne Ereignisorientierung bedienen können. Die Design-Blöcke, die Ereignisse darstellen, weisen keinen Eingang auf, lassen sich also nicht mit einer Linie aus einem Ausgang eines anderen Blockes verbinden, sondern bilden einen separaten Startpunkt in der grafischen Darstellung. Das ermöglicht sofortiges Ausführen ohne Wartezeit bei Eintreten des Ereignisses – wie beispielsweise der Statuswechsel einer Konversation von Warten auf Klingeln.
Weitere, eher Contact-Center-spezifische Vereinfachungen wie Medienauswahl oder Auswahl von Textbausteinen reduzieren die Anzahl an Blöcken erheblich. So ist zum Beispiel die Medienverwaltung intelligent genug, um automatisch passende Ansagen/Textbausteine anhand eines definierten Medientyps, der Sprache und dem Skill aus dem Medienpool zu laden.
Begrüßung, Warteansage oder Empfangsbestätigung dienen hier als Beispiel. Nutzer müssen keine Fallunterscheidung nach Skill oder Sprache treffen, sondern lediglich einen grafischen Block „Medienwiedergabe“ für die Begrüßung ins Leben rufen. Für jede Kombination aus Skill und jede Sprache spielt das System dann die korrekte Ansage ab.
Die Blöcke bergen also eine integrierte Logik, was das Programmieren für uns komplex, das Bedienen für Nutzer aber einfach macht. Der eigentliche Flow bleibt übersichtlich, weil die Darstellung auf Fallunterscheidungen verzichtet und das Wesentliche ins Sichtbare hebt.
* Christian Becker ist Gründer, Geschäftsführer und kreativer Kopf von ilogixx. Herzstück des Trierer Technologieunternehmens ist die eigenentwickelte Contact-Center-Software myContactCenter. Seit fünfzehn Jahren sammelt Becker Erfahrung im Bereich Business-Kommunikation.