Zoho CRM, Books und Deluge Custom Functions für komplexe Vertriebsautomatisierung lernen

  • Beitrags-Autor:

Praxis-Guide: Vertriebsprozesse mit Zoho CRM, Books und Custom Functions nahtlos automatisieren

In der Welt der Unternehmenssoftware ist die nahtlose Integration verschiedener Anwendungen der Schlüssel zu Effizienz und Skalierbarkeit. Standard-Workflows in Zoho CRM sind ein hervorragender Startpunkt, doch die Realität in vielen Branchen, insbesondere im Handwerk, bei Dienstleistern oder im Projektgeschäft, ist oft komplexer. Hier stößt man schnell an Grenzen, wenn Prozesse nicht nur Standardfälle, sondern auch Ausnahmen, verschiedene Kundentypen und mehrere Ansprechpartner pro Geschäftsmöglichkeit abbilden müssen. Genau hier zeigt sich die wahre Stärke des Zoho-Ökosystems: die Fähigkeit, über die Grenzen einzelner Apps hinaus zu denken und durch den gezielten Einsatz von Custom Functions (Deluge), APIs und cleveren Konfigurationen eine maßgeschneiderte Lösung zu schaffen, die exakt auf deine Bedürfnisse zugeschnitten ist.

Die Herausforderung: Wenn der Standard-Vertriebsprozess nicht mehr ausreicht

Stell dir ein typisches Szenario in einem Dienstleistungsunternehmen vor, das hochwertige Installationen anbietet – seien es Solaranlagen, Smart-Home-Systeme oder maßgefertigte Bauelemente. Der Prozess von der ersten Anfrage bis zur finalen Rechnung ist klar definiert, aber im Detail lauern die Tücken:

  • Automatisierte Angebotserstellung: Ein Workflow soll nach einem erfolgreichen Beratungstermin automatisch ein Angebot in Zoho Books erstellen. Was aber, wenn es sich um ein komplexes Sonderprojekt handelt, das eine manuelle Kalkulation erfordert? Der starre Automatismus führt hier zu Fehlern oder unterbricht den Prozess.
  • Kundendaten-Management: Das Unternehmen bedient sowohl Privatkunden (B2C) als auch Firmenkunden (B2B). Im CRM wird das Feld „Firma“ aber oft für den Familiennamen des Privatkunden genutzt. Das führt zu unsauberen Daten und peinlichen Anreden wie „Sehr geehrter Herr Firmenname GmbH“.
  • Mehrere Ansprechpartner: Bei Privatkunden sind oft zwei Partner gleichberechtigte Ansprechpartner. Wichtige Dokumente wie ein Pflegebrief oder eine Abtretungserklärung werden aber systembedingt nur für den Hauptkontakt generiert.
  • Datenkonsistenz: Bei der Übertragung von Daten von Zoho CRM nach Zoho Books treten kleine, aber ärgerliche Probleme auf. Preise werden durch Steuerberechnungen auf X,99€ gerundet und bei manuell erstellten Aufträgen wird nicht immer der korrekte Vertriebsmitarbeiter zugeordnet.

Diese Herausforderungen zeigen, dass eine tiefere Integration und Anpassung notwendig ist, um einen robusten und fehlerfreien Prozess zu gewährleisten. Im Folgenden zeigen wir dir Schritt für Schritt, wie du diese Probleme mit Bordmitteln von Zoho und etwas Logik lösen kannst.

Schritt-für-Schritt zur maßgeschneiderten Lösung

1. Den Workflow-Trigger für die Angebotserstellung entkoppeln

Das Kernproblem der fehlerhaften Angebotsautomatisierung liegt in einem zu allgemeinen Trigger. Die Lösung ist, die Prozesslogik feingranularer zu steuern.

So gehst du vor:

  1. Neue Deal-Phase erstellen: Gehe in Zoho CRM zu Einstellungen > Anpassung > Module und Felder > Abschlüsse und wähle die entsprechende Pipeline aus. Füge eine neue Phase hinzu, die du eindeutig benennst, z.B. „Angebot automatisch erstellen“.
  2. Bestehenden Workflow anpassen: Suche den Workflow, der bisher bei der Phase „Beratungstermin abgeschlossen“ getriggert wurde. Entferne die Aktion, die die Custom Function zur Angebotserstellung ausführt. Der Workflow kann weiterhin andere Aufgaben erledigen, wie z.B. eine E-Mail-Benachrichtigung senden.
  3. Neuen Workflow erstellen: Erstelle einen neuen Workflow, der ausschließlich auf die neue Phase „Angebot automatisch erstellen“ reagiert. Als Aktion für diesen Workflow legst du die Ausführung der bestehenden Custom Function fest.

Das Ergebnis: Du hast nun die volle Kontrolle. Nach einem Beratungstermin kannst du einen Deal entweder manuell in die Phase „Angebot automatisch erstellen“ schieben, um den Prozess anzustoßen, oder ihn für Sonderfälle in einer anderen Phase belassen, ohne dass ein fehlerhaftes Angebot generiert wird. Dies macht deinen Prozess robuster und flexibler.

Die Custom Function, die das Angebot erstellt, könnte in ihrer Grundstruktur so aussehen. Sie wird durch den neuen Workflow getriggert und erhält die ID des Deals.


// Deluge Script für eine Custom Function in Zoho CRM
// Argument: dealId (wird vom Workflow übergeben)

// 1. Deal-Informationen aus dem CRM abrufen
dealDetails = zoho.crm.getRecordById("Deals", dealId);

// 2. Relevante Daten extrahieren (Kunde, Produkte, etc.)
contactId = dealDetails.get("Contact_Name").get("id");
accountId = dealDetails.get("Account_Name").get("id");
// ... weitere Felder wie Produkte aus dem Subformular

// 3. Daten für Zoho Books vorbereiten
lineItemsList = List();
// Hier durch die Produkte im Deal iterieren und die 'line_items' für Books erstellen
for each product in dealDetails.get("Product_Details")
{
    item = Map();
    item.put("item_id", product.get("product").get("id"));
    item.put("quantity", product.get("quantity"));
    item.put("rate", product.get("unit_price"));
    lineItemsList.add(item);
}

// 4. API-Aufruf an Zoho Books zum Erstellen des Angebots (Estimate)
estimateMap = Map();
estimateMap.put("customer_id", contactId); // Oder accountId, je nach Logik
estimateMap.put("line_items", lineItemsList);
estimateMap.put("salesperson_name", dealDetails.get("Owner").get("name")); // Verkäufer direkt mitgeben

// Der eigentliche API Call
// Wichtig: 'zoho_books_connection' ist der Name deiner Verbindung zu Zoho Books
response = zoho.books.createRecord("Estimates", "ORGANIZATION_ID", estimateMap, "zoho_books_connection");
info response;

// Optional: Angebots-ID zurück in den Deal schreiben
updateMap = Map();
updateMap.put("Books_Estimate_ID", response.get("estimate").get("estimate_id"));
zoho.crm.updateRecord("Deals", dealId, updateMap);

2. B2B- und B2C-Kontakte sauber trennen

Um die Datenqualität zu erhöhen und peinliche Fehler in der Kommunikation zu vermeiden, ist eine saubere Trennung von Geschäfts- und Privatkunden unerlässlich. Dies erreichst du durch eine strukturelle Anpassung im Zoho CRM.

  1. Feld umbenennen: Gehe zu Einstellungen > Anpassung > Module und Felder > Leads. Benenne das bestehende Feld „Firma“, das bisher für den Familiennamen missbraucht wurde, in „Familie“ oder „Haushalt“ um.
  2. Neue Felder anlegen: Erstelle ein neues einzeiliges Textfeld „Firma“ für den echten Firmennamen. Erstelle außerdem ein Auswahllistenfeld „Kundentyp“ mit den Werten „B2C“ und „B2B“.
  3. Layout-Regel definieren: Gehe zu Einstellungen > Anpassung > Layouts > Layout-Regeln. Erstelle eine neue Regel für das Leads-Modul. Die Logik lautet: Wenn „Kundentyp“ gleich „B2B“ ist, dann zeige das Feld „Firma“ an. Ansonsten bleibt es verborgen. Das gleiche Prinzip wendest du später auf die Module Kontakte und Firmen an.

Diese einfache Anpassung sorgt für eine klare Datenstruktur und ermöglicht dir, in E-Mail-Templates und Dokumenten die Anrede dynamisch und korrekt zu gestalten.

3. Dokumente für einen zweiten Ansprechpartner erstellen

Wenn du oft mit Paaren oder Geschäftspartnern zu tun hast, musst du sicherstellen, dass deine Prozesse beide Personen berücksichtigen.

  1. Datenmodell erweitern: Füge im Modul „Abschlüsse“ ein neues Nachschlagefeld (Lookup Field) hinzu, das auf das Modul „Kontakte“ verweist. Nenne es „Zweiter Ansprechpartner“ oder „Partnerkontakt“. Hier kannst du nun die zweite Person direkt im Deal verknüpfen.
  2. Custom Functions anpassen: Die Skripte, die Dokumente wie den Pflegebrief oder die Abtretungserklärung erstellen, müssen erweitert werden. Bisher suchen sie den Kontakt vermutlich nur über das primäre Kontaktfeld des Deals. Die Logik muss nun prüfen, ob das neue Feld „Zweiter Ansprechpartner“ gefüllt ist.

Hier ist ein Beispiel, wie du die Custom Function anpassen kannst, um die zweite Person zu finden:


// Deluge Script, das prüft, ob ein zweiter Kontakt vorhanden ist
// Argument: dealId

// Deal-Daten abrufen
dealDetails = zoho.crm.getRecordById("Deals", dealId);

// Hauptkontakt-ID
mainContactId = dealDetails.get("Contact_Name").get("id");
info "Hauptkontakt ID: " + mainContactId;
// Hier Logik zur Dokumentenerstellung für den Hauptkontakt...

// Prüfen, ob ein zweiter Kontakt verknüpft ist
secondContactLookup = dealDetails.get("Zweiter_Ansprechpartner");
if(secondContactLookup != null)
{
    secondContactId = secondContactLookup.get("id");
    info "Zweiter Kontakt gefunden! ID: " + secondContactId;
    
    // Jetzt kannst du dieselbe Logik zur Dokumentenerstellung
    // auch für den zweiten Kontakt ausführen oder die Daten
    // in einem kombinierten Dokument verwenden.
    
    // Beispiel: Informationen des zweiten Kontakts abrufen
    secondContactDetails = zoho.crm.getRecordById("Contacts", secondContactId);
    info "Name des zweiten Kontakts: " + secondContactDetails.get("Full_Name");
}

4. Datenkonsistenz zwischen CRM und Books erzwingen

Kleine Abweichungen zwischen den Systemen können Vertrauen kosten und manuellen Nachbesserungsaufwand erzeugen. Hier sind zwei schnelle Lösungen direkt in Zoho Books.

Preisrundung korrigieren:
In Zoho Books, gehe zu Einstellungen > Voreinstellungen > Allgemeine Einstellungen. Suche nach einer Option, die sich auf die Rundung der Gesamtsumme („Grand Total“) bezieht und aktiviere sie. Dadurch werden Beträge wie 3.999,99 € automatisch auf 4.000,00 € aufgerundet, was professioneller aussieht.

Verkäufer korrekt zuweisen:
Damit auch bei manueller Bearbeitung in Zoho Books der richtige Vertriebler aus dem CRM-Deal übernommen wird, erstellst du einen Workflow direkt in Books.

  1. Gehe in Books zu Einstellungen > Automatisierung > Workflow-Regeln.
  2. Erstelle eine neue Regel für das Modul „Angebote“ (und später auch für „Aufträge“ und „Rechnungen“).
  3. Trigger: Bei Erstellung oder Bearbeitung.
  4. Aktion: Custom Function ausführen.

Das Deluge-Skript holt sich den verknüpften CRM-Deal und überschreibt den Verkäufer im Books-Dokument mit dem Besitzer des Deals.


// Deluge Script für einen Workflow in Zoho Books
// Argument: estimateId (wird vom Books-Workflow übergeben)

// 1. Angebotsdaten aus Books abrufen, um die CRM Deal ID zu bekommen
estimateDetails = zoho.books.getRecordsById("Estimates", "ORGANIZATION_ID", estimateId, "zoho_books_connection");
crmDealId = estimateDetails.get("estimate").get("zcrm_potential_id");

if(crmDealId != null)
{
    // 2. Deal-Daten aus CRM abrufen
    // Wichtig: 'zoho_crm_connection' ist der Name deiner Verbindung zu CRM
    dealDetails = zoho.crm.getRecordById("Deals", crmDealId, "zoho_crm_connection");
    dealOwnerName = dealDetails.get("Owner").get("name");
    
    // 3. Verkäufer im Books-Angebot aktualisieren
    updateMap = Map();
    updateMap.put("salesperson_name", dealOwnerName);
    
    updateResponse = zoho.books.updateRecord("Estimates", "ORGANIZATION_ID", estimateId, updateMap, "zoho_books_connection");
    info "Verkäufer aktualisiert: " + updateResponse;
}

Tipps und Best Practices

  • Modularisiere deine Workflows: Baue kleine, spezialisierte Workflows für einzelne Aufgaben, anstatt riesige, komplexe Automatisierungen zu erstellen. Das macht die Fehlersuche und Wartung erheblich einfacher.
  • Datenmodell vor Automatisierung: Sorge zuerst für eine saubere und logische Datenstruktur (wie im B2B/B2C-Beispiel). Die beste Automatisierung ist nutzlos, wenn sie auf falschen oder unsauberen Daten aufbaut.
  • Nutze das ganze Ökosystem: Denke daran, dass nicht nur Zoho CRM, sondern auch Zoho Books, Zoho Projects und Zoho Desk eigene, leistungsfähige Automatisierungs-Engines haben. Nutze sie dort, wo die Daten entstehen. Für komplexere, app-übergreifende Prozesse ohne Code ist Zoho Flow eine exzellente Wahl.
  • Teste gründlich: Teste nicht nur den „Happy Path“, sondern gerade die Sonderfälle. Was passiert, wenn ein Feld leer ist? Was passiert, wenn ein Deal manuell angelegt wird? Ein Sandbox-Account ist hierfür Gold wert.

Fazit: Mehr als nur die Summe seiner Teile

Dieses Praxisbeispiel zeigt eindrucksvoll, dass das Zoho-Ökosystem weit mehr ist als eine Sammlung einzelner Apps. Die wahre Magie entfaltet sich in der intelligenten Verknüpfung. Indem du Standardfunktionen mit maßgeschneiderten Custom Functions in Deluge, durchdachten Layout-Regeln und app-übergreifenden Workflows kombinierst, kannst du auch hochkomplexe und individuelle Geschäftsprozesse abbilden. Du baust dir damit nicht nur eine Softwarelösung, sondern ein digitales Abbild deines Unternehmens, das mit dir wächst und sich an neue Herausforderungen anpasst.

Die Investition in eine solche tiefe Integration zahlt sich durch weniger manuelle Fehler, eine höhere Datenqualität und letztlich durch mehr Zeit für deine eigentliche Arbeit aus. Die vorgestellten Lösungen basieren primär auf der Nutzung von Zoho CRM und Zoho Books, deren volles Potenzial sich erst durch die Skripting-Möglichkeiten von Deluge entfaltet.