· Operations · Voice handovers

Voice handovers

60-sekunders ljudöverlämning mellan skift — direkt från mobilen. Ersätter de handskrivna anteckningarna som annars försvinner i omklädningsrummet.

Vad löser det?

Skiftledare har 2–5 minuter mellan kvällsskiftet och nattskiftet. Klassiskt skrivs en lapp som lämnas på arbetsbänken eller sätts upp på whiteboarden. Hälften av lapparna försvinner; resten är otydliga.

Voice handover ersätter lappen med en 60-sekunders inspelning som nästa skift lyssnar på i mobilen, kvitterar, och vid behov svarar på med en egen inspelning.

Adoption-tips: Skiftledare som testar tycker det är konstigt första veckan. Andra veckan upptäcker de hur mycket snabbare det är än att skriva. Efter en månad vill ingen tillbaka.

Inspelnings­flöde

  1. Skiftledare öppnar appen sista 5 min av skiftet, trycker på Spela in handover.
  2. Stor röd knapp, 60 sek timer, live waveform. Tryck stop när klar.
  3. Granska, lägg till mottagare (nästa skifts skiftledare auto-valt) och tagga relevanta tickets/incidenter.
  4. Skicka. Mottagare får push-notis. Inspelningen finns i deras inkorg.
  5. Mottagaren lyssnar, klickar Kvittera. Skickaren ser en läskvittens.

Lagring & retention

Ljudfiler lagras i S3-kompatibel object storage i Stockholm. Format: AAC i en MP4-container, 64 kbps mono. En 60-sekunders fil är ~480 KB.

Standard retention: 90 dagar, sedan auto-radering. Konfigurerbar per företag (30 / 90 / 180 / 365 dagar). GDPR Article 17 (rätt att bli glömd) hanteras automatiskt — anställd som lämnar får sina inspelningar raderade 30 dagar efter sista anställningsdag.

Transkribering

Varje inspelning transkriberas automatiskt med Whisper (sv-SE). Texten visas under audio-spelaren och är sökbar i/v2/handover. Detta gör det möjligt att hitta "den där gången Karl sa något om robotcell B" utan att lyssna på 50 filer.

API & webhooks

# Hämta inspelning via signerad URL
GET /api/v1/handovers/:id
  → { id, recordedAt, durationSec, transcript, mediaUrl }

# Webhook när ny handover sparas
POST <er endpoint>
  { type: "handover.created", handover: { … } }