Zoho CRM, Books, Flow und Deluge im Workflow-Tutorial für komplexe Vertriebsprozesse

  • Beitrags-Autor:

Zoho im Praxistest: Wie Du komplexe Vertriebsprozesse mit Customizing und APIs meisterst

Die Stärke von Zoho liegt in der Breite seines App-Ökosystems. Doch was passiert, wenn Deine internen Prozesse nicht dem Standard entsprechen? Viele Unternehmen, insbesondere im B2C-Sektor mit komplexen Produkten oder Dienstleistungen, stehen vor der Herausforderung, ihre einzigartigen Arbeitsabläufe in einer standardisierten Software-Suite abzubilden. Oft geht es um spezielle Preisgestaltungen, individuelle Dokumentationsanforderungen oder die nahtlose Verknüpfung von Daten über mehrere Abteilungen hinweg. In diesem Artikel zeigen wir Dir, wie Du mit den Bordmitteln von Zoho – insbesondere mit Workflows, Deluge-Skripten und der cleveren Kombination verschiedener Apps – auch anspruchsvolle Anforderungen pragmatisch und effizient umsetzen kannst. Wir tauchen tief in die Technik ein und übersetzen ein reales Szenario in konkrete, nachvollziehbare Lösungen.

Die Herausforderung: Ein typisches Szenario aus der Praxis

Stell Dir ein Unternehmen vor, das individuelle Lösungen im Bereich Medizintechnik oder barrierefreies Wohnen anbietet, beispielsweise Treppenlifte. Der Vertriebsprozess ist hier vielschichtig:

  • Feste Vertragssummen: Oft wird mit Kostenträgern wie Pflegekassen eine feste Gesamtsumme für eine Maßnahme vereinbart. Bei der Angebotserstellung in Zoho Books müssen jedoch Einzelpositionen (z.B. Lift, Schienen, Montage) ausgewiesen werden. Die Standardpreise der Produkte passen selten zur vereinbarten Gesamtsumme, was Mitarbeiter dazu zwingt, manuell mit dem Taschenrechner die Einzelpreise so anzupassen, dass die Summe wieder stimmt – ein fehleranfälliger und zeitraubender Prozess.
  • Manuelle Datenübertragung: Nach einem Beratungsgespräch werden die ausgewählten Produkte und Zubehörteile aus einem Beratungsformular (z.B. in Zoho Creator erstellt) manuell in das Angebot übertragen. Auch hier schleichen sich leicht Fehler ein.
  • Komplexe Datenbeziehungen: Manchmal sind mehrere Personen innerhalb eines Haushalts (z.B. ein Ehepaar) pflegebedürftig. Ein automatisch generiertes Schreiben, wie ein „Pflegebrief“, muss korrekt für beide Personen erstellt werden können, was eine saubere Verknüpfung der Daten vom Kontakt über den Account (die Familie) bis zum Deal erfordert.
  • Nachverfolgung und Automatisierung: Es fehlt eine automatisierte Nachverfolgung, wann genau ein Angebot versendet wurde. Zudem sollen Leads, die auf einen Beratungstermin warten, wöchentlich automatisch eine E-Mail und ein ausdruckbares Schreiben erhalten, um sie bei Laune zu halten.

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

Lass uns diese Herausforderungen nacheinander mit den Werkzeugen des Zoho-Universums angehen. Wir fokussieren uns auf pragmatische Lösungen, die Du direkt in Deinem System nachbauen kannst.

1. Feste Vertragssummen im Angebot abbilden

Das manuelle Anpassen von Einzelpreisen ist ineffizient. Es gibt zwei Wege, dieses Problem anzugehen: einen schnellen Workaround und eine langfristig robustere, aber komplexere Lösung.

Der schnelle Weg: Automatische Preiszuteilung deaktivieren

In vielen Setups wird der Preis des Hauptprodukts über eine Custom Function in Zoho CRM automatisch auf den Gesamtwert des Deals gesetzt. Um die manuelle Kontrolle zurückzugewinnen, kannst Du diese Automatisierung gezielt deaktivieren. Das geschieht meist in einer Deluge-Funktion, die beim Erstellen oder Bearbeiten eines Deals oder Angebots ausgelöst wird.

Anleitung:

  1. Navigiere in Zoho CRM zu Einstellungen > Automatisierung > Aktionen > Funktionen.
  2. Finde die relevante Funktion (z.B. „Update Quote Price“).
  3. Suche den Code-Block, der den Preis aktualisiert, und kommentiere ihn aus. Das machst Du, indem Du /* vor und */ nach den entsprechenden Zeilen setzt.

Beispiel-Code (Deluge):


// dealId und quoteId werden der Funktion übergeben
dealDetails = zoho.crm.getRecordById("Deals", dealId);
totalAmount = dealDetails.get("Amount");

/*
// --- DIESER BLOCK WIRD DEAKTIVIERT ---
// Die folgende Logik hat zuvor den Preis eines Hauptprodukts automatisch
// an die Gesamtsumme des Deals angepasst. Wir kommentieren sie aus,
// um eine manuelle Preisgestaltung in Zoho Books zu ermöglichen.

quoteDetails = zoho.books.getRecords("Estimates", "ORGANIZATION_ID", "estimate_id=" + quoteId);
if(quoteDetails.get("code") == 0)
{
    lineItems = quoteDetails.get("estimate").get("line_items");
    for each item in lineItems
    {
        if(item.get("name").contains("Hauptprodukt"))
        {
            item.put("rate", totalAmount);
            // Weitere Logik zur Preisaktualisierung...
        }
    }
    // zoho.books.updateRecord(...)
}
*/

// Gib eine Info aus, um den Prozess transparent zu machen
info "Automatische Preisanpassung ist deaktiviert. Bitte Preise manuell in Zoho Books pflegen.";

Diese Lösung gibt Dir die volle Kontrolle zurück, birgt aber das Risiko manueller Fehler bei der Eingabe. Sie ist ein guter Test, um zu sehen, ob der Prozess für Dein Team funktioniert.

2. Produkte aus einem Formular automatisch ins Angebot übernehmen

Um die Fehlerquote bei der Angebotserstellung zu senken, sollten die im Beratungsformular ausgewählten Produkte automatisch als Positionen im Angebot landen.

Anleitung:

  1. Produkt-IDs sammeln: In Zoho Books hat jedes Produkt eine eindeutige ID. Öffne ein Produkt und kopiere die ID aus der URL. Sie sieht etwa so aus: 12345000000123001. Erstelle eine Liste, die den Namen aus Deinem Formular der Produkt-ID in Books zuordnet.
  2. Mapping in Deluge erstellen: In der Custom Function, die das Angebot erstellt oder aktualisiert, definierst Du ein sogenanntes „Map“-Objekt. Dieses dient als Übersetzungstabelle.
  3. Angebotspositionen per Skript hinzufügen: Das Skript liest die Auswahl aus dem Formular, schlägt die passenden Produkt-IDs in der Map nach und fügt die Produkte als Positionen zum Angebot in Zoho Books hinzu.

Beispiel-Code (Deluge):


// Annahme: 'formChoices' ist eine Map mit den Daten aus dem Formular.
// z.B. {"lift_model": "Premium", "accessories": ["Sitzheizung", "Extra-Akku"]}
// 'estimateId' ist die ID des zu aktualisierenden Angebots.

// 1. Definiere Deine Produkt-ID-Zuordnungstabelle
productMap = {
    "Premium": "12345000000123001",
    "Standard": "12345000000123003",
    "Sitzheizung": "12345000000123005",
    "Extra-Akku": "12345000000123007"
};

// 2. Bereite die Liste der Angebotspositionen (line_items) vor
lineItemsList = List();

// Hauptprodukt hinzufügen
liftModel = formChoices.get("lift_model");
liftProductId = productMap.get(liftModel);
if(liftProductId != null)
{
    lineItemsList.add({"product_id": liftProductId, "quantity": 1});
}

// Zubehör hinzufügen
accessoriesList = formChoices.get("accessories");
for each accessory in accessoriesList
{
    accessoryId = productMap.get(accessory);
    if(accessoryId != null)
    {
        lineItemsList.add({"product_id": accessoryId, "quantity": 1});
    }
}

// 3. Aktualisiere das Angebot in Zoho Books
if(!lineItemsList.isEmpty())
{
    updateData = {"line_items": lineItemsList};
    // Ersetze 'YOUR_ORGANIZATION_ID' durch deine ID von Zoho Books
    response = zoho.books.updateRecord("Estimates", "YOUR_ORGANIZATION_ID", estimateId, updateData);
    info response;
}

Für eine noch flexiblere Lösung könntest Du die Produkt-Map in ein Custom Module in Zoho CRM oder eine Tabelle in Zoho Tables auslagern. So kann sie auch von Nicht-Entwicklern gepflegt werden.

3. Nachverfolgung und Behebung von Logikfehlern

Versanddatum eines Angebots automatisch festhalten

Diese Anforderung lässt sich ganz ohne Code mit einem Workflow in Zoho CRM umsetzen.

  1. Navigiere zu Einstellungen > Automatisierung > Workflow-Regeln und erstelle eine neue Regel für das Modul „Abschlüsse“ (Deals).
  2. Auslöser: Wähle „Bei einer Datensatzaktion“ und „Bearbeiten“.
  3. Bedingung: „Phase“ wird geändert auf „Angebot versendet“.
  4. Aktion: Wähle „Feld-Aktualisierung“. Erstelle eine neue Feld-Aktualisierung, die ein benutzerdefiniertes Datumsfeld (z.B. „Angebot versendet am“) mit der aktuellen Zeit befüllt (Option: „Zeit der Ausführung“).

Fertig! Jedes Mal, wenn ein Deal in diese Phase verschoben wird, dokumentiert das System automatisch das Datum.

Logikfehler bei verknüpften Kontakten korrigieren

Wenn ein Skript einen verknüpften Datensatz nicht findet, liegt es oft an einer falschen Annahme über die Datenstruktur. Im Fall des „Pflegebriefs“ für eine zweite Person muss das Skript den richtigen Weg durch die Datenhierarchie finden.

Die korrekte Logik: Kontakt (2. Person) → Account (Familie) → zugehöriger Deal.

Konzeptioneller Code (Deluge):


// Annahme: 'secondContactId' ist die ID des zweiten Kontakts
// 1. Hole den Account (die Familie) des Kontakts
contactRecord = zoho.crm.getRecordById("Contacts", secondContactId);
accountId = contactRecord.get("Account_Name").get("id");

if(accountId != null)
{
    // 2. Hole alle Deals, die mit diesem Account verknüpft sind
    relatedDeals = zoho.crm.getRelatedRecords("Deals", "Accounts", accountId);
    
    // 3. Finde den richtigen Deal (z.B. den neuesten oder den einzigen offenen)
    // Diese Logik musst Du an Deinen Prozess anpassen.
    activeDeal = null;
    for each deal in relatedDeals
    {
        if(deal.get("Stage") != "Closed Won" && deal.get("Stage") != "Closed Lost")
        {
            activeDeal = deal;
            break; // Nimm den ersten passenden Deal
        }
    }
    
    // 4. Wenn ein Deal gefunden wurde, generiere das Dokument
    if(activeDeal != null)
    {
        dealId = activeDeal.get("id");
        // Hier folgt Deine Logik zur Dokumentenerstellung mit der Zoho Writer API
        // ...
        info "Pflegebrief für Deal " + dealId + " wird erstellt.";
    }
}

Tipps und Best Practices

  • Lösche keine Daten: Wenn ein Kunde nach einem verlorenen Deal („Closed Lost“) erneut anfragt, erstelle einen neuen Deal. Lösche niemals den alten. Du verfälschst Deine Statistiken und verlierst wertvolle Kundenhistorie. Das System ist darauf ausgelegt, mehrere Deals pro Kontakt oder Account zu verwalten.
  • HTML-Vorlagen in Zoho Books: Für maximale Flexibilität im Angebotslayout (z.B. Brutto-Einzelpreise, aber Netto-Gesamtsumme, ähnlich wie bei Vorlagen aus Sage) kannst Du HTML-Vorlagen verwenden. Der Vorteil ist die totale Kontrolle über das Design. Der Nachteil: Standardfunktionen wie die automatische Rabattberechnung müssen eventuell manuell in der Vorlage nachprogrammiert werden. Wäge den Aufwand gegen den Nutzen ab.
  • Den richtigen Ort für jeden Prozess finden: Nutze für Reklamationen oder Servicefälle nicht das Deal-Modul, sondern Zoho Desk. Ein Ticket in Desk lässt sich sauber mit dem Kontakt und Deal im CRM verknüpfen. Das hält Deinen Vertriebsprozess sauber und bietet dem Serviceteam ein spezialisiertes Werkzeug.
  • DATEV-Export vorbereiten: Eine reibungslose Zusammenarbeit mit dem Steuerberater über die DATEV-Schnittstelle hängt von sauberen Daten in Zoho Books ab. Achte auf korrekt zugeordnete Erlöskonten und konsistente Kundennummern. Ein technikaffiner Steuerberater ist hier Gold wert.

Zusatz-Tipp: Automatisierte Follow-ups für wartende Leads

Ein wöchentlicher, automatisierter Kontakt zu Leads, die auf einen Termin warten, ist ein starkes Signal. So setzt Du es um:

  1. Geplanter Workflow in CRM: Erstelle einen zeitgesteuerten Workflow in Zoho CRM, der jeden Freitag um 17:00 Uhr für alle Deals in der Phase „Beratungstermin vereinbaren“ läuft.
  2. Aktion 1: E-Mail senden: Der Workflow sendet eine E-Mail über eine vordefinierte Vorlage (Zoho Campaigns oder CRM-eigene Vorlagen).
  3. Aktion 2: Brief generieren via Webhook & Flow: Füge dem Workflow eine zweite Aktion hinzu: einen Webhook. Dieser Webhook ruft einen Zoho Flow auf und übergibt die Lead-Daten.
  4. Der Flow-Prozess:
    • Der Flow wird vom Webhook getriggert.
    • Er nutzt die Zoho Writer-Aktion „Merge Document“, um die übergebenen Daten in eine vorbereitete Briefvorlage einzufügen.
    • Das fertige Dokument wird in Zoho WorkDrive gespeichert und/oder als Anhang im CRM-Datensatz hinterlegt.

Dieser Prozess kombiniert mehrere Zoho-Apps zu einem leistungsstarken Automaten, der Deinen Vertrieb entlastet und Kundenbindung schafft.

Fazit

Die wahre Kraft des Zoho-Ökosystems entfaltet sich dort, wo Du die Standardfunktionen verlässt und beginnst, die Werkzeuge an Deine individuellen Geschäftsprozesse anzupassen. Wie Du gesehen hast, lassen sich selbst komplexe Anforderungen – von der dynamischen Preisgestaltung bis hin zu vollautomatisierten Kommunikationsketten – mit einer Kombination aus Workflows, Deluge-Skripten und der intelligenten Verknüpfung von Apps wie Zoho CRM, Zoho Books, Zoho Flow und Zoho Writer abbilden. Der Schlüssel liegt darin, ein Problem in seine Einzelteile zu zerlegen und für jeden Schritt das passende Werkzeug aus dem Baukasten zu wählen. Sei mutig, probiere Skripte aus und denke immer daran: Das System soll für Dich arbeiten, nicht umgekehrt.