Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Awork + Microsoft Teams: felfri tidrapportering

Rickard Andersson Partner, Nodenordic.se

Att stänga en uppgift och inse att ingen har tidsrapporterat är en särskild typ av frustration. Sedan jagar du uppdateringen, någon fyller i i efterhand från minnet, och faktureringen blir rörig ändå.

Projektledare känner av det vid månadsskiftet. Ops-ansvariga dras in i samtal om ”varför stämmer inte den här fakturan?”. Och kundnära team vill bara ha färre obekväma uppföljningar. Den här konfigurationen för Awork Teams alerts hjälper dig att fånga upp saknad tid och rätta poster innan de blir ett större problem.

Du sätter upp ett n8n-flöde som övervakar Awork i bakgrunden, tillämpar era faktureringsregler (som 15-minutersintervall) och meddelar personer i Microsoft Teams när något behöver åtgärdas.

Så fungerar automatiseringen

Här är hela flödet som du kommer att sätta upp:

n8n Workflow Template: Awork + Microsoft Teams: felfri tidrapportering

Varför det här spelar roll: felfri tidsdata är skillnaden mellan fakturering och gissningar

Att tidrapporteringen bara ”funkar litegrann” är värre än att den är trasig, för du märker inte skadan förrän sent. En uppgift markeras som klar, tid saknas, och plötsligt försöker någon återskapa sin vecka från Slack-meddelanden och kalendersplitter. Även när tid är rapporterad är den ofta i fel intervall (7 minuter här, 22 minuter där), vilket krockar med faktureringspolicys som 15-minutersintervall. Lägg till poster utan starttid så får du rapporter som ser kompletta ut, men som i praktiken inte är tillförlitliga.

Det eskalerar snabbt. Så här faller det isär i verkliga team.

  • Uppgifter stängs utan rapporterad tid, så ni underfakturerar eller lägger cirka 2 timmar i veckan på att jaga och fixa.
  • Tidposter kommer in med udda längder som inte matchar era faktureringsregler, vilket innebär manuellt städjobb innan fakturering.
  • Saknade starttider leder till inkonsekvent rapportering och ”vad hände egentligen?”-samtal som ingen uppskattar.
  • Taggar som ska definiera ”fakturerbart” eller ”måste tidsrapporteras” ignoreras i stressen, så policys finns bara på papper.

Vad du bygger: kontroller för efterlevnad i Awork-tidrapportering med Teams-notiser

Det här flödet lyssnar efter ändringar från Awork, specifikt statusuppdateringar på uppgifter och nya tidposter. När någon markerar en uppgift som klar kontrollerar flödet direkt om tid har rapporterats (och kan begränsa regeln till vissa taggade uppgifter). Om tid saknas öppnar flödet uppgiften igen i Awork, kan valfritt posta en kommentar som förklarar varför, och meddelar rätt person i Microsoft Teams så att åtgärden sker medan det fortfarande är färskt.

På tidpost-sidan säkerställer det faktureringshygien. Det kan lägga till en starttid om den saknas, validera minimitidsregler och ”normalisera” poster till er faktureringspolicy (som 15-minutersblock). Slutresultatet är enkelt: färre trasiga tidrapporter, färre fakturatvister och en process som puffar teamet automatiskt i stället för att någon ska behöva bevaka allt.

Flödet startar från en Awork-webhook. Sedan routar n8n händelsetypen (statusändring kontra tidpost), kör rätt kontroller och använder Aworks API-anrop (via HTTP Request-noder) för att öppna uppgifter igen, skapa saknade poster eller lägga till städposter. Till sist håller Microsoft Teams-meddelanden (och valfri e-post) alla uppdaterade.

Det här bygger du

Förväntade resultat

Säg att ert team stänger 20 uppgifter i veckan som alltid ska ha tid rapporterad. Om ens 6 av dem slinker igenom brukar ni lägga kanske 10 minuter per uppgift på att identifiera den, skriva till någon, vänta och kontrollera igen – alltså ungefär en timme ren administration. Lägg sedan till intervallstädning innan fakturering (ytterligare en timme är inte ovanligt). Med det här flödet fångas det direkt och åtgärden sker i själva uppgiftens livscykel, så du tittar mest bara på Teams-notiser i stället för att göra detektivarbete.

Innan du börjar

  • n8n-instans (testa n8n Cloud gratis)
  • Självhosting som alternativ om du föredrar det (Hostinger fungerar bra)
  • Awork för uppgiftsuppdateringar och tidposter.
  • Microsoft Teams för att notifiera användare när regler inte godkänns.
  • Awork API-uppgifter (skapa dem i dina Awork admin-/API-inställningar).

Kunskapsnivå: Medel. Du skriver inte mycket kod, men du kommer att konfigurera webhooks, inloggningsuppgifter och några ”regler” som taggar och faktureringsintervall.

Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).

Steg för steg

Awork triggar flödet via webhook. När en uppgiftsstatus ändras eller en ny tidpost skapas anropar Awork din n8n-webhook och skickar händelsedetaljerna.

Flödet routar händelsen och hämtar det som behövs. n8n delar upp och filtrerar uppgiftsuppdateringar och kontrollerar sedan vilken typ av händelse det är. För tidpost-händelser kan det hämta relaterade uppgiftsdetaljer och systemets arbetstyp så att reglerna tillämpas konsekvent.

Reglerna tillämpas med taggar och er faktureringspolicy. Om en uppgift slutförts utan obligatorisk tid återställer flödet statusen (öppnar den igen) och kan posta en kommentar som förklarar vad som saknas. Om tidposter ligger under miniminivån eller inte är i linje med era 15-minutersintervall för fakturering räknar flödet ut skillnaden och skapar saknade/städposter via Aworks API.

Teams (och valfri e-post) varnar rätt personer. I stället för att upptäcka problem vid fakturering får du ett snabbt meddelande när missen sker, medan uppgiftens kontext fortfarande är aktuell.

Du kan enkelt ändra vilka taggar som ska gälla och vilket meddelande som ska postas utifrån dina behov. Se hela implementationsguiden nedan för anpassningsmöjligheter.

Steg-för-steg-guide för implementering

Steg 1: konfigurera webhook-triggern

Konfigurera den inkommande Awork-webhooken så att arbetsflödet kan reagera på händelser för uppgiftsstatus och tidrapportering.

  1. Lägg till noden Awork Webhook Trigger och ställ in HTTP MethodPOST.
  2. Ställ in Path till d6af5915-8ba8-46ec-a840-6fe9d0a66cc6 i Awork Webhook Trigger.
  3. Spara noden och kopiera webhook-URL:en för att konfigurera den i AworKs webhook-inställningar.

Steg 2: anslut Awork API-autentiseringsuppgifter

Alla Awork API-åtgärder hanteras av HTTP request-noder. Anslut autentiseringsuppgifter en gång och återanvänd dem i hela arbetsflödet.

  1. Öppna Revert Task Status och välj er Awork-headerautentisering. Credential Required: anslut era httpHeaderAuth-autentiseringsuppgifter.
  2. Öppna Post Task Comment och anslut båda typerna av autentiseringsuppgifter. Credential Required: anslut era httpCustomAuth- och httpHeaderAuth-autentiseringsuppgifter.
  3. Upprepa samma inställning för autentiseringsuppgifter för Revert Task Status B (httpHeaderAuth) och Post Task Comment B (httpCustomAuth och httpHeaderAuth).
  4. Anslut httpHeaderAuth-autentiseringsuppgifter till alla Awork-noder för tid- och uppgifts-API: Fetch System Work Type, Fetch Task Details, Append Start Time, Add Missing Time Entry och Create Cleanup Entry.

Steg 3: konfigurera arbetsflödesinställningar och tolkning av uppgiftsuppdateringar

Definiera arbetsflödesregler på ett ställe och extrahera händelsedata från webhook-payloaden.

  1. I Workflow Settings fyller ni i konfigurationsfälten: finishedStateLabels till ["Fertig","Total fertig"], forceTimeTracking till true, limitForceTimeTrackingToTags till ["Orga"], addComments till true, commentTimeNotTracked till Time not tracked! Status rolled back!, setMinTimeTracking till 15, minTimeTrackingTags till ["Abrechnen"], cleanupTimeTracking till true, cleanupTimeTrackingInterval till 15, cleanupTimeTrackingTolerance till 1, billingTag till ["Abrechnen"], forceStartTime till true, forceStartTimeText till System generated start time, systemWorkType till System time tracking, systemWorkText till System generated time tracking, timeZone till Europe/Berlin och systemTimeUserId till ert Awork-användar-ID.
  2. I Retrieve Task Updates ställer ni in changes till {{ $('Awork Webhook Trigger').item.json.body.changes }} och eventType till {{ $('Awork Webhook Trigger').item.json.body.eventType }}.
  3. I Split Task Updates ställer ni in Field To Split Out till changes så att varje ändring behandlas separat.

⚠️ Vanlig fallgrop: systemTimeUserId i Workflow Settings är tomt som standard. Om ni inte anger det kommer Add Missing Time Entry och Create Cleanup Entry att misslyckas.

Steg 4: konfigurera routning och statuskrav

Routa händelser efter typ, verifiera slutföranderegler och tvinga tidrapportering med statusåterställning och kommentarer.

  1. I Filter Status Update behåller ni villkoret där leftValue är satt till {{ $json.property }} och rightValue är satt till TaskStatusId för att bara behandla statusändringar.
  2. I Event Type Router säkerställer ni att reglerna matchar eventType mot task_status_changed och timetracking_added med {{ $('Retrieve Task Updates').item.json.eventType }}.
  3. I Verify Task Completion validerar ni färdigstatus med {{ $('Workflow Settings').item.json.finishedStateLabels }} och uppgiftsstatustypen done.
  4. I Validate Force Tracking och Check Tag Limits bekräftar ni att reglerna är aktiverade via {{ $('Workflow Settings').item.json.forceTimeTracking }} och {{ $('Workflow Settings').item.json.limitForceTimeTrackingToTags }}.
  5. Behåll befintlig kod i Evaluate Force Tags för att sätta tagFound baserat på taggar i {{ $('Awork Webhook Trigger').first().json.body.entity.tags }}.
  6. I Confirm Tag Match använder ni {{ $json.tagFound }} för att avgöra om Revert Task Status och valfritt Post Task Comment ska köras.
  7. Verifiera att Revert Task Status använder rollback-payloaden med jsonBody satt till [{"taskId":"{{ $('Awork Webhook Trigger').item.json.body.entity.id }}","statusId":"{{ $('Filter Status Update').item.json.old }}"}].
  8. Bekräfta att Post Task Comment skickar jsonBody till {"message": {{ JSON.stringify($('Workflow Settings').item.json.commentTimeNotTracked) }}} när Validate Comment Setting är true.
  9. Upprepa samma validering och kommentarsinställning för den alternativa vägen med Revert Task Status B, Validate Comment Setting B och Post Task Comment B.

Steg 5: konfigurera justeringar av tidrapportering

Det här avsnittet säkerställer att saknad tid läggs till och att starttider tvingas på tidposter.

  1. I Validate Non-System Entry behåller ni jämförelsen mot {{ $('Workflow Settings').item.json.systemWorkType }} och {{ $('Workflow Settings').item.json.forceStartTimeText }} för att undvika att justera systemgenererade poster.
  2. Konfigurera Fetch System Work Type för att göra en query mot =https://api.awork.com/api/v1/typeofwork?filterby=name eq '{{ $('Workflow Settings').item.json.systemWorkType }}'.
  3. Konfigurera Fetch Task Details för att anropa =https://api.awork.com/api/v1/tasks/{{ $('Awork Webhook Trigger').item.json.body.entity.task.id }}.
  4. I Check Start Time Required använder ni {{ $('Workflow Settings').item.json.forceStartTime }} för att avgöra om Append Start Time ska köras.
  5. I Append Start Time behåller ni jsonBody-uttrycken, särskilt {{ $now.setZone('Europe/Berlin').minus($('Awork Webhook Trigger').item.json.body.entity.duration,'seconds').startOf('day').toISO() }} och {{ $now.minus($('Awork Webhook Trigger').item.json.body.entity.duration,'seconds').format('HH:mm:ii') }}.
  6. I Check Tracking Options och Check Min Time Tags bekräftar ni att inställningarna refererar till {{ $('Workflow Settings').item.json.setMinTimeTracking }} och {{ $('Workflow Settings').item.json.minTimeTrackingTags }}.
  7. Behåll koden i Evaluate Min Tags och Compute Missing Time för att beräkna obligatorisk rapportering och fakturering baserat på uppgiftstaggar från {{ $('Fetch Task Details').first().json.tags }}.
  8. I Evaluate Tracked Time säkerställer ni att jämförelsen använder {{ $('Awork Webhook Trigger').item.json.body.changes.find(entry => entry.property === "Duration")['new'].toNumber() }} mot {{ ($('Workflow Settings').item.json.setMinTimeTracking * 60) }}.
  9. Bekräfta att Add Missing Time Entry och Create Cleanup Entry skickar sina payloads med den beräknade duration och systemets arbetstyp från {{ $('Fetch System Work Type').item.json.id }}.

Tips: Om cleanup-poster är oväntade, justera cleanupTimeTrackingInterval och cleanupTimeTrackingTolerance i Workflow Settings så att de matchar er avrundningspolicy.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett kontrollerat test för att verifiera återställning, kommentarer och tidsjusteringar innan ni aktiverar arbetsflödet i produktion.

  1. Använd Execute Workflow med en exempel-payload i Awork Webhook Trigger för att simulera en statusändring av en uppgift och en uppdatering av tidrapporteringen.
  2. Bekräfta att Revert Task Status (eller Revert Task Status B) triggas när tidrapportering saknas, och att kommentarer publiceras av Post Task Comment (eller Post Task Comment B) om funktionen är aktiverad.
  3. Verifiera att Add Missing Time Entry och Create Cleanup Entry skapar poster med förväntad duration, note och typeOfWorkId.
  4. När testkörningen lyckas, växla arbetsflödet till Active för att börja bearbeta Awork-händelser i realtid.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Felsökningstips

  • Awork-uppgifter kan löpa ut eller sakna rättigheter att ändra uppgiftsstatus. Om det skapar fel, kontrollera först behörigheterna för din Awork API-token samt åtkomst till workspace/projekt.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output i all evighet.

Snabba svar

Hur lång tid tar det att sätta upp den här Awork Teams alerts-automatiseringen?

Cirka en timme om din Awork API-åtkomst är klar.

Krävs det kodning för den här rensningen av tidrapportering?

Ingen kodning krävs. Du kommer främst att konfigurera inloggningsuppgifter, webhook-inställningar och era tagg-/policyregler.

Är n8n gratis att använda för det här Awork Teams alerts-flödet?

Ja. n8n har ett gratis alternativ för självhosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in Awork API-åtkomst (oftast inkluderad i din Awork-plan).

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här Awork Teams alerts-flödet för andra use cases?

Ja, och det bör du sannolikt göra. Du kan ändra vilka uppgifter som omfattas genom att justera taggkontrollerna (stegen som avgör om en regel ska gälla). Vanliga justeringar är andra ”måste-tidsrapporteras”-taggar för fakturerbart arbete, en annan regel för minsta varaktighet och anpassad Teams-meddelandetext i flödets inställningsnod.

Varför misslyckas min Awork-anslutning i det här flödet?

Oftast beror det på en ogiltig eller utgången Awork API-token, eller att token saknar åtkomst till projektet där uppgiften finns. Uppdatera inloggningsuppgifterna som används i HTTP Request-noderna och verifiera sedan att kontot har rätt att ändra uppgiftsstatus och skapa tidposter. Om det bara fallerar under hektiska dagar kan du slå i rate limits, så sänk takten på anropen eller lägg till enkel retry-hantering.

Vilken volym kan det här Awork Teams alerts-flödet hantera?

En typisk n8n-uppsättning kan hantera hundratals händelser per dag för den här Awork Teams alerts-automatiseringen. I n8n Cloud är din praktiska gräns kopplad till månatliga körningar i din plan; om du kör självhostat handlar det mest om serverstorlek och hur ofta Awork triggar webhooks.

Är den här Awork Teams alerts-automatiseringen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här inte är en enkel ”om X så skicka meddelande”-zap. Du har förgrenad logik (statusuppdateringar kontra tidposter), taggbaserad routing och flera API-återskrivningar till Awork, vilket blir dyrt eller klumpigt i enklare verktyg. n8n låter dig också köra självhostat, vilket är viktigt om du hanterar många små händelser. Zapier eller Make kan fortfarande fungera om behoven är lätta, som att notifiera om ett saknat fält utan att skriva om något i Awork. Om du vill ha hjälp att välja, prata med en automationsexpert så tar vi fram den enklaste vägen.

När det här väl rullar håller sig tidrapporteringen strukturerad utan att någon behöver agera tidspolis. Du märker det som mest när fakturorna skickas och inget behöver ”bara en snabb sista fix”.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal