Zum Inhalt springen
OmniChannels.ai

CRM mit dem Omnichannel-Posteingang per Webhooks verbinden: So geht es

CRM per Webhooks mit dem Omnichannel-Posteingang verbinden: relevante Events, Idempotenz, Retries, Kontaktabgleich, Datenschutz und eine Referenzarchitektur.

Aktualisiert 8 Min. Lesezeit

Von OmniChannels.ai Editorial Team · Geprüft von BroadNet Messaging Solutions Team

Integration

Kurze Antwort

Um ein CRM mit einem Omnichannel-Posteingang zu verbinden, abonnieren Sie die Posteingangs-Webhooks für Konversations- und Nachrichten-Events. Ein schlanker Endpunkt prüft die Signatur und speichert jedes Event anhand seiner Event-ID genau einmal. Die Verarbeitung erfolgt asynchron: Der Absender wird über normalisierte Telefonnummer, E-Mail oder Social-ID einem CRM-Kontakt zugeordnet, Aktivitäten werden zurückgeschrieben. In Gegenrichtung senden Sie über die Posteingangs-API Nachrichten oder aktualisieren Zuständigkeiten aus CRM-Workflows.

Auf dieser Seite
  1. Was sollten CRM und Omnichannel-Posteingang austauschen?
  2. Welche Webhook-Events sollten Sie abonnieren?
  3. Wie baut man einen zuverlässigen Webhook-Empfänger?
  4. Wie ordnet man Kontakte kanalübergreifend zu?
  5. Wie geht man bei der CRM-Integration mit dem Datenschutz um?
  6. Wie sieht eine Referenzarchitektur aus?
  7. Praxisbeispiel: eine Klinikgruppe in Dschidda
  8. Was sind die häufigsten Fehler?
  9. Wie OmniChannels.ai Sie unterstützt

Das Wichtigste

  • Webhooks übertragen Events nahezu in Echtzeit vom Posteingang ins CRM; APIs holen Daten ab oder lösen Aktionen in Gegenrichtung aus. Eine belastbare Integration nutzt beides.
  • Webhooks werden meist mindestens einmal zugestellt (at-least-once). Der Empfänger muss daher anhand der Event-ID deduplizieren und mit Events in falscher Reihenfolge umgehen können.
  • Bestätigen Sie Webhooks sofort und erledigen Sie die CRM-Arbeit in einer Hintergrund-Queue, damit langsame CRM-Aufrufe keine Wiederholungen und Duplikate auslösen.
  • Gleichen Sie Kontakte über normalisierte Kennungen wie Rufnummern im E.164-Format und kleingeschriebene E-Mail-Adressen ab, und führen Sie Datensätze niemals allein anhand eines Namens zusammen.
  • Übermitteln Sie nur die Daten, die das CRM braucht, halten Sie Nachrichteninhalte aus dem CRM heraus, wo eine Zusammenfassung genügt, und beachten Sie das geltende Datenschutzrecht, etwa die DSGVO oder die Datenschutzgesetze der VAE und Saudi-Arabiens.

Dieser Leitfaden richtet sich an CTOs, Solution-Architekten und CRM-Administratoren, die für CRM und Omnichannel-Posteingang eine gemeinsame Sicht auf den Kunden benötigen. Er erklärt, welche Events synchronisiert werden, wie Sie einen Webhook-Empfänger bauen, der Wiederholungen und Duplikate übersteht, wie Sie Kontakte über WhatsApp, Instagram und E-Mail hinweg zuordnen und welche Datenschutzregeln das Design prägen.

Was sollten CRM und Omnichannel-Posteingang austauschen?

Der Posteingang sollte dem CRM mitteilen, wer Sie kontaktiert hat, über welchen Kanal, zu welchem Thema und mit welchem Ergebnis. Das CRM sollte dem Posteingang mitteilen, wer der Kunde ist, wer ihn betreut und welchen Kontext die Mitarbeitenden benötigen.

Richtung Daten Typischer Einsatz
Posteingang an CRM Neue Konversation, Kanal, Kontaktkennungen Kontakt anlegen oder aktualisieren, Aktivität protokollieren
Posteingang an CRM Zuweisungs- und Statusänderungen, Lösung Case- oder Deal-Verlauf aktualisieren, Bearbeitungszeit auswerten
Posteingang an CRM Zustellstatus ausgehender Vorlagen Ergebnisse von Kampagnen oder Benachrichtigungen verfolgen
CRM an Posteingang Kontaktname, Sprache, Kontoinhaber, Kundenstufe Routing und Personalisierung
CRM an Posteingang Auslöser zum Versand einer freigegebenen Vorlage Updates zu Bestellung, Termin oder Fall
CRM an Posteingang Wechsel der Zuständigkeit Wiederkehrende Kunden an ihren Account Manager leiten

Beginnen Sie mit der kleinsten Menge, die einen realen Workflow trägt. Sämtliche Nachrichtentexte ins CRM zu synchronisieren ist selten nötig und erhöht das Datenschutzrisiko.

Welche Webhook-Events sollten Sie abonnieren?

Abonnieren Sie Lebenszyklus-Events, nicht nur Nachrichten. Die genauen Event-Namen unterscheiden sich je Plattform; ordnen Sie sie diesen Kategorien zu:

  • Konversation erstellt — erste Nachricht eines Kunden über einen beliebigen Kanal.
  • Nachricht empfangen — eingehende Kundennachricht mit Kanal und Absenderkennung.
  • Nachricht gesendet — ausgehende Nachricht eines Mitarbeiters oder eine Vorlage.
  • Nachrichtenstatus — gesendet, zugestellt, gelesen oder fehlgeschlagen, soweit der Kanal dies meldet.
  • Konversation zugewiesen — Bearbeiter oder Queue geändert.
  • Konversation gelöst oder wieder geöffnet — Statuswechsel.
  • Kontakt aktualisiert — Kennungen oder Attribute im Posteingang geändert.

Bei WhatsApp liefern die Webhooks von Meta eingehende Nachrichten und Statusmeldungen zu ausgehenden Nachrichten an die Plattform; Ihr Posteingangsanbieter stellt Ihren Systemen anschließend eigene Events bereit.

Wie baut man einen zuverlässigen Webhook-Empfänger?

Schnell annehmen, prüfen, einmal speichern, später verarbeiten. Die meisten Zustellprobleme entstehen, weil CRM-Arbeit innerhalb des Webhook-Requests erledigt wird.

Schritt für Schritt: Aufbau des Empfängers

  1. Stellen Sie pro Umgebung einen HTTPS-Endpunkt bereit, zum Beispiel /webhooks/inbox.
  2. Prüfen Sie die Echtheit. Kontrollieren Sie die Signatur (üblicherweise ein HMAC über den Rohinhalt mit einem gemeinsamen Geheimnis, wie in RFC 2104 beschrieben) oder das vom Sender dokumentierte Token. Berechnen Sie sie über die rohen Bytes, bevor Sie das JSON parsen.
  3. Prüfen Sie die Aktualität. Ist ein Zeitstempel enthalten, lehnen Sie Events außerhalb einer kurzen Toleranz ab, um Replays zu begrenzen.
  4. Deduplizieren Sie. Fügen Sie die Event-ID in eine Tabelle mit Unique-Constraint ein. Schlägt das Einfügen fehl, weil die ID existiert, antworten Sie mit Erfolg und brechen ab.
  5. Stellen Sie das Event in eine Queue und liefern Sie sofort eine 2xx-Antwort.
  6. Verarbeiten Sie asynchron. Ein Worker liest die Queue, ordnet den Kontakt zu und schreibt per Upsert ins CRM.
  7. Wiederholen Sie mit Backoff. Ist das CRM nicht erreichbar, wiederholen Sie aus Ihrer Queue mit exponentiellem Backoff; verlassen Sie sich nicht auf die Wiederholungen des Senders.
  8. Nutzen Sie eine Dead-Letter-Queue. Verschieben Sie ein Event nach mehreren Fehlversuchen dorthin und alarmieren Sie eine Person.
  9. Gleichen Sie ab. Ein periodischer Job vergleicht aktuelle Konversationen im Posteingang mit CRM-Datensätzen und schließt Lücken über die Posteingangs-API.

Warum Idempotenz und Reihenfolge wichtig sind

Webhook-Sender wiederholen in der Regel, wenn sie keine rechtzeitige Erfolgsantwort erhalten; die Zustellung ist damit at-least-once. Dasselbe Event kann zweimal eintreffen, und ein Event „gelöst“ kann vor der letzten „Nachricht empfangen“ ankommen. Begegnen Sie dem so:

  • Verwenden Sie die Event-ID als Deduplizierungsschlüssel.
  • Nutzen Sie Upserts, die im CRM auf der Konversations- oder Nachrichten-ID basieren.
  • Vergleichen Sie Zeitstempel oder Sequenznummern und ignorieren Sie älteren Zustand.

Wenn Ihr CRM-Workflow die Posteingangs-API zum Senden einer Nachricht aufruft, übergeben Sie einen Idempotency-Key, sofern die API ihn unterstützt; der IETF-Entwurf für einen HTTP-Header Idempotency-Key beschreibt das gängige Muster.

Wie ordnet man Kontakte kanalübergreifend zu?

Gleichen Sie über normalisierte Kennungen ab, bevorzugen Sie deterministische Treffer und geben Sie Mehrdeutigkeiten an einen Menschen weiter.

Kennung Normalisieren als Trefferqualität Hinweise
WhatsApp- oder SMS-Rufnummer E.164, z. B. +9715XXXXXXXX Hoch Auf lokale Formate mit führender Null achten
E-Mail-Adresse Kleinschreibung, ohne Leerzeichen Hoch Aliasse können dieselbe Person sein; nicht voraussetzen
Instagram-Konto Plattformspezifische Nutzer-ID Hoch innerhalb dieses Kontos Handles können sich ändern; speichern Sie die ID, nicht nur das Handle
Telegram-Nutzer Plattform-Nutzer-ID Hoch innerhalb dieses Bots oder Kontos Die Rufnummer wird möglicherweise nicht geteilt
Name Nie allein verwenden Niedrig Niemals anhand des Namens zusammenführen

Entscheidungsregeln:

  1. Ein exakter Treffer: verknüpfen.
  2. Kein Treffer: Lead oder „nicht zugeordneten Kontakt“ mit dem Quellkanal anlegen.
  3. Mehrere Treffer: für einen Mitarbeiter markieren, nicht automatisch zusammenführen.
  4. Der Kunde bestätigt im Gespräch eine weitere Kennung: verknüpfen und den Beleg notieren.

Wie geht man bei der CRM-Integration mit dem Datenschutz um?

Übertragen Sie nur, was jedes System braucht, dokumentieren Sie den Grund und stellen Sie sicher, dass Löschung in beiden Systemen funktioniert.

  • Datenminimierung. Speichern Sie im CRM Konversationslinks, Ergebnisse und Zusammenfassungen; vollständige Verläufe bleiben im Posteingang, sofern kein definierter Zweck besteht.
  • Rechtsgrundlage und Einwilligung. Erfassen Sie die Marketing-Einwilligung je Kanal; eine Support-Konversation ist keine Einwilligung für Marketing-Vorlagen.
  • Aufbewahrung. Stimmen Sie die Fristen in Posteingang, CRM, Queues und Logs aufeinander ab; Logs mit Webhook-Payloads werden oft vergessen.
  • Zugriffskontrolle. Begrenzen Sie, wer im CRM Nachrichteninhalte und Anhänge sehen darf.
  • Lösch- und Auskunftsanfragen. Sorgen Sie dafür, dass eine Anfrage in einem System auf das andere durchschlägt.
  • Grenzüberschreitende Übermittlung. Prüfen Sie, wo jedes System Daten speichert. Die DSGVO gilt für personenbezogene Daten von Personen in der EU; die VAE und Saudi-Arabien haben eigene Datenschutzgesetze. Klären Sie die aktuellen Pflichten mit der zuständigen Aufsichtsbehörde und Ihrer Rechtsabteilung.

Wie sieht eine Referenzarchitektur aus?

In Textform lautet der Fluss: Kanäle zum Posteingang, Posteingang zum Empfänger, Empfänger zur Queue, Queue zum Worker, Worker zum CRM und CRM-Workflows zurück an den Posteingang-API.

Komponente Aufgabe Zentrale Designentscheidung
Kanäle (WhatsApp, Instagram, E-Mail, Telegram) Kundennachrichten an den Posteingang liefern Es gelten die Regeln der jeweiligen Plattform
Omnichannel-Posteingang Konversationen, Zuweisung, Mitarbeitende, Events Sendet Webhooks; stellt API bereit
Webhook-Empfänger Prüfen, deduplizieren, einreihen Zustandslos, schnelle 2xx-Antwort
Event-Speicher und Queue Dauerhafter Puffer, Replay Eindeutige Event-ID, Dead-Letter-Queue
Sync-Worker Kontaktabgleich, CRM-Upserts Idempotente Schreibvorgänge, Backoff
CRM Kontakte, Deals, Cases, Workflows Ruft die Posteingangs-API mit Idempotency-Keys auf
Abgleich-Job Lücken erkennen und beheben Läuft nach Zeitplan
Monitoring Verzögerung, Fehler, Dead Letters Alarme an einen Verantwortlichen

Praxisbeispiel: eine Klinikgruppe in Dschidda

„Wahat Clinics“, eine fiktive Gesundheitsgruppe in Saudi-Arabien, nutzt ein CRM für Patiententermine und einen Posteingang für WhatsApp und E-Mail.

  • Ein Patient schreibt per WhatsApp. Der Posteingang sendet ein Event „Konversation erstellt“; der Empfänger prüft, speichert und reiht es ein.
  • Der Worker normalisiert die Nummer auf E.164, findet genau einen Patientendatensatz und protokolliert eine Aktivität mit Link zur Konversation, nicht mit dem Nachrichtentext.
  • Das CRM zeigt Arabisch als bevorzugte Sprache des Patienten und übermittelt sie an den Posteingang, der ihn in die arabische Queue leitet.
  • Wird der Termin im CRM gebucht, ruft ein Workflow die Posteingangs-API auf und sendet eine Bestätigung als freigegebene Utility-Vorlage. Als Idempotency-Key dient die Termin-ID, damit eine Wiederholung keine zweite Bestätigung versendet.
  • Das Posteingangs-Event „Nachricht zugestellt“ aktualisiert den Termindatensatz.

Was sind die häufigsten Fehler?

  • CRM-Schreibvorgänge innerhalb des Webhook-Requests, die Timeouts, Wiederholungen und Duplikate verursachen.
  • Keine Deduplizierung, wodurch doppelte Aktivitäten und Kontakte entstehen.
  • Abgleich über nicht normalisierte Rufnummern, sodass Formate mit +971 und mit führender 0 nie zusammenfinden.
  • Automatisches Zusammenführen anhand von Namen oder Teiltreffern.
  • Alle Nachrichteninhalte ins CRM kopieren, ohne Zweck oder Aufbewahrungsregel.
  • Kein Abgleich, sodass ein verpasstes Event zur dauerhaften Abweichung wird.
  • Secrets im Quellcode und kein Rotationsplan.

Wie OmniChannels.ai Sie unterstützt

OmniChannels.ai, betrieben von BroadNet Technologies, bündelt Konversationen aus WhatsApp, Instagram, Messenger, Telegram und E-Mail in einer Omni Inbox mit Zuweisung und Tagging. Hinzu kommen das WhatsApp-Onboarding über Meta Embedded Signup und freigegebene Vorlagen mit Variablen, Medien und Buttons. Für die CRM-Integration ist die REST-API öffentlich dokumentiert, mit einer OpenAPI-3.1-Spezifikation, und Webhooks melden Zustellstatus (SENT, DELIVERED, READ, FAILED und weitere) in einem einheitlichen Format. Zustellberichte mit Filtern und CSV-Export unterstützen den Abgleich. Starten Sie auf der Entwicklerseite.

Häufige Fragen

Worin unterscheiden sich Webhook und API bei der CRM-Integration?

Ein Webhook ist ein HTTP-Request, den der Posteingang an Ihren Endpunkt sendet, sobald etwas geschieht, etwa eine neue Nachricht oder eine gelöste Konversation. Eine API rufen Ihre Systeme selbst auf, um Daten zu lesen oder Aktionen auszuführen, zum Beispiel eine Antwort zu senden oder eine Konversation neu zuzuweisen. Webhooks halten das CRM ohne Polling aktuell; über APIs können CRM-Workflows auf den Posteingang einwirken.

Was bedeutet Idempotenz bei Webhooks?

Idempotenz heißt: Wird dasselbe Event zweimal verarbeitet, hat das dieselbe Wirkung wie einmal. Da Webhook-Sender wiederholen, wenn sie keine rechtzeitige Erfolgsantwort erhalten, kann Ihr Endpunkt Duplikate empfangen. Speichern Sie die eindeutige ID jedes Events, überspringen Sie bereits verarbeitete IDs und gestalten Sie CRM-Schreibvorgänge als Upserts, damit ein wiederholtes Event keine zweite Aktivität und keinen zweiten Kontakt erzeugt.

Wie ordnet man eine WhatsApp-Nummer einem CRM-Kontakt zu?

Normalisieren Sie beide Seiten auf das internationale E.164-Format, also mit Ländervorwahl, ohne Leerzeichen und ohne führende Null, und suchen Sie im CRM mit diesem Wert. Bei genau einem Treffer verknüpfen Sie den Kontakt. Bei keinem Treffer legen Sie einen Lead oder nicht zugeordneten Kontakt an. Bei mehreren Treffern raten Sie nicht: Markieren Sie die Konversation für eine Auswahl durch einen Mitarbeiter und halten Sie die Entscheidung fest.

Sollten vollständige Chatverläufe im CRM gespeichert werden?

Nur mit klarem Zweck und Rechtsgrundlage. Viele Teams speichern im CRM einen Link zur Konversation, eine Zusammenfassung, das Ergebnis und Zeitstempel, während der vollständige Verlauf mit eigener Zugriffskontrolle und Aufbewahrungsfrist im Posteingang bleibt. Das verringert doppelt vorgehaltene personenbezogene Daten und erleichtert die Erfüllung von Löschanfragen, etwa nach der DSGVO.

Wie sichert man Webhook-Endpunkte ab?

Betreiben Sie den Endpunkt ausschließlich über HTTPS, prüfen Sie die Signatur oder das gemeinsame Geheimnis, das der Sender jeder Anfrage beifügt, lehnen Sie Anfragen mit veraltetem Zeitstempel ab, um Replay-Angriffe zu begrenzen, und legen Sie Secrets in einem Secrets-Manager statt im Code ab. Beschränken Sie die Rechte des Endpunkts: Er soll Events nur in eine Queue stellen, keine CRM-Daten preisgeben und keine beliebigen Befehle annehmen.

Quellen

  1. Webhooks — WhatsApp Cloud API, Meta for Developers
  2. The Idempotency-Key HTTP Header Field — IETF HTTPAPI Working Group draft
  3. RFC 2104: HMAC — Keyed-Hashing for Message Authentication
  4. Verordnung (EU) 2016/679 (DSGVO) — EUR-Lex
  5. Datenschutzgesetze — Regierungsportal der VAE (u.ae)