Automatisierungsregeln

Automatisierungsregeln werden verwendet, um automatische Änderungen auf der Grundlage von Benutzeraktionen (z. B. eine Änderung vornehmen, wenn ein Feld auf einen bestimmten Wert gesetzt wird), von E-Mail-Ereignissen, von Zeitbedingungen (z. B. einen Datensatz 7 Tage nach seiner letzten Aktualisierung archivieren) oder von externen Ereignissen auszulösen.

Um eine Automatisierungsregel mit Studio zu erstellen, gehen Sie wie folgt vor:

  1. Öffnen Sie Studio und klicken Sie auf Automatisierungen, dann Neu.

  2. Wählen Sie den Auslöser und füllen Sie ggf. die Felder aus, die auf dem Bildschirm für den gewählten Auslöser erscheinen.

  3. Klicken Sie auf Eine Aktion hinzufügen, wählen Sie dann den Typ von Aktion und füllen Sie die Felder aus, die auf dem Bildschirm auf der Grundlage der von Ihnen gewählten Aktion erscheinen.

  4. Klicken Sie auf Speichern & Schließen oder Speichern & Neu.

Example

Beispiel einer automatisierten Aktion im Abonnementmodell

Tipp

  • Um das Modell der Automatisierungsregel zu ändern, wechseln Sie das Modell, bevor Sie in Studio auf Automatisierungen klicken, oder aktivieren Sie den Entwicklermodus, erstellen oder bearbeiten Sie eine Automatisierungsregel und wählen Sie das Modell im Formular Automatisierungsregeln.

  • Sie können auch von jeder Kanban-Phase aus Automatisierungsregeln erstellen, indem Sie auf das Zahnradsymbol ( ) neben dem Namen der Kanban-Phase klicken und dann Automatisierungen wählen. In diesem Fall ist der Auslöser standardmäßig auf Phase ist gesetzt auf eingestellt, aber Sie können ihn bei Bedarf ändern.

    Automatisierungen aus einer Kanban-Phase erstellen

Auslöser

Der Auslöser wird verwendet, um zu definieren, wann die Automatisierungsregel angewendet werden soll. Die verfügbaren Auslöser hängen von dem Modell ab. Insgesamt sind fünf Auslöserkategorien verfügbar:

Tipp

Sie können auch ein Domain vor Aktualisierung definieren, um die Bedingungen festzulegen, die erfüllt sein müssen, bevor die Automatisierungsregel ausgelöst wird. Im Gegensatz dazu werden die Bedingungen, die mit den Filtern :ref:` Zusätzliche Bedingungen <studio/automated-actions/trigger/values-timing-conditions>` und Anwenden auf definiert wurden, während der Ausführung der Automatisierungsregel überprüft.

Um eine Domain vor Aktualisierung zu definieren, aktivieren Sie den Entwicklermodus, erstellen oder bearbeiten Sie eine Automatisierungsregel, klicken Sie auf Domain bearbeiten und dann auf Neue Regel.

Wenn Sie beispielsweise möchten, dass die automatisierte Aktion ausgeführt wird, wenn eine E-Mail-Adresse für einen Kontakt festgelegt wird, der zuvor keine Adresse hatte (im Gegensatz zur Änderung der bestehenden Adresse), definieren Sie Domain vor Aktualisierung auf E-Mail ist nicht festgelegt und Anwenden auf Domein auf E-Mail ist festgelegt.

Beispiel eines Auslöser mit Domain vor Aktualisierung.

Werte aktualisiert

Die in dieser Kategorie verfügbaren Auslöser hängen vom Modell ab und basieren auf allgemeinen Feldänderungen, wie dem Hinzufügen eines bestimmten Stichworts (z. B. zu einer Aufgabe) oder dem Setzen des Feldes Benutzer. Wählen Sie den Auslöser und dann einen Wert, falls erforderlich.

Beispiel eines „Aktualisierte Werte“-Auslöser

Veranstaltungsmails

Lösen Sie automatisierte Aktionen beim Empfang oder Versand von E-Mails aus.

Zeitliche Bedingungen

Lösen Sie automatisierte Aktionen auf der Grundlage eines Datumsfeldes aus. Die folgenden Auslöser sind verfügbar:

  • Basierend auf Datumsfeld: Wählen Sie das Feld, das neben dem Feld Verzögerung verwendet werden soll.

  • Nach Erstellung: Die Aktion wird ausgelöst, wenn ein Datensatz erstellt und dann gespeichert wird.

  • Nach letzter Aktualisierung: Die Aktion wird ausgelöst, wenn ein bestehender Datensatz erstellt und gespeichert wird.

Sie können Folgendes definieren:

  • eine Verzögerung: Geben Sie die Anzahl der Minuten, Stunden, Tage oder Monate an. Um die Aktion vor dem Auslösedatum auszulösen, geben Sie eine negative Zahl an. Wenn Sie den Auslöser Basierend auf Datumsfeld gewählt haben, müssen Sie auch das Datumsfeld auswählen, das zur Bestimmung der Verzögerung verwendet werden soll.

  • Zusätzliche Bedingungen: Klicken Sie auf Bedingung hinzufügen, und geben Sie dann die Bedingungen an, die erfüllt sein müssen, um die Automatisierungsregel auszulösen. Klicken Sie auf Neue Regel, um eine weitere Bedingung hinzuzufügen.

Die Aktion wird ausgelöst, wenn die Verzögerung erreicht ist und die Bedingungen erfüllt sind.

Example

Wenn Sie 30 Minuten vor Beginn eines Kalenderereignisses eine Erinnerungsmail senden möchten, wählen Sie unter Start (Kalenderereignis) das Feld Auslösedatum und setzen Sie die Verzögerung auf -30 Minuten.

Beispeil eines Auslösers „Basierend auf Datumsfeld“

Bemerkung

Standardmäßig prüft der Planer alle 4 Stunden, ob ein Auslösedatum vorliegt. Das bedeutet, dass eine geringere Granularität bei zeitbasierten Automatisierungen möglicherweise nicht immer beachtet wird.

Benutzerdefiniert

Automatisierte Aktionen auslösen:

  • Bei Speicherung: Wenn der Datensatz gespeichert wird;

  • Bei Löschung: Wenn der Datensatz gelöscht wird;

  • Bei Änderung der Benutzeroberfläche: Wenn der Wert eines Felds auf der Formularansicht geändert wird, sogar vor Speicherung des Datensatzes.

Für die Auslöser Bei Speicherung und Bei Änderung der Benutzeroberfläche müssen Sie dann im Feld Bei Aktualisierung das/die Feld(er) auswählen, die zum Auslösen der Automatisierungsregel verwendet werden sollen.

Warnung

Wenn im Feld Bei Aktualisierung kein Feld ausgewählt ist, kann die automatische Aktion mehrmals pro Datensatz ausgeführt werden.

Optional können Sie im Feld Anwenden auf auch zusätzliche Bedingungen definieren, die erfüllt sein müssen, um die Automatisierungsregel auszulösen.

Bemerkung

Der Auslöser Bei Änderung der Benutzeroberfläche kann nur mit der Aktion Code ausführen verwendet werden und funktioniert nur, wenn eine Änderung manuell vorgenommen wird. Die Aktion wird nicht ausgeführt, wenn das Feld durch eine andere Automatisierungsregel geändert wird.

Extern

Lösen Sie mit einem Webhook automatisierte Aktionen auf der Grundlage eines externen Ereignisses aus. Ein Webhook ist eine Methode der Kommunikation zwischen zwei Systemen, bei der das Quellsystem auf der Grundlage eines bestimmten Ereignisses eine HTTP(S)-Anfrage an ein Zielsystem sendet. Die Anfrage enthält in der Regel eine Nutzlast, die Informationen über das eingetretene Ereignis enthält.

Um den Auslöser Bei Webhook zu konfigurieren, kopieren Sie die von Odoo generierte URL in das Zielsystem (d. h. das System, das die Anfrage erhält). Geben Sie dann in das Feld Zieldatensatz den auszuführenden Code ein, um den/die Datensatz/e zu definieren, der/die mit Hilfe der Automatisierungsregel aktualisiert werden soll(en).

Warnung

Die URL muss als vertraulich behandelt werden. Wenn Sie sie online oder unvorsichtig weitergeben, könnte Ihr System für böswillige Dritte gefährdet sein. Klicken Sie auf die Schaltfläche Geheimnis rotieren, um das Geheimnis der URL bei Bedarf zu ändern.

Bemerkung

  • Der standardmäßig im Feld Zieldatensatz definierte Code funktioniert für Webhooks, die aus einer anderen Odoo-Datenbank kommen. Er wird verwendet, um den oder die zu aktualisierenden Datensätze anhand der Informationen in der Nutzlast zu bestimmen.

  • Wenn Sie den Inhalt des Webhooks für einen anderen Zweck als das Auffinden des/der Datensatzes/Datensätze verwenden möchten (z. B. Erstellen eines Datensatzes), haben Sie nur die Möglichkeit, eine Aktion Code ausführen zu verwenden. In diesem Fall muss das Feld Zieldatensatz einen gültigen Code enthalten, aber das Ergebnis hat keinen Einfluss auf die automatisierte Aktion selbst.

  • Der Webhook-Inhalt ist im Server-Aktionskontext als Variable payload verfügbar (d. h. ein Dictionary, das die GET-Parameter oder den POST-JSON-Body der eingehenden Anfrage enthält).

Sie können auch Aufrufe protokollieren wählen, um die empfangenen Nutzdaten aufzuzeichnen, z. B. um sicherzustellen, dass die vom Quellsystem gesendeten Daten dem erwarteten Format und Inhalt entsprechen. Dies hilft auch bei der Identifizierung und Diagnose von Problemen, die auftreten können. Um auf die Protokolle zuzugreifen, klicken Sie auf die intelligente Schaltfläche Protokolle am oberen Rand des Formulars Automatisierungsregeln.

Aktionen

Sobald Sie den Auslöser der Automatisierungsregel definiert haben, klicken Sie auf Aktion hinzufügen, um die auszuführende Aktion zu definieren.

Tipp

Sie können mehrere Aktionen für denselben Auslöser/dieselbe Automatisierungsregel definieren. Die Aktionen werden in der Reihenfolge ausgeführt, in der sie definiert sind. Das heißt, wenn Sie zum Beispiel eine Aktion Datensatz aktualisieren und dann eine Aktion E-Mail versenden definieren, verwendet die E-Mail die aktualisierten Werte. Wenn jedoch die Aktion E-Mail versenden vor der Aktion Datensatz aktualisieren definiert wird, verwendet die E-Mail die Werte, die vor der Ausführung der Aktualisierungsaktion festgelegt wurden.

Datensatz aktualisieren

Mit dieser Aktion können Sie eines der (verwandten) Felder des Datensatzes aktualisieren. Klicken Sie auf das Feld Aktualisieren und wählen Sie in der sich öffnenden Liste das zu aktualisierende Feld aus oder suchen Sie danach. Klicken Sie auf den Pfeil nach rechts neben dem Feldnamen, um bei Bedarf auf die Liste der Bezugsfelder zuzugreifen.

Wenn Sie ein many2many-Feld ausgewählt haben, wählen Sie, ob das Feld durch Hinzufügen, Entfernen oder Durch Einstellung auf den ausgewählten Wert oder durch Löschen aktualisiert werden muss.

Example

Wenn Sie möchten, dass die automatisierte Aktion ein Stichwort aus dem Kundendatensatz entfernt, setzen Sie das Feld Aktualisieren auf Kunde > Stichwörter, wählen Sie Entfernen und wählen Sie dann das Stichwort aus.

Beispiel für eine Aktion „Datensatz aktualisieren“

Tipp

Alternativ dazu können Sie das Feld eines Datensatzes auch dynamisch mit Python-Code setzen. Wählen Sie dazu Berechnen anstelle von Aktualisieren und geben Sie dann den Code ein, der für die Berechnung des Feldwerts verwendet werden soll. Wenn Sie zum Beispiel möchten, dass die Automatisierungsregel ein benutzerdefiniertes Datetime-Feld berechnet, wenn die Priorität einer Aufgabe auf Hoch gesetzt wird (indem die Aufgabe mit einem Sternchen versehen wird), können Sie den Auslöser Priorität ist gesetzt auf auf Hoch definieren und die Aktion Datensatz aktualisieren wie folgt definieren:

Berechnung eines benutzerdefinierten Datumsfelds mithilfe eines Python-Ausdrucks

Aktivität erstellen

Diese Aktion wird verwendet, um eine neue Aktivität zu planen, die mit dem Datensatz verknüpft ist. Wählen Sie einen Aktivitätstyp, geben Sie einen Titel und eine Beschreibung ein, geben Sie dann im Feld Fälligkeitsdatum in an, wann die Aktivität geplant werden soll und wählen Sie einen Benutzertyp:

  • Um die Aktivität immer demselben Benutzer zuzuweisen, wählen Sie Spezifischer Benutzerr und fügen den Benutzer im Feld Verantwortlicher hinzu;

  • Um einen mit dem Datensatz dynamisch verknüpften Benutzer anzuvisieren, wählen Sie Dynamischer Benutzer (basierend auf Datensatz) und ändern Sie gegebenenfalls das Benutzerfeld.

Example

Nachdem ein Lead in eine Verkaufschance umgewandelt wurde, möchten Sie, dass die automatisierte Aktion einen Anruf für den Benutzer einrichtet, der für den Lead verantwortlich ist. Dazu setzen Sie Aktivitätstyp auf Anruf und setzen das Benutzertyp auf Dynamischer Benutzer (basierend auf Datensatz).

Beispiel für eine Aktion „Aktivität erstellen“

E-Mail versenden und SMS versenden

Diese Aktionen werden verwendet, um eine E-Mail oder eine Textnachricht an einen Kontakt zu senden, der mit einem bestimmten Datensatz verknüpft ist. Wählen oder erstellen Sie dazu eine E-Mail-Vorlage oder eine SMS-Vorlage und wählen Sie dann im Feld E-Mail senden als oder SMS senden als aus, wie Sie die E-Mail oder Textnachricht senden möchten:

  • E-Mail: um die Nachricht als E-Mail an die Empfänger der E-Mail-Vorlage zu senden.

  • Nachricht: um die Nachricht im Datensatz zu veröffentlichen und die Follower des Datensatzes zu benachrichtigen.

  • Notiz: um die Nachricht als interne Notiz zu versenden, die für interne Benutzer im Chatter sichtbar ist.

  • SMS (ohne Notiz): um die Nachricht als Textnachricht an die Empfänger der SMS-Vorlage zu senden.

  • SMS (mit Notiz): um die Nachricht als Textnachricht an die Empfänger der SMS-Vorlage zu senden und sie als interne Notiz im Chatter zu hinterlegen.

  • Nur Notiz: um die Nachricht nur als interne Notiz im Chatter zu veröffentlichen.

Followers hinzufügen und entfernen

Verwenden Sie diese Aktionen, um bestehende Kontakte als Follower des Datensatz hinzuzufügen oder zu entfernen.

Datensatz erstellen

Diese Aktion wird verwendet, um einen neuen Datensatz für ein beliebiges Modell zu erstellen.

Wählen Sie das gewünschte Modell im Feld Zu erstellender Datensatz; es enthält standardmäßig das aktuelle Modell. Geben Sie einen Name für den Datensatz an und wählen Sie dann, wenn Sie den Datensatz in einem anderen Modell erstellen möchten, ein Feld im Feld Feld verknüpfen aus, um den Datensatz zu verknüpfen, der die Erstellung des neuen Datensatzes ausgelöst hat.

Bemerkung

Die Dropdown-Liste für das Feld Field verknüpfen enthält nur one2many-Felder, die im aktuellen Modell vorhanden sind und mit einem many2one-Feld im Zielmodell verknüpft sind.

Tipp

Sie können eine weitere Automatisierungsregel mit der Aktion Datensatz aktualisieren erstellen, um die Felder des neuen Datensatzes bei Bedarf zu aktualisieren. Sie können zum Beispiel eine Aktion Datensatz erstellen verwenden, um eine neue Projektaufgabe zu erstellen und diese dann mit einer Aktion Datensatz aktualisieren einem bestimmten Benutzer zuzuweisen.

Code ausführen

Diese Aktion wird verwendet, um Python-Code auszuführen. Sie können Ihren Code im Reiter Code mithilfe der folgenden Variablen eingeben:

  • env: Umgebung, in der die Aktion ausgelöst wird

  • model: Modell des Datensatzes, für den die Aktion ausgelöst wird; ist ein leerer Datensatz

  • record: Datensatz, für den die Aktion ausgelöst wird; möglicherweise ist er leer

  • records: Datensatz aus allen Daten, für die die Aktion im Multi-Modus ausgelöst wird; möglicherweise ist er leer

  • time, datetime, dateutil, timezone: nützliche Python-Bibliotheken

  • float_compare: Utility-Funktion zum Vergleich von Zahlenkonstanten auf der Grundlage einer bestimmten Genauigkeit

  • log(message, level='info'): Protokollierfunktion zur Aufzeichnung von Fehlerbeseitigungsinformationen in ir.logging-Tabelle

  • _logger.info(message): Datenspeicher zur Ausgabe von Meldungen in Serverprotokollen

  • UserError: Ausnahmeklasse zum Auslösen von benutzerseitigen Warnmeldungen

  • Command: x2many-Befehlsnamensfeld

  • action = {...}: um eine Aktion zurückzugeben

Tipp

Die verfügbaren Variablen werden in den Reitern Code und Hilfe beschrieben.

Webhook-Benachrichtigung versenden

Mit dieser Aktion können Sie eine POST-Anfrage mit den Werten der Felder an die im Feld URL angegebene URL senden.

Das Beispielnutzdaten bietet eine Vorschau auf die in der Anfrage enthaltenen Daten unter Verwendung der Daten eines zufälligen Datensatzes oder von Dummy-Daten, wenn kein Datensatz verfügbar ist.

Vorhandene Aktionen ausführen

Die Aktion dient dazu, mehrere Aktionen (die mit dem aktuellen Modell verknüpft sind) gleichzeitig auszulösen. Klicken Sie dazu auf Zeile hinzufügen und dann im Pop-up-Fenster Hinzufügen: Untergeordnete Aktionen eine bestehende Aktion aus oder klicken Sie auf Neu, um eine neue Aktion zu erstellen.