Über diesen Workflow
Dialpad zu Syncro Integrations-Workflow-Analyse
Diese n8n Workflow-Vorlage mit dem Titel "Dialpad zu Syncro" wurde entwickelt, um die Integration zwischen Dialpad (einem cloudbasierten Geschäftstelefonsystem) und Syncro (einer IT-Service-Management-Plattform für MSPs) zu automatisieren. Sie ermöglicht es Unternehmen, automatisch Support-Tickets in Syncro zu erstellen oder zu aktualisieren, wenn ein eingehender Anruf über Dialpad eingeht, basierend auf der Anruferidentifikation. Der Workflow gleicht Kunden oder Kontakte intelligent anhand ihrer Telefonnummer ab und protokolliert relevante Daten in Google Sheets zur Nachverfolgung und Berichterstattung.
Was der Workflow tut
Die Hauptfunktion dieses Workflows ist:
- Abhören eingehender Webhook-Ereignisse von Dialpad (ausgelöst durch eingehende Anrufe)
- Identifizieren des Anrufers durch Suche in der Syncro-Datenbank anhand der Telefonnummer des Anrufers
- Ermitteln, ob der Anrufer ein bekannter Kontakt oder Kunde ist
- Prüfen, ob bereits ein offenes Ticket mit dem Kontakt verknüpft ist
- Entweder ein neues Ticket erstellen oder einen Kommentar zu einem bestehenden Ticket hinzufügen
- Protokollieren des Anrufs und der entsprechenden Ticketinformationen in Google Sheets zu Audit- und Analysezwecken
Diese Automatisierung optimiert die Kundenservice-Abläufe, indem sichergestellt wird, dass jeder eingehende Anruf einen nachvollziehbaren Service-Datensatz auslöst, wodurch manuelle Eingaben reduziert und die Reaktionszeiten verbessert werden.
Hauptmerkmale und Fähigkeiten
-
Webhook-ausgelöste Ausführung
- Lauscht auf Echtzeit-
POST-Anfragen von Dialpad, wodurch er ereignisgesteuert und reaktionsschnell ist.
- Lauscht auf Echtzeit-
-
Dynamische Kunden-/Kontaktzuordnung
- Verwendet die Telefonnummer des Anrufers (bereinigt von Formatierungen wie
+, führender1oder0), um die Syncro-API abzufragen. - Verarbeitet sowohl einzelne Kontakte als auch Kunden auf Unternehmensebene.
- Verwendet die Telefonnummer des Anrufers (bereinigt von Formatierungen wie
-
Bedingte Logikverzweigung
- Verwendet mehrere
IF-Knoten, um Entscheidungen zu treffen basierend auf:- Anrufrichtung (
inbound) - Länge der Suchergebnisse (ob 1 Treffer existiert)
- Vorhandensein offener Tickets
- Anrufrichtung (
- Verwendet mehrere
-
Ticketverwaltungsautomatisierung
- Erstellt neue Tickets, wenn keine offenen vorhanden sind
- Aktualisiert bestehende offene Tickets mit Anrufdetails, anstatt Duplikate zu erstellen
-
Datenanreicherung & Transformation
- Extrahiert strukturierte Daten aus rohen API-Antworten mithilfe von Function-Knoten
- Formatiert dynamische Nachrichten mit vollständigen Namen, Telefonnummern und Geschäftsnamen
-
Externe Protokollierung über Google Sheets
- Erfasst jede Aktion (Ticketerstellung/-aktualisierung) in Google Sheets mit:
- Anruf-ID
- Ticket-ID
- Nützlich für Audit-, Abrechnungs- oder Leistungsverfolgungszwecke
- Erfasst jede Aktion (Ticketerstellung/-aktualisierung) in Google Sheets mit:
-
Umgebungskonfiguration
- Zentralisiert die Konfiguration (wie Basis-URL und Benutzer-ID) mithilfe eines
EnvVariablesSet-Knotens zur einfacheren Wartung.
- Zentralisiert die Konfiguration (wie Basis-URL und Benutzer-ID) mithilfe eines
-
Fehlertoleranz & Fallback-Pfade
- Enthält
NoOp(No Operation) Knoten als Fallback-Pfade, um zu verhindern, dass die Ausführung aufgrund fehlender Daten abbricht.
- Enthält
Hauptknoten und ihre Zwecke
| Knotenname | Typ | Zweck |
|---|---|---|
| Webhook | Webhook Trigger | Empfängt POST-Payload von Dialpad bei einem eingehenden Anruf |
| IF (Direction Check) | IF Condition | Stellt sicher, dass nur inbound-Anrufe fortgesetzt werden; ignoriert ausgehende/interne |
| EnvVariables | Set Node | Speichert Umgebungskonstanten wie die Syncro-Basis-URL und die Standard-Benutzer-ID |
| GetCustomer | HTTP Request | Fragt die Syncro-Such-API mit der bereinigten Anrufernummer ab |
| Contacts | Function Node | Analysiert die API-Antwort, um Kontakt-Datensätze zu extrahieren |
| Customers | Function Node | Analysiert die API-Antwort, um Kunden- (Unternehmens-) Datensätze zu extrahieren |
| IFContacts / IFCustomers | IF Conditions | Prüft, ob genau ein Kontakt oder Kunde gefunden wurde |
| GetTicket | HTTP Request | Sucht nach offenen Tickets, die mit dem identifizierten Kontakt verknüpft sind |
| IFMoreThanOne | IF Condition | Ermittelt, ob ein offenes Ticket existiert (Länge > 0), und entscheidet dann, ob aktualisiert oder erstellt werden soll |
| UpdateTicket | HTTP Request | Fügt einen versteckten Kommentar zu einem bestehenden Ticket hinzu, der den Anruf vermerkt |
| CreateTicket / CreateTicketForCustomer | HTTP Request | Erstellt ein neues Ticket unter einem Kontakt oder Kunden |
| Set Nodes (ForGoogle)* | Set Node | Bereitet strukturierte Daten (Anruf-ID + Ticket-ID) für die Protokollierung vor |
| **Google Sheets * ** | Google Sheets Node | Hängt Protokolleinträge an eine Tabelle zur Nachverfolgung an |
| **NoOp * ** | No Operation Node | Dient als Dummy-Ausgabe, um Fälle zu behandeln, in denen keine Aktion ausgeführt wird |
Anwendungsfälle und Vorteile
✅ Anwendungsfälle
- MSPs (Managed Service Provider): Verfolgen Sie Kundeninteraktionen automatisch, ohne dass Agenten nach jedem Anruf manuell Tickets erstellen müssen.
- Help Desks: Verbessern Sie die Effizienz der Erstantwort, indem Sie den Kontext des Anrufers vor dem Gespräch vorab ausfüllen.
- Vertriebs- & Supportteams: Führen Sie detaillierte Protokolle aller eingehenden Kommunikationen, die direkt mit CRM-ähnlichen Datensätzen in Syncro verknüpft sind.
- Compliance & Auditing: Führen Sie unveränderliche Protokolle in Google Sheets, die Anrufe mit Serviceaktivitäten verknüpfen.
✅ Vorteile
- Reduziert manuelle Arbeit: Beseitigt die Notwendigkeit, Kunden und offene Tickets manuell nachzuschlagen.
- Verhindert doppelte Tickets: Intelligente Logik vermeidet eine Überladung des Systems.
- Verbessert die Verantwortlichkeit: Jeder Anruf hinterlässt einen digitalen Fußabdruck.
- Erhöht die kontextbezogene Wahrnehmung: Agenten können aktuelle Aktivitäten sehen, bevor sie Anrufe entgegennehmen oder zurückrufen.
- Skalierbar & konfigurierbar: Kann um SMS-, Voicemail- oder E-Mail-Integrationen erweitert werden.
Schritt-für-Schritt-Workflow-Logik
-
Trigger: Eingehender Anruf erkannt
- Dialpad sendet eine
POST-Anfrage an den Webhook-Endpunkt/moezdialpad. - Payload enthält die Anrufernummer (
external_number), Anruf-ID und Richtung.
- Dialpad sendet eine
-
Filter: Nur eingehende Anrufe verarbeiten
- Der erste
IF-Knoten prüft, obdirection === 'inbound'. - Wenn falsch, wird zu
NoOp2(tut nichts) weitergeleitet. - Wenn wahr, wird zum nächsten Schritt fortgefahren.
- Der erste
-
Umgebungsvariablen laden
- Der
EnvVariables-Knoten injiziert:syncro_baseurl: Basis-URL für die Syncro-API- Andere statische Werte, die später verwendet werden (z. B. Benutzer-ID)
- Der
-
Syncro nach Anrufer durchsuchen
GetCustomerführt eine HTTP-GET-Anfrage an:{{syncro_baseurl}}/api/v1/search?query={cleaned_phone}- Die Telefonnummer wird mit
.replace()bereinigt, um+, führende1oder0zu entfernen.
-
Ergebnisse in Kontakte und Kunden aufteilen
- Zwei parallele
Function-Knoten (ContactsundCustomers) analysieren das Suchergebnis-JSON:- Filtern von Einträgen, bei denen
_index === 'contacts'oder'customers' - Extrahieren von Schlüsselfeldern: Name, ID, customer_id, phones
- Filtern von Einträgen, bei denen
- Ausgaben sind Arrays von übereinstimmenden Kontakten/Kunden
- Zwei parallele
-
Auf genau eine Übereinstimmung prüfen
IFContacts: Wenn genau ein Kontakt gefunden wurde → weiter zur TicketprüfungIFCustomers: Wenn genau ein Kunde gefunden wurde → weiter zur Erstellung eines Tickets auf Kundenebene- Andernfalls Weiterleitung zu
NoOp/NoOp1(keine Aktion ausgeführt)
-
Auf offene Tickets prüfen (pro Kontakt)
- Wenn ein Kontakt gefunden wurde, fragt
GetTicketab:/api/v1/tickets?contact_id=X&status=Not%20Closed - Gibt eine Liste offener Tickets für diesen Kontakt zurück
- Wenn ein Kontakt gefunden wurde, fragt
-
Entscheiden: Ticket aktualisieren oder erstellen?
IFMoreThanOnewertet aus:- Gibt es mindestens ein offenes Ticket?
- Wenn JA → zu
UpdateTicket - Wenn NEIN → zu
CreateTicket
-
Bestehendes Ticket aktualisieren
UpdateTicketpostet einen Kommentar zum ersten offenen Ticket:- Betreff: "Telefonanruf von John Doe (+1234567890)"
- Text: "John Doe hat angerufen."
- Versteckt: true (interne Notiz)
- Zugewiesen an Standardbenutzer
- Bereitet dann Daten vor und protokolliert sie über
ForGoogle→Google Sheets
-
Neues Ticket erstellen
- Wenn kein offenes Ticket vorhanden ist:
CreateTicketerstellt ein neues mit:- Kunden-ID und Kontakt-ID des übereinstimmenden Kontakts
- Dynamischer Betreffzeile
- Status: "In Progress"
- Zugewiesen an Standardbenutzer
- Protokolliert dann über
ForGoogle1→Google Sheets1
- Wenn kein offenes Ticket vorhanden ist:
-
Kunden-Fallback behandeln
- Wenn kein Kontakt, aber ein Kunde gefunden wurde:
CreateTicketForCustomererstellt ein Ticket auf Organisationsebene- Enthält den Geschäftsnamen im Betreff
- Protokolliert über
ForGoogle2→Google Sheets2
- Wenn kein Kontakt, aber ein Kunde gefunden wurde:
-
Protokollierung in Google Sheets
- Alle erfolgreichen Aktionen (Aktualisierung/Erstellung) führen zum Anhängen einer Zeile:
- Spalte A: Anruf-ID
- Spalte B: Ticket-ID
- Drei separate Zweige stellen sicher, dass alle Pfade ordnungsgemäß protokolliert werden
- Alle erfolgreichen Aktionen (Aktualisierung/Erstellung) führen zum Anhängen einer Zeile:
Zusammenfassung
Dieser Dialpad zu Syncro Workflow veranschaulicht, wie n8n Kommunikationsplattformen mit Service-Management-Systemen durch intelligente Automatisierung verbinden kann. Durch die Kombination von Webhooks, bedingter Logik, API-Integrationen und externer Protokollierung liefert er eine robuste Lösung zur Verbesserung von Kundenservice-Workflows – stellt sicher, dass kein Anruf unbeachtet bleibt und jede Interaktion zu besseren Support-Ergebnissen beiträgt.
So geht’s: JSON herunterladen und in n8n „Aus Datei importieren“ wählen.