Flyt og automatisering
Flyt brukes når organisasjonen vil styre rapportbehandling med mer presise regler enn at alle rapporter går til samme godkjenner. En flyt bygges opp av noder som vurderer rapporten, sender den videre til riktig person og avslutter når rapporten er godkjent eller avvist.
Standard godkjenning (uten flyt)
Hvis ingen flyt er publisert, gjelder standardregelen:
Når en rapport sendes inn, går den til avdelingens godkjenner. Hvis avdelingen ikke har noen godkjennere, går rapporten videre til administratorene.
Du trenger ikke en flyt for grunnleggende godkjenning. Bygg flyt når du vil ha flere steg, terskler eller egne automatiske handlinger.
Hva en flyt består av
I flytdesigneren jobber du med disse byggesteinene:
- Trigger: hva som starter flyten
- Betingelse: et valgpunkt som sender rapporten videre basert på innholdet
- Handling: noe systemet gjør, for eksempel å sende til godkjenning eller fullføre rapporten
- Forsinkelse: et ventesteg som holder igjen flyten til et tidspunkt eller en hendelse
Hver node sender rapporten videre til neste steg i flyten.
Triggere
| Trigger | Når den fyrer |
|---|---|
Rapport innsendt | Rapporten sendes inn første gang eller på nytt etter avvisning |
Rapport vurdert | En vurdering i flyten er besvart |
Handlinger
| Handling | Beskrivelse |
|---|---|
| Fullfør | Godkjenn rapporten og avslutt flyten (terminal) |
| Avvis | Avvis rapporten (terminal) |
| Krev godkjenning | Send til godkjenner — én eller flere personer/roller |
| HTTP-forespørsel | Send HTTP-kall til ekstern URL (webhook) |
Alle veier i grafen må ende i en terminal handling (Fullfør eller Avvis).
Betingelser
Betingelser sammenligner et felt på rapporten med en verdi. Felt angis som dot-path: report.totalAmount, report.departmentId, report.projectId, report.expenseTypeId, report.userId, osv.
Operatorer
Hvilke operatorer du ser, avhenger av feltet du velger.
| Operatorer | Typiske felt |
|---|---|
| Er lik / Er ikke lik | Tekst, valg, tall og ja/nei-felt |
| Er en av / Er ikke en av | Felt med forhåndsdefinerte valg eller lister |
| Matcher mønster | Tekstfelt der du vil finne eller avgrense bestemte verdier |
| Er tom / Har verdi | Felt som kan være tomme eller utfylte |
Samlingsoperatorer
For felter som inneholder lister (f.eks. utleggslinjer):
| Valg | Betydning |
|---|---|
| Minst en av | Minst ett element matcher |
| Alle | Alle elementer matcher |
| Ingen av | Ingen elementer matcher |
Fallbacks
Krev godkjenning har en egen fallback for Ingen godkjennere. Den brukes når ingen gyldig godkjenner finnes, for eksempel hvis en valgt rolle ikke er tildelt noen aktive brukere.
Forsinkelser
Vent-noden lar flyten pause på tid eller hendelse før neste node. Brukes f.eks. til å sende en påminnelse hvis en godkjenning ikke besvares innen en viss tid.
Velg hvem som skal godkjenne
I en Krev godkjenning-node kan du velge hvem som skal godkjenne mellom disse alternativene:
- Nærmeste leder
- Brukerrolle
- Rolle i avdeling
- Rolle i prosjekt
- Spesifikk bruker
Du kan også angi når en eksisterende godkjenning skal bli ugyldig hvis brukeren endrer rapporten:
| Endring | Effekt |
|---|---|
Beløp | Godkjenning må gjøres på nytt |
Avdeling | Godkjenning må gjøres på nytt |
Prosjekt | Godkjenning må gjøres på nytt |
Rolle i prosjekt — omfang
Når du velger Rolle i prosjekt, må du også velge hvordan godkjenningen skal tolkes på tvers av prosjektene i rapporten:
| Valg | Hva det betyr |
|---|---|
| En godkjenning per prosjekt | Hvert prosjekt som finnes i rapporten må få sin egen godkjenning |
| En godkjenning fra et prosjekt | Det holder med én godkjenning fra ett av prosjektene i rapporten |
| En godkjenning på tvers av alle prosjekter | Godkjennerne vurderes samlet på tvers av alle prosjektene i rapporten |
Prosjekttilhørighet leses fra enkeltutleggene i rapporten. Har rapporten utlegg fra flere prosjekter, er det disse prosjektene som brukes i vurderingen.
Eksempel på en mer avansert flyt

Eksempelet under viser hvordan en flyt kan bygges når rapporter skal innom flere nivåer:
- Rapporten starter på Rapport innsendt
- Første steg kan være godkjenning fra rolle i avdeling
- Hvis avdelingen mangler godkjenner, kan flyten falle tilbake til administrator
- Deretter kan rapporten sendes videre til nærmeste leder eller eier
- Flyten avsluttes med Fullfør når alle nødvendige steg er ferdige
HTTP-forespørsel (webhook)
Bruk dette når du vil varsle et annet system eller sende rapportdata videre til en egen integrasjon.
For utviklere: Hvis du heller vil lytte på alle hendelser kontinuerlig fra din egen backend, bruk SSE-endepunktet i stedet. Se Sanntid, dypelenker og notifikasjoner.
Konfigurasjon
| Felt | Beskrivelse | Grenser |
|---|---|---|
url | Mål-URL (HTTPS) | — |
headers | Egendefinerte headere, for eksempel autorisasjon | — |
body | Payload med rapportfelter | — |
timeout | Maks tid for et kall | ≤ 60 s |
maxRetries | Antall nye forsøk ved timeout eller 5xx-feil | ≤ 5 |
initialDelayMs | Første ventetid før nytt forsøk | ≤ 10 000 ms |
maxDelayMs | Øvre grense for ventetid mellom forsøk | ≤ 60 000 ms |
Hvis kallet fortsatt feiler etter alle forsøkene, går flyten videre på error-grenen dersom den finnes.
Hvis ikke, stopper den der.
Gjentatte kall
Samme webhook kan bli sendt mer enn én gang ved timeout eller nye forsøk. Mottakeren bør derfor tåle
duplikater, for eksempel ved å bruke eventId til å kjenne igjen samme hendelse flere ganger.
Utkast, publisering og testing
- Utkast: Gjør endringer uten å påvirke aktive rapporter.
- Test: Kjør flyten mot en rapport for å se hva som ville skjedd.
- Valider: Kontroller at alle veier ender i Fullfør eller Avvis.
- Publiser: Gjør den nye versjonen aktiv for nye rapporter.
Tidligere publiserte versjoner beholdes i historikken, slik at du kan gå tilbake hvis du trenger det.
Et utkast påvirker ikke aktive rapporter før du publiserer. Hvis du forkaster utkastet, går du tilbake til sist publiserte versjon.