Du börjar med en handfull funktionsanteckningar. Sedan börjar det riktiga jobbet: att göra den röriga inputen till ett Jira-projekt som folk faktiskt kan bygga utifrån, utan att missa viktiga deluppgifter eller skriva om samma ”Som användare…”-format för hundrade gången.
Den här typen av Jira-backlogautomation slår först mot produktchefer, om vi ska vara ärliga. Men scrum masters och leveransansvariga på byrå känner av det också, särskilt när kickoff är i morgon och backloggen fortfarande är ett Google-dokument.
Det här arbetsflödet tar råa funktionsbeskrivningar från ett formulär, genererar konsekventa user stories och deluppgifter med hjälp av AI, skapar hela Jira-projektet och mejlar dig i Gmail när det är klart (med länkar). Du får se hur det fungerar, vad du behöver och var team oftast snubblar.
Så fungerar den här automationen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Jira + Gmail: kickoff med backlog som är klar
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["<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/form.svg' width='40' height='40' /></div><br/>On form submission"]
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n6["<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"]
n7@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Project Naming", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Check Project Key & Get Stat.."]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Status ID"]
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out1", pos: "b", h: 48 }
n12["<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/jira.svg' width='40' height='40' /></div><br/>Create Story"]
n13["<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"]
n14@{ icon: "mdi:cog", form: "rounded", label: "Limit", pos: "b", h: 48 }
n15@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n16@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter", pos: "b", h: 48 }
n17@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter1", pos: "b", h: 48 }
n18@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out4", pos: "b", h: 48 }
n19@{ icon: "mdi:cog", form: "rounded", label: "Limit2", pos: "b", h: 48 }
n20@{ icon: "mdi:cog", form: "rounded", label: "Limit3", pos: "b", h: 48 }
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "Jira Story Status ID", pos: "b", h: 48 }
n22@{ icon: "mdi:swap-vertical", form: "rounded", label: "Jira Sub-task Status ID", pos: "b", h: 48 }
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/merge.svg' width='40' height='40' /></div><br/>Jira Issue ID"]
n27@{ icon: "mdi:robot", form: "rounded", label: "Jira Story Generator", pos: "b", h: 48 }
n28@{ icon: "mdi:message-outline", form: "rounded", label: "Gmail - Send Notification", pos: "b", h: 48 }
n29@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Jira URL", pos: "b", h: 48 }
n30@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Array Sub Tasks", pos: "b", h: 48 }
n31@{ icon: "mdi:cog", form: "rounded", label: "Execute Sub-task creator Wor..", pos: "b", h: 48 }
n14 --> n4
n13 --> n31
n16 --> n19
n19 --> n21
n20 --> n22
n17 --> n20
n15 --> n28
n5 --> n14
n11 --> n13
n18 --> n16
n18 --> n17
n12 --> n30
n12 --> n13
n29 --> n9
n10 --> n18
n23 --> n27
n6 --> n10
n8 --> n29
n4 --> n15
n4 --> n12
n2 -.-> n8
n2 -.-> n27
n1 --> n8
n30 --> n11
n27 --> n5
n21 --> n23
n22 --> n23
n3 -.-> n27
n7 -.-> n8
n9 --> n6
n31 --> n4
n0 --> n8
end
subgraph sg1["When Executed by Another Workflow Flow"]
direction LR
n24@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed by Another Wor..", pos: "b", h: 48 }
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/jira.svg' width='40' height='40' /></div><br/>Create Sub Task"]
n26@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items1", pos: "b", h: 48 }
n25 --> n26
n26 --> n25
n24 --> n26
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,n24 trigger
class n3,n7,n8,n27 ai
class n2 aiModel
class n16,n17 decision
class n6,n9,n10 api
classDef customIcon fill:none,stroke:none
class n1,n6,n9,n10,n12,n13,n23,n25 customIcon
Problemet: backlog-kickoffs tar evigheter (och blir inkonsekventa)
Att bygga ett Jira-projekt från grunden låter enkelt tills du måste göra det under tidspress. Du jonglerar ett projektnamn, en projektnyckel som inte får krocka med något annat, rätt mall, rätt ärendetyper och sedan det ändlösa slitjobbet att göra ”Lägg till fakturering” till riktiga stories med korrekta acceptanskriterier och en vettig uppsättning deluppgifter. Gör du det manuellt får du två stora problem samtidigt: det tar timmar och det blir aldrig konsekvent. En story har deluppgifter för QA och dokumentation, nästa har det inte. Någon glömmer design. Sen kommer det tillbaka och spökar i sprinten.
Friktionen byggs på. Det är inte ett stort misstag. Det är dussintals små som kostar dig dagar.
- Varje kickoff blir ett copy-paste-maraton mellan anteckningar, Jira och den mall du senast använde.
- Story-kvaliteten varierar beroende på vem som skrev den, så grooming blir en omskrivningssession i stället för planering.
- Deluppgifter hoppas över när du har bråttom, vilket gör att överraskningar dyker upp mitt i sprinten (test, dokumentation, överlämningar).
- Till och med namngivningen av projektet kan stoppa allt eftersom nycklar krockar och ingen vill fixa det senare.
Lösningen: gör om funktionsanteckningar till ett komplett Jira-projekt (och få ett mejl när det är klart)
Det här arbetsflödet börjar med en enkel formulärinlämning: projektnamn plus en lista med funktionsbeskrivningar. Därifrån förbättrar AI projektnamnet, genererar en användbar Jira-projektnyckel och kontrollerar att nyckeln faktiskt är ledig innan något skapas. När Jira är redo hämtar arbetsflödet projektets statusar och ärendetyper så att stories och deluppgifter skapas med korrekta ID:n (den ”osynliga” detaljen som ofta får automationer att skapa fel). Sedan använder det AI för att göra om dina råa features till korrekt formaterade agila user stories, delar upp dem i enskilda objekt och skapar stories i Jira. Slutligen genererar och skapar det en komplett uppsättning deluppgifter för varje story (design, utveckling, test, dokumentation), sammanställer resultatet och skickar en Gmail-bekräftelse med projektdetaljer och direkta länkar.
Arbetsflödet startar när formuläret kommer in. AI formar inputen till konsekvent story-innehåll, medan n8n sköter skapandet av Jira-projekt och ärenden i bakgrunden. När allt är klart skickar Gmail ett tydligt ”backlogg klar”-meddelande så att du kan gå vidare.
Det du får: automation vs. resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här kan det se ut
Säg att du kickar igång ett nytt kundprojekt med 12 funktioner. Manuellt kan du lägga cirka 10 minuter per funktion på att skriva en vettig story, sedan ytterligare 10 minuter på att lägga till deluppgifter och fixa formatering, plus 20 minuter på att sätta upp projektet och ärendetyper. Det blir ungefär 4 timmar, och det är lätt att missa en test- eller dokumentationsuppgift när det är stressigt. Med det här arbetsflödet lägger du cirka 10 minuter på att skicka in strukturerade anteckningar i formuläret och väntar sedan medan Jira och AI-genereringen kör. Du granskar det som skapades, och Gmail-bekräftelsen talar om att backloggen är klar.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Jira Software Cloud för att skapa projekt, stories och deluppgifter
- Gmail för att skicka bekräftelsen ”backlogg klar”
- OpenAI API-nyckel (hämtas i din OpenAI-dashboard)
Kunskapsnivå: Mellan. Du kopplar credentials, klistrar in din Jira-bas-URL och bekräftar några Jira-specifika ID:n och behörigheter.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En formulärinlämning sätter igång allt. Du anger ett projektnamn och en uppsättning funktionsbeskrivningar. Det finns också en manuell trigger för testning, vilket är praktiskt när du finjusterar prompts eller behörigheter.
AI förbättrar input och genererar strukturerade stories. OpenAI-chatmodellen tar dina grova anteckningar och ger konsekventa user stories, och sedan gör en strukturerad parser om resultatet till förutsägbara fält som n8n kan använda pålitligt. Det är här ”Som en [användare]…”-formatet standardiseras.
Jira skapas korrekt innan ärenden läggs till. Arbetsflödet validerar projektnyckeln, skapar Jira-projektet och hämtar sedan statusar och ärendetyper så att stories och deluppgifter mappas till rätt typ-ID:n. Liten detalj, stor skillnad.
Stories och deluppgifter skapas i batchar. n8n loopar igenom varje genererad story, skapar den i Jira, expanderar deluppgifts-arrayen och kör ett underarbetsflöde som skapar varje deluppgift under rätt parent-ärende.
En Gmail-bekräftelse knyter ihop allt. Resultaten sammanställs och skickas som en klar-notis med projektdetaljer och länkar, så att du vet att det är säkert att dela backloggen med teamet.
Du kan enkelt ändra story-mallen för att inkludera story points, etiketter eller anpassade fält utifrån dina behov. Se hela implementationsguiden nedan för alternativ för anpassning.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den manuella triggern
Konfigurera arbetsflödets startpunkter så att ni kan köra bygget manuellt eller via intake-formuläret.
- Lägg till och öppna Manual Run Trigger för att möjliggöra testning vid behov.
- Öppna Form Submission Trigger och ställ in Form Title till
Jira Full Project Generator. - I Form Submission Trigger, behåll fälten för Project Name och Project Full Features som obligatoriska indata.
Steg 2: anslut autentiseringsuppgifter för Jira och Gmail
Autentisera Jira API-anrop och utgående e-postnotifieringar.
- Öppna Create Jira Project och välj Jira-autentiseringsuppgifter. Credential Required: Anslut era jiraSoftwareCloudApi-autentiseringsuppgifter.
- Öppna Validate Project Key och bekräfta samma Jira-autentiseringsuppgifter. Credential Required: Anslut era jiraSoftwareCloudApi-autentiseringsuppgifter.
- Öppna Retrieve Project Status och bekräfta samma Jira-autentiseringsuppgifter. Credential Required: Anslut era jiraSoftwareCloudApi-autentiseringsuppgifter.
- Öppna Create Jira Story och bekräfta samma Jira-autentiseringsuppgifter. Credential Required: Anslut era jiraSoftwareCloudApi-autentiseringsuppgifter.
- Öppna Create Jira Subtask och bekräfta samma Jira-autentiseringsuppgifter. Credential Required: Anslut era jiraSoftwareCloudApi-autentiseringsuppgifter.
- Öppna Dispatch Email Notice och anslut Gmail. Credential Required: Anslut era gmailOAuth2-autentiseringsuppgifter.
Steg 3: sätt upp AI-genereringskedjan
Konfigurera AI-modellen och JSON-parsers som genererar projektnamn och user stories.
- Öppna AI Chat Engine och bekräfta att modellen är inställd på
gpt-5-mini. Credential Required: Anslut era openAiApi-autentiseringsuppgifter. - Öppna Generate Project Name och behåll prompt-texten som den är, inklusive uttrycken
{{ $json['Project Name'] }}och{{ $json['Project Full Features'] }}. - Öppna Project JSON Parser och behåll JSON-schemaexemplet för
project_name,project_descriptionochproject_key. - Öppna Generate Jira Stories och behåll prompt-texten med uttrycken
{{ $('Manual Run Trigger').item.json['Project Name'] }}och{{ $('Manual Run Trigger').item.json['Project Full Features'] }}. - Öppna Structured Response Parser och behåll JSON-schemaexemplet för stories och
sub_tasks.
Steg 4: konfigurera projektskapande och validering av nyckel
Ställ in Jira-bas-URL:en, validera den genererade nyckeln och skapa projektet via REST API.
- Öppna Assign Jira Base URL och ställ in Jira url till
https://[YOUR_JIRA_DOMAIN]. - Öppna Validate Project Key och ställ in URL till
=https://[YOUR_JIRA_DOMAIN]/rest/api/3/project/{{ $('Assign Jira Base URL').item.json['Jira url'] }}. - Öppna Create Jira Project och ställ in URL till
https://[YOUR_JIRA_DOMAIN]/rest/api/3/project. - I Create Jira Project, ställ in JSON Body till det angivna uttrycksblocket som använder
{{ $('Generate Project Name').item.json.output.project_key }}och{{ $('Generate Project Name').item.json.output.project_name }}. - Uppdatera platshållaren leadAccountId till ert Jira-användar-ID i JSON-kroppen.
Steg 5: hämta ärendetyper och förgrena parallellt
Efter att projektet skapats hämtas ärendetyper och behandlas parallellt för att få ID:n för Story och Subtask.
- Öppna Retrieve Project Status och ställ in URL till
=https://[YOUR_JIRA_DOMAIN]/rest/api/3/project/{{ $json.key }}. - Öppna Expand Issue Types och ställ in Field To Split Out till
issueTypes. - Bekräfta att Expand Issue Types skickar utdata till både Filter Story Type och Filter Subtask Type parallellt.
- I Filter Story Type, ställ in villkoret att matcha Name lika med
Storymed{{ $json.name }}. - I Filter Subtask Type, ställ in villkoret att matcha Name lika med
Subtaskmed{{ $json.name }}. - Öppna Set Story Type ID och ställ in story id till
{{ $json.id }}. - Öppna Set Subtask Type ID och ställ in task id till
{{ $json.id }}. - Bekräfta att Merge Issue Type IDs kombinerar båda ID:n innan Generate Jira Stories.
Steg 6: generera och expandera stories för skapande
Generera story-JSON, expandera den till individuella objekt och begränsa batchstorleken för stories vid behov.
- Säkerställ att Generate Jira Stories tar emot sammanslagna ID:n för ärendetyp från Merge Issue Type IDs.
- Öppna Expand Output Array och ställ in Field To Split Out till
output. - Öppna Limit Stories för att vid behov sätta en maxgräns för antal stories som behandlas per körning.
- Bekräfta flödet Expand Output Array → Limit Stories → Iterate Records.
Steg 7: skapa Jira-stories och subtasks via sub-workflow
Skapa Jira-stories, mappa och expandera sedan subtasks, kombinera strömmar innan de skickas till ett sub-workflow för skapande av subtasks.
- Öppna Create Jira Story och bekräfta att Project är
{{ $('Retrieve Project Status').item.json.id }}. - I Create Jira Story, ställ in Summary till
{{ $json.story_title }}, Issue Type till{{ $('Merge Issue Type IDs').item.json["story id"] }}och Description till{{ $json.story_description }}. - Bekräfta att Create Jira Story skickar utdata till både Map Subtask Array och Combine Streams parallellt.
- Öppna Map Subtask Array och ställ in sub_tasks till
{{ $('Iterate Records').item.json.sub_tasks }}. - Öppna Expand Subtasks och ställ in Field To Split Out till
sub_tasks. - Bekräfta att Combine Streams är i Mode
combineoch Combine BycombineAll. - Öppna Run Sub-Workflow (Configure Required) och välj målflödet i Workflow (för närvarande tomt).
- I Run Sub-Workflow (Configure Required), behåll indata-mappningsvärden som
{{ $json.key }}och{{ $('Merge Issue Type IDs').item.json["task id"] }}oförändrade.
Steg 8: konfigurera subflödet för skapande av subtasks
Säkerställ att sub-workflow:et tar emot indata och skapar subtasks korrekt.
- I sub-workflow:et, använd Subflow Trigger Input för att definiera indata för
story_id,key,subtask_title,subtask_description,project_idochsubtask_type. - Öppna Iterate Subtasks för att batcha igenom varje subtask-objekt.
- Öppna Create Jira Subtask och ställ in Project till
{{ $json.project_id }}, Summary till{{ $json.subtask_title }}, Issue Type till{{ $json.subtask_type }}och Parent Issue Key till{{ $json.key }}.
Steg 9: konfigurera aggregering och e-postnotifiering
Aggregera resultaten från story-skapandet och skicka ett bekräftelsemejl.
- Öppna Aggregate Results för att samla utdata från Iterate Records.
- Öppna Dispatch Email Notice och ställ in Send To till
[YOUR_EMAIL]. - I Dispatch Email Notice, behåll Message med uttryck som
{{ $('Create Jira Project').first().json.key }}och uppdatera Jira-domänen i länken.
Steg 10: testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att bekräfta projektskapande, story-skapande, subtask-skapande och notifiering.
- Klicka på Execute Workflow och kör Manual Run Trigger med exempel på Project Name och Project Full Features.
- Verifiera att ett nytt Jira-projekt skapas och att Create Jira Story genererar ärenden med beskrivningar.
- Bekräfta att sub-workflow:et skapar subtasks via Create Jira Subtask och länkar dem till föräldraärendet.
- Kontrollera inkorgen efter bekräftelsemeddelandet från Dispatch Email Notice.
- När allt är validerat, växla arbetsflödet till Active för produktionsanvändning och dela URL:en för Form Submission Trigger.
Vanliga fallgropar
- Jira-credentials kan gå ut eller sakna scopes. Om arbetsflödet plötsligt fallerar, kontrollera Jira-nodens credentials i n8n först och bekräfta sedan att din Atlassian API-token fortfarande har åtkomst att skapa projekt och ärenden.
- 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 din tonalitet tidigt, annars kommer du redigera output för alltid.
Vanliga frågor
Cirka 30–60 minuter om dina Jira- och Gmail-credentials är redo.
Nej. Du kopplar konton och uppdaterar några fält som din Jira-bas-URL och projektansvarig.
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 kostnader för OpenAI API (ofta några cent per backlogg, beroende på hur många stories du genererar).
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 klarar n8n bra. Egen hosting ger dig obegränsade exekveringar men kräver grundläggande serverhantering.
Ja, men räkna med lite finjustering. Du kan ändra prompten i AI-steget ”Generate Jira Stories” / ”Jira Story Generator” för att inkludera story points, komponenter, etiketter eller din definition-of-done-text. Om du behöver fylla i anpassade Jira-fält uppdaterar du noderna ”Create Jira Story” och ”Create Jira Subtask” för att mappa dessa fält. Team anpassar ofta formatet för acceptanskriterier, lägger till estimering och säkerställer en konsekvent checklista av deluppgifter per story-typ.
Oftast beror det på en utgången Atlassian API-token eller saknade behörigheter för att skapa projekt och ärenden. Dubbelkolla credentials som är kopplade till Jira-noderna i n8n och bekräfta sedan att din Jira-bas-URL i steget ”Assign Jira Base URL” / ”Set Jira URL” matchar din instans. Om det bara misslyckas vid vissa körningar kan du också slå i rate limits när du skapar många ärenden snabbt.
Tillräckligt för typiska kickoffs: dussintals stories i en körning är normalt, och du kan batcha fler om dina Jira-gränser tillåter det.
För det här användningsfallet är n8n oftast bättre eftersom du behöver batchning, förgrenad logik och strukturerade AI-utdata, inte bara en enkel tvåstegs-Zap. Uppslagningarna av ”issue type ID” och looparna för deluppgifter är också enklare att styra i n8n, så att du inte betalar extra för varje liten väg. Zapier eller Make kan fungera om du håller det litet, som ”ny formulärinlämning → skapa ett ärende”, men full projekt- och backloggskapande blir snabbt klumpigt. En annan poäng: egen hosting av n8n innebär att du kan köra så många exekveringar som din server klarar. Om du är osäker, prata med en automationsexpert och beskriv din volym och din Jira-setup.
När detta väl är på plats slutar kickoff-förberedelser vara ett sent kvällsjobb. Du skickar in anteckningarna, får en Jira-backlogg som är redo att köra och kan lägga fokus på det arbete som faktiskt kräver omdöme.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.