Automatisierungsregeln

Automation rules allow the execution of one or more predefined actions in response to a specific trigger, e.g., create an activity when a field is set to a specific value, or archive a record 7 days after its last update.

When creating an automation rule, domain filters allow you to add conditions that must be met for the automation rule to run, e.g., the opportunity must be assigned to a specific salesperson, or the state of the record must not be Draft.

To create an automation rule with Odoo Studio, proceed as follows:

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

  2. Give the automation rule a clear, meaningful name that identifies its purpose.

  3. Select the trigger and, if necessary, fill in the fields that appear on the screen based on the chosen trigger.

  4. 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.

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

Example

To ensure follow-up on less satisfied clients, this automation rule creates an activity 3 months after a sales order is created for clients with a satisfaction percentage lower than 30%.

Example of an automation rule on the Subscription model

Tipp

  • Use the Notes tab to document the purpose and functioning of automation rules. This makes rules easier to maintain and facilitates collaboration between users.

  • To modify the model targeted by the automation rule, switch models before clicking Automations in Studio, or activate developer mode, create or edit an automation rule, and select the Model in the Automation Rules form.

  • Automation rules can be created from any kanban stage by clicking the (Settings) icon that appears when hovering over the kanban stage name, then selecting Automations. In this case, the Trigger is set to Stage is set to by default, but it can be changed if necessary.

    Automatisierungen aus einer Kanban-Phase erstellen

Auslöser

The Trigger is used to define what kind of event needs to occur for the automation rule to run. The available triggers depend on the model. Five trigger categories are available overall:

Adding conditions

Domain filters allow you to determine the records an automation rule should target or exclude. Efficient filtering enhances overall performance as it avoids unnecessary processing on records that are not impacted by the rule.

Tipp

Activate developer mode before creating an automation rule to have the most flexibility in adding domain filters.

Depending on the trigger chosen, it is possible to define one or more conditions a record must meet before and/or after a trigger occurs.

  • The Before Update Domain defines the conditions a record must meet before the trigger event occurs, e.g., the record must have Type = Customer Invoice and Status = Posted.

    With developer mode activated, click Edit Domain, if available, then New Rule.

  • Extra Conditions, or in some cases Apply on filters, define the conditions a record must meet after the trigger event occurs, e.g., the customer invoice must have Payment Status = Partially Paid.

    With developer mode activated if needed, click Add conditions or Edit Domain, as relevant, then New Rule.

When a trigger occurs, e.g., the payment status of a posted customer invoice is updated, the automation rule checks the defined conditions and only executes the action if the record matches those conditions.

Example

If the automated action should be executed when an email address is set for the first time (in contrast to modifying an email address) on an existing contact that is an individual rather than a company, use Email is not set and Is a Company is not set as the Before Update Domain and Email is set as the Apply on domain.

Beispiel eines Auslöser mit Domain vor Aktualisierung.

Bemerkung

The Before Update Domain is not checked upon the creation of a record.

Werte aktualisiert

Trigger automated actions when specific changes happen in the database. The triggers available in this category depend on the model and are based on common changes, such as adding a specific tag (e.g., to a task) or setting a field’s value (e.g., setting the User field).

Select the trigger, then select a value if required.

Veranstaltungsmails

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

Zeitliche Bedingungen

Trigger automated actions at a point in time relative to a date field or to the creation or update of a record. The following triggers are available:

  • Based on date field: The action is triggered a defined period of time before or after the date of the selected date field.

  • After creation: The action is triggered a defined period of time after a record is created and saved.

  • After last update: The action is triggered a defined period of time after an existing record is edited and saved.

Sie können Folgendes definieren:

  • a Delay: Specify the number of minutes, hours, days, or months. To have an action executed before the trigger date, specify a negative number. If you selected the Based on date field trigger, you must also select the date field to be used to determine the delay.

    Bemerkung

    By default, the scheduler checks for time-triggered automation rules every 240 minutes, or 4 hours. This frequency is generally sufficient for delays such as 3 months after the order date or 7 days after the last update.

    For delays of less than the equivalent of 2400 minutes, or 40 hours, the system recalculates the frequency of this check to ensure that more granular delays, e.g., 1 hour before the event start date and time, or 30 minutes after creation, can be respected as closely as possible.

    An on-screen message indicates the possible delay after the scheduled triggering of the rule.

    Message about possible delay after scheduled execution

    To view or manually edit the frequency of the scheduler, with developer mode activated, go to Settings ‣ Technical ‣ Scheduled Actions to see all scheduled actions for your database.

    Enter Automation in the search bar, then, in the list of results, click Automation Rules: check and execute. If desired, update the value of the Execute Every field. Click Run Manually at any time to manually trigger this scheduled action.

  • Extra Conditions: Click Add condition, then specify the conditions to be met for the automation rule to run. Click New Rule to add another condition.

The action is executed when the delay is reached and the conditions are met.

Example

To send a reminder email 30 minutes before the start of a calendar event, select Start (Calendar Event) as the date field for the Trigger and set the Delay to -30 Minutes.

Beispeil eines Auslösers „Basierend auf Datumsfeld“

Benutzerdefiniert

Automatisierte Aktionen auslösen:

  • On save: when a record is saved.

  • On deletion: when a record is deleted.

  • On UI change: when a field’s value is changed on the Form view, even before the record is saved.

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.

Example

To trigger an automated action upon the creation of a record, e.g., when a new contact is created, select the On save trigger and use ID is not set as the Before Update Domain and ID is set as the Apply on domain. Make sure the correct field is selected in the When updating field.

When a new contact is saved, it is automatically assigned a database ID, thereby triggering the automation rule.

Example of a triggering an action upon creation of a record

Bemerkung

The On UI change trigger can only be used with the Execute Code action and only works when a modification is made manually. The action is not executed if the field is changed through another automation rule.

Extern

Trigger automated actions based on a specific event in an external system or application using a webhook.

After the webhook is configured in Odoo, where the webhook’s URL is generated and the target record defined, it needs to be implemented in the external system.

Warnung

Es wird dringend empfohlen, sich bei der Entscheidung für die Verwendung von Webhooks und während des gesamten Implementierungsprozesses mit einem Entwickler, Lösungsarchitekten oder einem anderen technischen Experten zu beraten. Wenn Webhooks nicht richtig konfiguriert sind, können sie die Odoo-Datenbank negativ beeinträchtigen und es kann einige Zeit dauern, bis sie wiederhergestellt ist.

Beispeil eines Auslösers „Basierend auf Datumsfeld“

Bemerkung

It is also possible to set up an automated action that sends data to a external system’s webhook when an event occurs in your Odoo database.

Aktionen

Once you have defined the automation rule’s trigger, click Add an action in the Actions To Do tab to define the action to be executed.

Tipp

You can define multiple actions for the same automation rule. By default, actions are executed in the order in which they were defined.

This means, for example, that if you define an Update record action and then a Send email action where the email references the field that was updated, the email uses the updated values. However, if the Send email action is defined before the Update record action, the email uses the values set before the record is updated.

To change the order of defined actions, click the (drag handle) icon beside an action and drag it to the desired position.

Datensatz aktualisieren

This action updates one of the record’s (related) fields. Click the Update field and, in the list that opens, select or search for the field to be updated. If needed, click the (right arrow) next to the field name to access the list of related fields.

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

If you want the automated action to remove a tag from the customer record, set the Update field to Customer > Tags, select by Removing, then select the tag.

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:

  • To always assign the activity to the same user, select Specific User, then add the user in the Responsible field;

  • 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.

WhatsApp senden

Wichtig

Um das Senden von WhatsApp-Nachrichten zu automatisieren, müssen eine oder mehrere WhatsApp-Vorlagen erstellt werden.

This action is used to send a WhatsApp message to a contact linked to a specific record. To do so, select the appropriate WhatsApp Template from the dropdown menu.

Followers hinzufügen und entfernen

This action is used to subscribe/unsubscribe existing contacts to/from the record.

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

You can create another automation rule with Datensatz aktualisieren actions to update the fields of the new record if necessary. For example, you can use a Create Record action to create a new project task and then assign it to a specific user using an Update Record action.

Code ausführen

Wichtig

For automation rules that require the execution of custom code, note that maintenance of custom code is not included in the Standard or Custom pricing plans and incurs additional fees.

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

This action is used to send a POST API request with the values of the selected Fields to the webhook URL specified in the URL field.

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.

Bemerkung

It is also possible to set up an automated action that uses a webhook to receive data from an external system when a predefined event occurs in that system.

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.