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:
Öffnen Sie Studio und klicken Sie auf Automatisierungen, dann Neu.
Give the automation rule a clear, meaningful name that identifies its purpose.
Select the trigger and, if necessary, fill in the fields that appear on the screen based on the chosen trigger.
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.
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%.

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.
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
andStatus = 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.

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.
To view or manually edit the frequency of the scheduler, with developer mode activated, go to 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.

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.

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.

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.
Siehe auch
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.

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:

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

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 wirdmodel
: Modell des Datensatzes, für den die Aktion ausgelöst wird; ist ein leerer Datensatzrecord
: Datensatz, für den die Aktion ausgelöst wird; möglicherweise ist er leerrecords
: Datensatz aus allen Daten, für die die Aktion im Multi-Modus ausgelöst wird; möglicherweise ist er leertime
,datetime
,dateutil
,timezone
: nützliche Python-Bibliothekenfloat_compare
: Utility-Funktion zum Vergleich von Zahlenkonstanten auf der Grundlage einer bestimmten Genauigkeitlog(message, level='info')
: Protokollierfunktion zur Aufzeichnung von Fehlerbeseitigungsinformationen in ir.logging-Tabelle_logger.info(message)
: Datenspeicher zur Ausgabe von Meldungen in ServerprotokollenUserError
: Ausnahmeklasse zum Auslösen von benutzerseitigen WarnmeldungenCommand
: x2many-Befehlsnamensfeldaction = {...}
: um eine Aktion zurückzugeben
Tipp
Die verfügbaren Variablen werden in den Reitern Code und Hilfe beschrieben.
Siehe auch
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.