Ressurs / TapInn

Slik bygde vi TapInn, fra geo-fence til lønnsklar eksport.

TapInn er Aprex sin løsning for virksomheter med ansatte på flere lokasjoner. Produktet samler geo-fence innsjekk, sjekklister, HMS-rutiner, avviksrapportering og dokumentasjon i én arbeidsflyt, fra mobilen i felt til oppfølging hos leder. Dette er historien om hvordan vi bygget det, hvilke tekniske valg vi tok, og hva vi endret underveis.

Sist oppdatert: 26. september 2026

  1. 01

    Problemet TapInn løser

    Mange feltteam bruker fortsatt papir, Excel, meldinger eller flere separate systemer for oppmøte, timelogg, sjekklister og avvik. Det gir dobbeltarbeid og svak sporbarhet. Når ledelsen skal dokumentere hva som faktisk er gjort på hver lokasjon, ligger svaret spredt over chatlogger, regneark og bilder på private telefoner. TapInn angriper dette med én enkel idé: arbeidet dokumenteres der det skjer, mens det skjer.

  2. 02

    Tre flater med ulike roller

    Løsningen består av tre atskilte flater. Ansatte bruker mobilappen eller mobiltilpasset web. Ledere og kundeadministratorer jobber i en egen portal med oversikt over oppmøte, oppgaver, avvik og dokumentasjon. I tillegg finnes intern drift for salg, support og administrasjon. Nyregistrering går gjennom en egen åpen flyt.

  3. 03

    Innsjekk med geo-fence som standard

    Innsjekk er kjernen i TapInn, og arkitekturen er geo-først: stempling skjer normalt innenfor et definert område rundt arbeidsstedet. Manuell stempling utenfor geofence finnes som reserveløsning, men bare der kunden eksplisitt har slått den på. Prosjekter kan ha egne geofence-områder, slik at stemplingen knyttes til riktig prosjekt. Klientens klokkeslett stoles det ikke blindt på: innsjekkstidspunktet klemmes mot servertid innenfor et vindu på omtrent to minutter, med en absolutt grense på 48 timer for å fange opp klokker som har løpt løpsk.

  4. 04

    Offline-stempling uten duplikater

    Ansatte jobber ofte der dekningen er dårlig: kjellere, parkeringshus, landlige områder. Stempling og andre handlinger køes derfor lokalt på telefonen og sendes når forbindelsen kommer tilbake. En serverside-idempotenskontrakt hindrer duplikater: skriveruter tar en valgfri Idempotency-Key-header, første forespørsel med en gitt nøkkel kjører som normalt og svaret mellomlagres, mens en reprise med samme nøkkel og samme innhold får tilbake det opprinnelige svaret uten ny rad og uten at bivirkninger som ledervarsler kjøres på nytt. Samme nøkkel med ulikt innhold gir feilkoden 409. Nøklene er scoped til leietaker, bruker, endepunkt og nøkkelverdi, aldri globale, og bare vellykkede svar mellomlagres.

  5. 05

    Moduler, HMS og lønnsklar eksport

    TapInn er bygget som et modulsystem der funksjonalitet slås på per behov: geotidsstempling, turnusplanlegging, AI-planlegging, tilgjengelighet, vaktbørs, fravær, oppgaver, kommunikasjon, samsvar, HMS, kostnadsprognoser, prosjekttid og dokumenter. HMS-området dekker hendelsesrapportering med offline-kø på mobil, inspeksjonsverktøy, kompetanseoversikt, kjemikalie- og sikkerhetsdatablad, utstyr, risikovurderinger og tiltak, pluss varsling av kritikkverdige forhold med egen overleveringsflyt til saksbehandler. HMS slås på per leietaker etter at virksomheten har bekreftet at vilkårene for bruk er oppfylt. På lønnssiden leverer TapInn lønnsklar CSV, eksportprofiler, lønnsartmapping, forhåndskontroll før eksport, eksportpakker med historikk, periodelås og lønnskostnadsoversikt. Direkte integrasjoner mot lønnssystemer er eksplisitt utenfor scope: produktet lager et kvalitetssikret eksportgrunnlag som kunden tar videre inn i sitt eget lønnssystem. TapInn inneholder heller ingen fakturering.

  6. 06

    Fem tekniske valg vi står ved

    Først: én kodebase for web og API. Next.js-applikasjonen server både brukergrensesnitt og API-ruter, med felles validering og én deploy å forholde seg til. Andre: Postgres med Prisma og egne tabeller. Databasen er Neon Postgres, skjemaet bruker egne tapinn_*-tabeller, og migreringer kan øves i isolerte øvingsmiljøer før de kjøres mot reelle databaser. Tredje: native apper, ikke bare web. Feltarbeid skjer på telefonen, ofte med hansker, dårlig lys og svakt nett, så iOS-appen er bygget med SwiftUI og Android-appen med Kotlin. Fjerde: geo-først med strenge standarder. Hver mykning av innsjekksreglene er en innstilling kunden slår på, med streng standard. Femte: hendelser og revisjon som førsteklasses data. Stemplinger, avvik, varsler og eksporthandlinger logges slik at de kan spores i ettertid, sammen med aktivitetslogging, eksporthistorikk og periodelås.

  7. 07

    Hva vi endret underveis

    Produktet har beveget seg raskt. Nærhetsbasert innsjekk ble tidlig tonet ned til fordel for geo-fence som hovedmekanisme. Sommeren 2026 gikk med til å få idempotens- og offline-kontrakten på plass. HMS-området vokste fra enkel avviksregistrering til et bredt samsvarsområde med inspeksjoner, kompetanse, kjemikalier og varsling. I september 2026 valgte vi e-postkoder i stedet for BankID for signeringsflyter, noe som senker terskelen for feltansatte uten å gi slipp på verifiserbar identitet: hver signering bindes til dokumenthash, part, tidspunkt og intensjon, med full revisjonsspor. Samme høst ble det bygget et omfattende MCP-lag, maskinlesbare verktøygrensesnitt over planlegging, bemanning, HMS, administrasjon og integrasjoner, som åpner for AI-assistert drift på toppen av TapInn-dataene.

  8. 08

    Kvalitet, drift og personvern

    Kvalitetsarbeidet følger et fast mønster: definer porten, dokumenter beviset, skill mellom hva som er testet og hva som gjenstår. Hvert funn klassifiseres med status og eksakt commit, kjøring og miljø, og bevis teller bare for den commiten og det miljøet det ble hentet fra. Webutgivelser går via et diagnosescript som sjekker vertsmaskin, Node-versjon og miljø, deretter produksjonsutgivelse med røyktesting mot live-miljøet og automatisk tilbakerulling ved feil. Overvåking går over Sentry uten personopplysninger som standard. Personvern er behandlet som arkitektur: dataminimering, innsyn og sletting er bygget inn i produkt og avtaler. Lokasjonsdata samles bare i den grad innsjekk krever det. For opplysninger om ansatte som bruker TapInn i jobben, er arbeidsgiveren (kunden) behandlingsansvarlig og Aprex databehandler etter databehandleravtalen; Aprex er behandlingsansvarlig for egne nettsider, kundekontakt og supporthenvendelser.

  9. 09

    Hva vi lærte

    Den viktigste lærdommen er at tillit er produktets egentlige database. Tidsdata som ikke stoles på, blir ikke brukt, uansett hvor pene dashboardene er. Derfor har vi investert så tungt i geo-regler, klokkevalidering, idempotens og revisjonsspor: hvert lag fjerner én grunn til å tvile på tallene. Den andre lærdommen er at offline ikke er et unntak, men normalen i feltarbeid. Offline-kø med serverside-idempotens er dyrere å bygge enn en enkel POST, men det er forskjellen mellom et verktøy de ansatte stoler på og et de jobber rundt. Den tredje er at scope-disiplin er en funksjon: hver gang vi har sagt nei til å bygge lønnsintegrasjoner, fakturering eller overvåkingsfunksjoner direkte inn i produktet, har TapInn blitt tydeligere å forstå, enklere å vedlikeholde og ryddigere å dokumentere.

Oversikt

Tekniske byggesteiner

Dette er byggesteinene artikkelen går gjennom, fra innsjekk og offline-kø til HMS, eksport og drift.

Geo-fence innsjekk

Stempling skjer normalt innenfor et definert område rundt arbeidsstedet, med manuell reserveløsning kunden må slå på.

Klokkevalidering

Innsjekkstidspunktet klemmes mot servertid innenfor omtrent to minutter, med absolutt grense på 48 timer.

Offline-kø

Handlinger lagres lokalt på telefonen ved dårlig nett og synkroniseres når forbindelsen kommer tilbake.

Idempotenskontrakt

Idempotency-Key hindrer duplikate skrivinger ved replay, med 409 ved feil gjenbruk av nøkkel.

HMS-modul

Hendelser, inspeksjoner, kompetanse, kjemikalier, risiko og varsling som del av den daglige arbeidsflyten.

Lønnsklar eksport

CSV, eksportprofiler, lønnsartmapping, forhåndskontroll, historikk og periodelås, uten direkte lønnsintegrasjoner.

Native apper

iOS med SwiftUI og Android med Kotlin mot samme API-base som webklienten.

Drift og revisjon

Skriptede utgivelser med tilbakerulling, Sentry uten personopplysninger som standard, og revisjonsspor på handlinger.

FAQ

Slik bygde vi TapInn FAQ

Hva er TapInn?
TapInn er Aprex sitt eget produkt for virksomheter med ansatte på flere lokasjoner. Det samler geo-fence innsjekk, sjekklister, HMS-rutiner, avviksrapportering og dokumentasjon i én arbeidsflyt.
Hvordan fungerer offline-stempling i TapInn?
Stempling og andre handlinger køes lokalt på telefonen og sendes når forbindelsen kommer tilbake. En serverside-idempotenskontrakt med Idempotency-Key hindrer at replay lager duplikate skrivinger.
Er geo-fence det samme som kontinuerlig sporing?
Nei. Geo-fence brukes til innsjekk og utsjekk rundt definerte lokasjoner, og ingenting annet. Bruken bør være tydelig forklart, begrenset til formålet og behandles etter gjeldende personvernregler.
Integrerer TapInn direkte med lønnssystemer?
Nei. TapInn leverer et kvalitetssikret eksportgrunnlag med lønnsklar CSV, profiler, lønnsartmapping, forhåndskontroll og periodelås, som kunden tar videre inn i sitt eget lønnssystem.
Tillit

Bygget og driftet av Aprex

TapInn er Aprex-produkt i daglig drift. Vi vet hva som skjer etter lansering, fordi det er vi som får telefonen når noe stopper. Tall og påstander brukes bare der de kan dokumenteres.

Vil du teste TapInn i en avgrenset pilot?

Send kort om antall ansatte, lokasjoner, dagens timelogg og hvilke systemer TapInn eventuelt må snakke med.

Kontakt Aprex om TapInn →