Skip to main content

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

TriggerNår den fyrer
Rapport innsendtRapporten sendes inn første gang eller på nytt etter avvisning
Rapport vurdertEn vurdering i flyten er besvart

Handlinger

HandlingBeskrivelse
FullførGodkjenn rapporten og avslutt flyten (terminal)
AvvisAvvis rapporten (terminal)
Krev godkjenningSend til godkjenner — én eller flere personer/roller
HTTP-forespørselSend 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.

OperatorerTypiske felt
Er lik / Er ikke likTekst, valg, tall og ja/nei-felt
Er en av / Er ikke en avFelt med forhåndsdefinerte valg eller lister
Matcher mønsterTekstfelt der du vil finne eller avgrense bestemte verdier
Er tom / Har verdiFelt som kan være tomme eller utfylte

Samlingsoperatorer

For felter som inneholder lister (f.eks. utleggslinjer):

ValgBetydning
Minst en avMinst ett element matcher
AlleAlle elementer matcher
Ingen avIngen 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:

EndringEffekt
BeløpGodkjenning må gjøres på nytt
AvdelingGodkjenning må gjøres på nytt
ProsjektGodkjenning 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:

ValgHva det betyr
En godkjenning per prosjektHvert prosjekt som finnes i rapporten må få sin egen godkjenning
En godkjenning fra et prosjektDet holder med én godkjenning fra ett av prosjektene i rapporten
En godkjenning på tvers av alle prosjekterGodkjennerne vurderes samlet på tvers av alle prosjektene i rapporten
note

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

Eksempel på godkjenningsflyt

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

FeltBeskrivelseGrenser
urlMål-URL (HTTPS)
headersEgendefinerte headere, for eksempel autorisasjon
bodyPayload med rapportfelter
timeoutMaks tid for et kall60 s
maxRetriesAntall nye forsøk ved timeout eller 5xx-feil5
initialDelayMsFørste ventetid før nytt forsøk10 000 ms
maxDelayMsØvre grense for ventetid mellom forsøk60 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

  1. Utkast: Gjør endringer uten å påvirke aktive rapporter.
  2. Test: Kjør flyten mot en rapport for å se hva som ville skjedd.
  3. Valider: Kontroller at alle veier ender i Fullfør eller Avvis.
  4. 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.

note

Et utkast påvirker ikke aktive rapporter før du publiserer. Hvis du forkaster utkastet, går du tilbake til sist publiserte versjon.

Se også