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

Clockify till GitHub, versionshanterade rapportkopior

Rickard Andersson Partner, Nodenordic.se

Tidsrapporter ska inte kännas sköra. Men när någon uppdaterar en post i efterhand (eller en kund ifrågasätter en siffra) fastnar du i att leta igenom exporter, skärmdumpar och “vad stod det förra veckan?”-meddelanden.

Det är här Clockify GitHub-backuper börjar betala sig. Byråägare får färre fakturadiskussioner, ops-ansvariga får mer strukturerad månadsrapportering, och konsulter får äntligen ett spår som inte ligger i någons inkorg.

Det här arbetsflödet sparar automatiskt dina månatliga Clockify-rapporter i ett privat GitHub-repo som versionshanterade filer, så att du kan spåra ändringar över tid och plocka fram en revisionsredo ögonblicksbild när du behöver den.

Så fungerar den här automatiseringen

Hela n8n-arbetsflödet, från trigger till slutresultat:

n8n Workflow Template: Clockify till GitHub, versionshanterade rapportkopior

Problemet: tidsrapporter ändras efter att du har exporterat dem

Clockify-data är “live”. Det är bra – tills det inte är det. Folk korrigerar beskrivningar, flyttar tid mellan projekt, uppdaterar taggar eller tidrapporterar i efterhand. Då är din “slutliga” månadsrapport inte längre slutlig, och du får förklara varför förra månadens faktura inte matchar den här månadens export. Det skapar också en tyst risk i verksamheten: ledningsbeslut tas på siffror som kan driva, och ingen vet exakt när de ändrades. Ärligt talat är det så här små fel blir långa, obekväma trådar.

Friktionen bygger på. Den syns på några förutsägbara ställen:

  • Du exporterar en rapport, upptäcker sedan att den har redigerats efteråt, och nu kan du inte bevisa vad originalet sa.
  • Kunder ber om en uppdelning “per fakturadatum”, och du återskapar historiken från minnet.
  • Månadsadmin blir återkommande detektivarbete, särskilt när flera personer rör samma projekt.
  • Det finns ingen tydlig diff på vad som ändrades, så tvister blir åsiktsbaserade i stället för bevisbaserade.

Lösningen: dagliga versionshanterade backuper av Clockifys månadsrapporter

Det här arbetsflödet körs dagligen och hämtar rapportdata för din Clockify-arbetsyta via Clockify Reports API. I stället för att spara en enda export som blir inaktuell genererar det en rapportfil per månad (som standard aktuell månad plus de tre föregående). Sedan kontrollerar det ditt privata GitHub-repo för att se om det redan finns en fil för den månaden. Om den gör det jämför arbetsflödet den nyhämtade rapporten med den befintliga filen och uppdaterar bara GitHub när något faktiskt har ändrats. Om filen saknas skapas den, så att dina backuper bygger upp sig själva över tid.

Det börjar med en schemalagd körning, hämtar din primära arbetsyta och expanderar en kort månadslista till enskilda månads-“batcher”. Varje batch beräknar datumintervallet, begär den detaljerade månadsrapporten och skapar eller uppdaterar sedan en versionshanterad fil i GitHub. Slutresultatet är en commit-historik du kan hänvisa till med trygghet.

Det här får du: automatisering vs resultat

Exempel: så här ser det ut

Säg att du hanterar en Clockify-arbetsyta och exporterar fyra månadsrapporter (innevarande månad plus tre tidigare) varje dag under intensiva perioder för att hålla fakturor i linje. Om varje export-, namngivnings- och arkiveringssteg tar cirka 5 minuter blir det ungefär 20 minuter per dag. På en månad landar du på cirka 10 timmar repetitivt arbete. Med det här arbetsflödet blir “jobbet” en schemalagd körning och några minuters granskning i GitHub bara när du själv vill. Backuperna sker i bakgrunden och din rapporthistorik förblir intakt.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger funkar bra)
  • Clockify som källa för rapportdata från tidsregistrering.
  • GitHub för att lagra versionshanterade månadsrapportfiler.
  • Clockify API-nyckel (hämta den i dina profilinställningar i Clockify).

Svårighetsgrad: Medel. Du kopplar upp konton, skapar ett privat repo och bekräftar några rapportparametrar som arbetsyta och datumintervall.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Ett dagligt schema startar allt. n8n kör arbetsflödet automatiskt (dagligen som standard), så backuperna hålls uppdaterade även när teamet glömmer rapporteringen.

Din Clockify-arbetsyta identifieras. Arbetsflödet hämtar först den primära arbetsytan och sätter sedan några globala värden som används under körningen (som var filer ska sparas och vilka månader som ska bearbetas).

Senaste månaderna expanderas till en kort “att göra”-lista. Det tilldelar månadsindex och delar upp dem i enskilda poster, beräknar sedan varje månads start- och slutdatum innan den detaljerade månadsrapporten begärs via HTTP.

GitHub blir din single source of truth för historik. För varje månad hittar arbetsflödet motsvarande fil i GitHub, jämför den nyhämtade rapporten med det som redan är lagrat och uppdaterar eller skapar sedan filen. Tomma rapporter filtreras bort så att du inte skräpar ner repot.

Du kan enkelt ändra antalet månader som backas upp för att täcka ett längre intervall utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: Konfigurera den schemalagda triggern

Ställ in schemat som startar arbetsflödet varje dag.

  1. Lägg till noden Scheduled Run Trigger och öppna dess inställningar.
  2. Ställ in schemaregeln så att den triggar vid triggerAtHour: 5 så att den körs dagligen kl. 5:00.
  3. Anslut Scheduled Run Trigger till Fetch Primary Workspace.

Steg 2: Anslut Clockify och definiera globala inställningar

Hämta arbetsytan och definiera globala variabler som används i hela arbetsflödet.

  1. Konfigurera Fetch Primary Workspace med Resource inställt på workspace och Limit inställt på 1.
  2. Autentiseringsuppgifter krävs: Anslut era clockifyApi-autentiseringsuppgifter i Fetch Primary Workspace.
  3. I Define Globals ställer ni in workspace_id till {{ $json.id }}.
  4. I Define Globals ställer ni in github_repo.owner och github_repo.name till era GitHub-värden för ägare och repository.
  5. Anslut Fetch Primary WorkspaceDefine GlobalsAssign Month Indices.

Steg 3: Bygg månadsloopen och datumintervall

Skapa en rullande lista med månader och beräkna intervall för rapporter.

  1. I Assign Month Indices ställer ni in monthIndex till [0, 1, 2] för att bearbeta aktuell månad och de två föregående.
  2. I Expand Month List ställer ni in Field to Split Out till monthIndex.
  3. I Compute Date Range ställer ni in reportName till =detailed_report_{{ $now.minus($json.monthIndex, 'month').format('yyyy-MM') }}.
  4. Ställ in startDate till {{ $now.minus($json.monthIndex, 'month').startOf('month').format('yyyy-MM-dd') }}.
  5. Ställ in endDate till {{ $now.minus($json.monthIndex, 'month').endOf('month').format('yyyy-MM-dd') }}.

Tips: Om ni vill ha en längre backuphistorik, utöka arrayen monthIndex i Assign Month Indices.

Steg 4: Begär Clockify-rapporter och lokalisera GitHub-filer

Hämta månadsdata för rapporten och slå upp befintliga filer i GitHub.

  1. I Request Monthly Detail ställer ni in URL till https://reports.api.clockify.me/v1/workspaces/{{ $('Define Globals').item.json.workspace_id }}/reports/detailed.
  2. Ställ in Method till POST och JSON Body till { "dateRangeStart": "{{ $json.startDate }}T00:00:00Z", "dateRangeEnd": "{{ $json.endDate }}T23:59:59.999Z", "detailedFilter": { "page": 1, "pageSize": 50 }, "exportType": "json" }.
  3. Autentiseringsuppgifter krävs: Anslut era clockifyApi-autentiseringsuppgifter i Request Monthly Detail.
  4. I Locate GitHub File ställer ni in File Path till reports/{{ $('Compute Date Range').item.json.reportName }}.
  5. Autentiseringsuppgifter krävs: Anslut era githubApi-autentiseringsuppgifter i Locate GitHub File.
  6. Notera det parallella flödet: Locate GitHub File skickar utdata till både Map New Report Data och Parse File Data parallellt.

⚠️ Vanlig fallgrop: Säkerställ att github_repo.owner och github_repo.name är ifyllda i Define Globals, annars kommer GitHub-noderna inte att hitta repositoryt.

Steg 5: Jämför data och uppdatera befintliga rapporter

Tolka befintliga filer, jämför med ny data och uppdatera rapporter vid behov.

  1. I Map New Report Data ställer ni in data till {{ $('Request Monthly Detail').item.json.timeentries }}.
  2. I Parse File Data ställer ni in Operation till fromJson för att tolka filinnehållet.
  3. I Compare Records ställer ni in Merge By Fields för att jämföra data mot data.
  4. I Modify GitHub File ställer ni in File Path till reports/{{ $('Compute Date Range').item.json.reportName }}.
  5. Ställ in File Content till {{ JSON.stringify($json.data, null, 2) }} och Commit Message till Update report.
  6. Autentiseringsuppgifter krävs: Anslut era githubApi-autentiseringsuppgifter i Modify GitHub File.

Steg 6: Skapa nya rapporter när filer saknas

Hantera saknade filer och skapa endast rapporter när det finns data.

  1. I Detect Missing File bekräftar ni att villkoret kontrollerar att {{ $json.error }} innehåller could not be found.
  2. I Filter Empty Reports säkerställer ni att villkoret kontrollerar att {{ $json.timeentries }} är notEmpty.
  3. I Create GitHub File ställer ni in File Path till reports/{{ $('Compute Date Range').item.json.reportName }}.
  4. Ställ in File Content till {{ JSON.stringify($json.timeentries, null, 2) }} och Commit Message till Create report.
  5. Autentiseringsuppgifter krävs: Anslut era githubApi-autentiseringsuppgifter i Create GitHub File.

Steg 7: Lägg till felhantering

Stoppa arbetsflödet när fel inte är relaterade till saknade filer.

  1. Verifiera att Locate GitHub File har beteendet Continue On Fail (den skickar utdata till felgrenen när filen saknas).
  2. Anslut falsk-vägen från Detect Missing File till Halt on Error.
  3. I Halt on Error ställer ni in Error Message till {{ $json.error }}.

Steg 8: Testa och aktivera ert arbetsflöde

Validera körningen och slå på schemat.

  1. Klicka på Execute Workflow för att köra Scheduled Run Trigger manuellt.
  2. Bekräfta att Request Monthly Detail returnerar timeentries och att Locate GitHub File hittar filer eller routar saknade filer korrekt.
  3. Verifiera GitHub-uppdateringar: Modify GitHub File ska committa uppdaterad JSON, eller så ska Create GitHub File skapa en ny fil under reports/.
  4. Ställ arbetsflödet till Active för att aktivera den dagliga körningen kl. 5:00.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • GitHub-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först token-scope för repo-åtkomst och n8n-skärmen för Credentials.
  • Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Ö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.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för Clockify GitHub-backuper?

Cirka 30 minuter när dina API-nycklar och repot är på plats.

Behöver jag kunna koda för att automatisera Clockify GitHub-backuper?

Nej. Du kommer mest att koppla konton och klistra in API-nycklar. Logiken i arbetsflödet är redan byggd, så du konfigurerar – du programmerar inte.

Är n8n gratis att använda för det här arbetsflödet för Clockify GitHub-backuper?

Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in användning av Clockify och GitHub, vilket normalt är minimalt för små månadsfiler.

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

Två alternativ: n8n Cloud (hanterad, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för Clockify GitHub-backuper för 12 månaders historik i stället för 3?

Ja, men gör det med eftertanke. Ändra månadslistan i delarna “Assign Month Indices” och “Expand Month List” så att den genererar 12 poster i stället för 4. Om du också byter filnamn (till exempel per kund eller per arbetsyta) uppdaterar du mappningssteget som förbereder GitHub-filnamnet före “Locate GitHub File”. Vanliga justeringar är att gå från dagliga till veckovisa körningar, spara JSON i stället för CSV och skriva till en annan branch för godkännanden.

Varför misslyckas min Clockify-anslutning i det här arbetsflödet?

Oftast handlar det om en utgången eller felaktig API-nyckel, så generera en ny i Clockify och uppdatera inloggningen i n8n. Det kan också vara behörighetsrelaterat om nyckeln inte har åtkomst till arbetsytan du riktar in dig på. En sak till: säkerställ att Reports API-endpointen du använder matchar din Clockify-plan och att arbetsyte-ID:t som hämtas är det du förväntar dig.

Hur många månadsrapporter kan den här automatiseringen för Clockify GitHub-backuper hantera?

Betydligt fler än vad de flesta små team behöver. Med n8n Cloud Starter begränsas du av antalet körningar per månad, men en daglig körning som backar upp fyra månader är fortfarande ganska lätt. Om du kör egen hosting finns ingen körningsgräns (det beror på din server), och det här arbetsflödet är mest API-anrop plus filuppdateringar.

Är den här automatiseringen för Clockify GitHub-backuper bättre än att använda Zapier eller Make?

Ofta, ja, eftersom logiken “jämför och uppdatera” är viktig här och du vill inte betala extra för flerstegs-branchning. n8n hanterar också loopar bra (bearbeta flera månader i en körning) och mönster för filjämförelse som blir klumpiga i enklare verktyg. Zapier eller Make kan fortfarande fungera om du bara backar upp en export och inte bryr dig om diffar, commits eller versionshistorik. Om du behöver att revisionsspåret håller i en kunddialog är GitHub-versionering hela poängen. Prata med en automationsexpert om du vill ha hjälp att välja den enklaste setupen.

När det här väl rullar slutar tidsrapporter vara en återkommande brandövning. Du får ett levande revisionsspår i GitHub och kan lägga tiden på arbete som faktiskt driver verksamheten framåt.

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