Automatisierungsregeln in Odoo: Auslöser und Aktionen
Kurz gesagt
Automatisierungsregeln führen in Odoo 20.0 eine oder mehrere Aktionen aus, sobald ein Auslöser eintritt: ein Feldwert ändert sich oder ein Webhook kommt von außen. Eine zeitbasierte Aktion läuft erst beim nächsten Prüflauf der geplanten Aktion nach dem Ausführungszeitpunkt und nur bei erfüllten Bedingungen, standardmäßig alle vier Stunden. Im Community-Zweig liegen die Regeln unter Einstellungen ‣ Technisch ‣ Automatisierung ‣ Automatisierungsregeln; die Dokumentation beschreibt das Anlegen in Odoo Studio, das im Tarif Standard ein Upsell auf Custom auslöst.
Das Wichtigste
- Eine Regel verbindet ein Modell, einen Auslöser, optionale Bedingungen und eine oder mehrere Aktionen.
- Auslöserkategorien 20.0: Werte aktualisiert, Veranstaltungsmails, Zeitliche Bedingungen, Benutzerdefiniert und Extern.
- Eine zeitbasierte Aktion läuft erst beim nächsten Prüflauf der geplanten Aktion Automatisierungsregeln: prüfen und ausführen nach dem Ausführungszeitpunkt und nur bei erfüllten Bedingungen.
- Bei zeitbasiertem Auslöser führen Sie die geplante Aktion manuell aus, bevor Sie die Aktionen hinzufügen; sonst greift die Regel rückwirkend auf historische Datensätze.
- Die Domäne vor Aktualisierung wird beim Erstellen eines Datensatzes nicht geprüft; nutzen Sie dafür Anwenden auf.
- Regeln anlegen darf im Community-Zweig 20.0 nur die Gruppe Einstellungen (base.group_system); das Menü Technisch setzt den Entwicklermodus voraus.
Was Sie vorab brauchen
- Eine Kopie der Datenbank. Testen Sie Regeln dort, wie es die Dokumentation für Webhooks verlangt; bei einem zeitbasierten Auslöser kann eine nicht initialisierte Regel rückwirkend auf historische Datensätze laufen.
- Das Recht Einstellungen. Im Community-Zweig 20.0 hat nur die Gruppe
base.group_systemZugriff aufbase.automation(Benutzer und Zugriffsgruppen). - Den Entwicklermodus für den Weg über die Einstellungen; das Menü Technisch ist erst dann sichtbar (Entwicklermodus in Odoo).
- Einen Satz zum Zweck für den Reiter Notizen: Modell, Auslöser, Bedingung, Aktion, Zielwert.
- Vorlagen für Aktionen, die eine Nachricht senden; WhatsApp senden setzt laut Dokumentation WhatsApp-Vorlagen voraus.
Schritt für Schritt: eine Regel anlegen
Schritt 1: Modell und Ort wählen
Im Community-Zweig öffnen Sie mit Entwicklermodus Einstellungen ‣ Technisch ‣ Automatisierung ‣ Automatisierungsregeln und wählen Neu. Mit Odoo Studio wechseln Sie vorher in das gewünschte Modell, öffnen Studio und wählen Automatisierungen ‣ Neu; Studio im Tarif Standard löst ein Upsell auf Custom aus. Ein dritter Weg beginnt an einer Kanban-Spalte über das Zahnradsymbol am Spaltennamen; dort steht der Auslöser bereits auf Phase ist eingestellt auf. Was Studio sonst verändert, steht unter Odoo Studio: Anpassen ohne Programmieren.
Vergeben Sie einen Namen, der den Zweck trägt, und wählen Sie das Modell. Ergebnis: ein Formular mit dem Feld Auslöser und den Reitern Auszuführende Aktionen und Notizen.
Schritt 2: Auslöser wählen
Der Auslöser bestimmt das Ereignis, das die Regel startet; die Auswahl hängt am Modell. Die Dokumentation zu 20.0 nennt fünf Kategorien (die zweite heißt im Englischen Email Events und meint E-Mails):
| Auslöserkategorie | Was sie startet |
|---|---|
| Werte aktualisiert (Values Updated) | Änderungen im Datensatz, etwa ein Stichwort wird hinzugefügt oder das Feld Benutzer gesetzt |
| Veranstaltungsmails (Email Events) | Eingang oder Versand einer E-Mail |
| Zeitliche Bedingungen (Timing Conditions) | Basierend auf Datumsfeld, Nach Erstellung, Nach letzter Aktualisierung |
| Benutzerdefiniert (Custom) | Bei Erstellung, Bei Erstellung und Bearbeitung, Bei Löschung, Bei UI-Änderung |
| Extern (External) | Webhook aus einem externen System, Auslöser Bei Webhook |
Für die Auslöser Bei Erstellung und Bearbeitung und Bei UI-Änderung wählen Sie im Feld Bei Aktualisierung ein Feld; bleibt es leer, kann die Aktion mehrfach je Datensatz laufen. Der Auslöser Bei UI-Änderung arbeitet nur mit der Aktion Code ausführen.
Schritt 3: Bedingungen setzen
Bedingungen sind optional. Die Domäne vor Aktualisierung prüft den Datensatz vor dem Ereignis, Anwenden auf danach; ohne Entwicklermodus ergänzen Sie eine Bedingung über Bedingung hinzufügen. Zwei Eigenheiten gehören ins Regeldesign: Die Domäne vor Aktualisierung wird beim Erstellen eines Datensatzes nicht geprüft, und Odoo prüft die Bedingungen erst, nachdem der Auslöser ausgelöst hat. Passt der Datensatz nicht, unterbleibt die Aktion.
Schritt 4: Zeitbasierte Regeln initialisieren
Dieser Schritt betrifft nur die Auslöserkategorie Zeitliche Bedingungen. Stellen Sie dort die Verzögerung in Minuten, Stunden, Tagen oder Monaten ein; bei Basierend auf Datumsfeld wählen Sie zusätzlich Vor oder Nach. Speichern Sie mit Manuell speichern und klicken Sie auf Geplante Aktion; das öffnet die geplante Aktion Automatisierungsregeln: prüfen und ausführen.
Dort klicken Sie oben links auf Manuell ausführen. Der Schritt setzt den Zeitstempel des letzten Laufs; die Dokumentation nennt ihn entscheidend, damit die Regel nicht rückwirkend auf historische Datensätze läuft. Führen Sie ihn aus, bevor Sie die Aktionen hinzufügen (Schritt 5). Standardmäßig prüft die geplante Aktion alle vier Stunden; Verzögerungen unter dem Gegenwert von 40 Stunden erhöhen den Takt automatisch, laut Dokumentation etwa bei drei Stunden Verzögerung auf einen Takt von 18 Minuten.
Die Aktion läuft nur, wenn der errechnete Ausführungszeitpunkt zwischen letztem und aktuellem Lauf liegt und die Bedingungen zutreffen (letzte Ausführung, Ausführungszeitpunkt, aktuelle Ausführung). Ein manueller Lauf führt sie deshalb nicht zwangsläufig aus; sehen Sie am Datensatz nach.
Schritt 5: Aktionen hinzufügen
Im Reiter Auszuführende Aktionen wählen Sie Aktion hinzufügen und dann den Typ; die Dokumentation zu 20.0 nennt neun:
| Typ der Aktion | Wofür | Wichtige Angaben |
|---|---|---|
| Datensatz aktualisieren | ein Feld setzen, auch ein verknüpftes | Aktualisieren, Mit KI aktualisieren, Sequenz, Berechnen |
| Datensatz erstellen und duplizieren | neuen oder kopierten Datensatz anlegen | Zu erstellender Datensatz, Name, Verknüpfungsfeld |
| Aktivität erstellen | Aktivität am Datensatz planen | Aktivitätstyp, Titel, Fällig in, Bestimmter oder Dynamischer Benutzer |
| E-Mail versenden und SMS versenden | Vorlage senden oder im Chatter posten | Vorlage, E-Mail senden als: E-Mail, Nachricht, Notiz |
| WhatsApp senden | WhatsApp-Vorlage senden | erstellte Vorlage nötig |
| Follower hinzufügen und entfernen | Kontakte an- oder abmelden | Bestimmte oder Dynamische Follower |
| Code ausführen | Python-Code mit env, model, record, records | Wartung von eigenem Code laut Dokumentation nicht in Standard und Custom enthalten |
| Webhook-Benachrichtigung versenden | POST-Anfrage an eine externe URL | URL und Beispielnutzdaten |
| Mehrere Aktionen | mehrere Aktionen zu einem Auslöser bündeln | Aktion hinzufügen im Pop-up |
Mehrere Aktionen laufen in der Reihenfolge ihrer Definition; die Reihenfolge ändern Sie am Ziehgriff. Bei einem zeitbasierten Auslöser liegt der manuelle Lauf aus Schritt 4 hinter Ihnen; speichern Sie danach mit Manuell speichern.
Schritt 6: Speichern und testen
Speichern Sie die Regel und legen Sie den Testfall an, auf den der Auslöser passt. Prüfen Sie das Ergebnis dort, wo die Aktion wirkt: eine Aktivität unter Aktivitäten, ein geänderter Feldwert, ein Stichwort, eine Nachricht im Chatter. Erst wenn der Testfall sitzt, übernehmen Sie die Regel in die Produktivdatenbank.
Drei Beispielregeln mit Auslöser und Test
Die drei Beispiele decken drei Auslöserkategorien ab; Ziele und Werte sind als Beispiele gewählt.
| Zweck | Modell | Auslöser | Aktion |
|---|---|---|---|
| Angebot nachfassen | Verkauf ‣ Auftrag | Werte aktualisiert: Status ist eingestellt auf Angebot gesendet | Aktivität erstellen |
| Frist im Projekt | Projekt ‣ Aufgabe | Zeitliche Bedingungen: Basierend auf Datumsfeld Frist, Vor 5 Tage | Datensatz aktualisieren |
| Kontakt vervollständigen | Kontakt | Benutzerdefiniert: Bei Erstellung und Bearbeitung, Feld E-Mail | Datensatz aktualisieren |
Beispiel 1: Angebot nachfassen
Ziel: Sobald ein Angebot auf Angebot gesendet wechselt, entsteht am Datensatz sofort eine Anrufaktivität für den zuständigen Vertriebsmitarbeiter; fällig wird sie drei Tage später.
- Modell Verkauf ‣ Auftrag; Auslöser Werte aktualisiert ‣ Status ist eingestellt auf ‣ Angebot gesendet.
- Domäne vor Aktualisierung: Status ist nicht Angebot gesendet, damit die Regel nur beim Wechsel greift.
- Aktion Aktivität erstellen: Typ Anruf, Titel Angebot nachfassen, Fällig in 3 Tagen, Dynamischer Benutzer (basierend auf Datensatz) mit dem Feld Vertriebsmitarbeiter.
Test: Setzen Sie ein Angebot auf Angebot gesendet. Am Datensatz muss sofort die Anrufaktivität mit Fälligkeit in drei Tagen stehen. Ändern Sie danach ein anderes Feld, etwa den Kunden: Eine zweite Aktivität entsteht nicht. Legen Sie ein zweites Angebot an und versenden Sie es: Die Aktivität muss erneut erscheinen.
Beispiel 2: Frist naht im Projekt
Ziel: Fünf Tage vor der Frist einer Aufgabe erhält die Aufgabe das Stichwort Frist naht.
- Modell Projekt ‣ Aufgabe; Auslöser Zeitliche Bedingungen ‣ Basierend auf Datumsfeld ‣ Frist, Verzögerung 5 Tage, Richtung Vor.
- Keine Bedingung; wollen Sie erledigte Aufgaben ausnehmen, ergänzen Sie unter Anwenden auf eine Bedingung auf Ihre Projektphase.
- Manuell speichern, Geplante Aktion öffnen, Manuell ausführen — bevor Sie die Aktion anlegen.
- Aktion Datensatz aktualisieren: Feld Stichwörter, durch Hinzufügen, Wert Frist naht; danach Manuell speichern.
Test: Legen Sie nach diesem Lauf eine Aufgabe mit Frist in genau fünf Tagen an; der Ausführungszeitpunkt liegt dann zwischen letztem und nächstem Lauf (Standard alle vier Stunden). Führen Sie die geplante Aktion erneut manuell aus und prüfen Sie das Stichwort. Bei einer Frist in zehn Tagen kommt das Stichwort später.
Beispiel 3: Kontakt vervollständigen
Ziel: Sobald an einem Kontakt eine E-Mail-Adresse steht, trägt der Datensatz das Stichwort Kontakt vollständig.
- Modell Kontakt; Auslöser Benutzerdefiniert ‣ Bei Erstellung und Bearbeitung, Feld Bei Aktualisierung ‣ E-Mail.
- Domäne vor Aktualisierung: E-Mail ist nicht gesetzt und Ist ein Unternehmen ist nicht gesetzt. Anwenden auf: E-Mail ist gesetzt.
- Aktion Datensatz aktualisieren: Feld Stichwörter, durch Hinzufügen, Wert Kontakt vollständig.
Test: Legen Sie einen Kontakt ohne E-Mail-Adresse an; das Stichwort fehlt. Tragen Sie die Adresse ein und speichern Sie: Das Stichwort muss erscheinen. Legen Sie einen zweiten Kontakt gleich mit Adresse an: Die Domäne vor Aktualisierung wird beim Erstellen nicht geprüft, deshalb steht das Stichwort sofort am Datensatz.
So prüfen Sie das Ergebnis
- Sehen Sie nach jedem Test am Datensatz nach, wo die Aktion wirkt: Aktivitäten, Feldwert, Stichwort, Chatter-Nachricht.
- Prüfen Sie eine Regel mit Bedingungen zweimal: mit einem passenden und einem nicht passenden Datensatz; beim zweiten darf nichts geschehen.
- Prüfen Sie mehrere Aktionen in ihrer Reihenfolge und zeitbasierte Regeln über das Zeitfenster aus Schritt 4.
- Prüfen Sie bei einer zeitbasierten Regel, dass der manuelle Lauf vor dem Anlegen der Aktion lag; nur so bleiben Altbestände außen vor.
- Testen Sie in einer Kopie der Datenbank (Testumgebung für Odoo); Regeln aus einer Kopie gehören nicht in die Produktivdatenbank.
Wenn etwas nicht klappt
| Symptom | Ursache nach Dokumentation oder Quellcode 20.0 | Lösung |
|---|---|---|
| Die Regel wirkt nicht | Der Auslöser ist vor dem Anlegen eingetreten | Testdatensatz nach dem Speichern neu anlegen oder ändern |
| Zeitbasierte Regel bleibt still | Der Ausführungszeitpunkt liegt nicht zwischen letztem und aktuellem Lauf, oder die Bedingungen treffen nicht zu | Geplante Aktion manuell ausführen, Takt, Zeitfenster und Bedingungen prüfen |
| Eine zeitbasierte Regel trifft Altbestände | Der erste manuelle Lauf der geplanten Aktion fehlt; er ist nach der Dokumentation vor dem Anlegen der Aktionen vorgesehen | In einer Kopie testen, die geplante Aktion vor dem Hinzufügen der Aktionen manuell ausführen und die betroffenen Datensätze prüfen |
| Die Aktion läuft mehrfach je Datensatz | Das Feld Bei Aktualisierung ist leer | Feld auswählen |
| Bedingung filtert beim Anlegen nicht | Die Domäne vor Aktualisierung wird beim Erstellen nicht geprüft | Bedingung unter Anwenden auf ergänzen |
| Menü Automatisierungsregeln fehlt | Entwicklermodus aus oder Recht Einstellungen fehlt | Entwicklermodus einschalten oder einen Administrator fragen |
| Webhook löst nichts aus | Die URL muss das externe System aufrufen; sie ist geheim | Entwicklerrolle hinzuziehen, Log Calls einschalten |
Wann Sie Hilfe holen sollten
Ziehen Sie eine Entwicklerrolle hinzu, wenn eine Regel Code ausführen oder einen Webhook nutzt: Falsch konfigurierte Webhooks können die Datenbank stören, und die Wartung von benutzerdefiniertem Code ist laut Dokumentation in den Preisplänen Standard und Custom nicht enthalten. Soll eine Regel Belege, Buchungen oder Lagerbewegungen verändern, klären Sie das vorab mit Ihrer Steuerberatung.