Skip to content

Arbetsflöden ​

Ett arbetsflöde kedjar ihop flera steg som körs i ordning: skapa ett ärende, vänta en tid, skapa ett till, kräv ett godkännande innan det fortsätter — och så vidare. Typexemplet är en vikarie eller praktikant: skapa konto och dator direkt, vänta till sista dagen, och avsluta kontot och hämta tillbaka datorn automatiskt.

Bygg ett arbetsflöde ​

Gå till Verktyg → Inställningar → Arbetsflöden, och välj Skapa nytt arbetsflöde (eller Ändra på ett befintligt). Sidan är indelad i två delar: Grunduppgifter (namn, beskrivning, av/på) och Flöde — arbetsflödet uppifrån och ned, i den ordning det körs. Flödet börjar med När-rutan (alla sätt arbetsflödet kan triggas, inklusive webhook-tokens), följt av stegen och eventuella villkor.

Varje steg och villkor visas som en ruta med en sammanfattning — klicka på den för att fälla ut inställningarna, och dra i handtaget till vänster för att ändra ordning. Plustecknet på linjen mellan två rutor lägger in ett nytt steg eller villkor just där; Lägg till steg och Lägg till villkor längst ned lägger till sist. Sju stegtyper finns:

StegtypVad det gör
Skapa ärende från mallSkapar ett ärende från en vald ärendemall
Skapa vanligt ärendeSkapar ett ärende med en rubrik och text du skriver direkt i steget, ingen mall
Uppdatera ett befintligt ärendeSätter status, prioritet, kategori eller handläggare, skriver en intern anteckning, eller stänger ett ärende som redan finns
VäntaPausar arbetsflödet ett antal minuter, timmar eller dagar innan nästa steg körs
Vänta på ett ärendePausar arbetsflödet tills ett ärende stängs, eller når en vald status
Kräv godkännandePausar arbetsflödet tills en eller flera valda personer godkänner eller avvisar
Skicka utgående webhookAnropar ett annat system: metod, adress, egna headers och en body du skriver själv

Steg som gör något utåt har en blå ikon, steg som bara pausar körningen en gul.

Ett webhook-steg är motsatsen till den inkommande webhooken längre ned — här är det HIT som ringer upp någon annan, mitt i kedjan. Svarar mottagaren med något annat än 2xx, eller går inte att nå alls, avbryts hela körningen som misslyckad; det finns alltså ingen tyst väg förbi en trasig integration. Statuskoden syns på körningens detaljsida.

Ett väntesteg kan antingen ha en fast varaktighet (ett antal minuter, timmar eller dagar) eller be den som startar arbetsflödet om ett datum och en klockslag i stället — praktiskt när väntetiden i själva verket styrs av ett datum någon känner till ("sista anställningsdag"), snarare än ett antal dagar de skulle behöva räkna ut själva. Klockslaget går att sätta fritt (t.ex. 08:00 eller 17:00) — även ett arbetsflöde som startas på morgonen kan alltså vänta till kvällen samma dag, inte bara till nästa dag.

Ett arbetsflöde måste innehålla minst ett steg som gör något utåt — skapar ett ärende, uppdaterar ett, eller skickar en webhook — annars händer ingenting när det körs.

Steg 1 behöver inte vara ett mall- eller ärendesteg

Ett arbetsflöde kan öppna med ett väntesteg eller ett godkännande-steg, till exempel för att kräva godkännande innan en inkommande webhook (se nedan) får skapa något alls.

Platshållare och variabler ​

En ärendemalls text kan innehålla {{Fältnamn}}, precis som när mallen används manuellt. Ett "Skapa vanligt ärende"-steg kan använda samma {{Fältnamn}}-syntax i sin rubrik och text, och ett webhook-steg i sin adress, sina headers och sin body.

Det som är särskilt för arbetsflöden: alla fält från alla mallsteg i kedjan frågas efter på en gång, när arbetsflödet triggas — inte bara det första stegets. Annars skulle ett steg som körs efter en veckas väntan sakna uppgifter ingen längre finns kvar för att fylla i.

Delar två mallsteg ett fältnamn (till exempel Namn i både "Skapa konto"- och "Ta bort konto"-mallen) frågas det bara en gång — värdet återanvänds automatiskt i båda ärendena.

Ett "Skapa vanligt ärende"-steg och ett webhook-steg har ingen mall och därmed inget fält bakom sin {{Platshållare}} — den frågas ändå efter (som ett vanligt textfält, aldrig obligatoriskt) både i det manuella startformuläret och som en namngiven nyckel i webhook-anropets JSON-body, precis som mallfälten ovan. En platshållare som inte matchas av något svar lämnas kvar som text i klartext i stället för att tas bort.

Värden som hamnar i ett webhook-stegs adress eller JSON-body kodas automatiskt för den plats de landar i, så ett svar som innehåller & eller " inte kan ändra anropet du skrivit.

Arbeta med ett befintligt ärende ​

De två stegtyperna Uppdatera ett befintligt ärende och Vänta på ett ärende arbetar inte med ett nytt ärende, utan med ett som redan finns. Vilket ärende det gäller väljs i steget:

  • Ärendet som startade körningen — bara en körning som startats av en ärendehändelse har ett sådant, så valet går bara att spara om arbetsflödet har en ärendehändelse som trigger. Kan det också startas manuellt, från portalen eller via webhook misslyckas steget för just de körningarna.
  • Ett ärende ett tidigare steg skapade — välj vilket av de tidigare stegen i kedjan. Bara steg som faktiskt skapar ett ärende går att välja, och bara steg som ligger före.

Ett uppdatera-steg kan göra flera saker på en gång, och allt är valfritt: sätta status, prioritet, kategori, tilldela en handläggare (eller ta bort handläggaren), skriva en intern anteckning, och stänga ärendet. Anteckningen är alltid intern — steget skickar aldrig något till ärendets anmälare, inte heller när det uppdaterar ett vanligt kundärende. Den stängande statusen går inte att välja i statusrutan; använd Stäng ärendet i stället, som också sätter avslutsdatum och utlöser samma händelser som en vanlig stängning. Är ärendet redan stängt händer ingenting — vilket också är det som gör att ett arbetsflöde som triggas på "stängs" och själv stänger sitt triggande ärende inte kan starta om sig självt i en oändlig kedja.

Ett vänta på ett ärende-steg parkerar körningen tills ärendet stängs, eller tills det når en status du väljer. Det är så mönstret "skapa ett beställningsärende → vänta tills det är klart → skapa uppföljningen" byggs. Du kan sätta en tidsgräns i dagar: löper den ut fortsätter körningen ändå till nästa steg, och steget markeras som Tidsgräns passerad på körningens detaljsida. Utan tidsgräns väntar körningen hur länge som helst (den går alltid att avbryta manuellt från körningshistoriken).

Upp till en minut

Ett väntande ärende kontrolleras en gång i minuten, inte i samma ögonblick som det stängs. Körningen kan alltså fortsätta upp till en minut senare.

Villkor ​

Steg som bara ska köras ibland läggs under ett villkor — ett Om … Då- block, med villkoret överst och stegen det gäller inuti. Välj Lägg till villkor (eller Om ett villkor uppfylls… under plustecknet mellan två rutor), fyll i villkoret, och lägg sedan till steg i blocket — eller dra in steg som redan finns.

Villkoret kontrolleras en gång, när körningen når blockets första steg. Uppfylls det körs alla blockets steg; annars hoppas de över och körningen fortsätter med det som ligger efter blocket — det är alltså inget fel, och stegen syns som Överhoppat på körningens detaljsida. Eftersom villkoret bara kontrolleras en gång kan ett steg i blocket ändra det villkoret läser — till exempel byta kategori på ärendet — utan att resten av blocket hoppas över.

Krysset på blockets rubrik tar bort villkoret men behåller stegen: de flyttas ut ur blocket och körs då alltid.

Ett villkor kan jämföra:

  • En variabel — något som angavs när arbetsflödet startades (ett mallfält, en fri , eller ett väntestegs datum). Jämförelserna är är, är inte, innehåller, är tom och är inte tom, och tar ingen hänsyn till stora och små bokstäver.
  • Ett ärende — kategori, prioritet, status, om det är öppet, eller ämnet, på antingen det triggande ärendet eller ärendet från ett tidigare steg som skapar ett. Det triggande ärendet går bara att välja om arbetsflödet startas av en ärendehändelse, och ett stegs ärende bara om steget ligger före villkoret — ett arbetsflöde som bara startas manuellt har alltså inget ärende att jämföra förrän ett steg har skapat ett. Det triggande ärendet är också den enda källa en trigger kan använda.
  • Senaste webhook-status — statuskoden det senast körda webhook-steget fick tillbaka. Går bara att välja efter ett webhook-steg.

Bara det som körningen faktiskt har vid villkoret erbjuds. Tas förutsättningen bort i efterhand — ärendehändelsen kryssas ur, eller steget flyttas ned — märks villkoret med rött och arbetsflödet går inte att spara förrän det är åtgärdat.

Flera villkor i samma block kan kräva att alla eller att något av dem slår in.

Antingen/eller byggs som två block

Det finns ingen annars-gren, och inga parallella grenar: flödet körs alltid uppifrån och ned. Ett antingen/eller uttrycks som två block efter varandra med motsatta villkor — bara det ena körs. Block kan inte heller läggas i varandra.

Ett villkor som inte går att utvärdera — det läser det triggande ärendet, men just den här körningen startades manuellt — räknas som inte uppfyllt, och blockets steg hoppas över. Ett villkor som pekar på en variabel arbetsflödet aldrig frågar efter är därmed alltid falskt; rutan föreslår därför de variabelnamn arbetsflödet faktiskt samlar in, och varnar för ett namn som inget samlar in.

Alla steg kan hoppas över

Kravet på minst ett steg som gör något utåt kontrolleras när arbetsflödet sparas, och kan inte ta hänsyn till villkor. Ett arbetsflöde där alla steg ligger i block vars villkor inte slår in slutförs utan att ha gjort någonting — det syns i körningens stegkedja.

Godkännande-steg ​

Ett godkännande-steg pausar arbetsflödet tills utfallet är klart. När du lägger till steget väljer du:

  • Godkännare — en eller flera personer med åtkomst till kön.
  • Kvorum — alla måste godkänna, en godkänner räcker, eller ett antal av ett valt antal godkännare.

Varje utvald godkännare får en notis (både i klocksymbolen och som webbläsarnotis, om de aktiverat det) och hittar sina väntande godkännanden under Mina godkännanden på arbetsflödessidan. Där syns exakt vad som väntar på beslut: alla uppgifter som angavs när arbetsflödet triggades, och en förhandsvisning av vilka ärenden som skapas om det godkänns.

Ett enda avslag stoppar hela arbetsflödet permanent, oavsett kvorumtyp — det går inte att skicka in på nytt eller ångra ett avslag.

Trigga ett arbetsflöde ​

Det finns fyra sätt att starta ett arbetsflöde. Vilka som gäller väljer du i När-rutan överst i arbetsflödets flöde.

Manuellt ​

Kryssa i Manuellt, från arbetsflödessidan. Arbetsflödet startas då från Arbetsflöden i menyn Verktyg, och visas också sida vid sida med mallarna under Skapa → Ärende från mall. Välj arbetsflödet och fyll i fälten. Kräver samma behörighet som att skapa ärenden i kön.

Från användarportalen ​

Kryssa i Från användarportalen, så visas arbetsflödet sida vid sida med köns mallar när en slutanvändare skapar ett ärende i användarportalen. Slutanvändaren fyller i fälten precis som vid en manuell start, och blir anmälare på ärendena arbetsflödet skapar så att de syns i portalen.

Kräver även manuell start

Ett arbetsflöde visas bara i portalen om också Manuellt, från arbetsflödessidan är ikryssat.

Vid en ärendehändelse ​

Kryssa i en eller flera händelser under Automatiskt, vid en ärendehändelse för att starta arbetsflödet när ett ärende i kön skapas, stängs, återöppnas eller får en extern kommentar.

Utan villkor startar arbetsflödet för alla ärenden vid den händelsen. Med Lägg till villkor begränsar du det, med exakt samma villkorsbyggare som villkorsblocken använder (se Villkor) — fast här kan bara ärendets egna fält jämföras: kategori, prioritet, status, om det är öppet, och ämnet. Vid trigger-tillfället finns ingen körning ännu, så det finns varken insamlade variabler eller webhook-svar att läsa.

Ett arbetsflöde med flera triggers på samma händelse startar en körning så snart någon av dem slår in.

Ingen är där för att fylla i fälten

En händelsetriggad körning skickar inga fältvärden — det finns ingen handläggare närvarande när ärendet stängs. Ett arbetsflöde som ska händelsetriggas bör därför inte ha obligatoriska fält på sina mallsteg, eller vara medvetet om att de förblir tomma.

Ett arbetsflöde som är händelsetriggat på skapas och som själv skapar ett ärende triggar inte om sig självt (eller något annat arbetsflöde) på nytt — ärenden ett arbetsflöde skapar räknas aldrig som en ny händelse att reagera på, oavsett vilket arbetsflöde som skapade dem. Utan detta skulle ett sådant arbetsflöde starta en ny körning för varje ärende det själv skapar, i en oändlig kedja.

Via en inkommande webhook ​

Ett annat system kan starta ett arbetsflöde genom att anropa ett API — det här är det enda sättet att starta ett arbetsflöde utan att öppna HIT alls.

1. Skapa en webhook-token ​

Öppna arbetsflödet med Ändra, fäll ut När-rutan och välj Skapa webhook-token. Token visas en gång — kopiera den direkt, den går inte att se igen. Ett nytt anrop till samma knapp skapar en ny, fristående token; den gamla fortsätter fungera tills den återkallas separat.

2. Anropa endpointen ​

Metod: POSTEndpoint: /api/workflows/{workflowId}/trigger

Anropet autentiseras med headern Authorization: Bearer <webhook-token> — inte samma sorts nyckel som REST-API:et använder. En webhook-token ger bara rätt att starta det specifika arbetsflödet den skapades för, den loggar inte in som någon användare.

Body är vanlig JSON, med en nyckel per fält som arbetsflödets mallsteg efterfrågar — fältnamnet, skrivet precis som i ärendemallen (skiftläge spelar ingen roll). Precis som vid manuell körning: fält från alla mallsteg i kedjan kan skickas med i samma anrop, och ett fält som delas mellan flera mallsteg skickas bara en gång.

Exempel på anrop, för ett arbetsflöde vars mallsteg har fälten Namn och Telefonnummer:

sh
curl -H 'Authorization: Bearer <webhook-token>' \
  -H 'Content-Type: application/json' -X POST \
  -d '{"Namn": "Anna Andersson", "Telefonnummer": "070-1234567"}' \
  https://din-hit-domän/api/workflows/7/trigger

Exempel på svar:

json
{
    "status": "ok",
    "instanceid": 42
}

Felsvar ​

SituationSvar
Token saknas, är fel, eller har återkallats403 Forbidden
Ett obligatoriskt fält saknas i anropets body422 Unprocessable Entity, ett fel per fält
Modulen Arbetsflöden är avstängd för kön404 Not Found
Arbetsflödet har ett obligatoriskt filfält500 på varje anrop — se nedan

Filfält går inte att skicka via webhook

JSON kan inte bära en filuppladdning. Har något av arbetsflödets mallsteg ett obligatoriskt filfält går arbetsflödet överhuvudtaget inte att trigga via webhook — det är ett konfigurationsfel att åtgärda (byt fältet till valfritt, eller kör arbetsflödet manuellt i stället), inte något som kan lösas per anrop.

3. Återkalla token ​

Varje aktiv token för arbetsflödet listas i När-rutan på arbetsflödets Ändra-sida — med de första tecknen av token och datumet den skapades, för att skilja flera aktiva tokens åt — och en Återkalla-knapp bredvid. En återkallad token slutar fungera omedelbart; det går inte att ångra återkallelsen.

Se vad som händer och har hänt ​

Två vyer, båda nåbara från arbetsflödessidan under Verktyg → Arbetsflöden:

  • Mina godkännanden — dina egna väntande beslut, se ovan.
  • Körningshistorik — varje körning av alla arbetsflöden i kön: status (pågår, väntar, väntar på godkännande, slutförd, avvisad, misslyckad), vem eller vad som startade den, och länkar till ärendena den skapat. Klicka Detaljer för hela stegkedjan i ordning, med de faktiska uppgifterna som angavs och vem som godkände eller avvisade ett godkännande-steg. Ett steg kan där också vara Överhoppat (villkoret på dess block slog inte in) eller ha fått Tidsgräns passerad (ett vänta-på-ärende-steg som gav upp).

Arbetsflöden eller regler? ​

Ska ett nytt ärende få rätt kategori, prioritet eller ägare direkt när det kommer in, använd en regel i stället. Regler körs innan ärendet sparas, så aviseringen om det nya ärendet går direkt till rätt ägare och bekräftelsemejlet kan stängas av. Ett arbetsflöde som triggas när ett ärende skapas startar först när ärendet redan är sparat och aviseringarna har gått ut.

Arbetsflöden passar för det som ska hända sedan — vänta, kräva godkännande, skapa fler ärenden eller anropa andra system. Se Regler eller arbetsflöden? för en jämförelse punkt för punkt.

Bra att veta ​

  • Ärenden som skapas av ett arbetsflöde är systemärenden utan anmälare — utom när körningen startades från användarportalen, då blir slutanvändaren anmälare. På ett systemärende finns inte valet Kundmeddelande, precis som för ett schemalagt ärende med Systemanvändare som anmälare. Interna kommentarer och extern kommunikation fungerar som vanligt.
  • En ärendemall som bara är tänkt som steg i ett arbetsflöde kan döljas från manuellt ärendeskapande, så att den inte syns bland mallarna för handläggare eller i användarportalen — se Ärendemallar.
  • Ärenden som skapas i samma körning relateras automatiskt till varandra, så att den som öppnar ett av dem kan navigera till resten av kedjan.
  • En ärendehändelse-trigger startar alltid en ny körning — den kan inte användas för att avancera ett arbetsflöde som redan pågår. Vill du att en körning ska invänta ett ärende använder du steget Vänta på ett ärende.
  • Ett arbetsflöde kan slås av med Aktivt-reglaget under Ändra. Ett inaktivt arbetsflöde går inte att starta på något sätt — varken manuellt, från portalen, av en ärendehändelse eller av en webhook-token. Det är vägen att stänga av något utan att förlora dess historik.
  • Ett befintligt arbetsflöde kan ändras (namn, steg, ordning, villkor, triggers) via Ändra i åtgärdsmenyn. Ett steg som redan körts i någon körning går inte att ta bort — det skulle radera den körningens historik. Och så länge någon körning fortfarande pågår är stegens ordning och typ låsta: en körning som står parkerad i ett väntesteg hittar sitt nästa steg utifrån ordningen, så en omflyttning under tiden skulle få den att hoppa över steg. Innehållet i stegen (mall, texter, godkännare) och villkoren går att ändra även då, och nya steg kan läggas till sist.