Vom CRM zur Abrechnung: Wie Du Prozesse für Schulungen und Dienstleistungen mit Zoho automatisierst
Wenn Du im Dienstleistungs- oder Bildungssektor tätig bist, kennst Du die Herausforderung: Daten sind oft über verschiedene Systeme verteilt. Die Anmeldungen Deiner Teilnehmer landen im Zoho CRM, die Rechnungen werden in Zoho Books erstellt und die Kursbewertungen vielleicht in einem dritten Tool. Diese Datensilos führen zu manueller Arbeit, potenziellen Fehlern und einem unvollständigen Bild Deiner Kundenbeziehungen. Besonders spürbar wird dies, wenn es an die Abrechnung geht, zum Beispiel bei der Provisionsberechnung für freie Dozenten oder Partner. Es stellt sich die Frage: Wie bekommst Du relevante Finanzdaten, wie den Nettoumsatz oder den Zahlungsstatus, zurück ins CRM, um dort eine 360-Grad-Sicht zu erhalten und Prozesse zu automatisieren?
Dieser Artikel zeigt Dir an einem praxisnahen Beispiel, wie Du eine Brücke zwischen Deinen Finanz- und Kundendaten baust. Wir gehen Schritt für Schritt durch, wie Du einen Workflow aufsetzt, der nicht nur die Provisionsabrechnung vereinfacht, sondern auch einen automatisierten Wissenstest nach einer Schulung ermöglicht – alles durch die intelligente Kombination verschiedener Zoho-Apps und externer Anbindungen.
Das Praxisbeispiel: Ein typisches Szenario für Schulungsanbieter
Stell Dir vor, Du bietest spezialisierte Schulungen an. Der Prozess sieht typischerweise so aus:
- Ein Teilnehmer meldet sich über Deine Webseite für einen Kurs an.
- Im Zoho CRM wird automatisch ein Datensatz in einem benutzerdefinierten Modul, nennen wir es „Anmeldungen“, erstellt.
- Aus diesem Datensatz heraus wird eine Rechnung in Zoho Books generiert und an den Teilnehmer gesendet.
- Nach Zahlungseingang nimmt der Kunde an der Schulung teil.
Hier beginnen die Herausforderungen:
- Provisionsabrechnung: Deine Dozenten erhalten eine prozentuale Provision vom Nettoumsatz der von ihnen gehaltenen Kurse. Um diese zu berechnen, musst Du derzeit manuell in Zoho Books nach allen bezahlten Rechnungen für einen bestimmten Kurs suchen, die Nettobeträge exportieren und summieren. Das ist zeitaufwendig und fehleranfällig.
- Zertifizierung: Für bestimmte Kurse, zum Beispiel im Bereich HACCP oder Qualitätsmanagement, müssen Teilnehmer einen Wissenstest bestehen, bevor sie ein Zertifikat erhalten. Die manuelle Auswertung und der anschließende Versand sind mühsam und nicht skalierbar.
Das Ziel ist es, beide Prozesse zu automatisieren, um Zeit zu sparen, Fehler zu minimieren und Deinen Fokus auf das Wesentliche zu legen: qualitativ hochwertige Schulungen.
Die Lösung im Detail: Schritt für Schritt zum automatisierten Workflow
Wir lösen diese Aufgabenstellung durch eine Kombination aus Zoho CRM, Zoho Books, Zoho Forms und dem „Klebstoff“ des Zoho-Ökosystems: Zoho Flow.
Teil 1: Synchronisation der Finanzdaten von Zoho Books nach Zoho CRM
Unser erstes Ziel ist es, den Nettoumsatz und den Zahlungsstatus einer Rechnung automatisch in den zugehörigen „Anmeldungen“-Datensatz im CRM zurückzuschreiben. Der beste Weg hierfür ist ein Webhook in Zoho Books, der einen Workflow in Zoho Flow auslöst.
Schritt 1: Felder im Zoho CRM vorbereiten
Stelle sicher, dass Dein Modul „Anmeldungen“ im CRM die folgenden Felder enthält:
- Books Rechnungs-ID: Einzeiliges Textfeld
- Nettoumsatz: Währungsfeld
- Zahlungsstatus: Auswahlliste (z.B. „Offen“, „Bezahlt“, „Überfällig“)
Schritt 2: Webhook in Zoho Books erstellen
Gehe in Zoho Books zu Einstellungen > Automatisierung > Webhooks. Erstelle einen neuen Webhook, der beim Ereignis „Rechnung bezahlt“ (Invoice Paid) ausgelöst wird. Die Ziel-URL erhältst Du im nächsten Schritt von Zoho Flow.
Schritt 3: Workflow in Zoho Flow bauen
- Erstelle einen neuen Flow und wähle als Trigger „Webhook“. Kopiere die generierte URL und füge sie in Deinen Webhook in Zoho Books ein.
- Wenn der Webhook von Books ausgelöst wird, sendet er einen JSON-Payload mit allen Rechnungsdetails. Uns interessiert vor allem die
invoice_id
und die Referenz zur CRM-Anmeldung (diese musst Du beim Erstellen der Rechnung aus dem CRM übergeben, z.B. über ein Custom Fieldcf_anmeldung_id
). - Füge eine „Fetch Record“-Aktion für Zoho Books hinzu, um alle Details zur Rechnung anhand der
invoice_id
abzurufen. Das ist wichtig, um den genauen Nettobetrag zu erhalten. - Füge eine „Custom Function“ (Deluge Script) hinzu, um die Daten aufzubereiten und den richtigen CRM-Datensatz zu finden.
Codebeispiel: Deluge Custom Function in Zoho Flow
Diese Funktion sucht im CRM-Modul „Anmeldungen“ nach dem Datensatz, der zur Rechnung gehört, und aktualisiert ihn.
// Deluge-Funktion in Zoho Flow
// 'books_payload' ist die Variable, die die Daten vom Zoho Books Webhook enthält.
// 1. Relevante Daten aus dem Payload extrahieren
invoice_id = books_payload.get("invoice").get("invoice_id");
anmeldung_id_string = books_payload.get("invoice").get("custom_fields").get(0).get("value"); // Annahme: Die Anmeldungs-ID ist im ersten Custom Field
// 2. Suche den passenden Datensatz im CRM-Modul "Anmeldungen"
// Ersetze "Anmeldungen" und "Anmeldung_ID_Feld" mit deinen API-Namen
search_response = zoho.crm.searchRecords("Anmeldungen", "(Anmeldung_ID_Feld:equals:" + anmeldung_id_string + ")");
// 3. Prüfen, ob ein Datensatz gefunden wurde
if(search_response.size() > 0)
{
// Den ersten gefundenen Datensatz nehmen
anmeldung_record_id = search_response.get(0).get("id");
// 4. Rechnungsinformationen aus Zoho Books holen (optional, wenn nicht alles im Payload)
invoice_details = zoho.books.getRecordsByID("invoices", "ORGANIZATION_ID", invoice_id);
netto_umsatz = invoice_details.get("invoice").get("sub_total");
// 5. CRM-Datensatz aktualisieren
update_map = Map();
update_map.put("Nettoumsatz", netto_umsatz);
update_map.put("Zahlungsstatus", "Bezahlt");
update_response = zoho.crm.updateRecord("Anmeldungen", anmeldung_record_id, update_map);
info update_response;
}
else
{
// Fehlerbehandlung: Sende eine Nachricht an einen Cliq-Kanal
zoho.cliq.postToChannel("it_alerts", "Konnte Anmeldung für Rechnung " + invoice_id + " nicht im CRM finden.");
}
Mit diesem Flow werden Deine Anmeldungs-Datensätze im CRM automatisch mit den korrekten Finanzdaten angereichert. Die Provisionsabrechnung wird so zu einer einfachen Aufgabe, da Du nur noch eine Ansicht im CRM filtern und die Summen bilden musst – oder dies direkt mit Zoho Analytics visualisierst.
Teil 2: Automatisierter Wissenstest mit Zoho Forms und Zoho Flow
Nun zur zweiten Herausforderung: dem automatisierten Test. Während sich Zoho Survey hervorragend für Umfragen eignet, fehlt ihm die eingebaute Logik für eine automatische Bewertung. Hier springen Zoho Forms und Zoho Flow in die Bresche.
Schritt 1: Den Test in Zoho Forms erstellen
- Erstelle ein neues Formular in Zoho Forms.
- Verwende „Optionsfelder“ (Radio Buttons) für Single-Choice-Fragen.
- Profi-Tipp: Füge für jede Frage ein verstecktes Feld (Hidden Field) hinzu. In dieses Feld schreibst Du die korrekte Antwort. Das macht die Auswertungslogik in Zoho Flow extrem einfach und wartbar, da Du die Lösungen direkt im Formular anpassen kannst, ohne den Code zu ändern.
- Füge ein weiteres verstecktes Feld für die „Anmeldungs-ID“ hinzu. Diese ID übergibst Du per URL-Parameter, wenn Du den Link zum Test an den Teilnehmer sendest. (z.B.
.../form-url?anmeldung_id=12345
)
Schritt 2: Den Auswertungs-Flow in Zoho Flow einrichten
- Erstelle einen neuen Flow. Wähle als Trigger „Form Submitted“ von Zoho Forms und wähle Dein Test-Formular aus.
- Füge eine „Custom Function“ (Deluge) hinzu. Diese Funktion wird das Herzstück Deiner Auswertung.
- Die Funktion erhält die Formulardaten als Input. Sie durchläuft jede Frage, vergleicht die gegebene Antwort des Teilnehmers mit der korrekten Antwort aus dem zugehörigen versteckten Feld und zählt die richtigen Antworten.
Codebeispiel: Deluge-Auswertungslogik in Zoho Flow
// Deluge-Funktion, um ein Zoho Form auszuwerten
// 'form_data' ist die Input-Variable mit den Formulardaten
// 1. Initialisierung
total_questions = 10; // Passe die Gesamtzahl der Fragen an
correct_answers = 0;
// 2. Fragen einzeln prüfen (Beispiel für 2 Fragen)
// Annahme: Feldnamen sind Frage_1, Versteckt_Antwort_1, etc.
if(form_data.get("Frage_1") == form_data.get("Versteckt_Antwort_1"))
{
correct_answers = correct_answers + 1;
}
if(form_data.get("Frage_2") == form_data.get("Versteckt_Antwort_2"))
{
correct_answers = correct_answers + 1;
}
// ... füge hier Logik für alle weiteren Fragen hinzu
// 3. Ergebnis in Prozent berechnen
score_percentage = (correct_answers * 100) / total_questions;
// 4. Anmeldungs-ID aus dem Formular holen
anmeldung_id_string = form_data.get("anmeldung_id");
// 5. Ergebnis und Anmeldungs-ID an den Flow zurückgeben
result_map = Map();
result_map.put("score", score_percentage);
result_map.put("anmeldung_id", anmeldung_id_string);
return result_map;
Schritt 3: Ergebnis ins CRM schreiben und Folgeprozesse anstoßen
- Nach der Custom Function erhält der Flow das Ergebnis (Score und Anmeldungs-ID).
- Verwende eine „Update Record“-Aktion für Zoho CRM. Suche den Datensatz im Modul „Anmeldungen“ über die Anmeldungs-ID und schreibe den Score in ein dafür vorgesehenes Feld (z.B. „Testergebnis in %“).
- Das war’s für Zoho Flow! Den Rest erledigt eine native Workflow-Regel im CRM:
- Regel 1 (Bestanden): WENN „Testergebnis in %“ größer oder gleich 80 IST ⇒ DANN sende E-Mail-Vorlage „Zertifikat“ an den Teilnehmer.
- Regel 2 (Nicht bestanden): WENN „Testergebnis in %“ kleiner als 80 IST ⇒ DANN sende E-Mail-Vorlage „Wiederholungsmöglichkeit“ an den Teilnehmer.
Tipps und Best Practices
- Stabile Verknüpfungen: Das A und O für solche systemübergreifenden Prozesse sind eindeutige IDs. Stelle sicher, dass die ID eines Datensatzes (z.B. die „Anmeldungs-ID“) konsequent durch den gesamten Prozess von CRM über Books bis Forms weitergegeben wird.
- Automatisierung der Web-Formulare: Im Gespräch kam die Idee auf, die Schulungstermine auf der WordPress-Webseite direkt aus dem CRM zu laden, um manuelle Pflege zu vermeiden. Dies ist ein exzellenter nächster Schritt. Mit „Dynamic Prefill Webhooks“ oder der Zoho CRM API kannst Du eine Schnittstelle schaffen, die Termine dynamisch in Dropdown-Felder auf Deiner Webseite lädt. Das reduziert die Fehlerquelle „vergessene alte Termine“ auf null.
- Fehler-Monitoring: Was passiert, wenn ein Flow fehlschlägt? Richte Benachrichtigungen ein, z.B. über Zoho Cliq. Die Deluge-Beispiele oben enthalten bereits einen Hinweis darauf. So wirst Du sofort informiert, wenn eine Zuordnung nicht klappt.
- Skalierbarkeit: Die hier gezeigte Logik für den Wissenstest ist leicht erweiterbar. Dank der Speicherung der korrekten Antworten in versteckten Feldern kannst Du Fragen und Antworten im Formular ändern, ohne den Code in Zoho Flow anpassen zu müssen.
Fazit
Die wahre Stärke des Zoho-Ökosystems liegt nicht in den einzelnen Apps, sondern in ihrer nahtlosen Kombination. Durch das Zusammenspiel von Zoho CRM als zentraler Kundendatenbank, Zoho Books für die Finanzen und intelligenten Automatisierungs-Tools wie Zoho Flow und Zoho Forms kannst Du komplexe, manuelle Prozesse vollständig automatisieren. Du eliminierst nicht nur repetitive Aufgaben und Fehlerquellen, sondern schaffst auch eine einheitliche Datenbasis, die Dir wertvolle Einblicke für Geschäftsentscheidungen liefert. Der initiale Aufwand für die Konzeption und Umsetzung solcher Workflows zahlt sich durch massive Zeitersparnis und eine höhere Datenqualität schnell aus.
Verwendete Zoho Apps in diesem Lösungsansatz:
- Zoho CRM
- Zoho Books
- Zoho Flow
- Zoho Forms
- Zoho Cliq (optional für Benachrichtigungen)
- Zoho Analytics (optional für Auswertungen)