Zoho CRM, Zoho Books und DATEV per API für Quote-to-Cash-Prozess integrieren: Tutorial

  • Beitrags-Autor:

Beyond the App: Smarte Zoho-Integrationen für die Praxis – Vom CRM zur DATEV

Die Stärke von Zoho One und seinem Ökosystem liegt nicht nur in der Vielfalt der einzelnen Anwendungen. Der wahre Mehrwert entsteht, wenn du diese Tools intelligent miteinander und mit externen Diensten verbindest. Oft sind es die kleinen, automatisierten Schritte zwischen den Apps, die manuelle Arbeit eliminieren, Fehler reduzieren und Prozesse wirklich effizient machen. Doch viele Nutzer bleiben an der Oberfläche und schöpfen das Potenzial nicht aus. In diesem Artikel zeigen wir dir anhand eines konkreten, praxisnahen Beispiels, wie du mit Custom Functions, APIs und cleveren Workflows eine durchgängige Prozesskette vom Vertrieb im Zoho CRM über die Angebotserstellung in Zoho Books bis hin zur automatisierten Übergabe an die Buchhaltung via DATEV Unternehmen online aufbaust.

Die Herausforderung: Ein lückenhafter Quote-to-Cash-Prozess

Stell dir ein typisches Szenario in einem Dienstleistungs- oder Handwerksbetrieb vor: Der Vertrieb erfasst einen neuen Deal im Zoho CRM. Je nachdem, ob der Vertrag direkt vor Ort geschlossen oder ein Angebot aus dem Büro nachgereicht wird, müssen unterschiedliche rechtliche Rahmenbedingungen beachtet werden – zum Beispiel, ob die AGBs mitgeschickt werden müssen oder nicht. Bei der Angebotserstellung entsteht die nächste Hürde: Der Vertrieb denkt in Brutto-Endpreisen, die Zoho API zur Automatisierung verlangt aber Nettopreise. Das führt zu Rundungsdifferenzen und manueller Nacharbeit. Ist die Rechnung schließlich erstellt, beginnt der monatliche Export- und E-Mail-Marathon, um die Belege an den Steuerberater zu übermitteln. Jeder dieser Schritte ist eine potenzielle Fehlerquelle und ein Zeitfresser.

Schritt-für-Schritt: Dein Weg zum automatisierten Prozess

Wir lösen diese Herausforderungen, indem wir die Zoho-Anwendungen mit Logik versehen und sie nahtlos mit externen Systemen wie DATEV verbinden. Lass uns die drei Kernprobleme nacheinander angehen.

1. Dynamische AGBs: Die richtige Klausel zur richtigen Zeit

Das Ziel ist, die AGBs nur dann an ein Angebot anzuhängen, wenn sie wirklich benötigt werden. Die Entscheidungsgrundlage dafür liegt im Zoho CRM.

Schritt 1: Das Entscheidungsfeld im Zoho CRM anlegen

Im Modul „Deals“ (oder „Potentials“) legst du ein neues Picklisten-Feld an, z.B. mit dem Namen „Ausgang des Beratungsgesprächs“. Die Optionen könnten sein:

  • Vertrag vor Ort geschlossen
  • Angebot durch Innendienst

Schritt 2: Die Logik per Custom Function in Zoho Books umsetzen

Wenn aus dem CRM-Deal ein Angebot in Zoho Books erstellt wird, soll eine Funktion prüfen, welchen Wert dieses Feld hat. Bei „Angebot durch Innendienst“ sollen die AGBs angefügt werden. Der Clou: Wir schreiben die AGBs nicht fest in den Code, sondern ziehen sie dynamisch aus den Einstellungen von Zoho Books. Das macht die Lösung wartbar und flexibel.

Dazu erstellst du eine Custom Function (in Zoho CRM oder direkt in Zoho Flow), die bei der Erstellung eines Angebots ausgelöst wird. Die Logik sieht in Deluge so aus:


// Annahme: 'dealId' ist die ID des auslösenden CRM-Deals
// und 'estimateId' ist die ID des neu erstellten Angebots in Books.

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

// 2. Prüfe den Wert des entscheidenden Feldes
beratungsAusgang = ifnull(dealDetails.get("Ausgang_des_Beratungsgesprachs"),"");

// 3. Nur wenn AGBs benötigt werden, fahre fort
if (beratungsAusgang == "Angebot durch Innendienst")
{
    // 4. Hole die Organisationsdetails aus Zoho Books, um an die AGBs zu kommen
    // Du benötigst eine gültige Zoho Books Connection namens 'zohobooks'
    organizationId = zoho.books.getOrganizations().get(0).get("organization_id");
    orgDetails = zoho.books.getRecords("Organizations", organizationId, "zohobooks");
    
    // 5. Extrahiere den AGB-Text
    agbText = ifnull(orgDetails.get("organization").get("notes"), "");
    
    if (agbText != "")
    {
        // 6. Aktualisiere das Angebot in Zoho Books mit den AGBs
        updateMap = Map();
        updateMap.put("terms_and_conditions", agbText);
        updateResponse = zoho.books.updateRecord("Estimates", organizationId, estimateId, updateMap, "zohobooks");
        info "Angebot " + estimateId + " wurde mit AGBs aktualisiert: " + updateResponse;
    }
}

Mit diesem Skript stellst du sicher, dass deine AGBs immer aktuell sind und nur dann verwendet werden, wenn der Prozess es erfordert. Du änderst sie nur noch an einer zentralen Stelle: in den Zoho Books Einstellungen.

2. Die Brutto-Netto-Falle bei der API-Automatisierung umgehen

Ein bekanntes Problem: Du möchtest ein Angebot per API für einen glatten Bruttobetrag (z.B. 1.190,00 €) erstellen, musst der API aber einen Nettopreis übergeben. Bei 19 % MwSt. wäre das 1.000,00 €. Bei ungeraden Beträgen kommt es schnell zu Rundungsdifferenzen.

Für Angebote mit nur einer Position kannst du eine Custom Function als Workaround nutzen, die den Nettopreis aus einem Brutto-Gesamtbetrag im CRM-Deal zurückrechnet.

Die Logik in Deluge:


// Annahme: 'dealAmount' ist der Brutto-Gesamtbetrag aus dem CRM-Deal.
// 'taxRate' ist der Steuersatz, z.B. 19.0 für 19%.

bruttoGesamt = dealAmount;
steuersatzFaktor = 1 + (taxRate / 100); // z.B. 1.19

// Berechne den exakten Nettopreis
nettoEinzelpreis = bruttoGesamt / steuersatzFaktor;

// Runde kaufmännisch auf 2 Nachkommastellen für die API
nettoEinzelpreis_gerundet = nettoEinzelpreis.round(2);

// Diesen Wert übergibst du nun an die Zoho Books API, um das Angebot zu erstellen.
// info "Berechneter Nettopreis: " + nettoEinzelpreis_gerundet;

// Erstelle das Produkt für das Angebot
line_item = Map();
line_item.put("name", "Ihr individuelles Leistungspaket");
line_item.put("rate", nettoEinzelpreis_gerundet);
line_item.put("quantity", 1);
// ... weitere Produkt-Details

// Füge es zum Angebots-Map hinzu und erstelle das Angebot via API
// ...

Wichtig: Dies ist ein Workaround für einfache Fälle. Sobald mehrere Positionen im Spiel sind, wird es komplex. Hier bleibt oft nur die manuelle Anpassung oder die Hoffnung, dass Zoho die API zukünftig flexibler gestaltet. Dennoch hilft diese Funktion, einen Großteil der automatisierten Angebote korrekt zu erstellen.

3. Vollautomatische Buchhaltung: Zoho Books meets DATEV Unternehmen online

Der manuelle Export von Rechnungen und der Versand an den Steuerberater ist überflüssig. Die professionelle Lösung ist die Anbindung an DATEV Unternehmen online.

So funktioniert die Integration:

Die meisten Steuerberater, die DATEV nutzen, können für dich in „DATEV Unternehmen online“ eine spezielle E-Mail-Adresse einrichten. Alle an diese Adresse gesendeten Rechnungs-PDFs werden von DATEV automatisch per OCR-Texterkennung ausgelesen und dem Steuerberater zur Verbuchung bereitgestellt. Kein manueller Export, keine Aktenordner, kein Medienbruch.

Die Umsetzung in Zoho Books:

  1. E-Mail-Adresse vom Steuerberater anfordern: Frage deinen Steuerberater nach der E-Mail-Adresse für den Beleg-Upload in DATEV Unternehmen online.
  2. Workflow in Zoho Books erstellen: Gehe zu Einstellungen > Automatisierung > Workflow-Regeln.
  3. Neue Regel anlegen:
    • Modul: Rechnungen
    • Regelname: „Rechnung an DATEV senden“
    • Wann: „Erstellt“
    • Bedingungen: Keine (soll für jede Rechnung gelten) oder spezifische (z.B. nur für bestimmte Kunden)
    • Sofortige Aktionen: Wähle „E-Mail-Benachrichtigung“.
  4. E-Mail-Vorlage konfigurieren:
    • Empfänger: Wähle „Neue E-Mail-Adresse“ und trage die DATEV-E-Mail-Adresse ein.
    • Betreff: Eindeutig, z.B. „Ausgangsrechnung ${invoices.invoice_number}“
    • Nachricht: Ein einfacher Text genügt. Wichtig ist der Anhang.
    • Anhang: Setze den Haken bei „PDF der Transaktion anhängen“.
  5. Speichern und aktivieren. Das war’s! Ab jetzt wird jede neue, finale Rechnung in Zoho Books automatisch und ohne dein Zutun an DATEV übermittelt.

Dieser simple Workflow spart monatlich Stunden an Arbeit und sorgt für einen tagesaktuellen Buchungsstand beim Steuerberater.

Tipps und Best Practices

  • Effiziente Workflows: Achte bei der Erstellung von Workflows auf den richtigen Auslöser. Ein Workflow, der nur bei Änderung eines bestimmten Feldes ausgelöst wird, ist deutlich ressourcenschonender als einer, der bei jeder Bearbeitung des Datensatzes anspringt.
  • Browser-Kompatibilität: Manchmal liegt die Ursache für Probleme außerhalb von Zoho. Das Drucken aus Zoho Writer kann beispielsweise in manchen Browsern (wie Firefox) zu Layout-Problemen (z.B. leere Seiten) führen, während es in anderen (Chrome, Safari) einwandfrei funktioniert. Ein schneller Test in einem anderen Browser kann oft die Lösung sein.
  • Zentrale API-Verwaltung: Nutze dedizierte Verbindungen (Connections) in Zoho, um deine API-Schlüssel und Zugangsdaten sicher zu verwalten. Das erleichtert die Wartung und erhöht die Sicherheit.
  • Bankanbindung nutzen: Verbinde dein Bankkonto mit Zoho Books. Dies ist die Voraussetzung für einen automatischen Zahlungsabgleich und ein funktionierendes, automatisiertes Mahnwesen.

Zusätzliche Hinweise für den nächsten Schritt

Dein automatisierter Prozess ist die perfekte Basis für weitere Optimierungen:

  • Dokumentenablage: Erweitere den Workflow, um die erstellten Angebots- oder Rechnungs-PDFs automatisch in einem strukturierten Ordnersystem in Zoho WorkDrive abzulegen.
  • Business Intelligence: Nutze Zoho Analytics, um die Daten aus CRM (Deals, Umsätze) und Books (Rechnungen, Zahlungen) zu kombinieren. So kannst du Auswertungen über die gesamte Prozesskette fahren, z.B. „Wie lange dauert es vom Angebot bis zum Zahlungseingang?“.
  • Team-Kommunikation: Richte Benachrichtigungen in Zoho Cliq ein, die dein Team über wichtige Ereignisse informieren, z.B. wenn eine große Rechnung bezahlt wurde oder ein Angebot vom Kunden angenommen wird.

Fazit: Mehr als die Summe seiner Teile

Dieses Praxisbeispiel zeigt eindrücklich: Die wahre Stärke des Zoho-Ökosystems entfaltet sich erst durch die intelligente Verknüpfung der einzelnen Komponenten. Indem du Logik mit Deluge-Funktionen einbaust und APIs nutzt, um Brücken zwischen Zoho-Apps und externen Diensten wie DATEV zu schlagen, verwandelst du eine Sammlung guter Einzel-Tools in ein hocheffizientes, maßgeschneidertes Betriebssystem für dein Unternehmen. Der initiale Aufwand für die Konfiguration zahlt sich durch massive Zeitersparnis, weniger Fehler und transparente Prozesse schnell aus.

Verwendete Zoho Apps in diesem Beispiel: