Sprintplaneringen närmar sig. Din backlog ser ”nästan klar” ut. Sedan öppnar du arket och inser att hälften av stories saknar acceptanskriterier, beroenden gömmer sig i kommentarer och ingen är överens om vad ”redo” ens betyder.
Scrum Masters får ofta ta första smällen, men produktägare och leveransansvariga känner av det de också. Den här automatiseringen för sprintförberedelser förvandlar din Google Sheets-backlog till ett felfritt, strukturerat förberedelsemejl som är redo för godkännande – i stället för en panikinsats i sista minuten.
Det här flödet kontrollerar kommande sprintplanering, validerar stories mot er definition av redo med AI, skriver feedback på story-nivå tillbaka till arket och skapar sedan utkastet till mejlet som teamet faktiskt behöver. Du ser vad det fixar, hur det körs och vad du ska se upp med.
Så fungerar automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Google Sheets + Gmail: sprintunderlag klart att skicka
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n3@{ icon: "mdi:location-exit", form: "rounded", label: "Load Calendar of Scrum Master", pos: "b", h: 48 }
n4@{ icon: "mdi:database", form: "rounded", label: "Read DoR criteria", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items for DoR check", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Compare User Story to DoR Cr..", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "If no event do nothing", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Take backlog link for furthe..", pos: "b", h: 48 }
n9@{ icon: "mdi:database", form: "rounded", label: "Update Scrum feedback in Bac..", pos: "b", h: 48 }
n10@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Scrum Master Emailer", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Scrum Master Story Fe..", pos: "b", h: 48 }
n12@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Scrum Master DoR Check", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Aggregate DoR check to User ..", 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/merge.svg' width='40' height='40' /></div><br/>Add DoR feedback to User Story"]
n15@{ icon: "mdi:robot", form: "rounded", label: "Provide Scrum Master Feedbac..", pos: "b", h: 48 }
n16@{ icon: "mdi:cog", form: "rounded", label: "Combine stories into one list", pos: "b", h: 48 }
n18@{ icon: "mdi:message-outline", form: "rounded", label: "Ask Approval to Scrum Master", pos: "b", h: 48 }
n19@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email to Attendees", pos: "b", h: 48 }
n20@{ icon: "mdi:message-outline", form: "rounded", label: "Create Draft in Scrum Master..", pos: "b", h: 48 }
n21@{ icon: "mdi:message-outline", form: "rounded", label: "Make aware the draft is read..", pos: "b", h: 48 }
n22@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Email content is Approved", pos: "b", h: 48 }
n23@{ icon: "mdi:swap-vertical", form: "rounded", label: "Start Here: Set Environment ..", pos: "b", h: 48 }
n24@{ icon: "mdi:cog", form: "rounded", label: "Take DoR link for further re..", pos: "b", h: 48 }
n26@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check for Upcoming Sprint Pl..", pos: "b", h: 48 }
n27@{ icon: "mdi:database", form: "rounded", label: "Select Stories Ready for Spr..", pos: "b", h: 48 }
n28@{ icon: "mdi:database", form: "rounded", label: "Check Open Stories in Curren..", pos: "b", h: 48 }
n29@{ icon: "mdi:robot", form: "rounded", label: "Draft Email for Sprint Plann..", pos: "b", h: 48 }
n30@{ icon: "mdi:cog", form: "rounded", label: "Aggregate Stories for Form C..", 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/code.svg' width='40' height='40' /></div><br/>Create Dynamic Form"]
n32@{ icon: "mdi:message-outline", form: "rounded", label: "Ask Scrum Master for Current..", pos: "b", h: 48 }
n33@{ icon: "mdi:swap-vertical", form: "rounded", label: "Process Feedback on Index", 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/merge.svg' width='40' height='40' /></div><br/>Append Feedback to Story"]
n35@{ icon: "mdi:robot", form: "rounded", label: "Draft Email for Sprint Goal ..", pos: "b", h: 48 }
n36@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Keep stories that were not c..", pos: "b", h: 48 }
n37["<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/>Combine Sprint Spill over wi.."]
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/merge.svg' width='40' height='40' /></div><br/>Append Stories with DoR feed.."]
n39@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Sprint Goal Email Agent", pos: "b", h: 48 }
n40@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email to PO", pos: "b", h: 48 }
n41@{ icon: "mdi:cog", form: "rounded", label: "Wait until X days before the..", pos: "b", h: 48 }
n1 --> n23
n4 --> n6
n31 --> n32
n7 --> n24
n34 --> n36
n2 --> n3
n33 --> n34
n10 -.-> n29
n18 --> n22
n22 --> n19
n22 --> n20
n16 --> n29
n16 --> n35
n3 --> n26
n5 --> n38
n5 --> n4
n5 --> n14
n12 -.-> n6
n14 --> n15
n39 -.-> n35
n29 --> n18
n38 --> n16
n9 --> n5
n0 --> n23
n20 --> n21
n11 -.-> n15
n24 --> n8
n30 --> n31
n6 --> n13
n28 --> n30
n28 --> n34
n36 --> n41
n23 --> n2
n8 --> n28
n13 --> n14
n35 --> n40
n15 --> n9
n26 --> n7
n41 --> n37
n41 --> n27
n32 --> n33
n27 --> n37
n37 --> n5
n37 --> n38
end
subgraph sg1["Error Flow"]
direction LR
n17@{ icon: "mdi:play-circle", form: "rounded", label: "Error Trigger", pos: "b", h: 48 }
n25@{ icon: "mdi:message-outline", form: "rounded", label: "Send Error Email", pos: "b", h: 48 }
n17 --> n25
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 n0,n1,n17 trigger
class n6,n15,n29,n35 ai
class n10,n11,n12,n39 aiModel
class n22,n26,n36 decision
class n4,n9,n27,n28 database
class n31 code
class n1 disabled
class n41 disabled
classDef customIcon fill:none,stroke:none
class n14,n31,n34,n37,n38 customIcon
Utmaningen: förberedelser inför sprintplanering blir manuell triage
Det värsta med sprintförberedelser är inte jobbet. Det är osäkerheten. Du plockar stories från Google Sheets, jämför dem med ett dokument för definition av redo, jagar förtydliganden i chatten och försöker få ihop ett sammanhängande ”det här är vad vi planerar”-meddelande innan folk går in i mötet redan irriterade. Med en stor backlog får du också ojämna standarder: en story har tydliga acceptanskriterier, nästa är en vag mening och en länk. När du väl upptäcker det är det sent och mötet blir en live-redigeringssession.
Det summerar snabbt. Här är var det brister i verkliga team.
- Någon markerar ärenden som ”Redo”, men de uppfyller inte er definition av redo, så du upptäcker luckor under mötet.
- Du skriver om samma feedback om och om igen (”saknar acceptanskriterier”, ”oklart beroende”, ”ingen estimering”), vilket är själsdödande och lätt att glömma.
- Distribuerade team missar kontext eftersom förberedelserna ligger i ett rörigt ark i stället för i ett enda meddelande som de kan granska och reagera på.
- Det slutliga förberedelsemejlet blir stressat, vilket gör att folk kommer oförberedda och ni bränner de första 20 minuterna på att bara synka.
Lösningen: AI-granskade stories och ett sprintmejl redo för godkännande
Det här flödet körs veckovis och tittar framåt efter ett kommande Sprint Planning-event i Scrum Master-kalendern. Om inget är inplanerat stannar det tyst. Om planering närmar sig hämtar det stories som du redan har flaggat i Google Sheets (som ”Redo för sprintplanering” och ”Aktiv i sprint”), och kontrollerar sedan varje story mot teamets definition av redo med en AI-granskare. För varje ärende skapar det tydlig, konkret feedback och skriver tillbaka den till backloggen så att arket blir ett levande förberedelseunderlag – inte en statisk lista. Till sist skapar det ett strukturerat förberedelsemejl, ber om Scrum Masters godkännande och skickar först därefter det färdiga meddelandet till deltagarna. Det finns också en valfri gren som tar fram förslag på sprintmål för produktägaren.
Flödet börjar med Google Calendar för att upptäcka timing, använder sedan Google Sheets som sanningskälla för backlog-ärenden och DoR-kriterier. Noder med OpenAI skapar feedback per story och mejlutkastet, och Gmail hanterar godkännandeloopen och utskicket. Microsoft Teams finns som alternativ för teamnotiser om du vill ge en heads-up någon annanstans än via mejl.
Vad som förändras: före vs. efter
| Vad detta tar bort | Effekt du kommer att se |
|---|---|
|
|
Effekt i verkligheten
Säg att du vanligtvis förbereder 20 stories inför sprintplaneringen. Manuellt kanske du lägger cirka 5 minuter per story på att kontrollera DoR, skriva anteckningar och korrigera formuleringar, plus ytterligare 20 minuter på att sätta ihop mejlet – alltså ungefär 2 timmar totalt. Med det här flödet lägger du cirka 10 minuter på att bekräfta statusar i arket och skumma igenom utkastet för godkännande, sedan skickas det automatiskt. Du har fortfarande kontroll över budskapet, men allt rutinjobb är borta.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Calendar för att upptäcka Sprint Planning-event
- Google Sheets för backlog-ärenden och DoR-kriterier
- Gmail för att köra godkännandeloopen och skicka
- OpenAI API-nyckel (hämta den från OpenAI API-dashboarden)
Kunskapsnivå: Medel. Du kopplar Google-konton, mappar ark-kolumner och justerar ett par prompts.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis konsultation i 15 minuter).
Flödet i arbetsflödet
Kalendertriggade sprintförberedelser. En schemalagd trigger körs veckovis, hämtar Scrum Master-kalendern och filtrerar efter ett kommande Sprint Planning-event. Inget event, inget brus.
Backlog och DoR hämtas från Sheets. Flödet hämtar era kriterier för definition av redo och de stories som matchar era statusfilter för ”redo/aktiv”. Det kan också ta med ”spillover” eller ej åtagna ärenden efter ett kort väntfönster före mötet.
AI-granskning plus feedback per story. Varje story utvärderas mot DoR med en AI-agent och noder för OpenAI chat-modell. Därefter slås feedback ihop med storyn och skrivs tillbaka till Google Sheets. Det är den här delen som håller standarden konsekvent, helt ärligt.
Mejlutdata redo för godkännande. Ett mejlutkast för sprintplanering skapas, Scrum Master får en begäran om godkännande och Gmail skickar det slutliga mejlet till deltagarna först efter godkännande. Valfritt: ett separat mejl till produktägaren med förslag på sprintmål.
Du kan enkelt ändra statusfilter och logiken för mejlgodkännande så att det passar teamets arbetssätt. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Konfigurera hur arbetsflödet startar för testning och schemalagda körningar.
- Lägg till och öppna Manual Test Trigger för att möjliggöra testning vid behov.
- Aktivera valfritt Scheduled Run Trigger (för närvarande inaktiverad) om ni vill ha automatiska körningar enligt ett schema.
- Säkerställ att båda triggrarna är anslutna till Initialize Environment Vars för en konsekvent uppsättning i både test- och schemalagda körningar.
Steg 2: Anslut datakällor i Google Workspace
Dessa noder hämtar kalenderhändelser, backloggreferenser och story-data från Google-tjänster.
- Öppna Fetch Scrum Master Calendar och konfigurera kalenderfrågan för händelser kopplade till sprintplanering.
- Öppna Fetch DoR Reference Link och Fetch Backlog Reference Link och peka dem mot era Google Drive-filer.
- Öppna Google Sheets-noder som Retrieve DoR Criteria, Get Open Sprint Stories, Retrieve Ready Sprint Stories och Update Backlog Feedback och ställ in korrekta kalkylblads-ID:n och intervall.
- Credential Required: Anslut era Google Calendar-inloggningsuppgifter i Fetch Scrum Master Calendar.
- Credential Required: Anslut era Google Drive-inloggningsuppgifter i Fetch DoR Reference Link och Fetch Backlog Reference Link.
- Credential Required: Anslut era Google Sheets-inloggningsuppgifter i alla Google Sheets-noder (4+ noder hanterar backloggkriterier, öppna stories, klara stories och uppdateringar av feedback).
Steg 3: Konfigurera intake av stories och granskningsloop
Den här delen samlar in öppna stories, tar in feedback och förbereder backloggposter för analys.
- Verifiera att Get Open Sprint Stories skickar output parallellt till både Aggregate Stories for Form och Merge Feedback into Story.
- Öppna Aggregate Stories for Form och Build Dynamic Form för att säkerställa att feedbackformuläret byggs utifrån den aktuella story-listan.
- Konfigurera Request Sprint Story Review för att skicka formuläret till granskare, och bekräfta sedan att Process Feedback Index och Merge Feedback into Story är anslutna.
- Använd Filter Uncommitted Stories för att exkludera stories som inte är redo för sprintplanering.
Steg 4: Förbered sprintens story-uppsättning och parallell DoR-bearbetning
Slå ihop klara stories och spillover-stories och utvärdera sedan Definition of Ready (DoR) i parallella grenar.
- Bekräfta att Delay Before Sprint Planning är konfigurerad om ni behöver en tidsbuffert (noden är för närvarande inaktiverad).
- Delay Before Sprint Planning skickar output parallellt till både Merge Spillover with Ready och Retrieve Ready Sprint Stories.
- Säkerställ att Merge Spillover with Ready skickar output parallellt till både Iterate DoR Items och Merge Stories with DoR.
- Validera flödet för DoR-utvärdering: Retrieve DoR Criteria → Evaluate Story vs DoR → Aggregate DoR Results → Merge DoR Into Story.
- Bekräfta att Merge DoR Into Story leder vidare till Generate Story Feedback och sedan Update Backlog Feedback.
Steg 5: Ställ in AI-analys och e-postkomposition
Dessa noder använder OpenAI-drivna agenter för att generera story-feedback och sprintmejl.
- I Evaluate Story vs DoR, säkerställ att anslutningen till AI-språkmodellen är OpenAI DoR Reviewer.
- I Generate Story Feedback, bekräfta att anslutningen till AI-språkmodellen är OpenAI Story Feedback.
- I Compose Sprint Planning Email, bekräfta att anslutningen till AI-språkmodellen är OpenAI Email Composer.
- I Compose Sprint Goal Email, bekräfta att anslutningen till AI-språkmodellen är OpenAI Sprint Goal Writer.
- Credential Required: Anslut era OpenAI-inloggningsuppgifter i OpenAI DoR Reviewer, OpenAI Story Feedback, OpenAI Email Composer och OpenAI Sprint Goal Writer.
Steg 6: Konfigurera utgående mejl och godkännanderoutning
Sätt ihop utdata för sprintplanering och routa godkännanden innan slutliga notifieringar skickas.
- Bekräfta att Combine Story List skickar output parallellt till både Compose Sprint Planning Email och Compose Sprint Goal Email.
- Konfigurera Request Scrum Approval och Check Email Approval för att routa godkända mejl till Dispatch Attendee Email och icke godkända utkast till Create Scrum Draft Email.
- Verifiera att Create Scrum Draft Email routar till Notify Draft Ready för notifieringar om att utkastet är klart.
- Säkerställ att Compose Sprint Goal Email routar till Send Email to Product Owner.
- Credential Required: Anslut era Gmail-inloggningsuppgifter till alla e-postnoder (7+ noder hanterar godkännanden, utkast, deltagarutskick och felvarningar).
Steg 7: Lägg till felhantering
Skicka automatiska varningar när ett arbetsflödesfel inträffar.
- Öppna Error Event Trigger för att säkerställa att den är aktiv för arbetsflödesfel.
- Konfigurera Dispatch Error Email för att meddela rätt mottagare med feldetaljer.
- Credential Required: Anslut era Gmail-inloggningsuppgifter i Dispatch Error Email.
Steg 8: Testa och aktivera ert arbetsflöde
Validera körningen från start till mål och aktivera sedan automatisk schemaläggning.
- Klicka på Execute Workflow på Manual Test Trigger för att köra ett fullständigt test.
- Bekräfta att de parallella vägarna körs korrekt, inklusive Get Open Sprint Stories till Aggregate Stories for Form och Merge Feedback into Story, samt Combine Story List till båda noderna för e-postkomposition.
- Verifiera lyckade utdata: uppdaterad backlogg i Update Backlog Feedback och skickade mejl via Gmail-noderna.
- Aktivera Scheduled Run Trigger när ni är redo för produktionsautomation.
Se upp för
- Behörigheter i Google Sheets kan blockera uppdateringar även när läsning fungerar. Om feedback inte skrivs tillbaka, kontrollera först det anslutna Google-kontot och delningsinställningarna för kalkylarket.
- Om du förlitar dig på timingen ”vänta före planering” varierar bearbetningsfönster. Öka väntetiden om sammanslagningen av ”spillover/redo” sker innan uppdateringarna i arket är klara.
- OpenAI-prompts är generiska som standard. Lägg in teamets språk och ton för definition av redo i granskar-prompten tidigt, annars kommer du att fortsätta omformulera samma feedback varje vecka.
Vanliga frågor
Cirka en timme om dina Sheets- och Gmail-konton är klara.
Ja, men någon bör vara bekväm med att redigera kolumner och etiketter i Google Sheets. Ingen kodning krävs, men justeringar av prompts och mappningar kräver ett noggrant öga.
Ja. n8n har ett gratis alternativ för egen drift 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 OpenAI API-användning, vilket vanligtvis ligger på några cent per planeringscykel för typiska backloggar.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.
Du kan byta ut Google Sheets mot Jira genom att ersätta stegen ”Retrieve Ready Sprint Stories” och ”Get Open Sprint Stories” med din Jira-sökning, och sedan mappa fält till samma story-struktur. Vanliga justeringar är att ändra statusfilter (vad ”redo” betyder), uppdatera kolumnmappningar för acceptanskriterier och beroenden samt skriva om AI-granskarens prompt så att den matchar er egen formulering av definition av redo.
Oftast handlar det om en utgången Google OAuth-token eller att arket har flyttats till en annan Drive-plats. Återanslut Google Sheets i n8n, bekräfta att kalkylarks-ID:t fortfarande matchar och kontrollera att det anslutna kontot har redigeringsbehörighet för steget ”Update Backlog Feedback”. Om bara vissa rader misslyckas kan det bero på att kolumnnamn inte matchar eller att obligatoriska fält är tomma som din mappning förutsätter finns.
Mer än tillräckligt för de flesta team: dussintals stories per körning är normalt.
Ofta, ja, eftersom det här flödet inte bara är ”flytta data från A till B”. Du har godkännandelogik, förgreningar, sammanslagningar och AI-utvärdering per story, vilket n8n hanterar snyggt utan att bli en skör kedja av mini-zaps. Egen drift spelar också roll om du kör detta veckovis för flera team, eftersom körningar snabbt blir många. Zapier eller Make kan fortfarande fungera om du förenklar omfattningen till ”skicka ett sammanfattningsmejl från ett ark”. Om du vill ha DoR-kontrollerna, feedback per story tillbaka till backloggen och godkännandeloopen är n8n oftast ett mer praktiskt val. Prata med en automationsexpert om du vill ha hjälp att välja.
Dina sprintförberedelser blir ett repeterbart system, inte en återkommande brandövning. Sätt upp det en gång och lägg sedan den återvunna tiden på det faktiska jobbet med att leda sprinten.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.