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

Linear + Slack: buggbiljetter till rätt team

Rickard Andersson Partner, Nodenordic.se

Din buggkö fylls snabbt. Sedan börjar den verkliga tidstjuven: någon läser rapporten, gissar en ägare, flyttar ärendet, får det tillbakabollat och upprepar.

Det är den typen av röra som produktchefer känner av i sprintplaneringen, men utvecklingsledare och support som hanterar intake ser den varje dag också. Med Linear Slack routing hamnar nya buggar automatiskt hos rätt team, och Slack pingas bara när flödet ärligt talat inte kan avgöra.

Nedan ser du exakt hur flödet routar ärenden, hur AI-beslutet valideras mot riktiga Linear-team och hur du sätter upp det så att din triage förblir lugn.

Så fungerar automatiseringen

Här är hela arbetsflödet du kommer att sätta upp:

n8n Workflow Template: Linear + Slack: buggbiljetter till rätt team

Varför det här är viktigt: bug triage blir pingpong

När flera team delar en gemensam intake-pipeline betyder ”ny bugg” inte ”redo att agera på”. Någon måste fortfarande kontrollera att beskrivningen är komplett, bekräfta att det faktiskt är en bugg, titta på status och etiketter och sedan avgöra vilket team som äger den. Det beslutet är sällan självklart utifrån titeln, så triage blir en kostnad i form av kontextbyten. Ännu värre: det blir stökigt. Folk blir avbrutna i Slack för saker som kunde ha routats tyst, och felroutade ärenden ligger i dagar eftersom alla antar att någon annan tog det.

Det bygger snabbt på. Här är var det fallerar i verkligheten.

  • Nya ärenden kommer in utan tillräcklig kontext, så en människa måste jaga detaljer innan routning.
  • Ärenden studsar mellan team eftersom första tilldelningen var en gissning, inte ett beslut baserat på tydliga kriterier.
  • Slack används som triage-kö, vilket gör att viktiga larm drunknar i rutinmässig administration.
  • När volymen ökar blir ”vi tar triage senare” till en backlog som tyst blockerar riktiga fixar.

Det du bygger: AI-baserad Linear-routning med Slack-undantag

Det här flödet bevakar Linear efter ärenden som skapas eller uppdateras i ett specifikt intake-team (många företag använder först ett gemensamt ”Engineering”- eller ”Triage”-team). När ett ärende matchar dina routningskriterier skickar det ärendedetaljerna till en OpenAI GPT-4-prompt som är förberedd med era team och vad de äger. Flödet dubbelkollar sedan AI:ns val mot den faktiska listan av team som hämtas från Linear, så att den inte tilldelar ett påhittat namn. Om det valda teamet är giltigt uppdaterar flödet Linear-ärendets team-egenskap och skickar det vidare. Om AI:n inte kan välja med säkerhet (eller om valet inte valideras) skickas en fokuserad Slack-notis så att en människa snabbt kan besluta, utan att spamma kanalen för varje enskilt ärende.

Det börjar med en Linear-ärende-trigger, filtrerar ner till buggarna som är redo för routning och använder sedan AI-klassificering plus ett valideringssteg: ”finns det här teamet?”. Till sist tilldelar det antingen rätt team i Linear eller postar ett enda tydligt meddelande till Slack för manuell triage.

Det du bygger

Förväntade resultat

Säg att du får in cirka 20 nya buggar i veckan till ett gemensamt Linear-team. Manuell triage tar vanligtvis 5 minuter för att läsa, kontrollera etiketter/status, avgöra ägarskap och flytta ärendet, så det blir ungefär 2 timmar per vecka (och det är aldrig ett enda sammanhängande pass). Med det här flödet blir ”mänsklig tid” bara undantagen. Om ens 4 av 5 buggar routas automatiskt är du nere på kanske 20 minuter manuell triage för veckan, plus den automatiserade bearbetningstiden som kör i bakgrunden.

Innan du börjar

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Linear för bug intake och teamtilldelning.
  • Slack för att bara avisera om oklassificerade ärenden.
  • OpenAI API-nyckel (hämta den i OpenAI-dashboarden)

Svårighetsnivå: Nybörjare. Du kopplar konton, klistrar in teamdefinitioner och justerar några filter för att matcha din Linear-setup.

Vill du att någon bygger det här åt dig? Prata med en automationsspecialist (gratis 15-minuters konsultation).

Steg för steg

Ett Linear-ärende ändras. Flödet körs när ett ärende skapas eller uppdateras i ditt valda Linear-team, vilket vanligtvis är den gemensamma intake-kön.

Bara rätt ärenden går vidare. Det filtrerar fram ärenden som faktiskt är redo för automatiserad routning, till exempel att de har en ordentlig beskrivning, rätt ”Bug”-etikett och ligger i din status ”Triage”. Allt annat ignoreras så att du inte råkar omrouta pågående arbete.

AI väljer bästa ägare. OpenAI (GPT-4) läser ärendet och dina interna anteckningar om ”vem som äger vad”, och returnerar det mest sannolika teamet. Här får du störst effekt, eftersom modellen kan tolka naturligt språk, inte bara stela nyckelord.

Flödet validerar och agerar. n8n hämtar den aktuella teamlistan från Linear, kontrollerar att AI:ns svar matchar ett riktigt teamnamn och uppdaterar sedan ärendets team-egenskap. Om valideringen misslyckas postar det en Slack-notis så att en människa kan avgöra.

Du kan enkelt ändra routningsreglerna (etiketter, statusar, obligatoriska fält) så att de matchar hur ditt team triagerar idag. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera Linear-triggern

Konfigurera arbetsflödet så att det startar när ett nytt Linear-ärende skapas eller uppdateras för målteamet.

  1. Lägg till noden Linear Issue Trigger och ställ in Team ID till 7a330c36-4b39-4bf1-922e-b4ceeb91850a.
  2. Ställ in Authentication till oAuth2 och säkerställ att Resources inkluderar issue.
  3. Inloggningsuppgifter krävs: Anslut era linearOAuth2Api-inloggningsuppgifter.

Steg 2: Koppla Linear-data och teamalternativ

Definiera teamalternativ och hämta de aktiva Linear-teamen för ID-mappning.

  1. I Initialize Team Options lägger ni till teamlistan under teams med det angivna värdeblocket och ställer in slackChannel till #yourChannelName.
  2. I Retrieve Linear Teams ställer ni in URL till https://api.linear.app/graphql, Method till POST och aktiverar Send Body.
  3. Ställ in body-parametern query till { teams { nodes { id name } } }.
  4. Inloggningsuppgifter krävs: Anslut era linearOAuth2Api-inloggningsuppgifter till Retrieve Linear Teams.

Steg 3: Sätt upp AI-klassificering

Konfigurera AI:n för att klassificera ärenden till ett av de fördefinierade teamen.

  1. I AI Classification Prompt väljer ni modellen gpt-4-32k-0314.
  2. Bekräfta att systemmeddelandena inkluderar uttrycket för teamlistan {{ $('Initialize Team Options').first().json.teams }} samt uttryck för ärendedata för titel och beskrivning: {{ $('Linear Issue Trigger').first().json.data.title }} och {{ $('Linear Issue Trigger').first().json.data.description }}.
  3. Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter.

Tips: Säkerställ att teamnamnen i Initialize Team Options matchar Linear-teamnamnen exakt för att undvika felmatchningar senare i arbetsflödet.

Steg 4: Konfigurera filtrering och parallell bearbetning

Filtrera ärenden som behöver klassificeras och kör AI och teamhämtning parallellt.

  1. I Filter Unclassified Tickets lägger ni till tre villkor: Description innehåller inte Add a description here med {{ $('Linear Issue Trigger').item.json.data.description }}; State ID är lika med 6b9a8eec-82dc-453a-878b-50f4c98d3e53 med {{ $('Linear Issue Trigger').item.json.data.state.id }}; och Label count större än 0 med {{ $('Linear Issue Trigger').item.json.data.labels.filter(label => label.id === 'f2b6e3e9-b42d-4106-821c-6a08dcb489a9').length }}.
  2. Filter Unclassified Tickets skickar utdata till både AI Classification Prompt och Retrieve Linear Teams parallellt.
  3. I Combine Data Streams ställer ni in Mode till chooseBranch för att slå ihop AI-resultat och teamdata korrekt.

⚠️ Vanlig fallgrop: Om label-ID eller state-ID är fel kommer arbetsflödet aldrig att nå AI-klassificeringen. Dubbelkolla att båda ID:n matchar er Linear-workspace.

Steg 5: Validera och routa resultatet

Validera AI-svaret, mappa team-ID och uppdatera ärendet eller avisera Slack.

  1. I Validate Team Selection ställer ni in villkoret att kontrollera att {{ $json.message.content }} inte är lika med Other.
  2. I Assign Team Identifier ställer ni in teamId till {{ $('Retrieve Linear Teams').first().json.data.teams.nodes.find(team => team.name === $json.message.content).id }}.
  3. I Modify Team Assignment ställer ni in Operation till update, Issue ID till {{ $('Linear Issue Trigger').item.json.data.id }} och teamId till {{ $json.teamId }}.
  4. Inloggningsuppgifter krävs: Anslut era linearApi-inloggningsuppgifter till Modify Team Assignment.
  5. På false-grenen konfigurerar ni Post Slack Alert med Text The AI was not able to identify a fitting team for a bug och Channel som {{ $('Initialize Team Options').first().json.slackChannel }}.
  6. Inloggningsuppgifter krävs: Anslut era slackApi-inloggningsuppgifter till Post Slack Alert.

Steg 6: Testa och aktivera ert arbetsflöde

Validera beteendet end-to-end och aktivera för produktionsanvändning.

  1. Klicka på Execute Workflow och trigga ett exempelärende i Linear som matchar filtervillkoren.
  2. En lyckad körning ska visa ett teamnamn i AI Classification Prompt, ett giltigt teamId i Assign Team Identifier och ett uppdaterat team på ärendet i Modify Team Assignment.
  3. Om AI:n returnerar Other bekräftar ni att Post Slack Alert postar till kanalen som definieras i Initialize Team Options.
  4. När ni är nöjda växlar ni arbetsflödet till Active för att aktivera klassificering i realtid.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Tips för felsökning

  • Linear-credentials kan gå ut eller sakna behörighet att uppdatera ärenden. Om tilldelningar slutar fungera, kontrollera först Linear-anslutningen i n8n under Credentials och bekräfta att den kan redigera ärenden och läsa team.
  • Om Slack-notiser inte dyker upp beror det oftast på kanal- eller scope-problem. Bekräfta att Slack-appen får posta i vald kanal och att kanalen i din ”Set me up”-konfiguration matchar där du tittar.
  • Standardprompter i AI-noder är generiska. Lägg in era teamgränser och exempel tidigt, annars kommer du att redigera utdata i all evighet och din Slack-kanal fylls av onödiga ”oklar ägare”-pingar.

Snabba svar

Hur lång tid tar det att sätta upp den här Linear Slack routing-automationen?

Cirka 30 minuter om du redan har åtkomst till Linear, Slack och OpenAI.

Krävs kodning för den här automatiseringen för buggroutning?

Nej. Du kopplar mestadels konton och redigerar några fält i klartext, som teamnamn, etiketter och statusar.

Är n8n gratis att använda för det här Linear Slack routing-flödet?

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 volymer. Du behöver också räkna in OpenAI API-användning, som vanligtvis är några cent per klassificering beroende på promptens storlek.

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

Två alternativ: n8n Cloud (hanterat, enklaste uppsättningen) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och klarar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här Linear Slack routing-flödet för andra användningsfall?

Ja, och det bör du förmodligen. De flesta team börjar med att justera noden ”Initialize Team Options” (Set) så att den speglar riktiga ägarskapsgränser, och finjusterar sedan filtret som kontrollerar etiketten ”Bug”, statusen ”Triage” och ”beskrivning finns”. Du kan också byta vad som händer vid fel: behåll Slack-notisen, skapa en fallback-etikett ”Needs Triage” i Linear, eller tilldela ett standardteam för senare sortering.

Varför fallerar min Linear-anslutning i det här flödet?

Oftast handlar det om credentials eller behörigheter. Återanslut Linear i n8n och bekräfta att token kan läsa team och uppdatera ärenden, inte bara visa dem. Kontrollera också att teamnamnen i ”Initialize Team Options” matchar Linear exakt, eftersom avvikelser kan se ut som ett anslutningsfel när det i själva verket är ett datavalideringsproblem.

Vilken volym kan det här Linear Slack routing-flödet hantera?

En typisk setup hanterar hundratals ärenden per månad utan problem.

Är den här Linear Slack routing-automationen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här inte är en enkel zap i två steg. Du har filtreringsregler, ett AI-klassificeringssteg, en livehämtning av Linear-teamdata och sedan en valideringsgren som antingen uppdaterar Linear eller postar till Slack. n8n hanterar den typen av förgreningar snyggt och det är enklare att hålla logiken på ett ställe. Egen drift är också en praktisk fördel om din ärendevolym spikar och du inte vill att varje extra körning ska kosta. Zapier eller Make kan fortfarande fungera om du förenklar flödet (till exempel alltid Slack vid nya buggar och routa manuellt). Om du är osäker kan du prata med en automationsspecialist så får du en rak rekommendation för din setup.

När det här är live routas de flesta buggar av sig själva och Slack reserveras för de knepiga edge cases. Du får tillbaka fokus, och kön börjar äntligen bete sig.

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