Workflow-Szenarien
Workflows können nützlich sein, wenn Sie automatisierte Aktionen in Zoho Books durchführen möchten. Folgende Szenarien kommen dabei zum Tragen.
- Szenarien für E-Mail-Benachrichtigungen
- Szenarien für Feldaktualisierungen
- Szenarien für Webhooks
- Szenarien für benutzerdefinierte Funktionen
Szenarien für E-Mail-Benachrichtigungen
Szenario 1:
Dillion Inc. ist ein Unternehmen für die Exporte von Kleidung. Der VP des Verkaufs möchte E-Mail-Benachrichtigungen erhalten, wenn ein Mitarbeiter für einen der wichtigsten Kunden einen Preisvorschlag für einen Betrag über 10.000 USD erstellt. Dies hilft ihnen, ihre besten Dienstleistungen anzubieten. In diesem Fall kann ein Workflow so konfiguriert werden, dass automatisch E-Mail-Benachrichtigungen ausgelöst werden, wenn die folgenden Bedingungen erfüllt sind.
Ausführen bei: Erstellt
Regelkriterium: Gesamtbetrag ist größer als 10.000 USD.
Unmittelbare Aktion: E-Mail-Benachrichtigung an den VP des Verkaufs/Finanzabteilung.
Zeitbasierte Aktion: —
Szenario 2:
Joseph, der CTO von Bookworm.com, einem Online-Buchhändler, möchte ein System implementieren, bei dem eine Benachrichtigung an die Verpackungsabteilung ausgelöst wird, sobald eine Rechnung für eine von einem Kunden platzierte Bestellung erstellt wird. Mit der Funktion „E-Mail-Benachrichtigungen“ kann er dies durch die Erstellung eines Workflow-Regels mit den folgenden Parametern erreichen.
Ausführen bei: Erstellt oder bearbeitet
Regelkriterium: Kontaktname ist XYZ
Unmittelbare Aktion: —
Zeitbasierte Aktion: E-Mail-Benachrichtigung an die Verpackungsabteilung beim Erstellen einer Rechnung.
Szenario 3:
Adrian ist der Leiter des Reiseabteilungs bei Fossil Petrocorp, einem Unternehmen, das sich auf effiziente Nutzung nicht erneuerbarer Energiequellen spezialisiert hat. Ihre Ingenieure reisen weltweit, um mit großen Ölunternehmen Geschäfte zu machen. Adrians Aufgabe besteht darin, sicherzustellen, dass ihre Flugtickets rechtzeitig gebucht und von der Firma bezahlt werden. Wenn Adrian über seinen Reiseagenten Flugtickets für seine Kollegen bucht, möchte er eine Bestätigungsemail an den Agenten senden, dass sie die Rechnung erhalten haben und die Zahlung vor Fälligkeit erfolgen wird.
Ausführen bei: Erstellt oder bearbeitet
Regelkriterium: Unternehmen ist ABC Travel Agency und Status ist offen.
Unmittelbare Aktion: —
Zeitbasierte Aktion: E-Mail-Benachrichtigung an den Reiseagenten beim Erstellen einer Rechnung für Flugtickets.
Szenarien für Feldaktualisierungen
Szenario 1: Andrew ist der Leiter des Marketings bei SolarSync, einem Unternehmen für die Herstellung von Solarmodulen. Laut seiner neuesten Anweisung sollte der Verkäufer sofort auf „XYZ“ geändert werden, sobald der Verkäufer „ABC“ einen Verkauf erfolgreich abgeschlossen hat, also wenn eine Rechnung für einen Gesamtbetrag über 10.000 USD erstellt oder bearbeitet wird. Ein Workflow automatisiert diesen Prozess der Auftragsweiterleitung, indem er die folgenden Parameter einstellt, um die Anweisung auszuführen.
Ausführen bei: Erstellt oder bearbeitet
Regelkriterium: Wenn Verkäufer „ABC“ ist und Gesamtbetrag größer als 10.000 USD ist.
Immediate Action: Aktualisieren Sie das Feld „Sales person“ auf „XYZ“
Time Based Action: —
Szenario 2:
MobileCave Inc. besitzt eine Kette von Geschäften, die Mobiltelefone verkaufen. Sie bestellen ständig Mobiltelefone von verschiedenen Lieferanten. Das Kaufabteilung stieß oft auf die Schwierigkeit, die Lieferungen pünktlich zu erhalten, da die Lieferanten auch andere Geschäfte in der Stadt beliefern.
Das Kaufabteilung entwickelte eine Lösung, um dies zu überwinden, indem sie den Lieferanten eine Woche vor dem versprochenen Liefertermin benachrichtigen. Laut dem Kaufteam kann dies durch die Erstellung eines Workflows erreicht werden, der ausgelöst wird, sobald eine Bestellung mit einem Wert von $2000 oder mehr erstellt wird.
Zusätzlich wurde eine weitere Aktion eingestellt, um das Feld „Notes“ zu aktualisieren, wobei eine kurze Nachricht an den Lieferanten gesendet wird, die sie auffordert, die Waren pünktlich zu liefern, und falls sie dies tun, können sie von MobileCave Inc. in Zukunft erwartet werden.
Ausführen bei: Erstellt oder bearbeitet
Regelkriterium: Wenn Unternehmenname „ABC“ ist ODER der Gesamtbetrag größer als $2000 ist.
Immediate Action: Aktualisieren Sie das Feld „Notes“ mit einer Nachricht, die den Lieferanten auffordert, die Waren pünktlich zu liefern.
Time Based Action: E-Mail-Benachrichtigung 7 Tage vor dem erwarteten Liefertermin.
Szenario 3:
Andrew ist der Inhaber von Phoenix Rent-a-Car, einem Autovermietungsbetrieb in Chicago. Ein regelmäßiger Kunde hat ein Auto für einen Monat gemietet. Andrew sendet ihm eine Rechnung im Wert von $1500 für eine Dauer von 30 Tagen, also $50 pro Tag, also $1500 pro Monat. Er hat seinem Kunden auch einen Rabatt von $500 angeboten. Allerdings möchte er das Feld „Customer Notes“ 10 Tage nach dem Angebotstermin aktualisieren und ihm einige Gratisleistungen anbieten. Dies kann durch die Einstellung der folgenden Parameter automatisiert werden.
Execute When: Erstellt oder bearbeitet
Rule Criteria: Wenn Gesamtsumme = 1000 und Rabatt > 500
Immediate Action: —
Time Based Action: Aktualisieren Sie das Feld „Customer Notes“ 10 Tage nach dem Angebotstermin.
Szenarien für Webhooks
Szenario 1:
Greg ist der Public Relations-Manager eines Unternehmens für Haus- und Büro-Sicherheit. Ein erster Kunde hat eine Angebotsanfrage für die Einrichtung von Sicherheitssystemen für sein Büro in Boston gestellt. Greg möchte einen guten Eindruck hinterlassen, indem er sofort nach der Annahme des Angebots eine „Danke“-SMS sendet. Die Webhook-Funktion in der Automatisierung kann dies durch die Einstellung der folgenden Parameter und die Verbindung mit einem SMS-Gateway erreichen.
Execute When: Erstellt oder bearbeitet
Regelkriterium: Wenn Kontaktname „XYZ“ ist und Kontakttyp „Kunde“ ist.
Unmittelbare Aktion: SMS-Benachrichtigung über einen Webhook mit einem SMS-Gateway.
Zeitbasierte Aktion: —
Szenario 2:
Frank ist der Finanzcontroller eines Aktienhandelsunternehmens. Der Großteil der Umsätze wird auf das offizielle Stripe-Konto des Unternehmens gutgeschrieben. Er möchte, dass er bei jedem hohen Einzahlung oder Auszahlung an Rechnungen oder Ausgaben dieses Kontos über E-Mail oder SMS benachrichtigt wird, wöchentlich. Dies kann durch die Einrichtung eines Webhooks mit den folgenden Parametern erreicht werden.
Auslösen, wenn: Erstellt oder bearbeitet
Regelkriterium: Wenn Gesamtbetrag ≥ $10.000
Unmittelbare Aktion: —
Zeitbasierte Aktion: SMS auslösen 7 Tage nach dem Zeitpunkt der Regelauslösung
Szenario 3: Simon ist der CEO eines Startups namens Food4Fun, das Mahlzeiten an die Mitarbeiter von großen Unternehmen in der Bay Area liefert. Er hat etwa 5 Kunden. Seine Firma verursacht täglich Ausgaben für Zutaten, Transport, Benzin und die Löhne der Mitarbeiter, die stündlich bezahlt werden. Seine Buchhalterin Jane hat ihm gebeten, die Rechnungen für Transportausgaben hochzuladen, damit sie diese überprüfen und an ihre Kunden abrechnen kann. Deshalb wird, sobald Simon am Ende des Tages eine Transportausgabe erstellt, die Rechnung automatisch an einen Cloud-Speicher übermittelt, der auch von Jane zugänglich ist.
Auslösen, wenn: Erstellt oder bearbeitet
Regelkriterium: Wenn Konto des Ausgabenartikels Reiseausgaben ist UND “Rechnungsfähig” ist.
Unmittelbare Aktion: Die Rechnungen für Transportausgaben werden an einen Cloud-Speicher übermittelt mithilfe von Webhooks.
Zeitbasierte Aktion: —
Szenarien für benutzerdefinierte Funktionen
Szenario 1:
10 % Rabatt, wenn der Rechnungsbetrag über $2500 liegt
Sarah führt einen Supermarkt und möchte Rabatte anbieten, um ihr 10-jähriges Jubiläum zu feiern. Sie entscheidet sich dafür, einen 10 % Rabatt für jeden Kunden zu gewähren, der einen Einkauf von mindestens $2500 tätigt. Es wäre eine aufwendige Aufgabe, den Rabatt jedes Mal bei der Erstellung einer Rechnung manuell einzufügen.
Mit der Hilfe einer benutzerdefinierten Funktion kann sie ein kleines Stück Code schreiben, um diese Aktion auszuführen.
Sarah kann eine Bedingung einstellen, bei der, wenn der Gesamtbetrag der Rechnung $2500 oder mehr beträgt, die Funktion ausgeführt wird und ein 10 % Rabatt angewendet wird.
Schauen wir uns nun an, wie die benutzerdefinierte Funktion für dieses Szenario aussehen würde.
Benutzerdefinierte Funktion: Rabatt
Beschreibung: Ein 10 % Rabatt wird angewendet, wenn der Gesamtbetrag der Rechnung $2500 oder mehr beträgt
Modul: Rechnung
Skript:
// Erstelle eine Variable und hole den Gesamtbetrag der Rechnung
total = invoice.get("total").toDecimal();
// Setze eine Bedingung: Wenn der Rechnungsbetrag >= 2500 ist
if ( total >= 2500.00 )
{
adjustment = invoice.get("adjustment").toDecimal();
adjustment = adjustment - total * 0.10;
jsonstring = "{\"adjustment\":" + adjustment + ",\"reason\":\" RABATT \"}";
// Aktualisiere das aktuelle Dokument
zoho.books.updateRecord("Invoices", organization.get("organization_id"), invoice.get("invoice_id"), jsonstring.toMap());
}
Sie erstellt dann eine Workflow-Regel mit den folgenden Parametern.
Workflow-Regelname: Jubiläum-Rabatt
Modul: Rechnung Workflow-Typ: Ereignisbasiert
Wenn eine Rechnung erstellt wird
Auslöser: Wenn Gesamtbetrag >= 2500
Aktionen: Benutzerdefinierte Funktion – Rabatt
Wenn der Gesamtbetrag der Rechnung 2500 US-Dollar oder mehr beträgt, wird der Workflow ausgelöst und die benutzerdefinierte Funktion ausgeführt.
Szenario 2:
5 % Spätausfallgebühr, wenn eine Rechnung fällig wird
Dennis betreibt eine Selbstlagerung in Manhattan, wo Kunden alles in einer Box speichern können – klein genug, um Dokumente sicher aufzubewahren, und groß genug, um ein teures Auto zu lagern. Er erlaubt seinen Kunden, monatlich, wöchentlich, täglich oder sogar jährlich zu zahlen. Er bietet ihnen eine 10-tägige Verzugsfrist ab dem Rechnungsdatum, nach der er eine zusätzliche 5 % Gebühr an die Rechnung anhängt.
Mit Zoho Books schreibt er ein kleines Skript mit benutzerdefinierten Funktionen, um automatisch die Spätausfallgebühren zu berechnen und diese als Anpassungen in die Rechnungen einzufügen, sobald die Rechnungen fällig werden.
Schauen wir uns nun an, wie die benutzerdefinierte Funktion für dieses Szenario aussehen würde.
Benutzerdefinierte Funktion: Spätausfallgebühr
Beschreibung: Eine Spesen von 5 % auf den Rechnungsbetrag anwenden
Modul: Rechnung
Skript:
// Erstelle eine Variable, um den Gesamtbetrag der Rechnung abzurufen und eine Spesen von 5 % hinzuzufügen
latefee = invoice.get("total").toDecimal() * 0.05;
// Zeige den Wert der Variable latefee an
info latefee ;
// Füge die Spesen und die Anpassung hinzu und speichere den Gesamtbetrag in der Variable 'adjustment'
adjustment = invoice.get("adjustment").toDecimal() + latefee;
jsonstring = "{\"adjustment\":" + adjustment + ",\"reason\":\" late fee\"}";
// Aktualisiere das aktuelle Datensatz
result = Map();
result = zoho.books.updateRecord("Invoices", organization.get("organization_id"), invoice.get("invoice_id"), jsonstring.toMap());
info result;
Dann erstellt sie eine Workflow-Regel mit den folgenden Parametern.
Name der Workflow-Regel: Spesen
Modul: Rechnung
Workflow-Typ: Datum basiert
Datum der Ausführung: 0 Tage nach Fälligkeitsdatum
Ausführungszeit: Eingeben der Ausführungszeit
Ausführungszyklus: Einmalig
Auslöser: Wenn > Status > ist nicht > Bezahlt > UND > Status > ist nicht > Teilweise bezahlt
Wenn das Fälligkeitsdatum der Rechnung das gesetzte Datum (in der Workflow-Regel) überschreitet, wird der Workflow ausgelöst und die benutzerdefinierte Funktion ausgeführt.
Szenario 3:
Geben Sie einen Rabatt, wenn die Zahlung für die Rechnung vor dem Fälligkeitsdatum erfolgt
Donna betreibt ein Design-Unternehmen, das monatlich für Websites Werbe- und Promotionsmaterialien erstellt. Dazu gehören Broschüren, Bannerwerbung und andere Werbemittel. Donna sendet Rechnungen am Ende jedes Monats und erhält oft Zahlungen erst nach der Zahlungsfrist von 30 Tagen. Um sofortige Zahlungen zu erhalten, entscheidet sie sich, einen Rabatt anzubieten, wenn die Rechnung vor dem Fälligkeitsdatum bezahlt wird.
Um dies umzusetzen, fügt sie einem Rabatt von 5 % ihre Rechnungen hinzu und in der Kundennotizteil erwähnt sie, dass der Rabatt nur dann anwendbar ist, wenn die Zahlung vor dem Fälligkeitsdatum erfolgt.
Um dies zu realisieren, schreibt Donna das folgende benutzerdefinierte Skript.
// Wenn die Zahlung für die Rechnung nach dem Fälligkeitsdatum eingegangen ist, wird der Rabatt nicht angewendet
jsonstring = "{\"discount\" : 0, \"reason\" : \"over duedate exceed\"}";
zoho.books.updateRecord("invoices", organization.get("organization_id"), invoice.get("invoice_id"), jsonstring.toMap());
Nachdem dies abgeschlossen ist, erstellt sie einen Workflow, um diese benutzerdefinierte Funktion auszuführen. Die Parameter der Workflow-Regel sind wie folgt angegeben:
**Name der Workflow-Regel:** Rabatt für frühzeitige Zahlung
**Modul:** Rechnung
**Workflow-Typ:** Datum basiert
**Datum der Ausführung:** 0 Tage nach **Fälligkeitsdatum**
**Ausführungszeit:** Eingeben der Ausführungszeit
**Ausführungszyklus:** Einmalig
**Auslöser:** Wenn > Status > ist nicht > Bezahlt
**Aktionen**
**Typ:** Benutzerdefinierte Funktion und **Name:** Name Ihrer benutzerdefinierten Funktion
Wenn eine Rechnung das Fälligkeitsdatum erreicht, wird der Workflow ausgelöst und die benutzerdefinierte Funktion fügt 0 % Rabatt statt des ursprünglichen 5 % hinzu.
---------------------------------------------------------------------------------------
**Szenario 4:**
**Setze automatisch den Fälligkeitsdatum der Rechnung auf 30 Tage vor dem Ereignisdatum (das über ein benutzerdefiniertes Feld eingegeben wird)**
Tom ist ein kreativer Hochzeitsfotograf. Sein Klientenbuch wird 2-3 Monate vor dem Hochzeitstag (Ereignisdatum) erstellt. Tom bestätigt das Datum nur, wenn der Kunde den vollständigen Betrag 30 Tage vor dem Hochzeitstag zahlt. Um diesen Prozess zu vereinfachen, schreibt Jake, ein Mitglied des Studios, eine kleine benutzerdefinierte Funktion.
Zunächst erstellt Jake ein benutzerdefiniertes Feld namens „Wedding Date“ mit dem **Datumstyp** und schreibt den folgenden benutzerdefinierten Funktionen:
customFields = invoice.get(“custom_fields”).toList(); cfDate = null; for each customField in customFields { customField = customField.toMap(); if(customField.get(“label”) == “Date”) { cfDate = customField.get(“value”); } } duedate = cfDate.toTime().subMonth(1); info duedate; duedate = duedate.year() + “-” + text(duedate.month(),“00”) + “-” + text(duedate.day(),“00”); jsonstring = “{"due_date":” + duedate + “,"reason":" Duedate changed. "}”; result = zoho.books.updateRecord(“invoices”,organization.get(“organization_id”),invoice.get(“invoice_id”).toString(),jsonstring.toMap()); info result;
Nach der Erstellung der benutzerdefinierten Funktion erstellt Jake eine Workflow-Regel, um sie auszulösen. Die Parameter der Workflow-Regel sind wie folgt:
**Workflowname:** Zahlung 30 Tage vor der Hochzeit
**Modul:** Rechnung
**Workflowtyp:** Ereignisbasierend
**Wenn Rechnung:** Erstellt
**Aktionen**
**Typ:** Benutzerdefinierte Funktion und **Name:** Name Ihrer benutzerdefinierten Funktion
Wenn Tom beim Erstellen einer Rechnung das Hochzeitsdatum in das benutzerdefinierte Feld eingibt, wird der Workflow ausgelöst und die benutzerdefinierte Funktion setzt den Fälligkeitsdatum der Rechnung auf 30 Tage vor dem Hochzeitstag.
---------------------------------------------------------------------------------------
**Szenario 5:**
**Automatisch einen Angebot abbestellen, wenn es innerhalb von 10 Tagen nach Erstellung nicht akzeptiert wird.**
Katherine besitzt ein Unternehmen, das automobilen Ersatzteile an verschiedene Auto-Service-Stellen liefert. Mehrere Kunden bitten sie um Angebote, aber ein Teil von ihnen kommuniziert weder die Akzeptanz noch die Ablehnung des Angebots. Um dies zu vermeiden, entscheidet sich Katherine, das Angebot abzulehnen, wenn sie innerhalb von 10 Tagen nach Erhalt des Angebots keine Rückmeldung von dem Kunden erhält. Um dies umzusetzen, schreibt sie eine benutzerdefinierte Funktion.
\Geben Sie das Angebot und die Organisation-ID aus quoteid = quote.get(“quote_id”); orgid = organization.get(“organization_id”);
\Ändern Sie den Status des Angebots auf „abgelehnt“ result = invokeUrl [ url: “https://books.zoho.com/api/v3/quotes/” + quoteid + “/status/declined?organization_id=” + orgid type: POST connection: “books_api_connection” ];
Weitere Informationen finden Sie im <a href="https://www.zoho.com/books/help/settings/connections.html" target="_blank">Verbindungen</a>-Hilfedokument.
Um die Ausführung dieser benutzerdefinierten Funktion auszulösen, erstellt sie eine Workflow-Regel mit den folgenden Parametern.
**Workflowname:** Angebot nach 10 Tagen ab Erhalt abbestellen
**Modul:** Angebote
**Workflowtyp:** Zeitbasiert
**Datum der Ausführung:** 10 Tage nach **Erstellungszeit**
**Ausführungszeit:** Geben Sie die Ausführungszeit ein
**Ausführungszyklus:** Einmalig
**Kriterien:** Wenn > Angebotstatus > ist > Gesendet > UND > Angebotstatus > ist > nicht genehmigt
**Aktionen**
**Typ:** Benutzerdefinierte Funktion und **Name:** Name Ihrer benutzerdefinierten Funktion
Wenn das Angebot mehr als 10 Tage nach der Erstellung besteht, wird der Workflow ausgelöst und die benutzerdefinierte Funktion wird ausgeführt, um den Status des Angebots auf „abgelehnt“ zu ändern.
-----------------------------------------------------------------------------------------
**Szenario 6:**
**Verlängere Fälligkeit um 7 Tage, wenn der Kunde 50 % des Rechnungsbetrags bis zur ursprünglichen Fälligkeit bezahlt**
Diane besitzt einen Laden, der Druckpapier und Bürobedarf für Büros in ihrem Bezirk liefert. Sie möchte die Fälligkeit der Rechnung um eine Woche verlängern, wenn Kunden 50 % des Rechnungsbetrags bis zur ursprünglichen Fälligkeit bezahlen.
Um dies zu erreichen, schreibt sie folgende benutzerdefinierte Funktion:
//Abfrage des Gesamtbetrags, des Restbetrags nach dem teilweisen Zahlungsverkehr und der Fälligkeit inv_total = invoice.get(“total”).toDecimal(); inv_balance = invoice.get(“balance”).toDecimal(); inv_duedate = invoice.get(“due_date”).toDate(); orgid = organization.get(“organization_id”); invid = invoice.get(“invoice_id”); //Bedingung, um zu prüfen, ob der bezahlte Betrag 50 % des Rechnungsbetrags entspricht if(inv_balance == inv_total / 2) { inv_duedate = inv_duedate.addDay(7); inv_duedate = inv_duedate.year() + “-” + text(inv_duedate.month(),“00”) + “-” + text(inv_duedate.day(),“00”); //Die Fälligkeit um 7 Tage verlängern jsonstring = “{"due_date" : " + inv_duedate + “, "reason" : "Fälligkeit verlängert"}”; result = zoho.books.updateRecord(“invoices”,orgid,invid,jsonstring.toMap()); }
Nachdem sie dies abgeschlossen hat, erstellt Diane eine Workflow-Regel, um die benutzerdefinierte Funktion auszuführen.
**Workflowname:** Fälligkeit verlängern
**Modul:** Rechnung
**Workflowtyp:** Ereignisbasierend
**Wenn Rechnung ist:** Bearbeitet
**Workflow ausführen,** wenn ein Feld aktualisiert wird
**Nur einmal oder immer?** Nur einmal
**Auslöser,** wenn > Status > ist > teilweise bezahlt
**Typ:** Benutzerdefinierte Funktion und **Name:** Name Ihrer benutzerdefinierten Funktion
Wenn ein Kunde bis zur ursprünglichen Fälligkeit 50 % des Rechnungsbetrags bezahlt, wird ihm ein Verlängerungszeitraum von 7 Tagen gewährt, um den Restbetrag zu bezahlen.