Zum Inhalt springen
megapromotingLassen Sie uns sprechen

Expertise · Integrationen und Automatisierungen

Ihre Systeme sollen miteinander sprechen, ohne dass jemand dieselben Daten erneut eintippen muss.

Wir verbinden das Terminplanungssystem, den Shop, das CRM, Tabellen und Nachrichtenkanaäle, damit ein Agent oder eine geplante Regel in Echtzeit darin lesen und schreiben kann. Die Schlüssel bleiben auf dem Server, die Werkzeuge haben dokumentierte Grenzen, und jede Integration wird auch für den Fall getestet, dass das andere System ausfällt.

Bereits gebautEigene Integrationen, geschrieben und ausgeführt, heute im Code gemessen: der Connector für das Buchungssystem Altegio (946 Zeilen, mit sechs dem Agenten exponierten Werkzeugen), der CRM-Connector amoCRM (2.888 Zeilen in der Messaging-Plattform, plus 12 Serverfunktionen in der Sprachplattform), Bitrix24 (903 Zeilen, plus 4 Funktionen), Google Sheets (615 Zeilen, plus 10 Funktionen und ein dediziertes Dienstkonto), der Live-Katalog über den Shop (Plattformdienst, 318 Zeilen), Lead-Benachrichtigungen auf Telegram (1.776 Zeilen), SMS über Infobip mit Anti-Missbrauch-Grenzen, geplante Automatisierungen (1.088 Zeilen) und der Chat-Kanal einer lokalen Anzeigenplattform (2.459 Zeilen). Im Ablauf kann der Agent 15 Arten interner Werkzeuge aufrufen, zusätzlich zu Werkzeugen per Webhook und Werkzeugen mit eigenem Code, der isoliert ausgeführt wird.

Eine Integration ist kein Logo auf einer Seite. Sie ist die Antwort auf eine sehr konkrete Frage: Kann dieses System in Echtzeit gelesen und beschrieben werden, von wem, mit welchen Rechten, und was passiert, wenn es nicht antwortet? Deshalb lautet unsere erste Frage bei jeder Integration nicht „mit welcher API“, sondern „welche öffentliche Tür hat sie“. Manchmal verändert die Antwort die Kosten der Arbeit vollständig: Shops auf WooCommerce etwa stellen öffentlich eine Shop-API bereit, die keinen Consumer-Key verlangt, sodass sich ein neuer Kunde nur mit der Adresse seiner Website verbindet — nicht mit Zugangsdaten, die er erst erzeugen, senden und dann rotieren muss.

In unserer Messaging-Plattform hat ein Tool, das der Agent während des Gesprächs aufrufen kann, einen von drei Typen: Aufruf eines Webhooks, eigener isoliert ausgeführter Code oder ein internes Tool der Plattform. Die internen Tools bevorzugen wir, weil sie die Schlüssel außerhalb der Datenbank halten: Heute sind es fünfzehn, vom Lesen einer Seite und Schreiben in eine Tabelle bis zur Verfügbarkeit und Erstellung eines Termins, dem Senden einer SMS und der Abfrage des Produktkatalogs.

Der Unterschied zwischen einer Integration, die hält, und einer, die bricht, liegt fast immer in kleinen Dingen, die vor Ort auftauchen. Das Terminssystem gibt nichts zurück, wenn Sie die Zeiten eines Spezialisten für einen Service abfragen, den er nicht anbietet — Service und Spezialist reisen immer zusammen. Dasselbe System verweigert eine Antwort, wenn die Anfrage mit dem Standard-Header der HTTP-Bibliothek kommt, also muss sich jede Anfrage ausdrücklich identifizieren. Ein Shop kann für Produkte mit Varianten einen Preis von null melden, und eine Suche mit leeren Wörtern gibt den gesamten Katalog zurück. Es gibt zehn solche Details pro Integration, und keines davon steht in der Dokumentation.

Über Integrationen stehen die Automatisierungen: Regeln, die zeitgesteuert ausgeführt werden, nicht auf Anfrage von jemandem. Bei uns sind sie mit einem Planer im Prozess geplant — das Wiederaufnehmen unbeantworteter Gespräche, die erste Nachricht an einen neuen Kontakt, das Pausieren und Wiederstarten des Agents nach der Arbeitszeit — jede mit eigenen Zählern, damit sichtbar ist, wie viele Läufe es gab, wie viele Nachrichten gesendet wurden, wie viele übersprungen wurden und warum. Eine Automatisierung ohne Zähler ist eine Automatisierung, über die Sie nicht sagen können, ob sie funktioniert.

Transparente Automatisierung — Integrationen, die überprüft werden können · Video auf Rumänisch, mit Untertiteln und Transkript auf Deutsch

Die vollständige Transkription

Lassen Sie uns direkt zum Thema kommen. Heute werden wir die technischen und, ehrlich gesagt, oft ignorierten Realitäten der Automatisierung durch auf künstlicher Intelligenz basierende Assistenten auseinandernehmen. Wir konzentrieren uns auf einen superpragmatischen Ansatz der von Mega Promoting entwickelten Plattform iCat.md. Heute gibt es keine Marketingversprechen, und ganz sicher keine vagen Konzepte. Wir sprechen über eine Plattform, die direkt in Produktion ist, mit Funktionen, die direkt aus der Datenbankarchitektur erklärt werden. Also schauen wir uns an, wie vollständige Transparenz bei der Automatisierung tatsächlich aussieht. Die Agenda dieser Analyse ist einfach und auf den Punkt. Wir gehen durch das Zeitproblem, die Mechanik der Technologie, einen echten Fall, die klaren Grenzen des Systems, das Datenmanagement und die nächsten Schritte. Beginnen wir mit dem ersten Abschnitt, dem Zeitproblem.

Sie alle kennen diese extrem frustrierende Frage? Warum verliert ein ganzes Support-Team Tag für Tag stundenlang damit, von Hand Antworten auf genau dieselben fünf Fragen zu schreiben? Die Information steht bereits auf der Website des Unternehmens, und trotzdem fragen die Kunden die Details immer wieder erneut ab. Und genau das ist der Kern unseres Problems. Ohne eine passende technische Lösung verstopfen all diese wiederholten Anfragen einfach den Direktnachrichten-Posteingang, egal ob Instagram oder Messenger. In der Konsequenz verzögern sich die Antworten massiv für Kunden, die wirklich ein komplexes Problem haben, die Anfragen gehen im Nachrichtenmeer verloren, und der gesamte Supportprozess wird praktisch zu einer Blackbox, die man weder überprüfen noch messen kann. Teil zwei. Wie funktioniert die Technik unter der Haube eigentlich?

Hier ist der Punkt. Die Einrichtung der Plattform basiert auf vier sehr logischen Schritten. Zuerst verbinden wir die Kommunikationskanäle mit eigenem Code. Dann wird die gesamte Wissensbasis indexiert. Danach werden die Tools angebunden, die Aktionen in Ihren bestehenden Systemen ausführen können. Und am Ende, und dieses Detail ist entscheidend, wird direkt in der Datenbank ein klarer Ablauf konfiguriert, über den der Bot das Gespräch an einen menschlichen Operator übergibt. Alles ist ein sichtbares und perfekt konfigurierbares System. Jetzt ein absolut faszinierender Aspekt. Wir sprechen hier nicht aus dem Bauch heraus. Das sind Einstellungen, die direkt aus dem Datenbankschema extrahiert wurden. Wenn der Assistent eine Antwort braucht, verwendet er eine sogenannte hybride Suche. Standardmäßig zieht der Algorithmus 5 Textfragmente heran, setzt einen strengen Ähnlichkeitsschwellenwert von 0-70 an und gewichtet die exakte Wortübereinstimmung mit 30%.

Alles wird über das Modell Text Embedding 3 Small verarbeitet. Praktisch verwandelt das System Wörter in mathematische Konzepte, um den genauen Kontext zu erfassen. Antworten sind kein Ratespiel, sondern reine Mathematik. Merken Sie sich diese Zahl. 15. Das ist eine absolute technische Grenze im System. Sie steht für die maximale Zeit in Sekunden, die für den Lauf eines beliebigen Tools oder einer Suche vorgesehen ist. Wenn eine externe Integration länger dauert, sagen wir, sie braucht 40 Sekunden, können wir sie nicht im Live-Konversationsfluss lassen. Sie muss asynchron verarbeitet werden, sonst würde der natürliche Gesprächsfluss komplett brechen. Und noch etwas. Menschen schreiben im Chat in Schüben, oder? 2, 3, 4 kurze Nachrichten, eine nach der anderen. Damit das System nicht verrückt wird, gibt es einen 15-Sekunden-Puffer zum Zusammenführen.

Alles, was in diesem Fenster eingeht, wird zusammengefügt und ergibt eine einzige klare Anfrage. Außerdem wendet das System auf Plattformen wie Meta, wo manchmal versehentlich doppelte Nachrichten auftauchen, einen 120-Sekunden-Speicherfilter auf die Nachrichten-ID an. So erhält der Kunde eine einzige stimmige Antwort, nicht 3 Fehlalarme. Abschnitt drei. Sehen wir uns einen realen Fall an. Wir haben dieses klassische E-Commerce-Szenario. Wir haben einen Online-Shop mit einem sauberen Katalog auf der Website, der aber eine Flut privater Nachrichten auf Instagram und Messenger erhält? Ist es noch auf Lager? Was kostet es? Hier wurde die Integration elegant umgesetzt, indem der Assistent direkt mit der öffentlichen Store API von WooCommerce verbunden wurde. Ohne Sicherheitskomplikationen wurde der lebendige Katalog des Shops einfach dem Assistenten in die Hände gelegt.

Nur dass hier die technische Realität jeder Plattform greift, selbst unter dem Dach desselben Unternehmens, wie bei Meta. Auf Messenger kann Ihnen der Assistent wunderschöne Produktkarussells zeigen. Auf Instagram antwortet der Bot nur mit Text und höchstens einem einfachen Bild. Warum? Ganz einfach, weil Meta diese generischen Vorlagen auf Instagram nicht unterstützt. Der Assistent muss sich genau an die Regeln des Kanals halten, in dem er sich befindet. Hier ist der kritische Punkt. Was passiert, wenn der Bot mit der Situation überfordert ist? Nun, in der Datenbank hat die Unterhaltung explizite Zustände. Wenn eine Frage außerhalb des Komfortbereichs des Katalogs liegt, wechselt der Gesprächsfaden sofort vom Bot-Zustand in den menschlichen Zustand. Und das Geniale daran ist, dass das System die Zeit misst, in der der menschliche Operator antwortet, und alles klar markiert: Status OK, Warnung oder Frist überschritten.

Der gesamte Kontext wird an den Menschen übergeben, ohne dass unterwegs absolut etwas verloren geht. Abschnitt A4 Systemgrenzen Weil Transparenz bedeutet, zu wissen, was es nicht kann. Es gibt einige klare Grenzen, die wir akzeptieren müssen. Sie können auf WhatsApp keine proaktiven Nachrichten senden, wenn seit der Nachricht des Kunden mehr als 24 Stunden vergangen sind. Meta wirft dann einen Fehler, genauer den Fehler 131047, und die Aktion schlägt fehl. Das System macht keine RPDF-Dateien, es liest keine Anhänge. Bei Fremdsprachen funktionieren die Übersetzungen nur in eine Richtung. Der Kunde erhält die übersetzte Antwort, aber der Operator sieht das Original. Und obwohl die Integration mit 999.md funktioniert, ist sie inoffiziell und basiert auf den Cookies im Browser. Wenn die Plattform ihre Mechanismen ändert, bricht die Verbindung ab und muss repariert werden.

Und merken Sie sich das unbedingt. Der Assistent ist der Spiegel Ihrer Daten. Ein falscher Preis auf der Website wird garantiert zu einem falschen Preis im Gespräch. Er handelt als Leser, nicht als Shop-Manager. Er wird menschliche Fehler im Katalog nicht eigenständig korrigieren. Die technische Infrastruktur hier ist kein Spiel. Alles läuft auf einem privaten Microsoft Azure-Server. Wir sprechen über eine extrem strukturierte MySQL-Datenbank mit über 80 klar modellierten Tabellen, um die Kanäle und für Audits zu trennen. Die Zugriffsschlüssel für WhatsApp, die supersensibel sind, verwenden fernet-Verschlüsselung. Darüber hinaus werden auf Web-Ebene die Domains für das Chat-Widget manuell in eine Whitelist aufgenommen. Niemand verbindet sich ohne ausdrückliche Erlaubnis. Wir müssen jedoch eine offensichtliche Realität ansprechen. Menschen werden alle möglichen personenbezogenen Daten in diese Chatfenster schreiben, Telefonnummern, Adressen.

Technisch gesehen können Sie ein freies Textfeld nicht blockieren. Die Lösung ist also administrativ. Wenn Sie so ein System implementieren, brauchen Sie ab Sekunde 1 klare Aufbewahrungsrichtlinien, die genau festlegen, wer diese Daten sehen darf und wie lange sie gespeichert werden. Und wir sind bei Punkt 6 angekommen. Die nächsten Schritte. Die zentrale Philosophie des gesamten Systems kann mit diesem Zitat zusammengefasst werden. Ein intelligenter Assistent ist nicht derjenige, der Gedichte schreibt oder schön formuliert, sondern derjenige, der mit echten Informationen verbunden ist und, sehr wichtig, genau weiß, wo er aufhören muss. Effiziente Automatisierung im Business bedeutet die korrekte Übernahme der Daten und die Sicherheit, mit der Sie die Kontrolle zur richtigen Zeit an einen menschlichen Operator abgeben. Der nächste Schritt ist daher nicht, eine Software zu kaufen, sondern Ihre aktuellen Prozesse sorgfältig zu analysieren.

Bewerten Sie, welche Workflows es wirklich wert sind, aufgebaut und automatisiert zu werden, wie sie sicher verbunden werden können und, am wichtigsten, legen Sie fest, wie Sie die Ergebnisse mit echten Daten messen werden, nicht mit Marketing-Illusionen. Und ich lasse Sie mit diesem Denkanstoß zurück. Unter all den Kommunikationsprozessen in einem Unternehmen, welche sind diejenigen, die wirklich die Empathie und das Taktgefühl eines Menschen erfordern, und welche sind in Wirklichkeit nur repetitive Aufgaben, die einfach darauf warten, präzise mit der richtigen Datenbank verbunden zu werden? Jeder Automatisierungsplan sollte mit dieser Frage beginnen. Danke, dass Sie bei dieser Analyse dabei waren!

Was dazugehört

Die Arbeit, nach Bestandteilen

Zuerst prüfen wir, welche öffentliche Tür das System hat

Für WooCommerce-Shops verwenden wir die öffentliche Shop-API, die keinen Consumer-Schlüssel erfordert: Der Client verbindet sich nur mit der Website-Adresse. Es ist eine Wahl mit echten Folgen, nicht nur mit ästhetischen — wir haben damit handgeschriebene Werkzeuge ersetzt, die Shopschlüssel im Klartext in der Datenbank hielten. Wenn das System keine öffentliche Tür hat, wechseln wir zur Authentifizierung, aber dann wird der Schlüssel zu einem Element, das verwaltet wird, nicht zu einem, das in einer Datenbankzeile vergessen wird.

Die Schlüssel bleiben auf dem Server, nicht im Werkzeug und nicht auf der Seite

Das SMS-Werkzeug ist intern in der Plattform gerade deshalb, weil die Umgebung, in der der eigene Code eines Werkzeugs läuft, keinen Zugriff auf Umgebungsvariablen hat — würde der Versand aus Werkzeugcode erfolgen, müsste der Schlüssel in die Datenbank geschrieben werden, und dieser Schlüssel kann Nachrichten auf Kosten aller versenden. Ebenso beim Terminplanungssystem: Das Partnertoken ist eines, im Server-Environment aufbewahrt, während der Client nur die Kennung seines Unternehmens einsetzt.

Der Agent ruft das Werkzeug während des Gesprächs auf, mit Parametern und Frist

Jedes Werkzeug hat eine für das Modell geschriebene Beschreibung, typisierte Parameter mit dem, was obligatorisch ist und was nicht, sowie eine eigene Ausführungsfrist — von 15 Sekunden für eine Serviceliste bis zu 30 für eine Verfügbarkeitsabfrage. Die Frist pro Werkzeug ist kein Detail: Ohne sie blockiert eine langsame Integration das Gespräch, und der Mensch am anderen Ende hört Stille.

Echte Terminbuchungen im System des Salons oder der Klinik

Sechs Werkzeuge über Altegio: die Serviceliste mit den echten Preisen, die Spezialisten, die vollständige Verfügbarkeit, das Erstellen des Termins, die Stornierung und die Änderung. Die Verfügbarkeit gibt nicht nur „frei/belegt“ zurück: Sie gibt zurück, welche Spezialisten den angefragten Service ausführen und die ersten freien Zeiten für jeden, sortiert nach der frühesten, genau damit der Agent eine konkrete Alternative vorschlagen kann, statt „nicht verfügbar“ zu sagen.

Der Katalog des Shops, live gelesen

Preis und Verfügbarkeit werden beim Fragenzeitpunkt aus dem Shop gelesen, nicht aus einer veralteten Kopie. Der Katalog wird seitenweise geladen, bis zu 30 Seiten mit je 100 Produkten, wird zehn Minuten lang im temporären Speicher pro Website gehalten und in eine einzige Form normalisiert, die ohne Änderungen von allen Verbrauchern gelesen wird — einschließlich des Produktkarussells im Messenger, das einen numerischen Preis braucht, und des Widgets auf der Seite, das einen Titel braucht.

CRMs, Tabellen und Nachrichtenkanäle

amoCRM und Bitrix24 mit vollständigem OAuth, Token-Aktualisierung und Statusprüfung. Google Sheets über ein dediziertes Servicekonto, getrennt von den übrigen Berechtigungsdaten, mit vom Agenten ausgelöstem Schreiben. Telegram für Lead-Benachrichtigungen. SMS über Infobip. Plus der Chatkanal einer lokalen Anzeigenplattform, verbunden mit eigenem Refresh-Token — die Art von Integration, die es in keinem internationalen Katalog gibt und die lokal sehr wichtig ist.

Automatisierungen, die zeitgesteuert laufen, mit Zählern

Das Wiederaufnehmen unbeantworteter Gespräche, die erste Nachricht an einen neuen Kontakt, das Pausieren und Wiederstarten des Agents nach der Arbeitszeit. Jeder Lauf erhöht sichtbare Zähler: wie viele Läufe, wie viele gesendete Nachrichten, wie viele übersprungen wurden, weil der Agent gestoppt war, wie viele, weil es keine Konfiguration gab, wie viele Fehler. Ohne sie ist die einzige Möglichkeit zu erfahren, dass eine Automatisierung gestorben ist, die Beschwerde eines Kunden.

Anti-Missbrauchs-Grenzen, weil die Entscheidung von einem Modell getroffen wird

Ein von einem Sprachmodell aufgerufenes Werkzeug braucht Grenzen, die das Modell nicht überschreiten kann. Bei SMS: Im Modus „an Firma“ kommt der Empfänger aus der Konfiguration, niemals vom Modell; im Modus „an Kunde“ wird die Nummer normalisiert und validiert. Darüber hinaus ein tägliches Limit pro Agent, eine Minute Pause an dieselbe Nummer und eine Begrenzung der Nachrichtenlänge. Das sind im Code geschriebene Schranken, keine Anweisungen im Prompt — einen Prompt kann man umgehen, eine Schranke nicht.

Ausgangsfilter für Daten, die nicht hinaus dürfen

Wenn eine Integration mehr zurückgibt, als der Kunde wissen sollte, filtern wir am Ausgang, statt darauf zu hoffen, dass der Agent sich zurückhält. Ein reales Beispiel: Für einen Kunden aus dem Transportwesen verbietet die Richtlinie, dass der Agent die Telefonnummer des Fahrers diktiert, aber die API gab diese Nummern in der Antwort zurück. Wir haben einen Filter geschrieben, der das Ergebnis des Werkzeugs rekursiv durchläuft und die Kontaktdaten des Fahrers entfernt, während die Nummern der Leitstelle erhalten bleiben. Der Filter wird genau dort angewendet, wo es nötig ist, nicht global, damit nicht versehentlich etwas anderes ausgeblendet wird.

Wie es aussieht

Der Weg, Schritt für Schritt.

01

Inventar: welche Systeme, welche Gates, welche Rechte

Welche Systeme im Spiel sind, was jedes offenlegt, wer das Recht hat, Zugangsdaten zu erstellen und wer sie rotiert. Bei jedem ist die Grundfrage: Kann man ohne Authentifizierung lesen? Wenn ja, wird die Integration viel günstiger und beim zweiten Kunden viel leichter zu wiederholen.

02

Der Connector: deklarierte Werkzeuge, Schlüssel auf dem Server, Fristen

Jede Aktion wird zu einem Werkzeug mit Name, für das Modell geschriebener Beschreibung, typisierten Parametern und eigener Frist. Die Schlüssel bleiben in der Serverumgebung. Am Ende „weiß“ der Agent nicht diffus, etwas zu tun: Er hat einen endlichen Satz von Aktionen, jede mit ihren Grenzen.

03

Der Test auf den Fall, der scheitert, nicht nur auf den, der funktioniert

Ein Connector wird mit der richtigen Anfrage, mit der unvollständigen Anfrage, mit dem System, das langsam antwortet, und mit dem System, das überhaupt nicht antwortet, getestet. Was der Agent sagt, wenn die Integration ausfällt, ist eine Designentscheidung, kein Fehler, den der Kunde entdeckt: Wir bevorzugen eine ehrliche Nachricht und eine Übergabe an einen Menschen statt einer plausiblen Improvisation.

04

Widerstandsfähigkeit gegen die Instabilität des anderen Systems

Wiederholung mit ansteigenden Pausen, aber nur bei den Fehlern, die sich sinnvoll wiederholen lassen — eine Ratenbegrenzung oder ein Serverfehler, nicht eine falsche Anfrage, die auch beim zweiten Mal falsch bleibt. Und wenn das Problem auf der Netzwerkschicht des anderen liegt, ist die Behandlung anders; das Beispiel unten ist genau so ein Fall.

05

Übergabe: was sich ändert, wenn sich der Anbieter ändert

Wir notieren, was kaputtgeht, wenn das andere System seine API ändert, welche Zugangsdaten wann ablaufen, was manuell erneuert werden muss. Eine Integration ohne diese Liste ist eine versteckte Schuld: Sie funktioniert perfekt bis zu dem Tag, an dem sie nicht mehr funktioniert, und niemand weiß warum.

Ein Zentrum. Darum herum, was in es hineinführt — über getrennte Wege.DAS ZENTRUM STÜTZT SICH AUF DAS, WAS ES UMGIBT
Die externen Systeme rund um das Gespräch: Termine, Shop-Katalog, CRM, Tabellenblätter, SMS und Nachrichtenkanäle — jedes auf Anfrage gelesen, mit den Schlüsseln, die auf dem Server bleiben.

Die Daten

Was wir anfassen, wo die Daten liegen und wie lange sie bleiben

Die Fragen, die jede Person mit einem Datenschutzbeauftragten stellt — hier gestellt, bevor er sie stellt.

Wo die Zugangsdaten liegen
Die Anbieterschlüssel der Plattform liegen in der Serverumgebung, nicht in der Datenbank und niemals auf der Clientseite. Die eigenen Zugangsdaten eines Kunden — dort, wo die Integration sie benötigt — werden verschlüsselt gespeichert. Der Unterschied ist wichtig: Ein kompromittierter Plattformschlüssel betrifft alle, eine Kundenzugangsdaten betreffen ein Konto; wir behandeln sie unterschiedlich, weil das Risiko unterschiedlich ist.
Was aus den externen Systemen gespeichert wird und was nicht
Der Produktkatalog wird nicht kopiert: Er wird bei Bedarf gelesen und zehn Minuten lang zwischengespeichert, damit zehn aufeinanderfolgende Fragen zum selben Geschäft nicht zehn vollständige Durchläufe bedeuten. Termine werden bei uns nicht dupliziert — die Quelle der Wahrheit bleibt das System des Salons. Was wir behalten, ist die Spur der Unterhaltung und das Ergebnis der Aktion, nicht eine Kopie der Datenbank des anderen Systems.
Was beim Sprachmodell ankommt
Das Ergebnis eines Werkzeugs gelangt in die Unterhaltung, also auch in den Kontext des Modells. Deshalb erfolgt die Filterung auf dem Ergebnis, bevor es dem Modell gegeben wird, nicht in den Anweisungen. Felder, die der Kunde nicht hören darf, werden an der Quelle entfernt; was entfernt wurde, kann nicht diktiert werden, egal wie der Agent gefragt wird.
Wer kann eine Integration verbinden
Das Verbinden einer Integration ist ein authentifizierter Vorgang, an das Unternehmenskonto gebunden, und die daraus resultierenden Werkzeuge werden einem bestimmten Agenten zugewiesen — nicht allen. Ein Agent hat genau die Werkzeuge, die er für seine Rolle braucht. Es ist dieselbe Logik wie beim Zugang eines Mitarbeiters: Man gibt ihm nicht alle Schlüssel, nur weil es einfacher ist.
Was noch zu reparieren ist, offen gesagt
Nicht alle Integrationsmodule auf unserer Plattform sind auf demselben Niveau. Die hier aufgeführten sind geschrieben und ausgeführt. Es gibt auch begonnene Module mit wenigen Dutzend Zeilen, die noch nichts Nützliches tun — wir stellen sie nicht als verfügbar dar und nehmen sie in kein Angebot auf. Wenn Sie ein System brauchen, das bei uns in diesem Stadium ist, behandeln wir es als zu bauende Arbeit, mit einer vorherigen Kompatibilitätsprüfung, nicht als anzukreuzende Option.

Ein Fall

Die Integration fiel zeitweise aus, und es lag nicht an uns

Die Ausgangslage

Ein CRM-Connector funktionierte manchmal und manchmal nicht, ohne auf den ersten Blick erkennbares Muster. Anfragen blieben hängen, bis sie das Ausführungszeitlimit der Serverumgebung überschritten, daher erschien in den Protokollen eine Zeitüberschreitung — das Signal, das einen fälschlicherweise dazu bringt, nach Langsamkeit im eigenen Code zu suchen.

Was wir gebaut haben

Die Ursache lag im Netzwerk, am anderen Ende. Der Domainname des CRM-Kontos wird in mehrere IP-Adressen aufgelöst, und einige Knoten des Clusters waren nicht gesund. Eine gewöhnliche HTTP-Anfrage wählt eine Adresse und versucht, wenn diese nicht antwortet, nicht die anderen von DNS zurückgegebenen Adressen — es gibt keinen automatischen Wechsel zur nächsten Antwort. Die Lösung war, für diese Domain nicht mehr den Standard-HTTP-Client zu verwenden: Wir lösen den Namen selbst auf, öffnen verschlüsselte Verbindungen direkt zu jeder Adresse parallel, mit einer kurzen Frist für jede, und verwenden die erste, die antwortet; wenn in einer Runde alle kalt sind, wird erneut begonnen.

Was dabei herauskam

Die zeitweiligen Ausfälle hörten auf, ein Glücksspiel zu sein. Wichtiger für den Kunden: Die Diagnose wurde in einem Satz sagbar — „die Knoten des Anbieters sind zeitweise nicht verfügbar, und wir umgehen sie“ — statt „manchmal funktioniert es nicht“.

Was der Fall nicht sagt

Es ist eine Reparatur, die ein Problem eines anderen ausgleicht, und das muss gesagt werden. Sie fügt unserem Code Komplexität für einen Defekt in der Infrastruktur des Anbieters hinzu; wenn dieser sein Cluster repariert, bleibt die Komplexität bei uns. Wir dokumentieren sie als solche, damit sie entfernt werden kann, wenn sie nicht mehr nötig ist.

Fragen

Was uns die Leute fragen, bevor sie anrufen

Welche Systeme haben Sie tatsächlich, nicht theoretisch, verbunden?

Das Buchungssystem Altegio, mit sechs vom Agenten aufgerufenen Aktionen. amoCRM und Bitrix24, mit vollständigem OAuth und Token-Aktualisierung. Google Sheets, mit einem dedizierten Dienstkonto. Shops auf WooCommerce, über die öffentliche Shop-API. Telegram, für Benachrichtigungen. Infobip, für SMS. Der Chat-Kanal einer lokalen Anzeigenplattform. Außerdem die Meta- und Telegram-Messaging-Kanäle für Gespräche. Für jedes andere System — einschließlich Shop-Plattformen, die wir noch nicht fertiggestellt haben — lautet die ehrliche Antwort: auf Anfrage, nach einer Kompatibilitätsprüfung, als Auftrag behandelt, nicht als Einstellung.

Muss mein Shop mir API-Schlüssel generieren?

Für WooCommerce nicht. Wir verwenden die öffentliche Shop-API, die keinen Verbraucherschlüssel verlangt — Sie verbinden sich über die Website-Adresse. Es ist auch sicherer, nicht nur einfacher: Mit diesem Ansatz haben wir ältere Werkzeuge ersetzt, die Shop-Schlüssel im Klartext in der Datenbank gespeichert haben. Für andere Plattformen hängt es davon ab, was sie bereitstellen; wir prüfen es, bevor wir etwas versprechen.

Kann der Agent einen echten Termin vereinbaren, nicht nur sagen, dass er es tut?

Ja, wenn das Buchungssystem es zulässt. Es erstellt den Termin, kann ihn stornieren und ändern und prüft vorher die Verfügbarkeit. Ein Detail, das man nur in der Praxis lernt: In diesem System reisen Dienstleistung und Spezialist zusammen — wenn Sie die freien Zeiten eines Spezialisten für eine Dienstleistung abfragen, die er nicht anbietet, erhalten Sie null Ergebnisse, nicht einen Fehler. Deshalb gibt das Verfügbarkeitswerkzeug alle Spezialisten zurück, die die Dienstleistung anbieten, sowie die ersten freien Zeiten für jeden, damit der Agent eine konkrete Alternative vorschlagen kann.

Wohin gelangen meine Schlüssel?

Plattformschlüssel bleiben in der Serverumgebung, niemals in der Datenbank und niemals auf Ihrer Seite. Die Zugangsdaten, die Ihnen gehören, werden verschlüsselt gespeichert. Die Regel, die wir anwenden: Wenn ein Schlüssel Geld ausgeben oder Daten für alle Kunden lesen kann, hat er nirgendwo etwas zu suchen, wo Code landet, der auf Anfrage eines Sprachmodells ausgeführt wird.

Kann der Agent SMS an wen er will senden?

Nein, und das ist eine absichtliche Einschränkung. Im Benachrichtigungsmodus an das Unternehmen stammt der Empfänger aus der Konfiguration — das Modell kann ihn nicht auswählen. Im Modus an den Kunden wird die Nummer normalisiert und validiert. Darüber hinaus gibt es ein tägliches Limit pro Agent, eine Pause von einer Minute an dieselbe Nummer und eine Begrenzung der Nachrichtenlänge. Das sind Schranken im Code, keine Anweisungen im Prompt; einen Prompt kann man über die Unterhaltung umgehen, eine Schranke nicht.

Was passiert, wenn das System der anderen Seite ausfällt oder langsam antwortet?

Jedes Werkzeug hat eine eigene Ausführungszeit, damit ein langsames System die Unterhaltung nicht blockiert. Wir versuchen es erneut mit steigenden Pausen, aber nur bei Fehlern, die einen erneuten Versuch verdienen — eine Ratenbegrenzung oder ein Serverfehler, nicht eine fehlerhafte Anfrage. Und das Verhalten des Agenten beim Fehlschlag wird im Szenario festgelegt: Er sagt, dass er es jetzt nicht überprüfen kann, und übergibt die Unterhaltung, statt eine plausible Antwort zu erfinden.

Was passiert, wenn der Anbieter seine API ändert?

Dann geht etwas kaputt, und genau deshalb bevorzugen wir offizielle Schnittstellen statt das Auslesen von Seiten. Werkzeuge, die Informationen aus dem HTML einer Website extrahieren, brechen bei jeder Theme-Änderung — wir haben sie bewusst durch eine einzige Implementierung über die offizielle API ersetzt, gerade damit wir nicht Dutzende fragiler Varianten pflegen müssen. Wenn es keine Alternative gibt, sagen wir, dass es eine fragile Lösung ist, und behandeln sie auch so.

Können Sie Automatisierungen ohne Agenten, nur mit programmierten Regeln, machen?

Ja. Das Wiederaufnehmen von Gesprächen ohne Antwort, die erste Nachricht an einen neuen Kontakt, das Stoppen und Starten des Agenten nach Arbeitszeitplan — das sind geplante Aufgaben, die eigenständig laufen. Jede hat eigene Zähler für Ausführungen, gesendete Nachrichten, übersprungene Nachrichten und Fehler, damit man die Frage „lief es?“ mit einer Zahl beantworten kann, nicht mit einer Vermutung.

Wie stellen Sie sicher, dass der Agent aus einer Integration nichts sagen darf, was er nicht soll?

Wir filtern das Ergebnis, bevor es zum Modell gelangt, nicht danach. Der konkrete Fall, den wir gelöst haben: Die Richtlinie eines Kunden verbot, dass der Agent die Telefonnummer des Fahrers nennen darf, aber die API gab diese Nummern zurück. Wir haben einen Filter geschrieben, der die Antwort des Werkzeugs rekursiv durchläuft und die Kontaktfelder des Fahrers entfernt, während die Nummern der Leitstelle erhalten bleiben, genau auf dieses Werkzeug angewendet. Was nicht zum Modell gelangt, kann nicht ausgesprochen werden, ganz gleich, wie der Agent gefragt wird.

Worauf die obigen Aussagen beruhen (18 Quellen)

18 davon sind Code und Dateien aus unseren Repositories. Wir veröffentlichen weder ihren Namen noch die Zeile: zusammen, auf einer einzigen Seite, würden sie zu genau beschreiben, wie Systeme gebaut sind, die nicht nur uns gehören. Wir gehen sie mit Ihnen durch, im Repository, auf Anfrage — die Überprüfung bleibt möglich, sie findet nur in einem Gespräch statt.

Was sollte bei Ihnen besser laufen?

Erzählen Sie uns von Ihrem Prozess. Gemeinsam legen wir fest, was sich zu bauen lohnt, was wir anbinden können und wie wir das Ergebnis prüfen.

Lassen Sie uns sprechen