Dina ärenden finns i GitHub, men den “riktiga” backloggen som alla kollar ligger i Notion. Så du kopierar över detaljer, glömmer att uppdatera en status och plötsligt debatterar teamet två olika versioner av verkligheten. Det är utmattande.
Den här GitHub Notion sync slår mot produktchefer först, om vi ska vara ärliga. Men tekniska leads och driftorienterade byråägare känner av det också, eftersom kostnaden syns som uppföljningar, missade överlämningar och rörig veckoplanering.
Det här workflowet håller GitHub-ärenden och en Notion-databas automatiskt i linje. Du får se hur det fungerar, vad det automatiserar och vad du behöver för att sätta upp det utan att göra det till ett “projekt”.
Så fungerar den här automatiseringen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: GitHub + Notion för alltid aktuell ärendevy
flowchart LR
subgraph sg0["Trigger on issues 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/notion.dark.svg' width='40' height='40' /></div><br/>Create database page"]
n1["<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/>Find database page"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "IF", pos: "b", h: 48 }
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/notion.dark.svg' width='40' height='40' /></div><br/>Edit issue"]
n5["<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/>Delete issue"]
n6@{ icon: "mdi:code-braces", form: "rounded", label: "Create custom Notion filters", pos: "b", h: 48 }
n7["<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/>Close issue"]
n8["<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/>Reopen issue"]
n9["<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/github.dark.svg' width='40' height='40' /></div><br/>Trigger on issues"]
n3 --> n0
n3 --> n6
n2 --> n4
n2 --> n5
n2 --> n7
n2 --> n8
n9 --> n3
n1 --> n2
n6 --> n1
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 n9 trigger
class n2,n3 decision
class n0,n1,n4,n5,n7,n8 database
class n6 code
classDef customIcon fill:none,stroke:none
class n0,n1,n4,n5,n7,n8,n9 customIcon
Problemet: din backlog är uppdelad i två verktyg
Notion är toppen för planering, men GitHub är där arbetet faktiskt förändras minut för minut. När de två glider isär får du en backlog som ser “strukturerad” ut i Notion och en backlog som är “sann” i GitHub, och folk fortsätter växla kontext för att förstå vad som gäller. Grovjobbet är dessutom lömskt. Ett ärende redigeras, någon uppdaterar Notion senare, sedan stängs ärendet, men Notion säger fortfarande “Pågår”. Multiplicera det med en normal vecka av förändringar så bränner du tid på administration i stället för att leverera.
Friktionen byggs på. Här är var det oftast faller isär.
- Ärenden skapas i GitHub, men de dyker inte upp i Notion förrän någon kommer ihåg det (vilket brukar vara efter en standup).
- Statusändringar som stängd eller återöppnad tappas bort, så prioriteringsmöten börjar med detektivarbete.
- Manuell copy-paste skapar små fel, och de felen blir stora diskussioner senare.
- När en post borde arkiveras eller tas bort ligger den gamla Notion-sidan kvar och skräpar i din “aktiva” vy.
Lösningen: synka GitHub-ärenden till Notion (och håll dem uppdaterade)
Det här n8n-workflowet bevakar ditt GitHub-repo för ärendeaktivitet och speglar varje ärende till en Notion-databas som en sida. När ett ärende öppnas skapar det en matchande sida automatiskt, vilket gör att din Notion-backlog förblir komplett utan att någon behöver mata in data. När ett ärende redigeras, stängs, återöppnas eller tas bort/arkiveras hittar workflowet rätt Notion-sida (via GitHub-ärende-ID) och genomför rätt ändring. Om du inte redan har en Notion-databas för detta kan workflowet skapa en, så du slipper fastna i att designa ett schema innan du får värde.
Workflowet börjar med en GitHub Issue Trigger. Därifrån avgör det om det handlar om ett helt nytt ärende eller en uppdatering av ett befintligt, och routar sedan händelsen till rätt Notion-åtgärd (skapa, uppdatera titel, markera som stängd, sätt återöppnad-flagga eller arkivera posten). Din Notion-databas hålls synkad när GitHub ändras.
Det du får: automatisering vs. resultat
| Det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att ditt repo har cirka 30 ärendeändringar per vecka (nya ärenden, redigeringar, stängningar, återöppningar). Manuellt är det lätt att lägga runt 5 minuter per ändring på att hitta Notion-sidan, uppdatera status och hålla titeln i linje, vilket blir ungefär 2–3 timmar i veckan. Med det här workflowet blir “arbetet” i princip noll: triggern går direkt, uppdateringar körs i bakgrunden och teamet kollar bara Notion. Du behåller överblicken utan underhållet.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- GitHub för att trigga på ärendeändringar
- Notion för att lagra och organisera backloggen
- Notion-integrationstoken (skapa den i Notion Integrations)
Svårighetsgrad: nybörjare. Du kopplar ihop GitHub och Notion och mappar sedan några fält.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En GitHub-ärendehändelse sätter igång allt. GitHub Issue Trigger lyssnar på ditt repo och skickar ärendets payload in i n8n när något händer (t.ex. öppnas, redigeras, stängs eller återöppnas).
Workflowet avgör “nytt” kontra “befintligt”. En If-gren kontrollerar om det inkommande ärendet ska skapa en ny Notion-sida eller uppdatera en som redan finns, så att du inte får dubbletter.
Notion-sidor skapas eller hittas via ett filter. Vid uppdateringar bygger ett Function-steg ett Notion-filter (baserat på GitHub-ärende-ID), och sedan hämtar workflowet den matchande Notion-sidan innan något annat görs.
Åtgärder routas till rätt Notion-ändring. Ett routingsteg skickar händelsen till rätt Notion-operation: uppdatera titel, markera ärendet som stängt, sätt en återöppnad-flagga eller arkivera posten vid behov.
Du kan enkelt ändra vilka fält som synkas (som etiketter, tilldelade eller prioritet) för att matcha dina Notion-vyer. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera GitHub-triggern
Konfigurera GitHub-webhooktriggern så att arbetsflödet tar emot issue-händelser från ert repo.
- Lägg till noden GitHub Issue Trigger och öppna dess konfiguration.
- Ställ in Owner på
[YOUR_ID]och Repository på[YOUR_ID]. - Säkerställ att Events inkluderar
issues. - Inloggningsuppgifter krävs: anslut era githubApi-credentials.
Steg 2: anslut åtkomst till Notion-databasen
Länka Notion och ange databas-ID:n som används av alla Notion-åtgärder i arbetsflödet.
- Öppna Generate Notion Page och ställ in Database ID på
[YOUR_ID]. - Ställ in fältet Title på
={{$json["body"]["issue"]["title"]}}. - I propertiesUi, mappa Issue ID|number till
={{$node["GitHub Issue Trigger"].json["body"]["issue"]["id"]}}och Link|url till={{$node["GitHub Issue Trigger"].json["body"]["issue"]["html_url"]}}. - Inloggningsuppgifter krävs: anslut era notionApi-credentials till alla Notion-noder (6 totalt som hanterar skapa, hämta, uppdatera, arkivera och statusuppdateringar).
Steg 3: konfigurera logik för skapande av issue
Använd den villkorsstyrda grenen för att bara skapa nya Notion-sidor när en GitHub-issue öppnas.
- Öppna Branch on Opened och ställ in villkoret så att Value 1
={{$node["GitHub Issue Trigger"].json["body"]["action"]}}jämförs med Value 2opened. - Verifiera att true-utgången från Branch on Opened är kopplad till Generate Notion Page.
- Behåll Flowpast Branding som en referensnotis (valfritt) för dokumentation i canvasen.
Steg 4: bygg och hämta målposter i Notion
För åtgärder som inte är opened bygger ni ett Notion-filter och hämtar den befintliga databassidan för issuet.
- Öppna Build Notion Filters och behåll angiven Function Code som den är för att generera ett JSON-filter för issue-ID:t.
- I Retrieve Notion Page ställer ni in Database ID på
[YOUR_ID]. - Ställ in Filter Type på
jsonoch Filter JSON på={{$node["Build Notion Filters"].json["notionfilter"]}}. - Bekräfta att exekveringsflödet följer Build Notion Filters → Retrieve Notion Page → Route by Action.
Steg 5: konfigurera routning av åtgärder och uppdateringar
Routa olika GitHub-issue-åtgärder till rätt Notion-uppdateringar och arkiveringsåtgärder.
- I Route by Action ställer ni in Value 1 på
={{$node["GitHub Issue Trigger"].json["body"]["action"]}}och säkerställer att reglerna mapparedited,deleted,closedochreopened. - I Update Issue Title ställer ni in Page ID på
={{ $node["Retrieve Notion Page"].json["id"] }}och mappar Issue|title till={{$node["GitHub Issue Trigger"].json["body"]["issue"]["title"]}}. - I Archive Issue Record ställer ni in Page ID på
={{$node["Retrieve Notion Page"].json["id"]}}med Operation satt tillarchive. - I Mark Issue Closed ställer ni in Page ID på
={{$node["Retrieve Notion Page"].json["id"]}}och sätter Closed|checkbox tilltrue. - I Reopen Issue Flag ställer ni in Page ID på
={{$node["Retrieve Notion Page"].json["id"]}}och lämnar Closed|checkbox avmarkerad för att nollställa flaggan.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta att arbetsflödet skapar, uppdaterar, stänger och återöppnar Notion-poster korrekt.
- Använd Execute Workflow och trigga en GitHub-issue-händelse (öppna, redigera, stäng, återöppna eller ta bort) i målrepon.
- Verifiera att öppnade issues skapar en ny Notion-sida via Generate Notion Page.
- Verifiera att åtgärderna edited, deleted, closed och reopened uppdaterar rätt post efter Retrieve Notion Page.
- När allt fungerar, slå på arbetsflödet till Active för att aktivera produktionswebhooks.
Vanliga fallgropar
- Notion-inloggningar kan gå ut eller så kanske integrationen inte är delad mot rätt databas. Om det skapar fel, kontrollera först åtkomst för Notion-integrationen och databasens inställningar för “Dela”.
- GitHub-behörigheter spelar större roll än många tror. Om triggern körs inkonsekvent, verifiera att token eller GitHub-appen har repo-åtkomst (och att den är installerad på rätt organisation/repo).
- Om du ändrar Notion-egenskapsnamnen efter uppsättning kan uppdateringar misslyckas i det tysta eller skriva till fel ställe. Håll dina status-/ID-egenskaper stabila, eller uppdatera fältmappningarna i n8n direkt.
Vanliga frågor
Cirka 30 minuter om din åtkomst till GitHub och Notion är klar.
Nej. Du kopplar ihop konton och mappar några Notion-fält. Workflow-logiken är redan byggd.
Ja. n8n har ett gratis alternativ för egen drift 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 Notion/GitHub-kostnader (oftast 0 USD om du inte använder betalda teamplaner).
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och klarar n8n bra. Egen drift ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, men gör det med avsikt. Lägg till egenskaper i din Notion-databas (till exempel Labels, Assignee, Priority) och uppdatera sedan Notion-noderna som skriver data (som “Generate Notion Page” och uppdateringsnoderna som “Update Issue Title”). Vanliga anpassningar är att synka etiketter till en multi-select, mappa tilldelade till ett people-/textfält och lägga till en länk tillbaka till GitHub-ärendet för kontext med ett klick. Om du håller fältet för GitHub-ärende-ID konsekvent är resten ganska flexibelt.
Oftast är det ett åtkomstproblem. Skapa en ny Notion-integrationstoken vid behov och säkerställ sedan att integrationen är delad mot mål-databasen i Notion. Om workflowet skapade databasen åt dig, dubbelkolla att du använder samma databas-ID och att du inte bytte till en annan senare.
För de flesta små team: gott och väl.
Ofta, ja, eftersom den här typen av tvåvägs “håll det uppdaterat”-synk gynnas av routing, filter och flera uppdateringsvägar. n8n hanterar grenlogik snyggt, och egen drift betyder att du inte betalar mer bara för att ditt repo är aktivt. Zapier eller Make kan fortfarande fungera om du bara behöver ett enkelt flöde “nytt ärende → skapa Notion-sida” och du inte bryr dig om att redigeringar/stängningar hålls aktuella. Så fort du vill ha pålitliga uppdateringar och mindre handpåläggning brukar n8n kännas stabilare. Prata med en automationsexpert om du vill ha hjälp att välja.
När det här väl rullar förblir din Notion-backlog pålitlig utan att någon behöver passa den. Workflowet tar hand om de repetitiva uppdateringarna, så att du kan fokusera på planering och leverans.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.