Inget sabbar tidrapportering snabbare än projekt som inte matchar och duplicerade kunder. En person startar en timer i Clockify, en annan byter namn på projektet i Notion, och plötsligt stämmer inte dina rapporter.
Den här Notion Clockify-synken slår först mot byråägare, eftersom kundfaktureringen snabbt blir rörig. Men operationsansvariga och projektledare känner också av det när teamet inte kan lita på vilken timer som hör till vilket arbete.
Det här arbetsflödet håller kunder, projekt och uppgifter synkade mellan Notion och Clockify så att du slipper vakta timers. Du får veta vad det automatiserar, vad du behöver för att sätta upp det och hur du undviker de vanligaste fallgroparna.
Så fungerar den här automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Synka Notion och Clockify utan röriga timers
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Globals", pos: "b", h: 48 }
n2@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Get first workspace ID"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/compare.svg' width='40' height='40' /></div><br/>Compare Datasets"]
n5@{ icon: "mdi:location-exit", form: "rounded", label: "Stop and Error", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Structure output", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map values", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map values1", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "No Operation", pos: "b", h: 48 }
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Get active Clients from Notion"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Get active Clients from Cloc.."]
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If unmapped in Notion", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set new values", pos: "b", h: 48 }
n14["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Update Client in Clockify"]
n15["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Get archived Client from Not.."]
n16["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Create Client in Clockify"]
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Store Clockify ID in Notion"]
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Remove Client from Clockify"]
n19["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n20@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n21["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Get active Projects from Not.."]
n22["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Get active Projects from Clo.."]
n23["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Update Project in Clockify"]
n24["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Get completed Project from N.."]
n25["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Create Project in Clockify"]
n26["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Remove Project from Clockify"]
n27@{ icon: "mdi:cog", form: "rounded", label: "Structure output1", pos: "b", h: 48 }
n28@{ icon: "mdi:cog", form: "rounded", label: "No Operation1", pos: "b", h: 48 }
n29@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map values2", pos: "b", h: 48 }
n30@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map values3", pos: "b", h: 48 }
n31["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/compare.svg' width='40' height='40' /></div><br/>Compare Datasets1"]
n32@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If unmapped in Notion1", pos: "b", h: 48 }
n33@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set new values1", pos: "b", h: 48 }
n34["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Store Clockify ID in Notion1"]
n35@{ icon: "mdi:location-exit", form: "rounded", label: "Stop and Error1", pos: "b", h: 48 }
n36["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge1"]
n37@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing2", pos: "b", h: 48 }
n38["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Get active Tasks from Notion"]
n39["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Get active Tasks from Clockify"]
n40["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Update Task in Clockify"]
n41["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Get completed Task from Notion"]
n42["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Create Task in Clockify"]
n43["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Remove Task from Clockify"]
n44@{ icon: "mdi:cog", form: "rounded", label: "Structure output2", pos: "b", h: 48 }
n45@{ icon: "mdi:cog", form: "rounded", label: "No Operation2", pos: "b", h: 48 }
n46@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map values4", pos: "b", h: 48 }
n47@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map values5", pos: "b", h: 48 }
n48["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clockify.dark.svg' width='40' height='40' /></div><br/>Get active Projects from Clo.."]
n49["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/compare.svg' width='40' height='40' /></div><br/>Compare Datasets2"]
n50@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If unmapped in Notion2", pos: "b", h: 48 }
n51@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set new values2", pos: "b", h: 48 }
n52["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Store Clockify ID in Notion2"]
n53@{ icon: "mdi:location-exit", form: "rounded", label: "Stop and Error2", pos: "b", h: 48 }
n54@{ icon: "mdi:cog", form: "rounded", label: "Limit", pos: "b", h: 48 }
n55@{ icon: "mdi:cog", form: "rounded", label: "Limit1", pos: "b", h: 48 }
n54 --> n28
n19 --> n54
n55 --> n45
n36 --> n55
n1 --> n9
n0 --> n3
n7 --> n4
n8 --> n4
n29 --> n31
n30 --> n31
n46 --> n49
n47 --> n49
n9 --> n10
n9 --> n11
n28 --> n21
n28 --> n22
n45 --> n48
n45 --> n38
n13 --> n14
n33 --> n23
n51 --> n40
n4 --> n12
n4 --> n6
n4 --> n14
n4 --> n15
n2 --> n3
n6 --> n19
n31 --> n32
n31 --> n27
n31 --> n23
n31 --> n24
n49 --> n50
n49 --> n44
n49 --> n40
n49 --> n41
n27 --> n36
n12 --> n16
n12 --> n14
n3 --> n1
n32 --> n25
n32 --> n23
n50 --> n42
n50 --> n40
n42 --> n52
n20 --> n19
n16 --> n17
n37 --> n36
n43 --> n53
n14 --> n19
n25 --> n34
n23 --> n36
n18 --> n5
n17 --> n20
n17 --> n18
n38 --> n46
n26 --> n35
n34 --> n37
n34 --> n26
n52 --> n43
n10 --> n7
n39 --> n47
n41 --> n51
n21 --> n29
n15 --> n13
n11 --> n8
n22 --> n30
n24 --> n33
n48 --> n39
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n2 trigger
class n3,n11,n12,n14,n16,n18,n22,n26,n32,n39,n40,n42,n43,n48,n50 decision
class n10,n15,n17,n21,n24,n34,n38,n41,n52 database
class n0,n23,n25 api
classDef customIcon fill:none,stroke:none
class n0,n3,n4,n10,n11,n14,n15,n16,n17,n18,n19,n21,n22,n23,n24,n25,n26,n31,n34,n36,n38,n39,n40,n41,n42,n43,n48,n49,n52 customIcon
Varför det här spelar roll: korrekt tidsdata du faktiskt kan fakturera från
När Notion är din “single source of truth” för kunder och leverans, men Clockify är där tiden faktiskt rapporteras, är avvikelser oundvikliga. En kund arkiveras i Notion men syns fortfarande som aktiv i Clockify. Ett projektnamn ändras, så teamet väljer fel timer. Uppgifter förökar sig när folk gör “snabba fixar” i Clockify, och nu har du tre versioner av samma sak. Det värsta är fördröjningen: du märker det inte förrän faktureringsveckan, när du stämmer av rader istället för att skicka fakturan.
Det summeras snabbt. Så här brukar det fallera i verkliga team.
- Någon spårar tid på ett gammalt projektnamn, och du lägger ungefär en timme senare på att lista ut var de posterna hör hemma.
- Arkiverade kunder i Notion ser fortfarande “aktiva” ut i Clockify, så de dyker upp i rullistor och väljs av misstag.
- Clockify-ID:n sparas inte någonstans på ett tillförlitligt sätt, vilket gör att varje upprensning blir en manuell matchningsövning.
- Projekt och uppgifter är hierarkiska, så en missmatch på kundnivå sprider sig till dussintals röriga uppgiftstimers.
Vad du bygger: en daglig Notion → Clockify-synk för kunder, projekt och uppgifter
Det här arbetsflödet behandlar Notion som platsen där du hanterar leverans, status och struktur, och håller sedan Clockify i linje så att tidrapporteringen förblir korrekt. Vid varje körning hämtar det aktiva kunder, projekt och uppgifter från både Notion och Clockify och jämför dem med hjälp av Clockify-ID:t (som sparas tillbaka i Notion). Om något finns i Notion men inte i Clockify skapas det. Om det finns i båda men fält har ändrats uppdateras Clockify. Och när du arkiverar eller stänger något i Notion markerar arbetsflödet motsvarande objekt som arkiverat i Clockify också, så att teamet slutar välja utdaterade alternativ.
Arbetsflödet kan köras en gång per dag enligt schema, eller direkt via en webhook (till exempel från en Notion-knapp). Det behandlar kunder först, sedan projekt, sedan uppgifter, eftersom relationerna spelar roll och du vill ha konsekventa parent-child-länkar.
Det här bygger du
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du hanterar 15 kunder med cirka 40 aktiva projekt och 200 uppgifter i Notion. Utan automatisering innebär att hålla Clockify synkat oftast en veckovis upprensning: kanske 3 minuter för att kontrollera eller rätta varje objekt, vilket lätt blir 2–3 timmar. Med det här arbetsflödet lägger du cirka 10 minuter på att sätta upp dina Notion-fält en gång, sedan sköter den dagliga körningen synken i bakgrunden. Du granskar mest undantag, istället för att göra en full genomgång.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Notion för dina databaser för kunder, projekt och uppgifter.
- Clockify för att hålla strukturen för tidrapportering felfri.
- Notion API-integrationstoken (skapa den i Notion Integrations).
Kunskapsnivå: Medel. Du behöver inte koda, men du behöver vara bekväm med att mappa fält och följa instruktioner för databasstruktur.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En schemalagd körning eller webhook sätter igång. Du kan låta den köras dagligen, eller trigga den på beställning via en webhook (många team kopplar det till en Notion-knapp när de gjort en batch med ändringar).
Arbetsflödet hämtar båda systemen sida vid sida. Det hämtar aktiva kunder, sedan projekt, sedan uppgifter från Notion och Clockify, och förbereder varje dataset i samma format så att jämförelserna blir rättvisa.
Skillnader upptäcks och åtgärdas. Med jämför-och-förgrena-logik (If + datasetjämförelse) avgör arbetsflödet vad som ska skapas, vad som ska uppdateras och vad som ska arkiveras. När ett objekt skapas i Clockify sparas dess Clockify-ID tillbaka i Notion så att framtida synkar blir stabila.
Utdata och fel hanteras kontrollerat. Arbetsflödet slår ihop resultat för rapportering, begränsar utdata för att hålla körningarna lättlästa och stoppar med tydliga fel när något kritiskt händer (som att en borttagning misslyckas), så att du inte behöver gissa.
Du kan enkelt ändra vilka Notion-egenskaper som synkas till Clockify (som namngivningskonventioner eller arkiveringsregler) utifrån dina behov. Se den fullständiga implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera webhook-triggern
Konfigurera de inkommande och schemalagda triggers som startar synkningen.
- Lägg till Incoming Webhook Trigger och ställ in HTTP Method till
POSToch Path till43028c1f-7331-4fbe-bf56-d6f47c92d9be. - Lägg till Scheduled Run Trigger och konfigurera schemat så att det körs dagligen vid Trigger At Hour
4. - Koppla båda triggers till Fetch Primary Workspace ID som visas i arbetsflödet.
Steg 2: koppla Clockify och Notion
Koppla era Clockify- och Notion-konton i alla integrationsnoder.
- Inloggningsuppgifter krävs: Anslut era clockifyApi-uppgifter i Fetch Primary Workspace ID.
- Inloggningsuppgifter krävs: Anslut era notionApi-uppgifter i Retrieve Notion Clients, Retrieve Notion Projects, Retrieve Notion Tasks, Lookup Archived Notion Client, Lookup Completed Notion Project, Lookup Completed Notion Task, Save Clockify Client ID, Save Clockify Project ID och Save Clockify Task ID.
- Inloggningsuppgifter krävs: Anslut era clockifyApi-uppgifter i alla Clockify-åtgärdsnoder, inklusive Retrieve Clockify Clients, Retrieve Clockify Projects, Retrieve Projects For Tasks, Retrieve Clockify Tasks, Create Clockify Client, Modify Clockify Client, Create Clockify Project, Modify Clockify Project, Create Clockify Task, Modify Clockify Task, Delete Clockify Client, Delete Clockify Project och Delete Clockify Task.
[YOUR_ID]). Ersätt dessa i Retrieve Notion Clients, Retrieve Notion Projects och Retrieve Notion Tasks innan ni testar.Steg 3: sätt upp workspace och globala variabler
Fånga workspace-ID:t och skicka in det i alla Clockify-operationer.
- I Fetch Primary Workspace ID, ställ in Resource till
workspaceoch Limit till1. - I Global Variables, ställ in tilldelningen workspace_id till
{{ $json.id }}. - Bekräfta att alla Clockify-noder refererar till
{{ $('Global Variables').item.json.workspace_id }}eller{{ $('Global Variables').first().json.workspace_id }}i sina workspaceId-fält.
Steg 4: konfigurera hämtning av kunder, projekt och uppgifter (parallella grenar)
Hämta data från Notion och Clockify parallellt för att förbereda jämförelsen.
- Pass Through Clients skickar utdata till både Retrieve Notion Clients och Retrieve Clockify Clients parallellt.
- I Retrieve Notion Clients, ställ in Resource till
databasePage, Operation tillgetAlloch tillämpa de manuella filtervillkor som visas i noden. - I Retrieve Clockify Clients, ställ in Resource till
client, Operation tillgetAlloch Workspace ID till{{ $('Global Variables').item.json.workspace_id }}. - Pass Through Projects skickar utdata till både Retrieve Notion Projects och Retrieve Clockify Projects parallellt.
- Pass Through Tasks skickar utdata till både Retrieve Projects For Tasks och Retrieve Notion Tasks parallellt, och därefter flödar Retrieve Projects For Tasks vidare till Retrieve Clockify Tasks.
Steg 5: sätt upp fältmappning och jämförelse av dataset
Normalisera fält mellan plattformarna och jämför dataset för förändringar.
- I Map Client Fields, mappa name till
{{ $json.name }}, archived till{{ $json.property_archive }}och clockify_client_id till{{ $json.property_clockify_client_id }}. - I Map Clockify Clients, mappa clockify_client_id till
{{ $json.id }}och archived till{{ $json.archived }}. - I Compare Client Lists, ställ in Resolve till
mixoch slå ihop på clockify_client_id i båda dataset. - Upprepa mönstret för mappning och jämförelse för projekt med Map Project Fields, Map Clockify Projects och Compare Project Lists, samt för uppgifter med Map Task Fields, Map Clockify Tasks och Compare Task Lists.
property_clockify_project_id, property_clockify_task_id).Steg 6: konfigurera utdata och synkåtgärder
Definiera logiken för skapa/uppdatera/ta bort för kunder, projekt och uppgifter.
- I varje IF-nod (Check Missing Notion Client, Check Missing Notion Project, Check Missing Notion Task), behåll tomkontrollen på
{{ $json.clockify_*_id }}för att styra skapa- kontra uppdatera-åtgärder. - För skapande: konfigurera Create Clockify Client med Name
{{ $json.name }}, Create Clockify Project med POST-body som inkluderar{{ $json.clockify_client_id }}, och Create Clockify Task med Project ID{{ $json.clockify_project_id }}. - För uppdateringar: konfigurera Modify Clockify Client för att uppdatera archived, Modify Clockify Project för att PUT:a JSON-body med
{{ $json.archived }}, och Modify Clockify Task för att uppdatera name och status med{{ $json.archived ? 'DONE' : 'ACTIVE' }}. - Spara nyligen skapade ID:n tillbaka till Notion i Save Clockify Client ID, Save Clockify Project ID och Save Clockify Task ID med hjälp av rich text-egenskapsvärdena.
- Bekräfta konsolidering av resultat via Combine Client Results och Combine Project Results, och att det därefter flödar in i Limit Output Clients och Limit Output Projects innan ni går vidare till nästa avsnitt.
Steg 7: lägg till felhantering
Säkerställ att misslyckade borttagningar eller oväntade konflikter stoppar arbetsflödet med tydliga meddelanden.
- Verifiera att Delete Clockify Client routar till Abort With Error med meddelandet
Could not update client in Notion (deleted in Clockify again). - Verifiera att Delete Clockify Project routar till Abort Project Error med meddelandet
Could not update bucket in Notion (deleted in Clockify again). - Verifiera att Delete Clockify Task routar till Abort Task Error med meddelandet
Could not update task in Notion (deleted in Clockify again).
Steg 8: testa och aktivera ert arbetsflöde
Validera synkningen från start till mål innan ni slår på den i produktion.
- Klicka på Execute Workflow och trigga Incoming Webhook Trigger med en POST-begäran för att bekräfta att data flödar in i Fetch Primary Workspace ID och Global Variables.
- Kontrollera att Pass Through Clients, Pass Through Projects och Pass Through Tasks körs parallellt och att varje jämförelsenod ger ut sammanslagna dataset.
- Verifiera förväntade utfall: Notion-objekt får Clockify-ID:n i Save Clockify Client ID, Save Clockify Project ID och Save Clockify Task ID, och att Clockify-poster uppdateras eller skapas korrekt.
- När allt fungerar, slå om arbetsflödet till Active för att aktivera schemalagda körningar via Scheduled Run Trigger.
Felsökningstips
- Notion-inloggning kan löpa ut eller så kanske integrationen inte är delad med rätt databaser. Om det skapar fel, kontrollera först åtkomsten för Notion-integrationen i varje databas.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Behörigheter i Clockify-workspace spelar större roll än man tror. Om skapande eller uppdateringar misslyckas, bekräfta att din API-nyckel kan komma åt rätt workspace och har rättigheter att redigera kunder, projekt och uppgifter.
Snabba svar
Räkna med ungefär en timme, främst för att bekräfta din Notion-databasstruktur och fältmappningar.
Nej. Du kopplar konton, mappar fält och följer arbetsflödets post-it-instruktioner.
Ja. n8n har ett gratis alternativ för egen hosting 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 användningen av Notion och Clockify (typiskt ingen API-avgift per körning om du inte har tajta begränsningar i din plan).
Två alternativ: n8n Cloud (hanterat, 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.
Ja, och det bör du troligen. De flesta team justerar stegen “Map Client Fields”, “Map Project Fields” och “Map Task Fields” för att matcha sina namngivningsregler, och finjusterar sedan arkiveringslogiken i stegen “Set Client/Project/Task Archive Fields”. Du kan också ändra hur uppdateringar appliceras genom att redigera HTTP-anropet “Modify Clockify Project” om din Clockify-setup förväntar sig andra fält. Vanliga anpassningar är att synka fler taggar, tvinga ett namngivningsformat som “Kund – Projekt” och att bara arkivera efter en specifik Notion-status (inte bara “arkiverad”).
Oftast beror det på att API-nyckeln pekar på fel workspace eller saknar behörighet att redigera kunder/projekt. Dubbelkolla steget “Fetch Primary Workspace ID” och bekräfta att din nyckel kan komma åt den workspacen. Om det bara fallerar vid större synkar kan du också slå i rate limits, så att glesa ut körningarna (dagligen istället för varje timme) hjälper.
Några hundra objekt per körning är typiskt, och de flesta team kör det dagligen. Om du hostar själv är körningar inte begränsade (din server är gränsen); på n8n Cloud beror det på din plans månatliga tilldelning av körningar.
Ofta, ja, eftersom detta inte är en enkel automatisering i två steg. Du synkar tre relaterade dataset (kunder → projekt → uppgifter), jämför poster, förgrenar baserat på villkor och skriver sedan tillbaka ID:n till Notion så att nästa körning blir stabil. Zapier och Make kan göra delar av det, men det blir dyrt och skört när du lägger till matchning mellan flera entiteter och felhantering. n8n är också enklare att hosta själv, vilket spelar roll om du vill köra dagligen utan att bevaka exekveringsgränser. Om du vill, prata med en automationsexpert så säger vi rakt ut vilket verktyg som passar din volym och komplexitet.
När Notion och Clockify är överens om kunder, projekt och uppgifter slutar dina timers vara en gissningslek. Sätt upp det, låt det köra dagligen och gör faktureringsveckan tråkig (på bästa möjliga sätt).
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.