Zum Hauptinhalt springen

Omnichannel & Kan\u00e4le

PulseChat kann als Omnichannel-Posteingang f\u00fcr externe Messaging-Plattformen wie WhatsApp, Telegram, E-Mail, SMS, Slack, Viber usw. fungieren. Diese Seite erkl\u00e4rt, wie Kan\u00e4le funktionieren, wie man sie konfiguriert und wie Mitarbeiter mit ihnen interagieren.


1. Konzepte

  • Kanal -- eine konfigurierte Verbindung zu einem externen Dienst (z.B. eine WhatsApp Business-Nummer, ein Telegram-Bot, ein IMAP-E-Mail-Postfach).
  • Kanalkonversation -- ein Thread mit einem externen Kontakt (z.B. ein WhatsApp-Chat mit einem Kunden).
  • Externer Kontakt -- einheitlicher Datensatz, der die externe Partei repr\u00e4sentiert (Telefon, E-Mail, etc.), wenn m\u00f6glich CRM-Kunden/Kontakten/Leads zugeordnet.

Kerntabellen (erstellt in 122_version_122.php):

  • pc_channels -- Kanalkonfigurationen (Typ, Name, verschl\u00fcsseltes Config).
  • pc_external_contacts -- \u00fcbergeordnete externe Kontaktidentit\u00e4ten.
  • pc_contact_identities -- spezifische Identifikatoren (Telefon, E-Mail, PSID, chat_id, etc.).
  • pc_automation_rules -- Routing- und Automatisierungsregeln.

2. Omnichannel aktivieren

  1. Gehen Sie als Administrator zu den PulseChat-Einstellungen.
  2. Aktivieren Sie:
    • Omnichannel-Kan\u00e4le aktivieren
      • Option: pulsechat_channels_enabled
  3. Speichern.
  4. In der Chat-Oberfl\u00e4che erscheint ein Kan\u00e4le-Tab in der Seitenleiste.

3. Kan\u00e4le konfigurieren

In der Chat-Oberfl\u00e4che:

  1. Klicken Sie auf den Kan\u00e4le-Tab.
  2. Klicken Sie auf das Zahnradsymbol in der Kan\u00e4le-Filterleiste (Kanaleinstellungen).
  3. Dies \u00f6ffnet das Kanaleinstellungen-Modal, wo Sie:
    • Neue Kan\u00e4le erstellen k\u00f6nnen.
    • Bestehende Kan\u00e4le bearbeiten k\u00f6nnen.
    • Konfiguration testen und speichern k\u00f6nnen.

Jeder Kanaltyp hat eigene Konfigurationsfelder und Anforderungen, implementiert \u00fcber Adapterklassen in libraries/channels/:

  • WhatsappAdapter.php
  • TelegramAdapter.php
  • EmailAdapter.php
  • (und andere wie SMS, Slack, Viber, etc.)

Die Admin-Oberfl\u00e4che f\u00fcr Kan\u00e4le wird gesteuert durch:

  • controllers/Pulsechat_Channels.php
  • assets/js/pulsechat-channels.js
hinweis

Viele Kanalanbieter erfordern Webhooks (z.B. Telegram, WhatsApp Cloud API) und/oder periodisches Polling (z.B. E-Mail \u00fcber IMAP). Stellen Sie sicher, dass Sie die Webhook-URL Ihres Anbieters oder die IMAP-Zugangsdaten wie in der Kanaleinstellungen-Oberfl\u00e4che angegeben konfigurieren.


4. Unterst\u00fctzte Kanaltypen

Die Basismigration (122_version_122.php) deklariert diese Typen:

  • whatsapp
  • telegram
  • messenger
  • instagram
  • email
  • sms
  • slack
  • viber

Verschiedene Adapter k\u00f6nnen vorhanden sein oder im Laufe der Zeit hinzugef\u00fcgt werden. \u00dcberpr\u00fcfen Sie libraries/channels/ f\u00fcr verf\u00fcgbare Adapter in Ihrer Version.


5. Eingehender Fluss (\u00dcberblick)

  1. Externe Nachricht trifft ein:

    • \u00dcber Webhook (z.B. WhatsApp/Telegram \u00fcber modules/pulsechat/webhook.php oder controllers/webhooks/ChannelWebhook.php).
    • \u00dcber Polling (z.B. E-Mail IMAP \u00fcber pulsechat_cron_email_poll).
  2. ChannelManager:

    • libraries/channels/ChannelManager.php empf\u00e4ngt die eingehende Payload.
    • Validiert Rate-Limits, decodiert die Nachricht und normalisiert Metadaten.
  3. Kontaktzuordnung:

    • libraries/ContactMatcher.php versucht, den eingehenden Identifikator (Telefon, E-Mail, PSID, etc.) einem bestehenden zuzuordnen:
      • Externen Kontakt (pc_external_contacts),
      • CRM-Kontakt / Kunden (tblcontacts / tblclients),
      • Lead (tblleads),
      • oder erstellt einen neuen externen Kontaktdatensatz.
  4. Konversationsrouting:

    • pc_conversations enth\u00e4lt Omnichannel-Konversationen (Typ channel).
    • Automatisierungsregeln (pc_automation_rules) k\u00f6nnen angewendet werden f\u00fcr:
      • Auto-Zuweisung an Mitarbeiter / Team.
      • Status, Priorit\u00e4t, Tags setzen.
      • Aktionen ausl\u00f6sen (Auto-Antwort, Ticket-Erstellung, KI-Antwort, etc.).
  5. Nachrichtenerstellung:

    • Eine Nachrichtenzeile wird in pc_messages eingef\u00fcgt mit:
      • channel_id, channel_type, externer channel_conversation_id.
      • Richtung (inbound), Status, Zustellungsstatus.
  6. Oberfl\u00e4chen-Aktualisierung:

    • Die Kanalkonversationsliste wird in pulsechat-channels.js aktualisiert.
    • Der aktive Agent sieht die neue Konversation und kann von PulseChat aus antworten.

6. Ausgehender Fluss (\u00dcberblick)

Wenn ein Agent in einer Kanalkonversation antwortet:

  1. pulsechat-channels.js ruft auf:

    • config.channelSendMessageUrl \u00fcber admin/pulsechat/channel_api/send_channel_message
  2. Pulsechat_Channels::send_channel_message():

    • Validiert Berechtigungen.
    • Speichert die Nachricht in pc_messages als outbound.
  3. ChannelManager:

    • Verwendet den passenden Adapter (WhatsappAdapter, TelegramAdapter, EmailAdapter, etc.), um die Nachricht an die externe Plattform zu senden.
    • Aktualisiert delivery_status (queued, sent, delivered, read, failed) und Fehlermeldungen falls vorhanden.
  4. Oberfl\u00e4chen-Feedback:

    • Die Nachricht erscheint in der Konversation mit einem Statusindikator.
    • Fehler (z.B. ung\u00fcltiges Token, Netzwerkprobleme) werden in der Oberfl\u00e4che angezeigt, oft mit Hinweisen (z.B. "Aktualisieren Sie Ihr WhatsApp-Token in den Kanaleinstellungen").

7. Kanalspezifische Hinweise

7.1 WhatsApp

  • Adapter: libraries/channels/WhatsappAdapter.php
  • Erfordert:
    • Permanentes Zugriffstoken von Meta (System-Benutzer-Token mit whatsapp_business_messaging-Berechtigung).
    • Telefonnummer-ID und WhatsApp Business-Kontodetails.
  • Oberfl\u00e4che:
    • Das Kanalkonfigurationsformular zeigt Felder wie Zugriffstoken, Telefon-ID, Webhook-Verifizierungstoken, etc.
    • Fehler von WhatsApp (z.B. "Sitzung ist abgelaufen") werden erfasst und dem Agenten mit Behebungshinweisen angezeigt.

7.2 Telegram

  • Adapter: libraries/channels/TelegramAdapter.php
  • Erfordert:
    • Bot-Token von BotFather.
  • Verwendet Webhooks:
    • Sie m\u00fcssen Telegram mit der in den Kanaleinstellungen angezeigten Webhook-URL konfigurieren.
    • Die Signaturverifizierung wird im Adapter behandelt.

7.3 E-Mail

  • Adapter: libraries/channels/EmailAdapter.php
  • Verwendet IMAP-Polling und SMTP:
    • IMAP: Abrufen eingehender E-Mails aus einem Postfach.
    • SMTP: Senden von Antworten (oder R\u00fcckfall auf Perfex' Standard-SMTP wenn nicht konfiguriert).
  • Polling:
    • Implementiert \u00fcber pulsechat_cron_email_poll() in pulsechat.php.
    • Eingehakt in Perfex' after_cron_run.
  • TLS/OAuth:
    • Der E-Mail-Adapter unterst\u00fctzt OAuth- oder App-Passwort-basierte Anmeldungen je nach Anbieter und Konfiguration.

8. Automatisierungsregeln

Im Omnichannel-Modus k\u00f6nnen Sie Automatisierungsregeln f\u00fcr Routing und Aktionen definieren.

  • Gespeichert in pc_automation_rules.
  • Konfigurierbar \u00fcber die Omnichannel-Oberfl\u00e4che (Abschnitt Automatisierungsregeln).
  • Aktionen k\u00f6nnen umfassen:
    • Zuweisung an Mitarbeiter / Team.
    • Status / Priorit\u00e4t setzen.
    • Tags hinzuf\u00fcgen.
    • Standardantworten senden.
    • Tickets erstellen.
    • KI-Antwort ausl\u00f6sen (integriert sich mit dem KI-Assistenten f\u00fcr vollst\u00e4ndig automatische Antworten).

Diese Regeln erm\u00f6glichen Ihnen den Aufbau fortgeschrittener Workflows wie:

  • "Wenn die Nachricht von WhatsApp an die 'Vertrieb'-Nummer kommt, dem Vertriebsteam zuweisen und als whatsapp-lead taggen."
  • "Wenn der Kanal E-Mail ist und der Betreff 'Support' enth\u00e4lt, automatisch ein Ticket erstellen und die Konversation als pending markieren."

9. Kan\u00e4le-Tab-Oberfl\u00e4che

Im Kan\u00e4le-Tab sehen Agenten:

  • Eine Filterleiste:

    • Statusfilter (Offen, Ausstehend, Gel\u00f6st, Geschlossen).
    • Priorit\u00e4tsfilter (Niedrig, Normal, Hoch, Dringend).
    • Kanaltypfilter (WhatsApp, Telegram, E-Mail, etc.).
    • Kanaleinstellungen-Schaltfl\u00e4che (Zahnrad).
  • Eine Kanalkonversationsliste:

    • Jede Zeile zeigt:
      • Name des externen Kontakts.
      • Kanalsymbol / -typ.
      • Vorschau der letzten Nachricht.
      • Status, Priorit\u00e4t, Anzahl ungelesener.
  • Bei Auswahl einer Konversation:

    • \u00d6ffnet sich im mittleren Chat-Panel.
    • Das Detailpanel zeigt CRM-Kontext des Kontakts (verkn\u00fcpfter Kunde/Kontakt/Lead falls zugeordnet).

10. Best Practices

  • Testen Sie einen Kanal immer nach der Konfiguration:

    • Verwenden Sie ein Testtelefon/-E-Mail.
    • Pr\u00fcfen Sie, ob ein- und ausgehende Nachrichten funktionieren und Status aktualisiert werden.
  • Verwenden Sie Automatisierungsregeln um:

    • Neue Konversationen automatisch dem richtigen Team zuzuweisen.
    • Nach Kanal und Inhalt zu taggen und zu priorisieren.
  • Halten Sie Zugangsdaten aktuell:

    • Tokens und App-Passw\u00f6rter laufen oft ab.
    • Bei wiederholten Sendefehlern \u00fcberpr\u00fcfen Sie die Kanaleinstellungen und Anbieter-Dashboards.
  • F\u00fcr E-Mail-Kan\u00e4le:

    • Stellen Sie sicher, dass der Perfex-Cron konfiguriert ist und regelm\u00e4\u00dfig l\u00e4uft, sonst werden eingehende E-Mails nicht abgerufen.

Wenn ein bestimmter Kanal Probleme macht, siehe Fehlerbehebung & FAQ f\u00fcr gezielte Pr\u00fcfungen.