Automatisierung
Die Automatisierung ermöglicht es Ihnen, Regeln zu erstellen, die automatisch Aktionen auslösen. Sie können Workflows einrichten, Bedingungen für die Ausführung definieren und Aktionen wie E-Mail-Benachrichtigungen, in-app-Benachrichtigungen, Feldaktualisierungen, Webhooks und benutzerdefinierte Funktionen verknüpfen. Außerdem können Sie Workflows planen und Protokolle der ausgeführten Workflows anzeigen.
Workflow-Regeln
Sie können Aufgaben wie E-Mails senden, Felder aktualisieren oder Webhooks oder benutzerdefinierte Funktionen auslösen, indem Sie in Zoho Books Workflow-Regeln erstellen. Die Workflow-Regel wird automatisch ausgelöst, sobald die Bedingungen erfüllt sind.
Szenario: John möchte automatisch eine Dankes-E-Mail mit Rabattkupon an Kunden senden, sobald diese eine Bestellung abgeschlossen haben. Dazu erstellt er in Zoho Books eine Workflow-Regel, sodass die Regel beim Abschluss der Zahlung durch den Kunden ausgelöst wird, eine E-Mail-Benachrichtigung gesendet wird und John dadurch Zeit und Aufwand spart.
Neue Workflow-Regel erstellen
Um eine neue Workflow-Regel zu erstellen:
- Gehe zu Einstellungen.
- Wählen Sie unter Automatisierung Workflow-Regeln aus.
- Klicken Sie in der oberen rechten Ecke auf + Neue Workflow-Regel.
- Im Popup „Neue Workflow-Regel“ füllen Sie die folgenden Felder aus:
- Name der Workflow-Regel: Geben Sie einen Namen für die Workflow-Regel ein.
- Beschreibung: Fügen Sie eine Beschreibung hinzu, wenn nötig.
- Modul: Wählen Sie das Modul für die Workflow-Regel aus dem Dropdown-Menü aus.
Hinweis: Sie können Workflow-Regeln für die folgenden Module erstellen:
- Verkauf
- Einkäufe
- Zeitverfolgung
- Kontakte
- Banktransaktionen
- Buchhalter
- Aufgaben
- Artikel
- Lageranpassungen
- Zahlungsbatches
- Lieferanten-Batch-Zahlungen
- Klicken Sie auf Weiter.
- Unter AUSFÜHRUNGSKRITERIEN DER WORKFLOW-REGEL füllen Sie die folgenden Felder aus:
- Workflow-Typ: Wählen Sie entweder ereignisbasiert oder zeitbasiert aus.
- Aktionstyp: Wählen Sie den Aktionstyp aus, der die Workflow-Regel auslöst.
- Ausführen, wenn: Wählen Sie die Aktionen aus, die die Workflow-Regel auslösen (Bearbeiten, bearbeitet oder erstellt).
- Ausführen, wenn das Dokument: Wählen Sie entweder erstmals bearbeitet oder jedes Mal bearbeitet aus.
Hinweis: Die Felder Ausführen, wenn und Ausführen, wenn das Dokument werden nur angezeigt, wenn der Aktionstyp auf Bearbeitet oder Bearbeitet oder erstellt gesetzt ist.
- Klicken Sie auf Weiter.
- Klicken Sie auf + Neue Kriterien um eine neue Kriterien-Regel für die Workflow-Regel zu erstellen:
- Klicken Sie in der rechten Seitenleiste auf Ja, um Kriterien hinzuzufügen, oder auf Nein, um sie zu überspringen.
- Wählen Sie ein Feld, einen Vergleichsoperator und geben Sie den erforderlichen Wert ein.
- Klicken Sie auf + Kriterium hinzufügen oder auf +, um zusätzliche Kriterien hinzuzufügen, wenn nötig.
- Wenn Sie mehrere Kriterien hinzufügen, wählen Sie aus dem Dropdown-Menü entweder UND oder ODER aus, abhängig davon, wie die Kriterien funktionieren sollen. Sie können die Kriterienmuster auch manuell im Feld Kriterienmuster eingeben.
- Sobald Sie die erforderlichen Kriterien hinzugefügt haben, klicken Sie auf Fertig.
- Fügen Sie Aktionen hinzu, indem Sie aus den folgenden Optionen wählen:
- + Sofortige Aktionen: Führt Aktionen sofort aus, sobald die Kriterien erfüllt sind.
- In der rechten Seitenleiste wählen Sie im Dropdown „Typ“ die gewünschte Art der Workflow-Aktion aus. Danach wählen Sie im Dropdown „Name“ die bereits erstellte und konfigurierte Workflow-Aktion aus oder klicken Sie auf + Neue %Workflow-Aktion% im Dropdown, um eine neue Workflow-Aktion hinzuzufügen.
- Klicken Sie auf + Neue Aktion hinzufügen, um weitere Aktionen hinzuzufügen, wenn nötig.
- Klicken Sie auf Verknüpfen, um die Aktionen mit den Kriterien zu verknüpfen.
- + Zeitbasierte Aktionen: Führt Aktionen basierend auf der geplanten Zeit aus.
- In der rechten Seitenleiste geben Sie im Feld Ausführungszeit die Zeit ein, zu der die Aktion ausgeführt werden soll.
- Wählen Sie im Dropdown „Typ“ die gewünschte Art der Workflow-Aktion aus. Danach wählen Sie im Dropdown „Name“ die bereits erstellte und konfigurierte Workflow-Aktion aus oder klicken Sie auf + Neue %Workflow-Aktion% im Dropdown, um eine neue Workflow-Aktion hinzuzufügen.
- Klicken Sie auf + Neue Aktion hinzufügen, um weitere Aktionen hinzuzufügen, wenn nötig.
- Klicken Sie auf Verknüpfen, um die Aktionen mit den Kriterien zu verknüpfen.
- + Sofortige Aktionen: Führt Aktionen sofort aus, sobald die Kriterien erfüllt sind.
- Klicken Sie auf Speichern, um die Workflow-Regel zu finalisieren und zu speichern. Jetzt, sobald Sie die Workflow-Regel erstellt haben, wird die Regel ausgeführt, sobald ein Ereignis auftritt, das mit dem ausgelösten Ereignis in der Workflow-Regel übereinstimmt, und die spezifizierte Aktion erfolgt.
Hinweis: Sie können bis zu 10 Kriterien für eine Workflow-Regel erstellen und innerhalb jedes Kriteriums bis zu 10 Kriterien hinzufügen.
Andere Aktionen in Workflow-Regeln
Die Reihenfolge der Workflow-Regeln ändern
Wenn Sie bestimmte Workflow-Regeln am Anfang der List View-Seite oder in einer bestimmten Reihenfolge anzeigen möchten, können Sie diese neu ordnen. So geht es:
- Gehe zu Einstellungen.
- Wählen Sie unter Automatisierung Workflow-Regeln aus.
- Wählen Sie das Modul aus, in dem Sie die Reihenfolge der Workflow-Regeln ändern möchten, indem Sie das Dropdown-Menü für das Modul auswählen.
- Klicken Sie in der oberen rechten Ecke auf Reihenfolge ändern.
- Wählen Sie nun die Regeln aus und ordnen Sie diese nach Ihren Vorlieben neu an.
- Nachdem Sie die erforderliche Reihenfolge geändert haben, klicken Sie auf Reihenfolge speichern.
Eine Workflow-Regel bearbeiten
- Gehe zu Einstellungen.
- Wählen Sie unter Automatisierung Workflow-Regeln aus.
- Bewegen Sie den Mauszeiger über die Workflow-Regel, die Sie bearbeiten möchten, und klicken Sie auf Bearbeiten.
- Machen Sie Ihre Änderungen und klicken Sie auf Speichern.
Eine Workflow-Regel klonen
Wenn Sie eine neue Workflow-Regel benötigen, die die gleichen Details wie eine bestehende Workflow-Regel enthält, können Sie die bestehende Regel klonen. So geht es:
- Gehe zu Einstellungen.
- Wählen Sie unter Automatisierung Workflow-Regeln aus.
- Bewegen Sie den Mauszeiger über die Workflow-Regel, die Sie klonen möchten, klicken Sie auf das Dropdown-Menü rechts und wählen Sie Klonen.
- Auf der Seite Neue Workflow-Regel überprüfen Sie die geklonten Details.
- Überprüfen Sie die ARBEITSSCHRIFF-REGEL-AUSFÜHRUNGSBEDINGUNGEN und klicken Sie auf Aktualisieren.
- Klicken Sie auf Speichern.
Eine Workflow-Regel als inaktiv markieren
Wenn Sie eine Workflow-Regel für eine Weile nicht verwenden werden, aber sie für zukünftige Nutzung beibehalten möchten, können Sie sie als inaktiv markieren, anstatt sie zu löschen. Um sie als inaktiv zu markieren:
- Gehe zu Einstellungen.
- Wählen Sie unter Automatisierung Workflow-Regeln aus.
- Bewegen Sie den Mauszeiger über die Workflow-Regel, die Sie als inaktiv markieren möchten, klicken Sie auf das Dropdown-Menü rechts und wählen Sie Als inaktiv markieren.
Benachrichtigungs-Einstellungen für Workflow-Regeln konfigurieren
Einblick:
- Sie können einen Workflow-Alarm bis zu 500 Mal pro Tag auslösen.
- Admins erhalten auch in-app-Benachrichtigungen, wenn ein Workflow-Aktion die spezifizierte Schwelle überschreitet.
Sie können tägliche Grenzwerte für Workflow-Alarm-Auslöser festlegen und E-Mail-Empfänger hinzufügen, um Benachrichtigungen zu erhalten, wenn die tägliche Schwelle erreicht wird. Sie können auch konfigurieren, wie Sie bei einem fehlgeschlagenen Workflow-Regel-Fehler-Protokoll-Benachrichtigungen erhalten. So konfigurieren Sie:
- Gehe zu Einstellungen.
- Wählen Sie unter Automatisierung Workflow-Regeln aus.
- Klicken Sie in der oberen rechten Ecke auf Benachrichtigungs-Einstellungen konfigurieren.
- In dem Popup Benachrichtigungs-Einstellungen konfigurieren füllen Sie die folgenden Felder aus:
- Verwendungsgrenzwert-Benachrichtigungen: Wählen Sie eine Schwelle aus, um Benachrichtigungen für Workflow-Aktionen wie E-Mail-Alarme, Webhooks und benutzerdefinierte Funktionen zu senden.
- Fehlerprotokoll-Benachrichtigungen: Wählen Sie die Häufigkeit und die Zeit für Benachrichtigungen aus und geben Sie die E-Mail-Empfänger an, die bei Bedarf die Fehlerprotokoll-Updates erhalten.
- Klicken Sie auf Speichern.
Eine Workflow-Regel löschen
- Gehe zu Einstellungen.
- Wählen Sie Workflow-Regeln unter Automatisierung aus.
- Bewegen Sie den Mauszeiger über die Workflow-Regel, die Sie löschen möchten, klicken Sie auf das Dropdown-Menü rechts und wählen Sie Workflow-Regel löschen.
- Klicken Sie im folgenden Popup auf Ja, um zu bestätigen.
Workflow-Aktionen
E-Mail-Benachrichtigungen
Die folgenden Schritte erklären, wie Sie eine E-Mail-Benachrichtigung für jedes Modul in Zoho Books einrichten können.
Erstellen einer neuen E-Mail-Benachrichtigung:
Um eine E-Mail-Benachrichtigung einzurichten, navigieren Sie zu
> Automatisierung > E-Mail-Benachrichtigungen und klicken Sie auf + Neue E-Mail-Benachrichtigung.

| Feld | Beschreibung |
|---|---|
| Name | Geben Sie einen einzigartigen Namen für die E-Mail-Benachrichtigung ein. |
| Modul | Wählen Sie das Modul aus, für das Sie eine E-Mail-Benachrichtigung erstellen möchten. |
| E-Mail-Vorlage | Sie können eine Vorlage aus dem Dropdown-Menü auswählen oder auf + Neue E-Mail-Vorlage hinzufügen klicken, wenn Sie eine neue Vorlage erstellen möchten.![]() |
| Empfänger | Wählen Sie aus dem Dropdown-Menü Kontakte aus, an die Sie die E-Mail-Benachrichtigungen senden möchten. |
| Zusätzliche Empfänger | Wenn Sie E-Mail-Benachrichtigungen an weitere Personen senden möchten, geben Sie ihre E-Mail-Adressen mit Komma getrennt ein. Bitte beachten Sie, dass Sie maximal 10 zusätzliche Empfänger hinzufügen können. |
Klicken Sie auf Speichern, um eine neue E-Mail-Benachrichtigung zu erstellen. Sie können nun aus dem Dropdown-Menü eine der vielen bereits erstellten E-Mail-Benachrichtigungen auswählen, um Benachrichtigungen zu erhalten, wenn ein Workflow ausgelöst wird.
Andere Aktionen in E-Mail-Benachrichtigungen
Löschen einer E-Mail-Benachrichtigung:
Um eine E-Mail-Benachrichtigung zu löschen, bewegen Sie den Mauszeiger neben einer E-Mail-Benachrichtigung in der Liste und klicken Sie auf das Löschen-Icon.

Filtern von E-Mail-Benachrichtigungen:
Um die Liste der E-Mail-Benachrichtigungen zu filtern, folgen Sie diesen Schritten:
- Navigieren Sie zu
> Automatisierung > E-Mail-Benachrichtigungen. - Unter Modul wählen Sie aus dem Dropdown-Menü das Modul aus, für das die E-Mail-Benachrichtigung erstellt wurde.
Je nach Ihrer Auswahl werden die entsprechenden E-Mail-Benachrichtigungen als Liste angezeigt.

Hinweise:
- Sie können pro Workflow-Regel maximal 5 E-Mail-Benachrichtigungen erstellen.
- Pro Tag können maximal 500 E-Mail-Benachrichtigungen ausgelöst werden.
In-App-Benachrichtigungen
Zoho Books ermöglicht es Ihnen, in-App-Benachrichtigungen zu erstellen, um Ihre Benutzer über einen Ereignis oder eine bedeutende Aktivität in Ihrer Organisation zu informieren. Sie können diese für alle Module einrichten und bestimmen, wann die Benachrichtigung ausgelöst werden soll.
Szenario: Angenommen, das Verkaufsteam hat in Ihrer Organisation einen Verkauf im Wert von 100000 erzielt. Nicht alle Admins und Benutzer der Organisation sind davon erfahren. Die Auslösung einer in-App-Benachrichtigung für Rechnungen, deren Gesamtbetrag über dem durchschnittlichen Verkaufsvalue der Organisation liegt, hätte alle Benutzer der Organisation benachrichtigt.
Ebenso können Sie eine Workflow-Regel einrichten, um in-App-Benachrichtigungen für Ihre Organisation auszulösen. Hier ist das Vorgehen:
Gehe zu Einstellungen in der oberen rechten Ecke der Seite.
Wählen Sie unter Automation Workflow Actions aus.
Wählen Sie im Bereich Workflow Actions In-app Notifications aus.
Klicken Sie in der oberen rechten Ecke auf + New In-app Notification.
Auf der Seite New In-app Notification:
- Erstellen Sie eine neue Workflow-Regel, indem Sie einen Name eingeben und das Modul auswählen.
- Wählen Sie wann die Benachrichtigung ausgelöst werden soll – Event Based oder Date Based.
- Legen Sie Filter und **Kriterien für den Workflow fest und klicken Sie auf Next.

- Wählen Sie den Action Type als In-app Notifications aus.
- Erstellen Sie eine neue Benachrichtigung, indem Sie auf + New In-app Notification unter Sale klicken.

- Aktivieren Sie die Option, um zeitbasierte Aktionen hinzuzufügen, und wählen Sie den Zeitpunkt aus, zu dem die Aktion ausgeführt werden soll.
- Legen Sie die Kriterien fest und klicken Sie auf Save.

Die nächste Zeit, wenn die Aktion ausgelöst wird, werden die ausgewählten Empfänger über das Bell-Symbol benachrichtigt. Klicken Sie darauf, um die Details anzuzeigen.
![]()
Feldaktualisierungen
Die Option Field Updates ermöglicht es, automatisch Änderungen an einem Feld eines bestimmten Moduls vorzunehmen, wenn ein Workflow ausgelöst wird. Zum Beispiel können Sie die Ablaufdatum eines Angebots automatisch auf den 30. Juni 2015 setzen, wenn der Gesamtbetrag größer oder gleich 500 $ ist. In diesem Fall wird das Feld Expiry Date auf das oben genannte Datum gesetzt, wenn das Feld Total “>=” 500 ist.
Um eine Feldaktualisierung einzurichten:
- Gehe zu Einstellungen in der oberen rechten Ecke der Seite.
- Wählen Sie unter Automation Workflow Actions aus.
- Wählen Sie im Bereich Workflow Actions Field Updates aus.
- Klicken Sie in der oberen rechten Ecke auf + New Field Update.
- Auf der Seite New Field Update geben Sie die folgenden Angaben ein:

| Feld | Beschreibung |
|---|---|
| Name | Geben Sie einen eindeutigen Namen für die Feldaktualisierung ein. |
| Modul | Wählen Sie ein Modul aus, für das Sie eine Feldaktualisierung erstellen möchten. |
| Aktualisieren | Wählen Sie das Feld aus, in dem Sie Änderungen vornehmen möchten, wenn ein Workflow ausgelöst wird, aus dem Dropdown-Menü. -Referenz -Ablaufdatum -Verkäufer -Notizen -Bedingungen -Anpassungsbeschreibung Geben Sie den Wert des Feldes in das entsprechende Feld ein. Wenn Sie das Feld mit einem leeren Wert aktualisieren möchten, aktivieren Sie die Option Update with empty value?. ![]() |
- Klicken Sie auf Save, um eine neue Feldaktualisierung zu erstellen. Sie können nun eine der vielen erstellten Feldaktualisierungen auswählen, um Änderungen vorzunehmen, wenn ein Workflow ausgelöst wird.
Andere Aktionen in Feldaktualisierungen
Feldaktualisierung löschen
Um eine Feldaktualisierung zu löschen:
- Gehe zu Einstellungen in der oberen rechten Ecke der Seite.
- Wählen Sie unter Automation Workflow Actions aus.
- Wählen Sie im Bereich Workflow Actions Field Updates aus.
- Bewegen Sie den Mauszeiger über die Feldaktualisierung, die gelöscht werden soll, und klicken Sie auf das Löschen-Icon.

Filtern von Feldaktualisierungen
Um Feldaktualisierungen zu filtern:
- Gehe zu Einstellungen in der oberen rechten Ecke der Seite.
- Wählen Sie unter Automatisierung Workflow-Aktionen aus.
- Im Bereich Workflow-Aktionen wählen Sie Feldaktualisierungen aus.
- Unter Modul wählen Sie ein Modul aus dem Dropdown-Menü aus, für das die Feldaktualisierung erstellt wurde.
Je nach Auswahl werden die entsprechenden Feldaktualisierungen als Liste angezeigt.

Hinweis: Für jedes Workflow-Regel können Sie maximal 3 Feldaktualisierungen erstellen.
Webhooks
Webhooks ermöglichen die Kommunikation mit externen Anwendungen, indem sie sofortige Web-Benachrichtigungen senden, sobald ein Ereignis in Zoho Books auftritt. Mit Webhooks können Sie HTTP- und HTTPS-URLs konfigurieren und diese mit Workflow-Regeln verknüpfen, um den Benachrichtigungsprozess zu automatisieren. Lesen Sie unsere Hilfedokumentation zu Webhook-Beispielen, um zu erfahren, wann und wie Sie Webhooks verwenden können.
Für allgemeine Informationen zu Webhooks besuchen Sie webhooks.org.
Ein Webhook erstellen
Um einen Webhook zu konfigurieren:
- Gehe zu Einstellungen in der oberen rechten Ecke der Seite.
- Wählen Sie unter Automatisierung Workflow-Aktionen aus.
- Im Bereich Workflow-Aktionen wählen Sie Webhooks aus.
- Klicken Sie in der oberen rechten Ecke auf + Neuer Webhook.

- Geben Sie auf der Seite Neuer Webhook die folgenden Angaben ein:
- Geben Sie einen Namen für den Webhook in das Feld Name ein.
- Wählen Sie das Modul aus, für das Sie den Webhook erstellen möchten, aus dem Dropdown-Menü neben dem Feld Modul.
- Fügen Sie eine Beschreibung zum Webhook im Feld Beschreibung ein, falls erforderlich.

Geben Sie in dem Feld URL & Parameter die HTTP-Methode ein und geben Sie die URL der externen Anwendung ein. Die verfügbaren HTTP-Methoden in Zoho Books sind unten aufgeführt:
- Post: Anfragen, bei denen die gesendeten Daten als neue Daten betrachtet werden müssen
- Put: Anfragen, bei denen die gesendeten Daten als aktualisierte Version der bereits vorhandenen Daten betrachtet werden müssen
- Delete: Anfragen, bei denen die Daten gelöscht werden müssen.
Hinweis: Wenn Sie eine Portnummer im Feld URL & Parameter angeben möchten, unterstützt Zoho Books nur die Portnummern 80 und 443.
Sie können zusätzliche Abfrageparameter hinzufügen, indem Sie auf Parameter hinzufügen klicken und die erforderlichen Werte in den Feldern Schlüssel und Wert eingeben. Sie können benutzerdefinierte Parameter wie Auth-Token, Sicherheits-Token, API-Schlüssel usw. hinzufügen.

- Aktivieren Sie die Option Ich möchte diesen Webhook sichern, wenn Sie Ihren Webhook sichern möchten. Geben Sie den Geheimschlüssel im Feld Geheimes Token ein. Dies hilft, zu überprüfen, ob der Webhook von Zoho Books gesendet wurde. Der Geheimschlüssel muss alphabetisch-numerisch sein und zwischen 12 und 50 Zeichen lang sein.
Hinweis: Sie können den Geheimschlüssel später nicht bearbeiten oder ansehen.

Notiz: Der Geheimschlüssel wird verwendet, um einen Hash-Wert zu berechnen, daher müssen Sie sicherstellen, dass der gleiche Schlüssel auf Ihrem Server verfügbar ist, um einen ähnlichen Hash-Wert zu berechnen.
- Im Abschnitt „Headers“ können Sie beliebige zusätzliche Informationen einbeziehen, die im HTTP-Anfrage enthalten sein sollen. Klicken Sie auf + Neuen Header hinzufügen, wenn Sie zusätzliche Header hinzufügen möchten.

Im Abschnitt „Authorization Type“ wählen Sie, wie Sie den Webhook autorisieren möchten.
- Self-Authorization: Wählen Sie diese Option aus, um Ihren Webhook manuell mit den Autorisierungsdetails zu konfigurieren.
- Connections: Wählen Sie diese Option aus, um Ihren Webhook über eine Verbindung zu konfigurieren. Lesen Sie unsere Hilfedokumentation zu „Connections“, um zu erfahren, wie Sie Verbindungen erstellen.

Im Abschnitt „Body“ wählen Sie, wie die Daten gesendet werden sollen. Sie können aus den folgenden Body-Parametern wählen:
- Default Payload: Im Standard-Payload-Format werden alle mit dem Modul verknüpften Parameter im Anfragekörper im Content-Type application/json gesendet.
- form-data: Die Daten werden als Text oder als Dateien gesendet. Wenn Sie Datei wählen, werden die benutzerdefinierten Felder für die Anhangart, die in dem Modul erstellt wurden, für das Webhook erstellt wurden, in der Dropdown-Liste angezeigt.
- x-www-form-urlencoded: Im x-www-form-urlencoded-Format werden die Daten kodiert und an den Server gesendet.
- Raw: Im Rohformat können Sie die Parameter im Anfragekörper auswählen. Der Content-Type wird auf application/json gesetzt.

- Klicken Sie auf Speichern und Ausführen, um zu überprüfen, ob der Webhook ordnungsgemäß funktioniert, oder klicken Sie auf Speichern, wenn Sie die Ausführung später durchführen möchten.
Notiz: Wenn Sie Webhooks einrichten, werden alle Kontaktdaten Ihrer Zoho Books-Organisation (Name, Telefonnummer, Adresse und E-Mail-Adresse) an die URL weitergegeben, die Sie benachrichtigen möchten.
Webhook-Beispiele
Um Ihnen zu helfen, zu verstehen, wie Webhooks in Zoho Books funktionieren, haben wir einige Beispiele aufgeführt. Diese geben Ihnen einen klaren Überblick darüber, wie Webhooks in Ihrem Geschäft eingesetzt werden können.
Ihre Webhooks sichern
Die Sicherung Ihrer Webhooks kann helfen, zu überprüfen, ob die Webhooks tatsächlich von Zoho Books stammen. Dazu müssen Sie Ihren Server so einrichten, dass er Webhooks von Zoho Books empfängt. Wenn Ihr Server einen Webhook von Zoho Books erhält, muss ein Hash-Wert basierend auf dem Payload und Ihrem Geheimschlüssel generiert werden. Sobald dies erfolgt, wird überprüft, ob er mit dem Hash-Wert von Zoho Books übereinstimmt, und so die Quelle des Webhooks validiert. Dies kann eine zusätzliche Sicherheit schaffen, indem Ihr Server Webhooks von Dritten ablehnt, die sich als von Zoho Books stammend ergeben.
Webhooks validieren
Wenn Ihr Server das Webhook-Ereignis empfängt, muss ein Hash-Wert für den Payload in derselben Weise wie Zoho Books generiert werden. Dies ist notwendig, um denselben Hash-Wert zu erzeugen, um das Webhook-Ereignis zu validieren.
Folgende Parameter (falls vorhanden) werden verwendet, um den Hash-Wert zu generieren:
- Query-String-Parameter.
- Standard-Payload oder kundenspezifischer Roh-JSON-Payload.
- x-www-form-urlencoded-Payload (Key-Value-Paare).
Bauen Sie eine Zeichenkette durch Sortierung der Key-Value-Paare des Payloads alphabetisch auf. Die Paare müssen alphabetisch nach ihren Keys sortiert werden.
Hinweis
- Wenn Ihr Webhook Query-String-Parameter enthält, stellen Sie sicher, dass diese Key-Value-Paare zusammen mit den Key-Value-Paaren des Payloads sortiert werden.
- Es dürfen keine Leerzeichen zwischen den Key-Value-Paaren vorhanden sein.
Nachdem die Key-Value-Paare sortiert wurden und die Zeichenkette erstellt wurde, fügen Sie den Roh-JSON-Payload am Ende der Zeichenkette hinzu.
Beispiele
- Standard-Payload
Query-String-Parameter (Key-Value-Paare):
subscription_id=90343, name=basic
Standard-Payload/Roh-JSON:
{"created_date":"2019-03-06","event_id":"5675"}
Die erzeugte Zeichenkette wäre:
namebasicsubscription_id90343{"created_date":"2019-03-06","event_id":"5675"}
- x-www-form-urlencoded
Query-String-Parameter (Key-Value-Paare):
customer_name=Brandon, status=active
x-www-form-urlencoded-Payload (Key-Value-Paare):
addon_description=Monthly addon, quantity=1
Die erzeugte Zeichenkette wäre:
addon_descriptionMonthly addoncustomer_nameBrandonquantity1statusactive
Pro-Tipp
- Wenn Ihr Payload im Format x-www-form-urlencoded ist, muss die gesamte Zeichenkette vor der Hash-Generierung entschlüsselt werden.
- Wenn ein Key-Value-Paar Leerzeichen enthält, müssen diese Leerzeichen ebenfalls in der erzeugten Zeichenkette enthalten sein.
Der Hash-Wert kann durch Anwendung des HMAC-SHA256-Algorithmus auf diese Zeichenkette mit dem geheimen Token, das in Zoho Books verwendet wurde, berechnet werden.
Sie können das Webhook-Signatur überprüfen, indem Sie prüfen, ob der von Ihnen berechnete Hash-Wert mit demjenigen im Header (X-Zoho-Webhook-Signature) des von Zoho Books empfangenen Webhooks übereinstimmt.
Sie können Ihre Webhook-Unterschrift mit den folgenden Programmiersprachen überprüfen:
JavaScript:
const crypto = require('crypto');
function verifyWebhook(queryParams, bodyParams, signature, secretKey) {
try {
const constructedString = constructString(queryParams, bodyParams);
const hmac = crypto.createHmac('sha256', secretKey);
hmac.update(constructedString);
const calculatedSignature = hmac.digest('base64');
return calculatedSignature === signature;
} catch (error) {
console.error(error);
return false;
}
}
function constructString(queryParams, bodyParams) {
// Merge and sort keys
const allParams = { ...queryParams, ...bodyParams };
const sortedKeys = Object.keys(allParams).sort();
let result = '';
for (const key of sortedKeys) {
result += key + allParams[key];
}
return result;
}Java:
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.util.Map;
import java.util.TreeMap;
import java.util.Base64;
public class Hmacverify {
public static boolean verifyWebhook(Map<String, String> queryParams, Map<String, String> bodyParams, String signature, String secretKey) {
try {
String constructedString = constructString(queryParams, bodyParams);
Mac sha256HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(), "HmacSHA256");
sha256HMAC.init(secretKeySpec);
byte[] hash = sha256HMAC.doFinal(constructedString.getBytes());
String calculatedSignature = Base64.getEncoder().encodeToString(hash);
return calculatedSignature.equals(signature);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
private static String constructString(Map<String, String> queryParams, Map<String, String> bodyParams) {
StringBuilder result = new StringBuilder();
TreeMap<String, String> sortedParams = new TreeMap<>(queryParams);
sortedParams.putAll(bodyParams);
for (Map.Entry<String, String> entry : sortedParams.entrySet()) {
result.append(entry.getKey()).append(entry.getValue());
}
return result.toString();
}
}Python:
import hmac
import hashlib
import base64
def verifyWebhook(queryParams, bodyParams, signature, secretKey):
constructedString = constructString(queryParams, bodyParams)
calculatedSignature = base64.b64encode(hmac.new(secretKey.encode(), constructedString.encode(), hashlib.sha256).digest()).decode()
return calculatedSignature == signature
def constructString(queryParams, bodyParams):
# Merge and sort query and body parameters
allParams = {**queryParams, **bodyParams}
sortedParams = sorted(allParams.items())
result = ''.join([key + value for key, value in sortedParams])
return resultBeispielnutzung
queryParams = {‘subscription_id’: ‘90343’, ’name’: ‘basic’} bodyParams = {‘created_date’: ‘2019-03-06’, ’event_id’: ‘5675’} signature = ‘provided-signature’ secretKey = ‘your-secret-key’
verifyWebhook(queryParams, bodyParams, signature, secretKey)
SMS-Gateways konfigurieren
Sie können Webhooks einrichten, um Nachrichtenalerts über SMS-Gateways zu senden und zu empfangen. Dazu müssen Sie nur die SMS-Gateways mit der URL konfigurieren und die unten angegebenen Schritte befolgen.
Bulk SMS
Bulk SMS ist ein beliebter SMS-Gateway und ist mit über 800 Mobilfunknetzwerken weltweit kompatibel.
URL: https%username%&password=%password%&msisdn=${CONTACT.CONTACT_MOBILE_PHONE}&message=%message_content%
Um die URL für Bulk SMS zu konfigurieren:
- Klicken Sie auf das Rädchen-Icon im oberen rechten Bereich und wählen Sie Automatisierung.
- Navigieren Sie zur Webhooks-Registerkarte und klicken Sie auf + Neuer Webhook.
- Fügen Sie die obige URL in das Feld URL zur Benachrichtigung ein.
- Ersetzen Sie die Platzhalter %username% und %password% in der URL durch den Benutzernamen und das Passwort Ihres Bulk SMS-Kontos.
- Geben Sie Ihre Nachricht am Ende der URL ein, also nach “message=”.
- Ersetzen Sie alle Leerzeichen in Ihrem Nachrichteninhalt durch %20 und alle Kommas durch %2C.

Hinweis: Wenn in Ihrem Nachrichteninhalt andere Zeichen vorhanden sind, können Sie prüfen, wie diese mit Modifikatoren aus dieser Website ersetzt werden. Achten Sie jedoch darauf, dass Sie Zeichen nicht ersetzen, die für die Syntax der Nachricht notwendig sind.
Nach Formatierung Ihrer Nachricht mit %20 für Leerzeichen und %2C für Kommas sollte es wie folgt aussehen:
URL: https
://bulksms.vsms.net/eapi/submission/send_sms/2/2.0?username= %username%&password=%password%&msisdn=${CONTACT.CONTACT_MOBILE_PHONE}&message=Hello%20${CONTACT.CONTACT_NAME}.Thank%20you%20for%20the%20purchase%20of%20${INVOICE.INVOICE_TOTAL}
Ebenso können andere SMS-Gateways konfiguriert werden, wobei nur die URL variiert.
SMS-Magic
SMS-Gateways wie SMS-Magic erfordern, dass Sie zusätzliche Entity-Parameter eingeben, um die Webhook-Konfiguration vorzunehmen.
Um SMS-Magic zu konfigurieren:
- Geben Sie die URL https
://sms-magic.in/smapi/post im Feld URL zur Benachrichtigung ein. - Klicken Sie auf +Entity-Parameter hinzufügen.
- Geben Sie im Parameterfeld den folgenden Text ein:

<?xml version="1.0"?>
<m:Library xmlns:m="http://screen-magic.com" xmlns="http://www.defns.com">
<userid>**User_ID**</userid>
<senderid>**%Sender_ID**</senderid>
<accountid>**%Account_ID**</accountid>
<hashkey>**%hashkey%**</hashkey>
<message mobilenumber="${CONTACT.CONTACT_MOBILE_PHONE}" >
<![CDATA[${INVOICE.INVOICE_TOTAL}]]>
</message>
</m:Library>
Ersetzen Sie die Platzhalter in der URL durch den User ID, Sender ID und Account ID Ihres SMS-Magic-Kontos. Der hashkey bezieht sich auf einen standardmäßigen md5-hash eines Strings, der aus Ihrem User ID, Passwort, Account ID und Sender ID zusammengesetzt ist.
Hinweis: Um den hashierten md5-Wert zu erzeugen, können Sie die Website hier besuchen.
Text Local
Text Local erfordert einen Entity-Parameter sowie einen benutzerdefinierten Parameter, um funktionieren zu können.
Um Text Local zu konfigurieren:

- Geben Sie die URL http
://api.textlocal.in/send/ im Feld URL zur Benachrichtigung ein. - Klicken Sie auf +Benutzerdefinierten Parameter hinzufügen.
- Fügen Sie die Parameter sender und apikey hinzu und ersetzen Sie die Platzhalter in der URL durch die entsprechenden Informationen aus Text Local.
- Klicken Sie auf +Entity-Parameter hinzufügen.
- Geben Sie einen Namen für den Parameter ein und wählen Sie aus dem Dropdown-Menü die erforderlichen Bedingungen aus. Beispiel: numbers = ${CONTACT.CONTACT_MOBILE_PHONE}
- Aktivieren Sie das Feld Benutzerdefinierte Parameter hinzufügen und geben Sie die Nachricht ein, die gesendet werden soll, sowie alle notwendigen Platzhalter.
- Klicken Sie auf Speichern.
Andere Aktionen in Webhooks
Webhooks löschen
Um einen Webhook zu löschen:
- Gehe zu Einstellungen im oberen rechten Bereich der Seite.
- Wähle unter Automatisierung die Option Workflow-Aktionen.
- Im Bereich Workflow-Aktionen wähle Webhooks aus.
- Bewege die Maus über den Webhook, den du löschen möchtest, und klicke auf das Löschen-Icon.

- Klicke im erscheinenden Popup auf Ja. Der Webhook wird gelöscht. Wenn Sie den Webhook in einer Workflow-Regel verwendet haben, stellen Sie sicher, dass Sie die Workflow-Regel aktualisieren, da die Workflow-Regel möglicherweise nicht mehr ausgelöst wird.
Filtern von Webhooks
Um die Liste der Webhooks zu filtern, folgen Sie diesen Schritten:
- Gehe zu Einstellungen in der oberen rechten Ecke der Seite.
- Wählen Sie unter Automatisierung Workflow-Aktionen aus.
- Im Bereich Workflow-Aktionen wählen Sie Webhooks aus.
- Unter Modul wählen Sie ein Modul aus dem Dropdown-Menü aus, für das der Webhook erstellt wurde.
Abhängig von Ihrer Auswahl wird die entsprechende Webhook-Liste angezeigt.

Hinweis
- Sie können pro Workflow-Regel nur einen Webhook erstellen.
- Maximal 500 Webhooks können pro Tag ausgelöst werden.
Benutzerdefinierte Funktionen
Benutzerdefinierte Funktionen in Zoho Books ermöglichen es Ihnen, kleine Codeabschnitte zu schreiben, um Ihre Geschäftsprozesse zu automatisieren. Ob ein spezieller Rabatt auf die Rechnungen Ihrer Kunden gewährt wird oder eine Spätaufnahme bei einer überfälligen Rechnung hinzugefügt wird – Sie müssen nur einen Codeabschnitt mit Deluge-Skript schreiben und ihn einer Workflow-Regel zuordnen, sodass der Prozess automatisch abgewickelt wird.
Was ist Deluge?
Deluge (Data Enriched Language for the Universal Grid Environment) ist eine online-integrierte Skriptsprache in Zoho Creator. Sie ermöglicht es den Benutzern, Logik schrittweise hinzuzufügen, wodurch die Anwendung leistungsfähiger und robuster wird.
Weitere Informationen zu Deluge finden Sie im Deluge-Hilfesystem.
Wenn Sie Deluge durch Schreiben von Codebeispielen lernen möchten, klicken Sie bitte hier.
Erstellen und Ausführen einer benutzerdefinierten Funktion
Um eine benutzerdefinierte Funktion einzurichten,
- Gehe zu Einstellungen in der oberen rechten Ecke der Seite.
- Wählen Sie unter Automatisierung Workflow-Aktionen aus.
- Im Bereich Workflow-Aktionen wählen Sie Benutzerdefinierte Funktionen aus.
- Klicken Sie in der oberen rechten Ecke auf + Neue benutzerdefinierte Funktion.

- Auf der Seite „Neue benutzerdefinierte Funktion“:
- Geben Sie einen Namen für Ihre benutzerdefinierte Funktion ein und geben Sie eine kurze Beschreibung an.
- Wählen Sie das Modul aus, für das Sie die benutzerdefinierte Funktion erstellen möchten.
- Wählen Sie die Programmiersprache aus, in der Sie den Code der benutzerdefinierten Funktion schreiben möchten.
- Wenn Sie Deluge als Programmiersprache gewählt haben, klicken Sie auf Weiter und geben Sie die Parameter ein oder ziehen Sie diese in den Deluge-Editor.
- Wenn Sie eine andere Programmiersprache als Deluge gewählt haben, müssen Sie den Code der benutzerdefinierten Funktion über die Zoho Finance CLI eingeben. Weitere Informationen.

- Sobald Sie fertig sind, klicken Sie auf Speichern.
Im nächsten Schritt erstellen Sie eine Workflow-Regel mit der neu erstellten benutzerdefinierten Funktion.
- Gehe zurück zum Bereich Automatisierung und wähle Workflow-Regeln aus.
- Erstellen Sie eine neue Workflow-Regel und legen Sie die Auslöser fest.
- Nun gehen Sie im Bereich Aktionen auf Benutzerdefinierte Funktionen und wählen Sie Ihre neu erstellte benutzerdefinierte Funktion aus.
- Klicken Sie auf Speichern. Jetzt wird, sobald die Kriterien erfüllt sind, die Workflow-Regel ausgelöst, was wiederum die benutzerdefinierte Funktion auslöst.
Standardfelder
Derzeit unterstützen benutzerdefinierte Funktionen die Module: Benutzer, Organisation, Angebote, Rechnungen, Verkaufsbestellungen, Einkaufsbestellungen, Kunden, Wiederholende Rechnungen, Ausgaben, Rechnungen, Wiederholende Rechnungen und Artikel.
Diese Module verfügen über die folgenden Felder, aus denen Sie die notwendigen Parameter für Ihre benutzerdefinierte Funktion erhalten können.
Benutzer
Das Feld „Benutzer“ unterstützt die folgenden Parameter:
| Schlüsselfelder | Beschreibung |
|---|---|
| name | Name des Benutzers |
| zuid | ZUID des Benutzers |
Organisation
Das Organisationfeld unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| organization_id | Ihre Organisation-ID |
| name | Name der Organisation |
| time_zone | Zeitzone Ihrer Organisation |
| language_code | Sprache der Organisation |
| date_format | Datumformat Ihrer Organisation |
| currency_id | Währungs-ID |
| currency_code | Währungskode |
| currency_symbol | Währungssymbol |
| address | Adresse der Organisation |
| phone | Kontakttelefonnummer der Organisation |
| fax | Faxnummer |
| website | Organisation URL |
| E-Mail-Adresse | |
| portal_name | Name des Portals Ihrer Organisation |
Beispiel-Map:
{
"time_zone": "Asia/Calcutta",
"language_code": "en",
"currency_id": "7605000000000099",
"phone": "99999999999",
"fax": "check",
"website": "",
"email": "charles@zylker.com",
"address": {
"zip": "624001",
"country": "India",
"city": "New Delhi",
"street_address2": "Block 15",
"street_address1": "6/35 Garden Lane,",
"state": "Delhi"
},
"organization_id": "12345678",
"name": "Zlyker Industries",
"date_format": "dd MMM yyyy",
"currency_symbol": "Rs.",
"portal_name": "zylkerindustry",
"currency_code": "INR"
}
Angebot
Das Angebot-Feld unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| quote_id | Angebot-ID |
| quote_number | Ihre Angebotnummer |
| date | Angebotdatum |
| reference_number | Referenznummer Ihres Angebots |
| status | Status Ihres Angebots |
| customer_id | ID des Kunden, der dem Angebot zugewiesen ist |
| customer_name | Name Ihres Kunden |
| currency_id | Währungs-ID |
| currency_code | Währungskode |
| currency_symbol | Währungssymbol |
| exchange_rate | Wechselkurs im Angebot |
| expiry_date | Ablaufdatum des Angebots |
| discount_amount | Rabattbetrag |
| discount | Rabatt |
| shipping_charge | Versandkosten im Angebot |
| adjustment | Anpassungen |
| sub_total | Bruttobetrag des Angebots |
| total | Gesamtbetrag des Angebots |
| tax_total | Gesamtbetrag der Steuern im Angebot |
| billing_address | Rechnungsadresse des Kunden |
| shipping_address | Versandadresse des Kunden |
| notes | Notizen |
| terms | Bedingungen und Allgemeine Geschäftsbedingungen |
| custom_fields | Anbieter-Optionen |
| salesperson_id | ID des Verkäufer |
| salesperson_name | Name des Verkäufer |
Beispiel-Map:
{
"total": "12000.0",
"terms": “checking",
"quote_id": "7605000000320001",
"date": "2016-06-03",
"quote_number": "EST-000026",
"shipping_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": “Fax Number”
},
"salesperson_name": “Salesperson”,
"adjustment": "0.0",
"currency_symbol": "Rs.",
"salesperson_id": "7605000000336089",
"currency_code": "INR",
"shipping_charge": "0.0",
"custom_fields": [
{
"customfield_id": "7605000000190011",
"is_active": true,
{
"show_in_all_pdf": false,
"value_formatted": "Check-6",
"data_type": "autonumber",
"index": 1,
"label": "auto number",
"show_on_pdf": false,
"value": "Check-6"
},
"currency_id": "7605000000000099",
"exchange_rate": "1.0",
"status": "invoiced",
"sub_total": "12000.0",
"customer_name": "Customer",
"discount_amount": "0.0",
"discount": "0.0",
"tax_total": "0.0",
"reference_number": "Ref number",
"notes": "Looking forward for your business.",
"expiry_date": "2016-06-03",
"customer_id": "7605000000258011",
"billing_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
}
}
Rechnung
Der Rechnungsmappen unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| due_date | Fälligkeitsdatum der Rechnung |
| payment_expected_date | Erwartetes Zahlungsdatum der Rechnung |
| reference_number | Referenznummer der Rechnung |
| customer_id | Kunden-ID |
| customer_name | Name des Kunden, der der Rechnung zugewiesen ist |
| currency_id | Währungs-ID |
| currency_code | Währungscode |
| currency_symbol | Währungssymbol |
| exchange_rate | Wechselkurs, der in der Rechnung berücksichtigt wird |
| discount_amount | Rabattbetrag, der in der Rechnung berücksichtigt wird |
| discount | Rabatt, der in der Rechnung berücksichtigt wird |
| shipping_charge | Versandgebühr, die in der Rechnung eingegeben wurde |
| adjustment | Anpassungen |
| sub_total | Der Zwischensumme der Rechnung |
| tax_total | Gesamtsteuerbetrag in der Rechnung |
| total | Gesamtsumme |
| balance | Ausgleich |
| price_precision | Anzahl der Dezimalstellen |
| billing_address | Rechnungsadresse des Kunden |
| shipping_address | Versandadresse des Kunden |
| notes | Notizen |
| terms | Bedingungen |
| custom_fields | Anpassungsfelder der Rechnung |
| salesperson_id | ID des Verkäufer |
Beispiel-Mappen:
{
"total": "0.0",
"payment_terms": "0",
"terms": "Checking",
"price_precision": "2",
"payment_expected_date": "2016-06-31",
"date": "2016-06-30",
"shipping_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
},
"balance": "0.0",
"adjustment": "0.0",
"currency_symbol": "Rs.",
"salesperson_id": "7605000000336089",
"currency_code": "INR",
"shipping_charge": "0.0",
"custom_fields": [
{
"customfield_id": "7605000000336081",
"is_active": true,
"show_in_all_pdf": false,
"value_formatted": "INV-8",
"data_type": "autonumber",
"index": 1,
"label": "AutoNumber",
"show_on_pdf": false,
"value": "INV-8"
},
{
"customfield_id": "7605000000351027",
"is_active": true,
"show_in_all_pdf": true,
"value_formatted": "01 Aug 2016",
"data_type": "date",
"index": 2,
"label": "Date",
"show_on_pdf": true,
"value": "2016-08-01"
}
],
"currency_id": "7605000000000099",
"exchange_rate": "1.0",
"status": "draft",
"sub_total": "12000.0",
"customer_name": "Customer",
"invoice_number": "INV-000087",
"discount_amount": "12000.0",
"discount": "100.00%",
"tax_total": "0.0",
"reference_number": "checking",
"due_date": "2016-06-30",
"invoice_id": "7605000000369043",
"notes": "Thanks for your business.",
"customer_id": "7605000000258011",
"billing_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
}
}
Verkaufsbestellung
| Schlüsselfelder | Beschreibung |
|---|---|
| date | Datum der Bestellung |
| tax_total | Gesamtsteuerbetrag in der Bestellung |
| zcrm_potential_id | ID des Potenzials in Zoho CRM |
| discount_amount | Rabattbetrag in der Bestellung |
| salesorder_id | Bestell-ID |
| discount | Rabatt |
| shipment_date | Datum der Lieferung |
| billing_address | Rechnungsadresse des Kunden |
| line_items | Artikelpositionen |
| currency_code | Währungscode |
| total | Gesamtbetrag |
| delivery_method_id | Liefermethode-ID |
| terms | Bedingungen |
| delivery_method | Liefermethode |
| shipping_address | Versandadresse des Kunden |
| exchange_rate | Wechselkurs in der Bestellung |
| currency_symbol | Währungssymbol |
| custom_fields | Kundenspezifische Felder der Bestellung |
| quote_id | Angebot-ID |
| reference_number | Referenznummer der Bestellung |
| salesperson_name | Name des Verkäufer |
| salesperson_id | ID des Verkäufer |
| shipping_charge | Versandkosten in der Bestellung |
| salesorder_number | Ihre Bestellnummer |
| sub_total | Bruttobetrag der Bestellung |
| zcrm_potential_name | Name des Potenzials in Zoho CRM |
| adjustment | Anpassungen |
| customer_name | Name des Kunden, der der Bestellung zugewiesen ist |
| customer_id | ID des Kunden, der der Bestellung zugewiesen ist |
| currency_id | Währungs-ID |
| status | Status Ihrer Bestellung |
Beispiel-Karte:
{
"date": "2016-05-23",
"tax_total": "0.0",
"zcrm_potential_id": "",
"discount_amount": "1200.0",
"salesorder_id": "7605000000295003",
"discount": "10.00%",
"shipment_date": "2016-05-23",
"billing_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
},
"line_items": [
{
"bcy_rate": 12000,
"line_item_id": "7605000000295011",
"quantity": 1,
"item_id": "7605000000259147",
"tax_name": "",
"description": "",
"discount": 0,
"item_total": 12000,
"item_custom_fields": [
],
"tax_id": "",
"is_invoiced": true,
"item_order": 0,
"tags": [
],
"stock_on_hand": "",
"unit": "",
"rate": 12000,
"tax_type": "tax",
"name": "Moto",
"tax_percentage": 0
}
],
"currency_code": "INR",
"total": "10820.0",
"delivery_method_id": "7605000000461053",
"terms": "Terms & Conditions",
"delivery_method": "Door Delivery",
"shipping_address": {
"zip": "",
"country": "",
"address": "",
"city": "",
"state": "",
"fax": ""
},
"exchange_rate": "1.0",
"currency_symbol": "Rs.",
"custom_fields": [
{
"customfield_id": "7605000000321009",
"is_active": true,
"show_in_all_pdf": true,
"value_formatted": "Text",
"data_type": "string",
"index": 1,
"label": "Text",
"show_on_pdf": true,
"value": "Text"
}
],
"quote_id": "7605000000405047",
"reference_number": "Reference",
"salesperson_name": "Arun",
"salesperson_id": "7605000000135003",
"shipping_charge": "10.0",
"salesorder_number": "SO-00002",
"sub_total": "12000.0",
"zcrm_potential_name": "",
"adjustment": "10.0",
"customer_name": "Arun",
"customer_id": "7605000000101007",
"currency_id": "7605000000000099",
"status": "invoiced"
}
Einkaufsrechnung
Die Karte für die Einkaufsrechnung unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| date | Datum der Einkaufsrechnung |
| delivery_address | Lieferadresse |
| delivery_org_address_id | ID des Lieferorganisation-Adressen |
| purchaseorder_id | Bestellnummer |
| expected_delivery_date | Erwarteter Liefertermin |
| billing_address | Rechnungsadresse der Bestellung |
| line_items | Artikel der Bestellung |
| currency_code | Währungscode |
| total | Gesamtsumme der Bestellung |
| delivery_customer_id | Lieferkunden-ID |
| exchange_rate | Wechselkurs der Bestellung |
| currency_symbol | Währungssymbol |
| custom_fields | Kundenspezifische Felder der Bestellung |
| ship_via_id | ID des Versandwegs |
| vendor_name | Name des Lieferanten |
| reference_number | Referenznummer Ihrer Bestellung |
| purchaseorder_number | Bestellnummer |
| delivery_date | Lieferdatum |
| vendor_id | Lieferanten-ID |
| sub_total | Bruttobetrag der Bestellung |
| ship_via | Versandart |
| attention | Aufmerksamkeit |
| crm_owner_id | ID des Zoho CRM-Besitzers |
| currency_id | Währungs-ID |
| status | Status |
Beispiel-Map:
{
"date": "2016-07-11",
"delivery_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
},
"tax_total": "0.0",
"delivery_org_address_id": "7605000000054013",
"purchaseorder_id": "7605000000378500",
"expected_delivery_date": "",
"billing_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
},
"line_items": [
{
"bcy_rate": 1000,
"line_item_id": "7605000000378504",
"quantity": 1,
"item_id": "7605000000298021",
"tax_name": "",
"description": "",
"item_total": 1000,
"tax_id": "",
"item_order": 0,
"tags": [
],
"unit": "No",
"account_id": "7605000000000403",
"rate": 1000,
"tax_type": "tax",
"account_name": "Advertising And Marketing",
"name": "Moto G Turbo Edition",
"tax_percentage": 0
}
],
"currency_code": "INR",
"total": "1000.0",
"delivery_customer_id": "",
"exchange_rate": "1.0",
"currency_symbol": "Rs.",
"custom_fields": "[]",
"ship_via_id": "7605000000461053",
"vendor_name": "Mr. Vendor",
"reference_number": "Reference",
"purchaseorder_number": "PO-00006",
"delivery_date": "2016-07-11",
"vendor_id": "7605000000112009",
"sub_total": "1000.0",
"ship_via": "Door Delivery",
"attention": "Arun",
"crm_owner_id": "",
"currency_id": "7605000000000099",
"status": "billed"
}
Kunde
Die Kunde-Map unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| owner_id | ID des zugehörigen Besitzers |
| billing_address | Rechnungsadresse des Kunden |
| source | Quelle des Kunden |
| contact_id | Kontakt-ID |
| payment_terms | Zahlungsbedingungen des Kunden |
| currency_code | Währungscode |
| language_code | Sprachcode |
| contact_type | Typ des Kontakts |
| Twitter-Informationen | |
| zcrm_contact_id | ID des Kontakts in Zoho CRM |
| shipping_address | Versandadresse des Kunden |
| pricebook_id | ID des Preisbuchs |
| contact_name | Name des Kontakts |
| website | Website des Kontakts |
| owner_name | Name des Kontakts-Besitzers |
| currency_symbol | Währungssymbol |
| zcrm_account_id | ID des Zoho CRM-Kontos |
| custom_fields | Kundenspezifische Felder |
| Facebook-Informationen | |
| pricebook_name | Name des Preisbuchs |
| primary_contact_id | ID des primären Kontakts |
| company_name | Name des Unternehmens |
| contact_salutation | Kontaktsalutation |
| crm_owner_id | ID des CRM-Besitzers |
| currency_id | Währungs-ID |
| payment_terms_label | Zahlungsbedingungen-Label |
| status | Status |
Beispiel-Karte:
{
"owner_id": "",
"shipping_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
},
"source": "user",
"contact_id": "7605000000197147",
"payment_terms": "0",
"currency_code": "INR",
"language_code": "en",
"contact_type": "customer",
"twitter": "",
"zcrm_contact_id": "",
"billing_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
},
"pricebook_id": "",
"contact_name": "Arun",
"website": "www.zoho.com",
"owner_name": "",
"currency_symbol": "Rs.",
"zcrm_account_id": "418070000000135001",
"custom_fields": [
{
"customfield_id": "7605000000063049",
"is_active": true,
"show_in_all_pdf": false,
"value_formatted": "1234",
"data_type": "number",
"index": 1,
"label": "Unpaid Invoices",
"show_on_pdf": false,
"value": "1234"
}
],
"facebook": "",
"pricebook_name": "",
"primary_contact_id": "7605000000197149",
"company_name": "Zoho",
"contact_salutation": "",
"crm_owner_id": "",
"currency_id": "7605000000000099",
"payment_terms_label": "Due on Receipt",
"status": "active"
}
Wiederkehrender Rechnung
Die Karte für wiederkehrende Rechnungen unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| end_date | Enddatum des Profils für wiederkehrende Rechnungen |
| tax_total | Gesamtsteuerbetrag in der wiederkehrenden Rechnung |
| discount_amount | Rabattbetrag in der wiederkehrenden Rechnung |
| repeat_every | Wiederholungsintervall des Profils für wiederkehrende Rechnungen |
| discount | Rabatt in der wiederkehrenden Rechnung |
| taxes | Steuern, die mit der wiederkehrenden Rechnung verbunden sind |
| billing_address | Rechnungsadresse des Kunden |
| line_items | Artikel in der wiederkehrenden Rechnung |
| payment_terms | Zahlungsbedingungen, die mit dem Kunden verbunden sind |
| currency_code | Währungscode |
| last_sent_date | Datum der letzten versandten Rechnung |
| total | Gesamtbetrag |
| recurrence_name | Name des Profils für wiederkehrende Rechnungen |
| shipping_address | Versandadresse des Kunden |
| next_invoice_date | Datum der nächsten zu versendenden Rechnung |
| recurrence_frequency | Häufigkeit des Profils für wiederkehrende Rechnungen |
| recurring_invoice_id | ID des Profils für wiederkehrende Rechnungen |
| contact_persons | Beteiligte Kontakte an der wiederkehrenden Rechnung |
| start_date | Startdatum des Profils für wiederkehrende Rechnungen |
| exchange_rate | Wechselkurs in der wiederkehrenden Rechnung |
| currency_symbol | Währungssymbol |
| custom_fields | Anpassungsfelder für wiederkehrende Rechnungen |
| salesperson_name | Name des Verkäuferpersons, die an der wiederkehrenden Rechnung beteiligt ist |
| salesperson_id | ID des Verkäuferpersons, die an der wiederkehrenden Rechnung beteiligt ist |
| shipping_charge | Versandkosten, die in der wiederkehrenden Rechnung eingegeben wurden |
| sub_total | Zwischensumme der wiederkehrenden Rechnung |
| adjustment | Anpassungen |
| customer_name | Name des Kunden, der an der wiederkehrenden Rechnung beteiligt ist |
| customer_id | ID des Kunden, der an der wiederkehrenden Rechnung beteiligt ist |
| status | Status des Profils für wiederkehrende Rechnungen |
Beispiel-Karte:
{
"end_date": "2016-10-15",
"tax_total": "0.0",
"discount_amount": "1.0",
"repeat_every": "2",
"discount": "1.00%",
"taxes": "[]",
"billing_address": {"zip":"","fax":"","address":"","state":"","country":"","city":""},
"line_items": [{"tags":[],"tax_name":"","tax_type":"tax","item_custom_fields":[],"product_type":"service","line_item_id":"348960000000103013","discount":0,"unit":"","item_order":0,"rate":100,"item_id":"","description":"%(d)%-%(m-2)%-%(y)%","name":"","quantity":1,"tax_id":"","tax_percentage":0,"item_total":100}],
"payment_terms": "0",
"currency_code": "GBP",
"last_sent_date": "",
"total": "200.0",
"recurrence_name": "1",
"shipping_address": {"zip":"","fax":"","address":"","state":"","country":"","city":""},
"next_invoice_date": "",
"recurrence_frequency": "months",
"recurring_invoice_id": "348960000000103005",
"contact_persons": "[]",
"start_date": "2016-01-07",
"exchange_rate": "1.0",
"currency_symbol": "£",
"custom_fields": [{"value_formatted":"EST-001","index":1,"is_active":true,"data_type":"string","show_on_pdf":false,"value":"EST-001","show_in_all_pdf":false,"label":"Quote Number","customfield_id":"348960000000056001"},{"value_formatted":"15 Oct 2016","index":2,"is_active":true,"data_type":"date","show_on_pdf":false,"value":"2016-10-15","show_in_all_pdf":false,"label":"Date","customfield_id":"348960000000056003"},{"value_formatted":"true","index":3,"is_active":true,"data_type":"check_box","show_on_pdf":false,"value":true,"show_in_all_pdf":false,"label":"Invoice Factoring","customfield_id":"348960000000056079"},{"value_formatted":"£100.00","index":4,"is_active":true,"data_type":"amount","show_on_pdf":true,"value":100,"show_in_all_pdf":true,"label":"Amount","customfield_id":"348960000000060003"},{"value_formatted":"10%","index":5,"is_active":true,"data_type":"percent","show_on_pdf":true,"value":10,"show_in_all_pdf":true,"label":"Percentage","customfield_id":"348960000000060005"}],
"salesperson_name": "Arun N",
"salesperson_id": "348960000000111001",
"shipping_charge": "100.0",
"sub_total": "100.0",
"adjustment": "1.0",
"customer_name": "iArun",
"customer_id": "348960000000051041",
"status": "expired"}
Ausgabe
Der Ausgabemapping unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| date | Datum |
| payment_mode | Zahlungsart |
| custom_fields | Benutzerdefinierte Felder der Ausgabe |
| vendor_name | Name des Lieferanten |
| is_billable | Rechnungsfähigkeit der Ausgabe |
| line_items | Artikel der Ausgabe |
| project_name | Name des Projekts |
| reference_number | Referenznummer der Ausgabe |
| currency_code | Währungscode |
| total | Gesamtsumme |
| project_id | ID des Projekts |
| vendor_id | ID des Lieferanten |
| sub_total | Zwischensumme der Ausgabe |
| customer_name | Name des Kunden |
| customer_id | ID des Kunden |
| expense_id | Ausgabeid |
| currency_id | Währungs-ID |
Beispiel-Mapping:
{
"date": "2016-10-08",
"payment_mode": "Cash",
"custom_fields": "[]",
"vendor_name": "Vendor",
"is_billable": "true",
"line_items": [{"tags":[],"tax_name":"Standard Rate","item_order":1,"tax_type":"tax","account_id":"348960000000000400","description":"Notes","tax_amount":16.67,"product_type":"goods","tax_id":"348960000000044037","line_item_id":"348960000000184015","tax_percentage":20,"item_total":83.33,"account_name":"Office Supplies"}],
"project_name": "",
"reference_number": "12345",
"currency_code": "GBP",
"total": "100.0",
"project_id": "",
"vendor_id": "348960000000051033",
"sub_total": "83.33",
"customer_name": "Accounts",
"customer_id": "348960000000111017",
"expense_id": "348960000000184003",
"currency_id": "348960000000000103"
}
Rechnung
Der Rechnungsmappen unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| date | Datum der Rechnung |
| bill_id | ID der Rechnung |
| purchaseorder_ids | ID der Bestellung, die betroffen ist |
| tax_total | Gesamtbetrag der Steuern in der Rechnung |
| exchange_rate | Wechselkurs, der in der Rechnung berücksichtigt wird |
| currency_symbol | Währungszeichen |
| custom_fields | Benutzerdefinierte Felder der Rechnung |
| due_date | Fälligkeitsdatum der Rechnung |
| vendor_name | Name des Lieferanten |
| billing_address | Rechnungsadresse |
| line_items | Artikel in der Rechnung |
| payment_terms | Zahlungsbedingungen, die dem Lieferanten zugeordnet sind |
| payment_expected_date | Erwartetes Zahlungsdatum |
| reference_number | Referenznummer der Rechnung |
| currency_code | Währungscode |
| total | Gesamtbetrag der Rechnung |
| bill_number | Rechnungsnummer |
| payment_made | Zahlung, die für die Rechnung erfolgt ist |
| balance | Restbetrag |
| recurring_bill_id | ID des wiederholenden Rechnungsprofils |
| vendor_id | ID des Lieferanten |
| sub_total | Bruttobetrag der Rechnung |
| status | Status der Rechnung |
Beispiel-Mappen:
{
"date": "2016-10-12",
"bill_id": "348960000000193039",
"purchaseorder_ids": "[]",
"tax_total": "0.0",
"exchange_rate": "1.0",
"currency_symbol": "£",
"custom_fields": "[]",
"due_date": "2016-10-15",
"vendor_name": "Vendor",
"billing_address": {"zip":"","fax":"","address":"","state":"","country":"","city":""},
"line_items": [{"tags":[],"tax_name":"","project_name":"","tax_type":"tax","account_id":"348960000000000412","customer_name":"","is_billable":false,"product_type":"goods","line_item_id":"348960000000193047","invoice_number":"","sku":"","purchaseorder_item_id":"","account_name":"Credit Card Charges","unit":"1","item_order":0,"rate":33000,"bcy_rate":33000,"item_id":"348960000000087031","description":"","project_id":"","name":"refrigerator","tax_id":"","quantity":1,"invoice_id":"","tax_percentage":0,"customer_id":"","item_total":33000}],
"payment_terms": "3",
"payment_expected_date": "",
"reference_number": "1",
"currency_code": "GBP",
"total": "33000.0",
"bill_number": "Bill-001",
"payment_made": "0.0",
"balance": "33000.0",
"recurring_bill_id": "",
"vendor_id": "348960000000051033",
"sub_total": "33000.0",
"status": "open"
}
Wiederholende Rechnung
Der Wiederholungsrechnungsmappen unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| end_date | Enddatum des wiederholenden Rechnungsprofils |
| tax_total | Gesamtbetrag der Steuern in der wiederholenden Rechnung |
| exchange_rate | Wechselkurs, der in der wiederholenden Rechnung berücksichtigt wird |
| custom_fields | Benutzerdefinierte Felder der wiederholenden Rechnung |
| repeat_every | Wiederholungsintervall des wiederholenden Rechnungsprofils |
| taxes | Steuern, die in der wiederholenden Rechnung enthalten sind |
| vendor_name | Name des Lieferanten |
| line_items | Artikel in der wiederholenden Rechnung |
| payment_terms | Zahlungsbedingungen, die dem Lieferanten zugeordnet sind |
| currency_code | Währungscode |
| last_sent_date | Datum der letzten gesendeten Rechnung |
| total | Gesamtbetrag der wiederholenden Rechnung |
| next_bill_date | Datum der nächsten Rechnung |
| recurring_bill_id | ID der wiederholenden Rechnung |
| recurrence_name | Name des wiederholenden Rechnungsprofils |
| vendor_id | ID des Lieferanten |
| sub_total | Bruttobetrag der wiederholenden Rechnung |
| recurrence_frequency | Häufigkeit des wiederholenden Rechnungsprofils |
| payment_terms_label | Zahlungsbedingungen-Label |
| status | Status des wiederholenden Rechnungsprofils |
| start_date | Startdatum des wiederholenden Rechnungsprofils |
Beispiel-Mappen:
{
"end_date": "2016-10-15",
"tax_total": "0.0",
"exchange_rate": "1.0",
"custom_fields": "[]",
"repeat_every": "1",
"taxes": "[]"
}
"vendor_name": "Vendor",
"line_items": [{"tags":[],"tax_name":"","account_id":"348960000000000403","tax_type":"tax","product_type":"goods","line_item_id":"348960000000193067","account_name":"Advertising And Marketing","unit":"","item_order":0,"rate":900,"bcy_rate":900,"item_id":"348960000000051011","description":"","name":"Item","quantity":1,"tax_id":"","tax_percentage":0,"item_total":900}],
"payment_terms": "0",
"currency_code": "GBP",
"last_sent_date": "2016-10-12",
"total": "900.0",
"next_bill_date": "",
"recurring_bill_id": "348960000000193061",
"recurrence_name": "RB-001",
"vendor_id": "348960000000051033",
"sub_total": "900.0",
"recurrence_frequency": "weeks",
"payment_terms_label": "Due on Receipt",
"status": "expired",
"start_date": "2016-10-12"
}
Artikel
Das Artikel-Map unterstützt die folgenden Felder:
| Schlüsselfelder | Beschreibung |
|---|---|
| item_id | Artikel-ID |
| custom_fields | Benutzerdefinierte Felder des Artikels |
| item_type | Typ des Artikels |
| tax_name | Name der beteiligten Steuer |
| purchase_rate | Kaufpreis des Artikels |
| zcrm_product_id | ID des Produkts in Zoho CRM |
| tax_id | ID der beteiligten Steuer |
| unit | Einheit des Artikels |
| account_id | Verkaufs-Konto-ID |
| purchase_account_name | Name des Kaufkontos |
| purchase_account_id | Kaufkonto-ID |
| tax_type | Typ der beteiligten Steuer |
| rate | Verkaufspreis des Artikels |
| account_name | Name des verknüpften Verkaufsaccounts |
| name | Name des Artikels |
| tax_percentage | Prozentsatz der beteiligten Steuer |
| pricebook_rate | Preisbuchpreis |
| sku | SKU des Artikels |
| status | Status des Artikels |
Beispiel-Map:
{
"item_id": "348960000000051011",
"custom_fields": [{"value_formatted":"100","index":1,"is_active":true,"data_type":"decimal","show_on_pdf":true,"value":100,"show_in_all_pdf":true,"label":"Profit","customfield_id":"348960000000134003"}],
"item_type": "sales_and_purchases",
"tax_name": "",
"purchase_rate": "900.0",
"zcrm_product_id": "1665395000000205001",
"tax_id": "",
"unit": "1",
"account_id": "348960000000000388",
"purchase_account_name": "Advertising And Marketing",
"purchase_account_id": "348960000000000403",
"tax_type": "",
"rate": "1000.0",
"account_name": "Sales",
"name": "Item",
"tax_percentage": "0",
"pricebook_rate": "1000.0",
"sku": "SKU",
"status": "active"
}
Einige Beispiele, die zeigen, wie diese Felder helfen, die notwendigen Parameter abzurufen:
Beispiel 1:
Um die Quote-ID abzurufen, verwenden Sie:
quoteid = quote.get("quote_id");
Beispiel 2:
Um den Namen Ihrer Organisation abzurufen, verwenden Sie:
orgid = organization.get("name");
Beispiel 3:
Um den Namen eines Benutzers und seinen ZUID abzurufen, verwenden Sie:
username = user.get("name");
zuid = user.get("zuid");
Weitere Informationen darüber, wie Deluge-Skripte für die Schreibung benutzerdefinierter Funktionen verwendet werden, finden Sie in der Deluge-Referenzanleitung.
Weitere Informationen zu verschiedenen Szenarien, in denen benutzerdefinierte Funktionen nützlich sein können, finden Sie auf unserer Seite Szenarien für benutzerdefinierte Funktionen.
Zeitpläne
Zoho Books ermöglicht es Ihnen, vordefinierte Aufgaben an bestimmten Zeitintervallen zu erstellen und auszuführen, indem Sie Zeitpläne erstellen. Sie können Aufgaben mit einem Deluge-Skript erstellen und diesen Zeitplan so einstellen, dass er zu einem bestimmten Zeitpunkt oder auf wiederholender Basis ausgeführt wird.
Hinweis: Diese Funktion ist nur für bestimmte Abonnements von Zoho Books verfügbar. Besuchen Sie die Preisliste, um zu prüfen, ob sie in Ihrem aktuellen Abonnement verfügbar ist.
Szenarien
Hier sind einige Szenarien, in denen Schedules erstellt werden können, um benutzerdefinierte Aktionen auszuführen. Sie können jedoch benutzerdefinierte Schedules entsprechend Ihren Firmenbedingungen erstellen.
Szenario 1: Peter führt einen Supermarkt. Am Ende jedes Monats möchte er Kunden mit einem Gesamtbetrag von mehr als einem bestimmten Betrag, sagen wir 1000, um 10 % Rabatt auf den nächsten Einkauf zu belohnen. Peter erstellt einen Schedule, um diese Nachricht an ausgewählte Kunden am letzten Tag des Monats per E-Mail zu senden.
Szenario 2: Peter verwendet eine externe Anwendung zur internen Verwaltung von Kunden und Mitarbeitern. Er möchte die Daten aus Zoho Books regelmäßig in diese Anwendung synchronisieren. Dazu erstellt er einen benutzerdefinierten Schedule, der die Daten um 18 Uhr täglich synchronisiert.
Szenario 3: Peter setzt für seine territorialen Manager jährliche Verkaufsziele. Jedes vierte Monat muss er ihnen ihre Gewinn- und Verlustberichte senden sowie eine Glückwunsch-E-Mail, wenn sie ihr Ziel erreicht haben, oder eine motivierende E-Mail, um sie zu ermutigen, besser zu leisten. Er schreibt eine Funktion und plant sie, um sie alle vier Monate an sein Personal zu senden.
Neuen Schedule erstellen
Um einen benutzerdefinierten Schedule zu erstellen:
- Gehe zu Einstellungen in der oberen rechten Ecke der Seite.
- Wähle unter Automatisierung Workflow-Aktionen aus.
- Im Bereich Workflow-Aktionen wähle Schedules aus.
- Klicke in der oberen rechten Ecke auf + Neuer Schedule.

- Auf der Seite Neuer Schedule:
- Gib einen Namen für deinen Schedule ein.
- Stelle die Häufigkeit und das Wiederholungsmuster für die Ausführung des Schedules ein. Dies kann täglich, wöchentlich, monatlich oder jährlich sein.
Einblick: Das Wiederholungsmuster ermöglicht es dir, zu bestimmen, wann der benutzerdefinierte Schedule ausgeführt werden soll. Du kannst wählen, wann er entsprechend der festgelegten Häufigkeit ausgeführt wird.
- Wähle, wie häufig die Aufgabe ausgeführt werden soll.
- Täglich: Die Aufgabe wird täglich (oder entsprechend dem Wiederholungsmuster) ausgeführt. Du kannst die Wochenenden ausschließen.

- Wöchentlich: Die Aufgabe wird einmal pro Woche ausgeführt. Wähle den Tag der Woche aus, an dem die Aufgabe ausgeführt werden soll.

- Monatlich: Die Aufgabe wird einmal im Monat ausgeführt. Dies kann ein bestimmter Tag oder ein Tag im Monat sein. Zum Beispiel kannst du wählen, dass die Aufgabe am 5. jeden Monats oder am zweiten Samstag jedes Monats ausgeführt wird.

Jährlich: Die Aufgabe wird einmal im Jahr ausgeführt. Du kannst den Monat auswählen und den Tag der Ausführung angeben oder den Tag festlegen. Zum Beispiel kann die Aufgabe am ersten Sonntag im Januar oder einfach am 5. Januar ausgeführt werden.

Setze den Startdatum und -zeitpunkt.
Warnung: Das Startdatum eines Zeitplans darf nicht mehr als ein Jahr nach dem Erstellungsdatum liegen.
- Wählen Sie, wann der Zeitplan ablaufen soll. Er kann nach einer bestimmten Anzahl von Ausführungen, an einem festgelegten Datum oder gar nicht ablaufen.

- Ziehen Sie Optionen herum, um eine Deluge-Funktion zu erstellen, die Ihnen bei der Erstellung Ihrer Funktion hilft.
Einblick: Deluge (Data Enriched Language for the Universal Grid Environment) ist eine online-integrierte Skriptsprache mit Zoho Services. Sie ermöglicht es Ihnen, eigene Funktionen zu schreiben, die es ermöglichen, die Anwendung schrittweise anzupassen, wodurch sie leistungsfähiger und robuster wird.
- Klicken Sie auf Speichern oder Speichern und Ausführen, um sie zu starten.

Einblick: Sie können maximal 10 benutzerdefinierte Zeitpläne erstellen.
Beispiel-Funktion
Hier ist ein Beispiel-Funktion für Szenario 1:
organizationID = organization.get("organization_id");
name = organization.get("name");
orgEmail = organization.get("email");
salesResponse = invokeUrl
[
url: "https://books.zoho.com/api/v3/reports/salesbycustomer?organization_id=" + organizationID + "&from_date=" + toStartOfMonth(today).toString("YYYY-MM-dd") + "&to_date=" + eomonth(today,0).toString("YYYY-MM-dd")
type: GET
connection: "books_api_connection"
];
salesDetails = salesResponse.get("sales").toList();
for each sales in salesDetails
{
amount = sales.get("sales_with_tax");
if(amount > "<ENTER AMOUNT>")
{
customerName = sales.get("customer_name");
customerResponse = invokeUrl
[
url: "https://books.zoho.com/api/v3/contacts/" + sales.get("customer_id") + "?organization_id=" + organizationID
type: GET
connection: "books_api_connection"
];
customerDetails = customerResponse.get("contact");
customerEmail = customerDetails.get("email");
sendmail
[
from :zoho.adminuserid
to :customerEmail
subject :"Thank you for shopping! Here's a 10% discount!"
message :"<div>Dear " + customerName + ",<br></div><div><br></div><div>We just wanted to take a moment of our time to thank you for your continuous support.<br></div><div><br></div><div> Based on your recent purchases, we'd like to offer you a 10% off on your next purchase with us. <br></div><div><br></div><div>Please show this email during billing to avail this discount!<br></div><div><br></div><div>Regards,<br></div><div>" + name + "<br></div><div><br></div><div><br></div><div><br></div><div><br></div>"
]
}
}
Workflow-Szenarien
Workflows helfen Ihnen, Aufgaben in Zoho Books zu automatisieren. Mehr erfahren, um einige gängige Szenarien genauer zu erkunden.
Weitere Informationen finden Sie im Verbindungen-Hilfedokument.
Automatisieren Sie Ihren Geschäftsablauf mit Zoho Books’ Rechnungsautomatisierung.

