Du betrachtest gerade Zoho CRM, Projects und Cliq automatisiert für Agentur-Budget-Workflows lernen

Zoho CRM, Projects und Cliq automatisiert für Agentur-Budget-Workflows lernen

  • Beitrags-Autor:

Vom Chaos zum Cashflow: Agenturprozesse mit Zoho CRM, Projects und APIs steuern

Wenn du eine digitale Agentur, ein Systemhaus oder ein Beratungsunternehmen leitest, kennst du die tägliche Herausforderung: Du musst neue Projekte an Land ziehen, die Auslastung deines Teams managen und gleichzeitig den Überblick über Budgets und abrechenbare Stunden behalten. Oft fühlt sich die Ressourcenplanung wie ein Blick in die Glaskugel an, besonders wenn Projekte mit festen Paketen und solche mit flexiblen Stundenkontingenten parallel laufen. Das Zoho-Ökosystem bietet hierfür mächtige Werkzeuge. Doch ihre wahre Stärke entfalten sie erst, wenn sie intelligent miteinander und mit externen Diensten verknüpft werden. In diesem Artikel zeigen wir dir, wie du einen durchgängigen, hochautomatisierten Prozess vom Vertrieb bis zur Projektabwicklung aufbaust und dabei die volle Kontrolle behältst.

Praxisbeispiel: Die typische Agentur-Herausforderung

Stell dir vor, dein Vertriebsteam hat zwei neue Projekte gewonnen. Das erste Projekt, nennen wir es „Musterbau GmbH“, ist ein standardisiertes Implementierungspaket: Die Einrichtung von Zoho CRM für ein kleines Vertriebsteam. Der Aufwand ist klar definiert, sagen wir 24 Stunden. Das zweite Projekt, „Innovatec Solutions“, ist komplexer. Der Kunde ist technisch versiert und benötigt neben der CRM-Konfiguration eine Anbindung an sein proprietäres ERP-System über eine REST-API. Hierfür wurde ein initiales Stundenpaket von 50 Stunden verkauft, aber der genaue Aufwand ist schwer abzuschätzen.

Jetzt stellen sich die klassischen Fragen:

  • Wer im Team hat die Kapazität und die nötigen Skills für welches Projekt?
  • Wie wird aus der „gewonnenen“ Opportunity im CRM automatisch ein abrechenbares Projekt in Zoho Projects?
  • Wie stellt man sicher, dass das Stundenbudget nicht unbemerkt überschritten wird?
  • Wie wird der Projektmanager alarmiert, wenn ein Budget zu 80 % aufgebraucht ist, um rechtzeitig ein Folgeangebot zu erstellen?
  • Wie dokumentiert und realisiert man die geforderte API-Anbindung für „Innovatec Solutions“?

Genau diesen Prozess werden wir nun Schritt für Schritt mit den Bordmitteln von Zoho und gezielten API-Calls automatisieren.

Schritt-für-Schritt Anleitung: Dein automatisierter Projekt-Workflow

Unser Ziel ist ein nahtloser Übergang von einem „Geschäft auf Abschluss“ in Zoho CRM zu einem vollständig konfigurierten Projekt in Zoho Projects, inklusive Budgetüberwachung und Benachrichtigungen.

Schritt 1: Das Fundament in Zoho CRM legen

Alles beginnt im Vertrieb. Damit die Automatisierung funktioniert, benötigen wir in deinem Zoho CRM im Modul „Geschäftsabschlüsse“ (Opportunities) einige benutzerdefinierte Felder. Diese dienen als Datenquelle für die Projekterstellung.

  • Projekttyp: Ein Auswahlfeld (Picklist) mit Optionen wie „Standard-Paket“, „Technisches Projekt“, „Stundenkontingent (Retainer)“.
  • Budgetierte Stunden: Ein Zahlenfeld, in dem die verkauften Stunden eingetragen werden (z.B. 24 oder 50).
  • Projekt-Template ID: Ein einzeiliges Textfeld. Hier kannst du die ID eines Vorlagen-Projekts aus Zoho Projects eintragen, um standardisierte Aufgabenpläne automatisch zu übernehmen.

Sobald ein Geschäft auf die Phase „Gewonnen und abgeschlossen“ (oder eine ähnliche Endphase) gesetzt wird, soll unser Prozess starten. Dies erreichen wir mit einer Workflow-Regel, die eine benutzerdefinierte Funktion (Custom Function) in Deluge auslöst.

Schritt 2: Automatische Projekterstellung via Deluge und Zoho Projects API

Die benutzerdefinierte Funktion ist das Herzstück unserer Automatisierung. Sie liest die Daten aus dem CRM-Geschäftsabschluss aus und verwendet die Zoho Projects API, um ein neues Projekt anzulegen.

Gehe in Zoho CRM zu Einstellungen > Automatisierung > Workflow-Regeln und erstelle eine neue Regel für das Modul „Geschäftsabschlüsse“. Als Auslöser wählst du „Bei einer Datensatz-Aktion“ und als Aktion „Bearbeiten“, wobei die Regel nur greifen soll, wenn die „Phase“ auf „Gewonnen und abgeschlossen“ geändert wird. Als Sofortaktion wählst du „Funktion“.

Hier ist ein Beispiel für ein Deluge-Skript, das du verwenden kannst:

// Argumente der Funktion:
// crmDealId - Die ID des Geschäftsabschluss-Datensatzes

// 1. Geschäftsabschluss-Daten aus Zoho CRM abrufen
dealDetails = zoho.crm.getRecordById("Deals", crmDealId);
projectName = dealDetails.get("Deal_Name");
accountId = dealDetails.get("Account_Name").get("id");
accountDetails = zoho.crm.getRecordById("Accounts", accountId);
clientName = accountDetails.get("Account_Name");
budgetedHours = dealDetails.get("Budgetierte_Stunden");
projectTemplateId = dealDetails.get("Projekt_Template_ID");

// 2. Map mit den Projektdaten für die API vorbereiten
projectMap = Map();
projectMap.put("name", projectName + " - " + clientName);
projectMap.put("description", "Automatisch aus CRM-Deal #" + crmDealId + " erstellt.");
projectMap.put("template_id", projectTemplateId);
projectMap.put("billing_method", "based_on_task_hours"); // Wichtig für stundenbasierte Abrechnung

// Benutzerdefinierte Felder in Zoho Projects (müssen vorher angelegt werden)
customFields = Map();
customFields.put("Budgetierte Stunden", budgetedHours);
customFields.put("CRM Deal ID", crmDealId);
projectMap.put("custom_fields", customFields);

// 3. Projekt in Zoho Projects erstellen
// "zoho_projects_connection" ist der Name deines API-Connectors
response = zoho.projects.create("projects", projectMap, "zoho_projects_connection");
info response;

// Optional: CRM-Deal mit der neuen Projekt-ID aktualisieren
projectId = response.get("projects").get(0).get("id");
updateMap = Map();
updateMap.put("Zoho_Project_ID", projectId); // Ein weiteres Custom Field im CRM
zoho.crm.updateRecord("Deals", crmDealId, updateMap);

Mit diesem Skript wird jedes Mal, wenn ein Deal gewonnen wird, automatisch ein perfekt vorkonfiguriertes Projekt in Zoho Projects erstellt. Für das Projekt „Musterbau GmbH“ würdest du eine Template-ID hinterlegen, die alle Standard-Tasks enthält. Für „Innovatec Solutions“ lässt du das Feld vielleicht leer und planst individuell.

Schritt 3: Budget-Überwachung mit Webhooks und Zoho Cliq

Jetzt, da das Projekt existiert und das Stundenbudget hinterlegt ist, wollen wir proaktiv benachrichtigt werden, wenn sich die gebuchten Stunden dem Limit nähern. Hierfür nutzen wir eine Kombination aus Zoho Projects Webhooks, einer Zoho Catalyst Function (oder einer Funktion in Zoho Flow/Creator) und Zoho Cliq.

  1. Webhook in Zoho Projects einrichten: Gehe in Zoho Projects zu Einstellungen > Entwicklerbereich > Webhooks. Erstelle einen neuen Webhook, der bei der Aktion „Zeiterfassung > Hinzufügen“ ausgelöst wird. Als URL gibst du die URL deiner Zoho Function an.
  2. Zoho Function in Catalyst erstellen: Die Funktion empfängt die Daten vom Webhook. Sie muss dann die Gesamtstunden des Projekts abrufen, sie mit dem Budget vergleichen und bei Bedarf eine Aktion auslösen.

Hier ist ein Beispiel für die Deluge-Logik innerhalb der Zoho Function:

// Die Funktion wird vom Webhook mit JSON-Daten aufgerufen
// Wir extrahieren die Projekt-ID aus dem Payload
projectId = webhookPayload.get("projects").get("id_string");

// Projekt-Details via API abrufen, um das Budget und die gebuchten Stunden zu bekommen
projectDetails = zoho.projects.getRecordById("projects", projectId, "zoho_projects_connection");
budgetedHours = projectDetails.get("custom_fields").get("Budgetierte Stunden").toDecimal();
totalLoggedHours = projectDetails.get("task_log_hours").toDecimal() + projectDetails.get("bug_log_hours").toDecimal();

// Schwellenwerte für Benachrichtigungen definieren
firstWarningThreshold = 0.8; // 80%
finalWarningThreshold = 1.0; // 100%

usageRatio = totalLoggedHours / budgetedHours;

// Nachricht für Cliq vorbereiten
message = "";
if(usageRatio >= firstWarningThreshold && usageRatio = finalWarningThreshold)
{
    message = "🛑 *Budget-Stopp für Projekt " + projectDetails.get("name") + "* 🛑n"
            + "Das Budget von *" + budgetedHours + "* Stunden wurde mit *" + totalLoggedHours + "* Stunden überschritten.n"
            + "Weitere Buchungen sind nicht mehr budgetkonform!";
}

// Wenn eine Nachricht erstellt wurde, an den Projektmanagement-Channel in Cliq senden
if(message != "")
{
    cliqMessage = {"text": message};
    // "cliq_channel_connection" ist ein Connector zu einem bestimmten Cliq Channel
    zoho.cliq.postToChannel("projektmanagement", cliqMessage, "cliq_channel_connection");
}

return {"status":"success"};

Diese Automatisierung löst das Problem der Budgetkontrolle vollständig. Dein Team kann sich auf die Arbeit konzentrieren, und das System wacht im Hintergrund über die Finanzen. Statt Zoho Cliq könntest du auch eine E-Mail über Zoho ZeptoMail versenden oder eine Aufgabe im CRM für den Vertriebler erstellen, um ein Folgeangebot zu platzieren.

Schritt 4: Integration externer Systeme am Beispiel einer API

Kommen wir zum Projekt „Innovatec Solutions“ und der API-Anbindung. Zoho ist kein geschlossenes System. Über benutzerdefinierte Funktionen in Zoho Creator oder Zoho Catalyst kannst du praktisch jede externe REST-API ansprechen.

Angenommen, du musst Kundendaten aus Zoho CRM mit dem ERP-System des Kunden synchronisieren, sobald ein neuer Kontakt angelegt wird. Das kannst du ebenfalls über eine Workflow-Regel in CRM realisieren, die eine Funktion aufruft.

Der Deluge-Befehl hierfür lautet invokeurl.

// Funktion wird getriggert, wenn ein neuer Kontakt erstellt wird
// Argument: contactId

// 1. Kontaktdaten aus CRM holen
contactDetails = zoho.crm.getRecordById("Contacts", contactId);

// 2. Daten für das externe ERP-System formatieren (Payload)
erpPayload = Map();
erpPayload.put("customer_id", contactDetails.get("id"));
erpPayload.put("name", contactDetails.get("Full_Name"));
erpPayload.put("email", contactDetails.get("Email"));
erpPayload.put("phone", contactDetails.get("Phone"));

// 3. API-Aufruf an das externe System
// Die URL und der API-Key sind Platzhalter
apiUrl = "https://api.kunden-erp.de/v1/customers";
headers = Map();
headers.put("Authorization", "Bearer DEIN_GEHEIMER_API_KEY");
headers.put("Content-Type", "application/json");

// Sende die Daten an die externe API
response = invokeurl
[
	url :apiUrl
	type :POST
	parameters:erpPayload.toString()
	headers:headers
];

// 4. Protokollierung des Ergebnisses
info "API Response für Kontakt " + contactId + ": " + response;

// Hier könntest du noch eine Fehlerbehandlung einbauen,
// z.B. eine Notiz im Kontakt erstellen, wenn der Sync fehlschlägt.

Diese Fähigkeit, als „Middleware“ zu agieren, ist extrem wertvoll. Du kannst Zoho mit Systemen wie SAP, Microsoft Dynamics, DATEV oder beliebigen anderen Plattformen verbinden, die eine API anbieten. Für die Entwicklung und das Testen solcher Anbindungen sind Tools wie Postman oder Insomnia unerlässlich.

Tipps und Best Practices

  • Standardisiere, wo es geht: Nutze die Projektvorlagen in Zoho Projects intensiv. Sie sparen enorm viel Zeit bei wiederkehrenden Projekttypen und sichern eine gleichbleibende Qualität.
  • Schaffe Transparenz für deine Kunden: Gib deinen Kunden Zugriff auf das Kundenportal von Zoho Projects. Dort können sie den Fortschritt sehen, Dateien austauschen und ihre gebuchten Stunden einsehen. Das schafft Vertrauen und reduziert Nachfragen.
  • Umgang mit Retainern: Für Projekte mit monatlichen Stundenkontingenten (wie im Meeting-Beispiel „Ideolog“ oder „BS Systems“) kannst du Zoho Billing oder Zoho Books für die wiederkehrende Abrechnung nutzen. Die anfallenden Aufgaben und die Zeiterfassung verwaltest du weiterhin im selben Projekt in Zoho Projects, das über mehrere Monate läuft. Die Budget-Logik alarmiert dich, wenn das monatliche Kontingent erreicht ist.
  • Denke in Upsells: Die Budget-Warnung ist nicht nur ein Kontrollinstrument, sondern auch ein Vertriebssignal. Automatisiere die Erstellung einer Folge-Opportunity im CRM, sobald ein Projektbudget zu 80 % aufgebraucht ist. So vergisst dein Vertrieb nie, proaktiv auf den Kunden zuzugehen.

Fazit

Die Herausforderung, eine servicebasierte Agentur effizient zu steuern, lässt sich mit Zoho hervorragend meistern. Der Schlüssel liegt nicht allein in der Nutzung der einzelnen Apps, sondern in ihrer intelligenten Verknüpfung. Indem du den Prozess von der Opportunity in Zoho CRM über die automatisierte Erstellung in Zoho Projects bis hin zur proaktiven Budget-Überwachung via Webhooks und Zoho Cliq durchgängig gestaltest, schaffst du einen skalierbaren und fehlerresistenten Workflow. Die Fähigkeit, über Deluge-Funktionen auch externe APIs anzubinden, macht dein Zoho-System zur zentralen Datendrehscheibe deines Unternehmens. Du gewinnst nicht nur an Effizienz, sondern auch eine präzisere Planungsgrundlage und schaffst Freiräume, damit sich dein Team auf das konzentrieren kann, was wirklich zählt: exzellente Arbeit für deine Kunden.

Verwendete Zoho Apps in diesem Beispiel: