Regler för automatisering

Automatiseringsregler används för att utlösa automatiska ändringar baserat på användaråtgärder (t.ex. tillämpa en ändring när ett fält har ett visst värde), e-posthändelser, tidsvillkor (t.ex. arkivera en post 7 dagar efter den senaste uppdateringen) eller externa händelser.

Gör på följande sätt för att skapa en automatiseringsregel med Studio:

  1. Open Studio and click Automations, then New.

  2. Välj Utlösare och fyll vid behov i de fält som visas på skärmen baserat på den valda triggern.

  3. Klicka på Lägg till en åtgärd, välj sedan Typ av åtgärd och fyll i fälten som visas på skärmen baserat på den åtgärd du har valt.

  4. Klicka på Save & Close eller Save & New.

Example

Exempel på en automatiserad åtgärd för prenumerationsmodellen

Tips

  • Om du vill ändra modell för automatiseringsregeln ska du byta modell innan du klickar på Automations i Studio eller aktivera utvecklarläget, skapa eller redigera en automatiseringsregel och välja Model i formuläret Automation Rules.

  • Du kan också skapa automatiseringsregler från vilket kanban-steg som helst genom att klicka på kugghjulsikonen ( ) bredvid kanban-stegsnamnet och sedan välja Automations. I det här fallet är Trigger inställd på Stage är inställd på som standard, men du kan ändra det om det behövs.

    Skapa automatiseringar från ett kanban-steg

Utlösare

Trigger används för att definiera när automatiseringsregeln ska tillämpas. Vilka triggers som är tillgängliga beror på model. Totalt finns fem triggerkategorier tillgängliga:

Tips

Du kan också definiera en Before Update Domain för att ange de villkor som måste uppfyllas innan automatiseringsregeln utlöses. Däremot kontrolleras de villkor som definieras med hjälp av filtren Extra Conditions och Apply on under utförandet av automatiseringsregeln.

För att definiera en Before Update Domain, aktivera utvecklarläget, skapa eller redigera en automatiseringsregel, klicka på Edit Domain och sedan på New Rule.

Om du t.ex. vill att den automatiska åtgärden ska utföras när en e-postadress anges för en kontakt som inte hade någon adress tidigare (i motsats till när en befintlig adress ändras), definierar du Before Update Domain till Email is not set och Apply on till Email is set.

Exempel på en trigger med en Before Update-domän

Värden uppdaterade

De utlösare som finns i den här kategorin beror på modellen och baseras på vanliga fältändringar, t.ex. att lägga till en specifik tagg (t.ex. till en uppgift) eller att ställa in fältet User. Välj utlösaren och välj sedan ett värde om det behövs.

Exempel på en trigger för uppdaterade värden

E-post evenemang

Utlösa automatiska åtgärder när du tar emot eller skickar e-post.

Villkor för tidsinställning

Utlösa automatiska åtgärder baserat på ett datumfält. Följande triggers är tillgängliga:

  • Baserat på datumfält: Välj det fält som ska användas bredvid fältet Delay.

  • Efter skapande: Åtgärden utlöses när en post skapas och sparas.

  • Efter senaste uppdatering: Åtgärden utlöses när en befintlig post redigeras och sparas.

Du kan sedan definiera:

  • a Delay: Ange antalet minuter, timmar, dagar eller månader. Om du vill utlösa åtgärden före utlösningsdatumet anger du ett negativt tal. Om du har valt utlösaren Based on date field måste du också välja det datumfält som ska användas för att bestämma fördröjningen.

  • Extra villkor: Klicka på Add condition och ange sedan de villkor som ska uppfyllas för att utlösa automatiseringsregeln. Klicka på New Rule för att lägga till ytterligare ett villkor.

Åtgärden utlöses när fördröjningen har uppnåtts och villkoren är uppfyllda.

Example

Om du vill skicka ett påminnelsemeddelande 30 minuter före starten av en kalenderhändelse väljer du Start (kalenderhändelse) under Trigger Date och ställer in Delay till -30 Minutes.

Exempel på en trigger för fältet Baserat på datum

Observera

Som standard kontrollerar schemaläggaren triggerdatum var 4:e timme, vilket innebär att lägre detaljeringsgrad i tidsbaserade automatiseringar kanske inte alltid uppfylls.

Anpassad

Utlösa automatiserade åtgärder:

  • Vid sparande: När posten sparas;

  • Vid radering: När en post raderas;

  • Vid UI-förändring: När ett fälts värde ändras på Formulärvy, även innan posten sparas.

För utlösarna On save och On UI change måste du must sedan välja det eller de fält som ska användas för att utlösa automatiseringsregeln i fältet When updating.

Varning

Om inget fält har valts i fältet When updating kan den automatiska åtgärden utföras flera gånger per post.

Alternativt kan du också definiera ytterligare villkor som ska uppfyllas för att utlösa automatiseringsregeln i fältet Apply on.

Observera

Utlösaren On UI change kan endast användas med åtgärden Utför kod och fungerar endast när en ändring görs manuellt. Åtgärden utförs inte om fältet ändras genom en annan automatiseringsregel.

Extern

Utlösa automatiserade åtgärder baserat på en extern händelse med hjälp av en webhook. En webhook är en metod för kommunikation mellan två system där källsystemet skickar en HTTP(S)-begäran till ett destinationssystem baserat på en specifik händelse. Den innehåller vanligtvis en datanyttolast som innehåller information om den händelse som inträffade.

För att konfigurera On webhook trigger, kopiera URL som genereras av Odoo till destinationssystemet (dvs. det system som tar emot begäran). I fältet Target Record anger du sedan den kod som ska köras för att definiera den eller de poster som ska uppdateras med hjälp av automatiseringsregeln.

Varning

URL-adressen måste behandlas som konfidentiell; om du delar den online eller utan försiktighet kan ditt system utsättas för skadliga parter. Klicka på knappen Rotate Secret för att ändra URL:ens hemlighet om det behövs.

Observera

  • Den kod som definieras som standard i fältet Target Record fungerar för webhooks som kommer från en annan Odoo-databas. Den används för att bestämma vilken post som ska uppdateras med hjälp av informationen i nyttolasten.

  • Om du vill använda webhookens innehåll i ett annat syfte än att hitta posten/posterna (t.ex. skapa en post) är ditt enda alternativ att använda en Utför kod-åtgärd. I det här fallet måste fältet Target record innehålla en giltig kod, men dess resultat har ingen effekt på själva den automatiserade åtgärden.

  • Innehållet i webhooken finns tillgängligt i serverns åtgärdskontext som en variabel ”payload” (dvs. en ordbok som innehåller GET-parametrarna eller POST JSON-kroppen i den inkommande begäran).

Du kan också välja att Logga anrop för att registrera de mottagna nyttoladdningarna, t.ex. för att se till att de data som skickas av källsystemet matchar det förväntade formatet och innehållet. Detta hjälper också till att identifiera och diagnostisera eventuella problem som kan uppstå. För att komma åt loggarna klickar du på den smarta knappen Logs högst upp i formuläret Automation rules.

Åtgärder att vidta

När du har definierat automatiseringsregelns trigger klickar du på Add an action för att definiera den åtgärd som ska utföras.

Tips

Du kan definiera flera åtgärder för samma utlösare/automatiseringsregel. Åtgärderna utförs i den ordning de har definierats. Det innebär t.ex. att om du definierar en åtgärd Update record och sedan en åtgärd Send email, så används de uppdaterade värdena i e-postmeddelandet. Men om åtgärden Send email definieras före åtgärden Update record, använder e-postmeddelandet de värden som ställts in innan uppdateringsåtgärden körs.

Uppdatera rekord

Denna åtgärd gör det möjligt att uppdatera ett av postens (relaterade) fält. Klicka på fältet Update och välj eller sök efter det fält som ska uppdateras i den lista som öppnas; klicka på högerpilen bredvid fältnamnet för att komma till listan över relaterade fält om det behövs.

If you selected a many2many field, choose whether the field must be updated by Adding, Removing, or Setting it to the selected value or by Clearing it.

Example

Om du vill att den automatiska åtgärden ska ta bort en tagg från kundposten ställer du in fältet UpdateCustomer > Tags, väljer By Removing och markerar sedan taggen.

Exempel på en Update Record-åtgärd

Tips

Alternatively, you can also set a record’s field dynamically using Python code. To do so, select Compute instead of Update, then enter the code to be used for computing the field’s value. For example, if you want the automation rule to compute a custom datetime field when a task’s priority is set to High (by starring the task), you can define the trigger Priority is set to to High and define the Update Record action as follows:

Beräkna ett anpassat datetime-fält med hjälp av ett Python-uttryck

Skapa aktivitet

Den här åtgärden används för att schemalägga en ny aktivitet som är kopplad till posten. Välj en Activity Type, ange en Title och en beskrivning, ange sedan när du vill att aktiviteten ska schemaläggas i fältet Due Date In och välj en User type:

  • Om du alltid vill tilldela aktiviteten till samma användare väljer du Specific User och lägger till användaren i fältet Responsible;

  • Om du vill rikta in dig på en användare som är dynamiskt kopplad till posten väljer du Dynamic User (based on record) och ändrar User Field om det behövs.

Example

När ett lead har omvandlats till en möjlighet vill du att den automatiska åtgärden ska ringa upp den användare som är ansvarig för leadet. Det gör du genom att ange Activity Type till Call och User Type till Dynamic User (based on record).

Exempel på en åtgärd för att skapa en aktivitet

Skicka e-post och skicka SMS

Dessa åtgärder används för att skicka ett e-postmeddelande eller ett textmeddelande till en kontakt som är kopplad till en viss post. Det gör du genom att välja eller skapa en Email Template eller en SMS Template och sedan välja hur du vill skicka e-postmeddelandet eller textmeddelandet i fältet Send Email As eller Send SMS As:

  • Email: för att skicka meddelandet som ett e-postmeddelande till mottagarna i Email Template.

  • Message: för att lägga upp meddelandet på posten och meddela postens följare.

  • Note: för att skicka meddelandet som en intern anteckning som är synlig för interna användare i chatten.

  • SMS (utan anteckning): för att skicka meddelandet som ett textmeddelande till mottagarna av SMS-mallen.

  • SMS (med anteckning): för att skicka meddelandet som ett textmeddelande till mottagarna av SMS-mallen och lägga upp det som en intern anteckning i chatten.

  • Note only: för att endast lägga upp meddelandet som en intern anteckning i chatten.

Lägg till följare och ta bort följare

Använd dessa åtgärder för att (av)prenumerera på befintliga kontakter till/från posten.

Skapa rekord

Denna åtgärd används för att skapa en ny post i en valfri modell.

Välj önskad modell i fältet Record to Create; som standard innehåller det den aktuella modellen. Ange ett Name för posten, och om du vill skapa posten i en annan modell väljer du ett fält i fältet Link Field för att länka den post som utlöste skapandet av den nya posten.

Observera

The dropdown list related to the Link Field field only contains one2many fields existing on the current model that are linked to a many2one field on the target model.

Tips

Du kan skapa en annan automatiseringsregel med Uppdatera rekord-åtgärder för att uppdatera fälten i den nya posten om det behövs. Du kan t.ex. använda en åtgärd Create Record för att skapa en ny projektuppgift och sedan tilldela den till en viss användare med hjälp av en åtgärd Update Record.

Utför kod

Denna åtgärd används för att exekvera Python-kod. Du kan skriva din kod i fliken Code med hjälp av följande variabler:

  • env: miljö där åtgärden utlöses

  • model: modell av den post där åtgärden utlöses; är en void recordset

  • post: post där åtgärden utlöses; kan vara ogiltig

  • records: postmängd av alla poster som åtgärden utlöses på i multiläge; detta kan lämnas tomt

  • time, datetime, dateutil, timezone: användbara Python-bibliotek

  • float_compare: verktygsfunktion för att jämföra flyttal baserat på specifik precision

  • log(message, level='info'): loggningsfunktion för att registrera felsökningsinformation i ir.logging-tabellen

  • _logger.info(message): logger för att skicka meddelanden i serverloggar

  • UserError: undantagsklass för varningsmeddelanden riktade till användaren

  • Command: x2many kommandon namnområde

  • action = {...}: för att returnera en åtgärd

Tips

De tillgängliga variablerna beskrivs både i flikarna Code och Help.

Skicka Webhook-avisering

Denna åtgärd gör det möjligt att skicka en POST-begäran med värdena i Fields till den URL som anges i fältet URL.

Sample Payload ger en förhandsvisning av de data som ingår i begäran med hjälp av data från en slumpmässig post eller dummydata om ingen post finns tillgänglig.

Utföra befintliga åtgärder

Åtgärden används för att utlösa flera åtgärder (kopplade till den aktuella modellen) samtidigt. För att göra detta klickar du på Add a line och sedan, i popup-fönstret Add: Child Actions”, välj en befintlig åtgärd eller klicka på :guilabel:`New för att skapa en ny.