Reguli de automatizare

Regulile de automatizare permit executarea uneia sau mai multor acțiuni predefinite ca răspuns la un anumit declanșator, de ex. crearea unei activități atunci când un câmp este setat la o anumită valoare sau arhivarea unei înregistrări la 7 zile după ultima actualizare.

La crearea unei reguli de automatizare, filtrele de domeniu vă permit să adăugați condiții care trebuie îndeplinite pentru ca regula de automatizare să ruleze, de ex. oportunitatea trebuie să fie alocată unui anumit agent de vânzări sau starea înregistrării nu trebuie să fie Ciornă.

Regulile de automatizare sunt furnizate de modulul Automation Rules (base_automation). Dacă meniul descris mai jos nu este disponibil, accesați aplicația Aplicații, eliminați filtrul Aplicații din bara de căutare, căutați Automation Rules și faceți clic pe Activează.

Notă

Gestionarea regulilor de automatizare necesită modul dezvoltator și drepturile de acces Administrare / Setări.

Pentru a crea o regulă de automatizare, procedați astfel:

  1. Cu modul dezvoltator activat, accesați Setări ‣ Tehnic ‣ Automatizare ‣ Reguli de automatizare, apoi faceți clic pe Nou.

  2. Selectați Model căruia i se aplică regula de automatizare, de ex. Comandă de vânzare.

  3. Dați regulii de automatizare un nume clar și sugestiv, care să identifice scopul ei.

  4. Selectați declanșatorul și, dacă este necesar, completați câmpurile care apar pe ecran în funcție de declanșatorul ales.

  5. Faceți clic pe Adaugă o acțiune, apoi selectați Tip de acțiune și completați câmpurile care apar pe ecran în funcție de acțiunea selectată.

  6. Salvați regula de automatizare.

screenshot: general-automation-rules-form
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules ‣ New
shows
Automation rule form: name, Model, Trigger and Delay fields, "Actions To Do" tab with one action line and the "Add an action" button, "Notes" tab.
highlight
The Trigger field and the "Add an action" button.
data
Rule "Follow up unhappy customers" on model Sales Order, trigger "After creation", delay 3 months.
module
base_automation
notes
English UI, developer mode active, 1440px width, crop to the form sheet.

Example

Pentru a asigura urmărirea clienților mai puțin mulțumiți, această regulă de automatizare creează o activitate la 3 luni după crearea unei comenzi de vânzare pentru clienții cu un procent de satisfacție mai mic de 30%.

screenshot: general-automation-rules-example-activity-conditions
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule on the Sales Order model with trigger "After creation", delay 3 months, an extra condition on the customer satisfaction field lower than 30%, and a "Create Activity" action in the "Actions To Do" tab.
highlight
The Trigger/Delay block and the extra condition.
data
Rule "Follow up unhappy customers"; activity type "To-Do".
module
base_automation, sale
notes
English UI, developer mode active, crop to the form sheet.

Sfat

  • Utilizați fila Note pentru a documenta scopul și funcționarea regulilor de automatizare. Acest lucru facilitează întreținerea regulilor și colaborarea între utilizatori.

  • Modelul vizat de regula de automatizare este setat în câmpul Model din formularul regulii de automatizare.

  • Regulile de automatizare pot fi create din orice etapă kanban făcând clic pe pictograma (Setări) care apare când plasați cursorul peste numele etapei kanban, apoi selectând Automatizări. În acest caz, Declanșator este setat implicit la Etapa este setată la, dar poate fi modificat dacă este necesar.

    screenshot: general-automation-rules-kanban-stage
    menu
    Project ‣ (any project) kanban view
    shows
    Kanban stage header with the gear (Settings) dropdown open, showing the "Automations" entry.
    highlight
    The "Automations" dropdown entry.
    data
    Demo project "Office Design", stage "In Progress".
    module
    base_automation, project
    notes
    English UI, crop to the stage column header and dropdown.

Declanșator

Declanșator este utilizat pentru a defini ce tip de eveniment trebuie să aibă loc pentru ca regula de automatizare să ruleze. Declanșatoarele disponibile depind de model. În total sunt disponibile cinci categorii de declanșatoare:

Adăugarea condițiilor

Filtrele de domeniu vă permit să stabiliți înregistrările pe care o regulă de automatizare trebuie să le vizeze sau să le excludă. Un filtraj eficient îmbunătățește performanța generală, deoarece evită procesarea inutilă a înregistrărilor neafectate de regulă.

Sfat

Activați modul dezvoltator înainte de a crea o regulă de automatizare pentru a avea cea mai mare flexibilitate în adăugarea filtrelor de domeniu.

În funcție de declanșatorul ales, este posibil să definiți una sau mai multe condiții pe care o înregistrare trebuie să le îndeplinească înainte și/sau după producerea unui declanșator.

  • Domeniu înainte de actualizare definește condițiile pe care o înregistrare trebuie să le îndeplinească înainte de producerea evenimentului declanșator, de ex. înregistrarea trebuie să aibă Type = Customer Invoice și Status = Posted.

    Cu modul dezvoltator activat, faceți clic pe Editează domeniul, dacă este disponibil, apoi pe Regulă nouă.

  • Condiții suplimentare sau, în unele cazuri, filtrele Aplică pe, definesc condițiile pe care o înregistrare trebuie să le îndeplinească după producerea evenimentului declanșator, de ex. factura clientului trebuie să aibă Payment Status = Partially Paid.

    Cu modul dezvoltator activat, dacă este necesar, faceți clic pe Adaugă condiții sau pe Editează domeniul, după caz, apoi pe Regulă nouă.

Când are loc un declanșator, de ex. se actualizează starea de plată a unei facturi postate a clientului, regula de automatizare verifică condițiile definite și execută acțiunea numai dacă înregistrarea îndeplinește aceste condiții.

Example

Dacă acțiunea automatizată trebuie executată atunci când o adresă de e-mail este setată pentru prima dată (spre deosebire de modificarea unei adrese de e-mail) pe un contact existent care este o persoană fizică, nu o companie, utilizați Email is not set și Is a Company is not set ca Domeniu înainte de actualizare și Email is set ca Aplică pe.

screenshot: general-automation-rules-before-update-domain
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule on the Contact model with trigger "On save"; Before Update Domain "Email is not set" and "Is a Company is not set"; Apply on domain "Email is set".
highlight
The Before Update Domain and Apply on fields.
data
Rule "Welcome new individual contacts".
module
base_automation, contacts
notes
English UI, developer mode active, crop to the trigger section.

Notă

Domeniu înainte de actualizare nu este verificat la crearea unei înregistrări.

Valori actualizate

Declanșează acțiuni automatizate atunci când au loc anumite modificări în baza de date. Declanșatoarele disponibile în această categorie depind de model și se bazează pe modificări uzuale, precum adăugarea unei anumite etichete (de ex. la o sarcină) sau setarea valorii unui câmp (de ex. setarea câmpului Utilizator).

Selectați declanșatorul, apoi selectați o valoare, dacă este necesar.

Evenimente e-mail

Declanșează acțiuni automatizate la primirea sau trimiterea de e-mailuri:

  • La primirea mesajului: când un mesaj este primit pe înregistrare.

  • La trimiterea mesajului: când un mesaj este trimis din înregistrare.

Aceste declanșatoare sunt disponibile numai pentru modelele care au chatter.

Condiții de timp

Declanșează acțiuni automatizate la un moment în timp relativ la un câmp de tip dată sau la crearea ori actualizarea unei înregistrări. Sunt disponibile următoarele declanșatoare:

  • Pe baza câmpului de dată: acțiunea este declanșată cu o perioadă de timp definită înainte sau după data câmpului de dată selectat.

  • După creare: acțiunea este declanșată după o perioadă de timp definită de la crearea și salvarea unei înregistrări.

  • După ultima actualizare: acțiunea este declanșată după o perioadă de timp definită de la editarea și salvarea unei înregistrări existente.

Puteți defini apoi:

  • o Întârziere: specificați numărul de minute, ore, zile sau luni. Pentru ca o acțiune să fie executată înainte de data declanșatorului, specificați un număr negativ. Dacă ați selectat declanșatorul Pe baza câmpului de dată, trebuie să selectați și câmpul de dată utilizat pentru a determina întârzierea.

    Notă

    În mod implicit, planificatorul verifică regulile de automatizare declanșate în timp la fiecare 240 de minute, adică 4 ore. Această frecvență este în general suficientă pentru întârzieri precum 3 luni după data comenzii sau 7 zile după ultima actualizare.

    Pentru întârzieri mai mici decât echivalentul a 2400 de minute, adică 40 de ore, sistemul recalculează frecvența acestei verificări pentru a se asigura că întârzierile mai fine, de ex. cu 1 oră înainte de data și ora de început a evenimentului sau la 30 de minute după creare, pot fi respectate cât mai îndeaproape.

    Un mesaj pe ecran indică întârzierea posibilă după declanșarea programată a regulii.

    screenshot: general-automation-rules-trigger-delay-message
    menu
    Settings ‣ Technical ‣ Automation ‣ Automation Rules
    shows
    Timing trigger with a delay and the grey information message below it about the possible delay after the scheduled execution of the rule.
    highlight
    The information message.
    module
    base_automation
    notes
    English UI, crop to the trigger/delay block.

    Pentru a vizualiza sau edita manual frecvența planificatorului, cu modul dezvoltator activat, accesați Setări ‣ Tehnic ‣ Acțiuni programate pentru a vedea toate acțiunile programate ale bazei de date.

    Introduceți Automation în bara de căutare, apoi, în lista de rezultate, faceți clic pe Reguli de automatizare: verifică și execută. Dacă doriți, actualizați valoarea câmpului Executați fiecare. Faceți clic pe Rulează manual oricând pentru a declanșa manual această acțiune programată.

  • Condiții suplimentare: faceți clic pe Adaugă condiție, apoi specificați condițiile care trebuie îndeplinite pentru ca regula de automatizare să ruleze. Faceți clic pe Regulă nouă pentru a adăuga o altă condiție.

Acțiunea este executată când se atinge întârzierea și condițiile sunt îndeplinite.

Example

Pentru a trimite un e-mail de memento cu 30 de minute înainte de începerea unui eveniment din calendar, selectați Început (Eveniment din calendar) ca câmp de dată pentru Declanșator și setați Întârziere la -30 Minute.

screenshot: general-automation-rules-timing-trigger
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule on the Calendar Event model with trigger "Based on date field", Delay "-30 Minutes" and trigger date "Start".
highlight
The Trigger, Delay and date field.
data
Rule "Meeting reminder".
module
base_automation, calendar
notes
English UI, crop to the trigger section.

Personalizat

Declanșează acțiuni automatizate:

  • La salvare: când o înregistrare este salvată.

  • La ștergere: când o înregistrare este ștearsă.

  • La arhivare / La dezarhivare: când o înregistrare este arhivată sau restaurată, pentru modelele care pot fi arhivate.

  • La modificarea interfeței: când valoarea unui câmp este modificată în vizualizarea Formular, chiar înainte de salvarea înregistrării.

Pentru declanșatoarele La salvare și La modificarea interfeței, trebuie apoi să selectați câmpul (câmpurile) utilizat(e) pentru a declanșa regula de automatizare în câmpul La actualizare.

Atenționare

Dacă în câmpul La actualizare nu este selectat niciun câmp, acțiunea automatizată poate fi executată de mai multe ori pe înregistrare.

Opțional, puteți defini și condiții suplimentare care trebuie îndeplinite pentru declanșarea regulii de automatizare în câmpul Aplică pe.

Example

Pentru a declanșa o acțiune automatizată la crearea unei înregistrări, de ex. când este creat un contact nou, selectați declanșatorul La salvare și utilizați ID is not set ca Domeniu înainte de actualizare și ID is set ca Aplică pe. Asigurați-vă că în câmpul La actualizare este selectat câmpul corect.

Când un contact nou este salvat, i se atribuie automat un ID în baza de date, ceea ce declanșează regula de automatizare.

screenshot: general-automation-rules-on-save-creation
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule on the Contact model with trigger "On save", Before Update Domain "ID is not set", Apply on "ID is set" and the "When updating" field filled.
highlight
The two domains and the "When updating" field.
module
base_automation, contacts
notes
English UI, developer mode active, crop to the trigger section.

Notă

Declanșatorul La modificarea interfeței poate fi utilizat doar cu acțiunea Execută cod și funcționează numai atunci când modificarea este făcută manual. Acțiunea nu este executată dacă câmpul este modificat printr-o altă regulă de automatizare.

Extern

Declanșează acțiuni automatizate pe baza unui eveniment specific dintr-un sistem sau o aplicație externă, folosind un webhook.

După ce webhook-ul este configurat în Odoo, unde este generat URL-ul webhook-ului și definită înregistrarea țintă, acesta trebuie implementat în sistemul extern.

Atenționare

Este foarte recomandat să consultați un dezvoltator, un arhitect de soluții sau un alt rol tehnic atunci când decideți să utilizați webhook-uri și pe tot parcursul procesului de implementare. Dacă nu sunt configurate corect, webhook-urile pot perturba baza de date Odoo, iar remedierea poate dura.

screenshot: general-automation-rules-webhook-trigger
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule with trigger "On webhook": the generated webhook URL with copy button, the "Target Record" field, the "Log Calls" option and an "Update Record" action.
highlight
The webhook URL field.
module
base_automation
notes
English UI, developer mode active; blur the UUID part of the URL.

Notă

De asemenea, este posibil să configurați o acțiune automatizată care trimite date către webhook-ul unui sistem extern atunci când are loc un eveniment în baza de date Odoo.

Acțiuni

După ce ați definit declanșatorul regulii de automatizare, faceți clic pe Adaugă o acțiune în fila Acțiuni de efectuat pentru a defini acțiunea care trebuie executată.

Sfat

Puteți defini mai multe acțiuni pentru aceeași regulă de automatizare. În mod implicit, acțiunile sunt executate în ordinea în care au fost definite.

Aceasta înseamnă, de exemplu, că dacă definiți o acțiune Actualizare înregistrare și apoi o acțiune Trimite e-mail în care e-mailul face referire la câmpul actualizat, e-mailul utilizează valorile actualizate. Totuși, dacă acțiunea Trimite e-mail este definită înaintea acțiunii Actualizare înregistrare, e-mailul utilizează valorile setate înainte de actualizarea înregistrării.

Pentru a schimba ordinea acțiunilor definite, faceți clic pe pictograma (mâner de tragere) de lângă o acțiune și trageți-o în poziția dorită.

Actualizare înregistrare

Această acțiune actualizează unul dintre câmpurile (asociate) ale înregistrării. Faceți clic pe câmpul Actualizează și, în lista care se deschide, selectați sau căutați câmpul de actualizat. Dacă este necesar, faceți clic pe (săgeată dreapta) de lângă numele câmpului pentru a accesa lista câmpurilor asociate.

Dacă ați selectat un câmp many2many, alegeți dacă acesta trebuie actualizat prin Adăugare, Eliminare sau Setarea la valoarea selectată ori prin Ștergerea sa.

Example

Dacă doriți ca acțiunea automatizată să elimine o etichetă din înregistrarea clientului, setați câmpul Actualizează la Client > Etichete, selectați prin Eliminare, apoi selectați eticheta.

screenshot: general-automation-rules-update-record-tags
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules ‣ Add an action
shows
Action dialog with Type "Update Record", Update field "Customer > Tags", "by Removing" selected and one tag chosen.
highlight
The Update field and the by Adding/Removing/Setting it to/Clearing it choice.
module
base_automation
notes
English UI, crop to the dialog.

Sfat

Alternativ, puteți seta dinamic câmpul unei înregistrări folosind cod Python. Pentru aceasta, selectați Calculează în loc de Actualizează, apoi introduceți codul utilizat pentru calcularea valorii câmpului. De exemplu, dacă doriți ca regula de automatizare să calculeze un câmp datetime personalizat atunci când prioritatea unei sarcini este setată la High (prin marcarea sarcinii cu stea), puteți defini declanșatorul Prioritatea este setată la la High și puteți defini acțiunea Actualizare înregistrare după cum urmează:

screenshot: general-automation-rules-update-record-compute
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules ‣ Add an action
shows
Action dialog with Type "Update Record", "Compute" selected instead of "Update", a custom datetime field of the Task model and a short Python expression.
highlight
The Compute toggle and the expression.
module
base_automation, project
notes
English UI, developer mode active, crop to the dialog.

Creare activitate

Această acțiune este utilizată pentru a programa o activitate nouă legată de înregistrare. Selectați un Tip activitate, introduceți un Titlu și o descriere, apoi specificați când doriți să fie programată activitatea în câmpul Scadență în și selectați un Tip utilizator:

  • Pentru a aloca întotdeauna activitatea aceluiași utilizator, selectați Utilizator specific, apoi adăugați utilizatorul în câmpul Responsabil;

  • Pentru a viza dinamic un utilizator legat de înregistrare, selectați Utilizator dinamic (bazat pe înregistrare) și modificați Câmp utilizator, dacă este necesar.

Example

După ce o pistă este transformată în oportunitate, doriți ca acțiunea automatizată să programeze un apel pentru utilizatorul responsabil de pistă. Pentru aceasta, setați Tip activitate la Apel și Tip utilizator la Utilizator dinamic (bazat pe înregistrare).

screenshot: general-automation-rules-create-activity
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules ‣ Add an action
shows
Action dialog with Type "Create Activity", Activity Type "Call", User Type "Dynamic User (based on record)" and User Field "Salesperson".
highlight
The Activity Type and User Type fields.
module
base_automation, mail, crm
notes
English UI, crop to the dialog.

Trimitere e-mail și trimitere SMS

Aceste acțiuni sunt utilizate pentru a trimite un e-mail sau un mesaj text către un contact legat de o anumită înregistrare. Pentru aceasta, selectați sau creați un Șablon e-mail sau un Șablon SMS, apoi, în câmpul Trimite e-mail ca sau Trimite SMS ca, alegeți cum doriți să trimiteți e-mailul sau mesajul text:

  • E-mail: pentru a trimite mesajul ca e-mail către destinatarii din Șablon e-mail.

  • Mesaj: pentru a posta mesajul pe înregistrare și a notifica urmăritorii înregistrării.

  • Notă: pentru a trimite mesajul ca notă internă vizibilă utilizatorilor interni în chatter.

  • SMS (fără notă): pentru a trimite mesajul ca mesaj text către destinatarii din Șablon SMS.

  • SMS (cu notă): pentru a trimite mesajul ca mesaj text către destinatarii din Șablon SMS și a-l posta ca notă internă în chatter.

  • Doar notă: pentru a posta mesajul doar ca notă internă în chatter.

Adăugare și eliminare urmăritori

Această acțiune este utilizată pentru a abona/dezabona contactele existente la/de la înregistrare.

Creare înregistrare

Această acțiune este utilizată pentru a crea o înregistrare nouă pe orice model.

Selectați modelul necesar în câmpul Înregistrare de creat; implicit, acesta conține modelul curent. Specificați un Nume pentru înregistrare și apoi, dacă doriți să creați înregistrarea pe un alt model, selectați un câmp în câmpul Câmp de legătură pentru a lega înregistrarea care a declanșat crearea noii înregistrări.

Notă

Lista derulantă aferentă câmpului Câmp de legătură conține numai câmpurile one2many existente pe modelul curent, care sunt legate de un câmp many2one al modelului țintă.

Sfat

Puteți crea o altă regulă de automatizare cu acțiuni Actualizare înregistrare pentru a actualiza câmpurile noii înregistrări, dacă este necesar. De exemplu, puteți utiliza o acțiune Creează înregistrare pentru a crea o sarcină de proiect nouă și apoi o puteți aloca unui anumit utilizator folosind o acțiune Actualizare înregistrare.

Execută cod

Important

Codul personalizat rulează cu drepturile regulii de automatizare și nu este acoperit de actualizările standard. Solicitați scrierea și întreținerea lui de către un dezvoltator.

Această acțiune este utilizată pentru a executa cod Python. Puteți scrie codul în fila Cod folosind următoarele variabile:

  • env: mediul în care este declanșată acțiunea

  • model: modelul înregistrării pe care este declanșată acțiunea; este un recordset gol

  • record: înregistrarea pe care este declanșată acțiunea; poate fi goală

  • records: recordset-ul tuturor înregistrărilor pe care este declanșată acțiunea în mod multiplu; poate fi lăsat gol

  • time, datetime, dateutil, timezone: biblioteci Python utile

  • float_compare: funcție utilitară pentru compararea valorilor float pe baza unei precizii specifice

  • log(message, level='info'): funcție de logare pentru a înregistra informații de depanare în tabela ir.logging

  • _logger.info(message): logger pentru emiterea de mesaje în jurnalele serverului

  • UserError: clasă de excepție pentru afișarea mesajelor de avertizare către utilizator

  • Command: spațiu de nume al comenzilor x2many

  • action = {...}: pentru a returna o acțiune

Sfat

Variabilele disponibile sunt descrise atât în fila Cod, cât și în fila Ajutor.

Trimitere notificare webhook

Această acțiune este utilizată pentru a trimite o cerere API POST cu valorile Câmpuri selectate către URL-ul webhook specificat în câmpul URL.

Exemplu de payload oferă o previzualizare a datelor incluse în cerere, folosind datele unei înregistrări aleatorii sau date fictive dacă nu este disponibilă nicio înregistrare.

Notă

Este posibil, de asemenea, să configurați o acțiune automatizată care utilizează un webhook pentru a primi date de la un sistem extern atunci când are loc un eveniment predefinit în acel sistem.

Executare acțiuni existente

Acțiunea este utilizată pentru a declanșa simultan mai multe acțiuni (legate de modelul curent). Pentru aceasta, faceți clic pe Adaugă o linie, apoi, în fereastra pop-up Adaugă: Acțiuni copil, selectați o acțiune existentă sau faceți clic pe Nou pentru a crea una nouă.