Zoho CRM, People, Flow und Deluge für Bounce Management und Customer Success automatisieren

  • Beitrags-Autor:

Praxis-Guide: Zoho-Prozesse intelligent automatisieren – Von Bounce Management bis Customer Success

In der täglichen Arbeit mit einer umfangreichen Software-Suite wie Zoho One entsteht schnell die Herausforderung, dass die einzelnen Anwendungen zwar leistungsstark sind, die Prozesse zwischen ihnen aber manuell und lückenhaft bleiben. Du kennst das vielleicht: Daten werden von einem Modul ins andere kopiert, wiederkehrende Aufgaben fressen Zeit und die Datenqualität leidet. Genau hier liegt das ungenutzte Potenzial. Es geht nicht nur darum, die einzelnen Zoho Apps zu nutzen, sondern sie zu einem nahtlosen, intelligenten System zu verknüpfen. In diesem Artikel zeigen wir dir anhand konkreter Praxisbeispiele, wie du durch die Kombination verschiedener Zoho Apps, der Skriptsprache Deluge und externer APIs echte Effizienzgewinne erzielst und komplexe Abläufe automatisierst.

Die Herausforderung: Isolierte Prozesse im integrierten System

Stell dir ein typisches mittelständisches Unternehmen vor, das stark auf das Zoho-Ökosystem setzt. Die Personalabteilung verwaltet Arbeitszeiten in Zoho People, die Buchhaltung versendet Rechnungen über Zoho Books, der Kundenservice bearbeitet Anfragen in Zoho Desk und das Herzstück aller Kundeninformationen ist das Zoho CRM. Trotz dieser zentralen Plattform ergeben sich im Alltag Reibungsverluste:

  • Mitarbeiter finden die Stundenübersicht in Zoho People unübersichtlich und fragen ständig nach ihrem aktuellen Überstundensaldo.
  • Wenn eine Rechnung aus Zoho Books nicht zugestellt werden kann (E-Mail-Bounce), landet eine unzustellbarkeitsnachricht als Ticket in Zoho Desk. Ein Mitarbeiter muss manuell den Kontakt im CRM suchen und vermerken, dass die E-Mail-Adresse veraltet ist. Dieser Prozess ist langsam und fehleranfällig.
  • Ein neuer Customer-Success-Prozess soll eingeführt werden, bei dem für hunderte von Bestandskunden jährliche Teilnahme-Datensätze und für deren Ansprechpartner individuelle Einladungen erstellt werden müssen – eine manuelle Sisyphusarbeit.

Diese drei Probleme lösen wir nun Schritt für Schritt mit gezielten Automatisierungen.

Schritt-für-Schritt zur automatisierten Lösung

1. Transparente Zeiterfassung: Zoho People mit Zoho Analytics verbinden

Das Problem: Die Standardansicht für die Anwesenheit in Zoho People kann mit Spalten wie „zahlbar“, „anwesend“, „im Dienst“ schnell überladen und für Mitarbeiter verwirrend sein. Was sie wirklich brauchen, ist eine simple Monatsübersicht ihrer Über- oder Minusstunden.

Die Lösung: Wir erstellen einen sauberen, automatisierten Report in Zoho Analytics, der genau diese eine Kennzahl liefert.

  1. Datenquelle einrichten: Öffne Zoho Analytics und erstelle einen neuen Arbeitsbereich. Wähle als Datenquelle „Zoho Apps“ und verbinde dich mit deinem Zoho People Account. Analytics importiert nun automatisch die relevanten Daten, inklusive der Anwesenheits- und Zeitprotokolle.
  2. Bericht erstellen: Erstelle eine neue „Pivot-Ansicht“ (Kreuztabelle). Ziehe das Feld für den Mitarbeiter-Namen in die „Zeilen“, das Monatsfeld des Datums in die „Spalten“ und die Felder für Überstunden sowie Minusstunden in den Bereich „Daten“.
  3. Formel für die Bilanz erstellen: Für eine noch einfachere Darstellung kannst du eine benutzerdefinierte Formelspalte hinzufügen. Klicke auf „Hinzufügen“ -> „Formelspalte“. Gib der Spalte einen Namen wie „Monatsbilanz“ und verwende eine einfache Formel, um die Differenz zu berechnen, z.B.:
    "Überstunden" - "Fehlstunden"
    So erhältst du eine einzige, klare Zahl pro Mitarbeiter und Monat.
  4. Freigabe und Automatisierung: Du kannst diesen Bericht nun für bestimmte Benutzer oder Gruppen freigeben, sodass jeder Mitarbeiter nur seine eigenen Daten sieht. Zusätzlich lässt sich einrichten, dass der Bericht jeden Monat automatisch als PDF per E-Mail versendet wird.

Damit schaffst du Transparenz und entlastest die Personalabteilung von wiederkehrenden Anfragen, ohne die komplexe Benutzeroberfläche von Zoho People anpassen zu müssen.

2. Automatisiertes Bounce Management: Zoho Desk, Flow und CRM im Zusammenspiel

Das Problem: Eine „Mail Delivery Failure“-Nachricht in Zoho Desk ist mehr als nur ein fehlgeschlagener Versand. Es ist ein wertvoller Hinweis auf veraltete Kontaktdaten im CRM. Die manuelle Verarbeitung ist ineffizient.

Die Lösung: Wir bauen einen Workflow in Zoho Flow, der bei einem neuen Bounce-Ticket automatisch den zugehörigen CRM-Kontakt findet, ihn markiert und eine Notiz hinzufügt.

  1. Trigger in Zoho Flow definieren: Erstelle einen neuen Flow. Wähle als App-Trigger „Zoho Desk“ und als Ereignis „Neues Ticket erstellt“. Füge eine Bedingung hinzu, sodass der Flow nur startet, wenn der Ticket-Betreff „Undelivered Mail Returned to Sender“ oder eine ähnliche Formulierung enthält.
  2. Informationen extrahieren: Die E-Mail-Adresse des ursprünglichen Empfängers steckt meist im Textkörper des Tickets. Nutze die integrierte KI-Aktion von Zoho Flow („Ask Zia“) oder eine „Text-Pattern extrahieren“-Funktion, um die E-Mail-Adresse aus dem Ticketinhalt zu isolieren.
  3. Kontakt im CRM suchen: Füge eine Aktion für „Zoho CRM“ hinzu: „Datensatz abrufen“. Wähle das Modul „Kontakte“ und suche anhand der extrahierten E-Mail-Adresse nach dem passenden Kontakt.
  4. Kontakt aktualisieren (die „sanfte“ Methode): Anstatt den Kontakt sofort zu deaktivieren (was bei temporären Problemen wie einer vollen Mailbox fatal wäre), wählen wir einen informativeren Ansatz.
    • Füge eine „Datensatz aktualisieren“-Aktion für den gefundenen CRM-Kontakt hinzu. Aktualisiere das „Tag“-Feld und füge den Wert „E-Mail Bounce“ hinzu.
    • Füge eine weitere Aktion hinzu: „Notiz hinzufügen“. Erstelle eine Notiz mit dem Inhalt „E-Mail-Bounce am [Datum] festgestellt. Ursprung: Desk-Ticket [Ticket-ID]“.

Dieser vollautomatische Prozess stellt sicher, dass veraltete Kontaktdaten sofort und zuverlässig im CRM sichtbar sind, ohne einen Mitarbeiter zu blockieren oder Kontakte vorschnell zu deaktivieren.

Alternative: Umsetzung mit Deluge in Zoho Desk

Falls du Zoho Flow nicht nutzen möchtest, kannst du eine ähnliche Logik direkt in Zoho Desk mit einer Custom Function umsetzen, die durch eine Workflow-Regel ausgelöst wird.


// Deluge-Skript für eine Zoho Desk Custom Function
// Wird ausgelöst, wenn ein neues Ticket mit Bounce-Betreff erstellt wird

ticketId = ticket.get("id");
ticketDetails = zoho.desk.getRecordById(ticketId, "tickets");
ticketContent = ticketDetails.get("description");

// Einfache Regex, um eine E-Mail-Adresse zu finden
email_pattern = "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}";
email_match = ticketContent.matches(email_pattern);

if(email_match.size() > 0)
{
    bounced_email = email_match.get(0);
    
    // Suche den Kontakt im CRM
    crm_contact_response = zoho.crm.searchRecords("Contacts", "(Email:equals:" + bounced_email + ")");
    
    if(crm_contact_response.size() > 0)
    {
        contactId = crm_contact_response.get(0).get("id");
        
        // Füge einen Tag hinzu (Tag muss im CRM existieren)
        existing_tags = crm_contact_response.get(0).get("Tag");
        new_tag_name = "E-Mail Bounce";
        if(!existing_tags.contains(new_tag_name))
        {
            zoho.crm.updateRecord("Contacts", contactId, {"Tag":{{"name":new_tag_name}}});
        }
        
        // Füge eine Notiz hinzu
        note_content = "Automatischer Vermerk: E-Mail-Bounce am " + zoho.currentdate + ". Quelle: Zoho Desk Ticket " + ticketId;
        note_map = Map();
        note_map.put("Note_Title", "E-Mail Bounce festgestellt");
        note_map.put("Note_Content", note_content);
        note_map.put("Parent_Id", contactId);
        note_map.put("se_module", "Contacts");
        zoho.crm.createRecord("Notes", note_map);
    }
}
info "Bounce-Prozess für Ticket " + ticketId + " abgeschlossen.";

3. Skalierbarer Customer-Success-Prozess mit Zoho CRM Custom Modules & Deluge

Das Problem: Ein neuer strategischer Prozess soll ausgerollt werden, der eine hohe Anzahl an neuen Datensätzen im CRM erfordert. Für jeden der hunderten aktiven Kunden soll ein „Teilnahme“-Datensatz und für jeden zugehörigen Ansprechpartner ein „Einladungs-Ticket“-Datensatz erstellt werden.

Die Lösung: Wir bauen eine „One-Click“-Lösung mit einem Custom Button im CRM, der einen Deluge-Skript ausführt und die gesamte Anlage automatisiert.

  1. Datenstruktur in Zoho CRM schaffen:
    • Erstelle ein Custom Module „CS Kampagnen“, um die jährlichen Initiativen zu verwalten (z.B. „Kampagne 2026“).
    • Erstelle ein Custom Module „CS Teilnahmen“ und verknüpfe es via Lookup-Feld mit dem Modul „Kunden“ (Accounts).
    • Erstelle ein Custom Module „CS Einladungen“ und verknüpfe es via Lookup-Feld mit „CS Teilnahmen“ und „Kontakte“.
  2. Custom Button erstellen: Gehe zu „Einstellungen“ -> „Anpassung“ -> „Module und Felder“. Wähle das Modul „Kunden“ und gehe zum Tab „Links und Schaltflächen“. Erstelle einen neuen Button, z.B. mit dem Namen „CS-Prozess für alle aktiven Kunden starten“. Wähle als Aktion „Funktion schreiben“.
  3. Das Deluge-Skript entwickeln: Das Skript führt die Logik „Alles erstellen und dann manuell reduzieren“ aus. Es ist effizienter, für alle Kontakte eine Einladung zu erstellen, die der Customer Success Manager dann bei Bedarf löscht, als hunderte manuell hinzuzufügen.

// Deluge-Skript für einen Custom Button in der "Kunden"-Listenansicht

// ID der aktuellen CS-Kampagne (manuell hier einsetzen oder dynamisch abfragen)
campaignId = "123456789012345678"; 

// 1. Alle aktiven Kunden abrufen
active_accounts_response = zoho.crm.searchRecords("Accounts", "(Kundenstatus:equals:Aktiv)");

// 2. Schleife durch jeden aktiven Kunden
for each account in active_accounts_response
{
    accountId = account.get("id");
    accountName = account.get("Account_Name");
    
    // 3. Erstelle einen "CS Teilnahme"-Datensatz für den Kunden
    participation_map = Map();
    participation_map.put("Name", "Teilnahme " + accountName + " - Kampagne 2026");
    participation_map.put("CS_Kampagne", campaignId);
    participation_map.put("Kunde", accountId);
    participation_map.put("Status", "Geplant");
    
    create_participation = zoho.crm.createRecord("CS_Teilnahmen", participation_map);
    
    if(create_participation.get("id") != null)
    {
        participationId = create_participation.get("id");
        
        // 4. Hole alle Kontakte dieses Kunden
        related_contacts = zoho.crm.getRelatedRecords("Contacts", "Accounts", accountId);
        
        // 5. Schleife durch jeden Kontakt und erstelle eine "CS Einladung"
        for each contact in related_contacts
        {
            contactId = contact.get("id");
            contactName = contact.get("Full_Name");
            
            invitation_map = Map();
            invitation_map.put("Name", "Einladung für " + contactName);
            invitation_map.put("CS_Teilnahme", participationId);
            invitation_map.put("Kontakt", contactId);
            invitation_map.put("Einladungsstatus", "Ausstehend");
            
            zoho.crm.createRecord("CS_Einladungen", invitation_map);
        }
    }
}
info "Customer Success Prozess wurde für " + active_accounts_response.size() + " Kunden gestartet.";
return "Prozess erfolgreich gestartet.";

Umgang mit API-Grenzen und externen Diensten

Bei der Automatisierung stößt man unweigerlich auf Grenzen. Ein gutes Beispiel ist die API von Zoho Meeting. Es kann vorkommen, dass die offizielle, dokumentierte API nicht alle benötigten Daten liefert – zum Beispiel die Antworten aus einer Q&A-Session, sondern nur die Fragen. Hier ist Hartnäckigkeit beim Zoho-Support der einzige Weg. Die Nutzung undokumentierter APIs ist für produktive Systeme ein zu hohes Risiko, da sie sich jederzeit ohne Vorwarnung ändern können.

Ein anderes Thema ist die Anbindung externer, länderspezifischer Dienste, wie etwa einer Lösung für Schweizer QR-Rechnungen. Bevor du eine solche Lösung einführst, ist die wichtigste Frage: Ist sie API-kompatibel mit den relevanten Zoho-Produkten wie Zoho Billing oder Zoho Books? Eine saubere API ist die Grundvoraussetzung für eine nahtlose Integration.

Tipps und Best Practices

  • Datenhygiene zuerst: Automatisierung macht schlechte Daten nicht besser. Bevor du komplexe Workflows einführst, stelle sicher, dass deine Datenbasis sauber ist. Das Beispiel der fehlerhaften Deal-Stufen („Gewonnen Onboarding“ statt „Nutzung Abo ist aktiv“) zeigt, dass ein einmaliges Batch-Update zur Datenbereinigung oft der erste, entscheidende Schritt ist.
  • Beginne mit „sanften“ Aktionen: Bevor ein Workflow Daten löscht oder Kontakte deaktiviert, sollte er zunächst nur informieren und markieren. Das Taggen von Kontakten mit „E-Mail Bounce“ ist weniger destruktiv als die sofortige Sperrung der E-Mail-Adresse.
  • Denke in Massenverarbeitung: Entwirf deine Funktionen und Buttons nicht für den Einzelfall, sondern für die Skalierung. Der Ansatz, hunderte Datensätze auf einmal zu erstellen, ist ein gutes Beispiel dafür.
  • Teste im Sandkasten: Führe Skripte, die hunderte von Datensätzen erstellen oder aktualisieren, immer zuerst in einer Sandbox-Umgebung aus, um unbeabsichtigte Folgen zu vermeiden.

Fazit: Die wahre Stärke liegt in der Verbindung

Die vorgestellten Beispiele zeigen, dass das volle Potenzial von Zoho sich erst dann entfaltet, wenn du die Grenzen zwischen den einzelnen Apps überwindest. Die Kombination aus visuellen Workflow-Buildern wie Zoho Flow und der mächtigen Skriptsprache Deluge gibt dir die Werkzeuge an die Hand, um nahezu jeden denkbaren Geschäftsprozess zu automatisieren. Indem du manuelle, repetitive Aufgaben an das System abgibst, schaffst du nicht nur Effizienz, sondern erhöhst auch die Datenqualität und gibst deinem Team die Freiheit, sich auf wertschöpfende Tätigkeiten zu konzentrieren. Der erste Schritt ist, einen wiederkehrenden manuellen Prozess in deinem Unternehmen zu identifizieren und zu überlegen: Wie könnten die Zoho-Tools diesen für dich erledigen?

Verwendete Zoho Apps in diesem Artikel: Zoho CRM, Zoho People, Zoho Analytics, Zoho Desk, Zoho Flow, Zoho Books.