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
flowchart LR
subgraph sg0["Linear Issue 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/linear.svg' width='40' height='40' /></div><br/>Linear Issue Trigger"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Initialize Team Options", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Unclassified Tickets", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "AI Classification Prompt", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Retrieve Linear Teams"]
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/merge.svg' width='40' height='40' /></div><br/>Combine Data Streams"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate Team Selection", 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/slack.svg' width='40' height='40' /></div><br/>Post Slack Alert"]
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign Team Identifier", 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/linear.svg' width='40' height='40' /></div><br/>Modify Team Assignment"]
n3 --> n5
n1 --> n2
n5 --> n6
n8 --> n9
n0 --> n1
n4 --> n5
n6 --> n8
n6 --> n7
n2 --> n3
n2 --> n4
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 trigger
class n3 ai
class n2,n6 decision
class n4 api
classDef customIcon fill:none,stroke:none
class n0,n4,n5,n7,n9 customIcon
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
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
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.
- Lägg till noden Linear Issue Trigger och ställ in Team ID till
7a330c36-4b39-4bf1-922e-b4ceeb91850a. - Ställ in Authentication till
oAuth2och säkerställ att Resources inkluderarissue. - 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.
- I Initialize Team Options lägger ni till teamlistan under teams med det angivna värdeblocket och ställer in slackChannel till
#yourChannelName. - I Retrieve Linear Teams ställer ni in URL till
https://api.linear.app/graphql, Method tillPOSToch aktiverar Send Body. - Ställ in body-parametern query till
{ teams { nodes { id name } } }. - 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.
- I AI Classification Prompt väljer ni modellen
gpt-4-32k-0314. - 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 }}. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter.
Steg 4: Konfigurera filtrering och parallell bearbetning
Filtrera ärenden som behöver klassificeras och kör AI och teamhämtning parallellt.
- I Filter Unclassified Tickets lägger ni till tre villkor: Description innehåller inte
Add a description heremed{{ $('Linear Issue Trigger').item.json.data.description }}; State ID är lika med6b9a8eec-82dc-453a-878b-50f4c98d3e53med{{ $('Linear Issue Trigger').item.json.data.state.id }}; och Label count större än0med{{ $('Linear Issue Trigger').item.json.data.labels.filter(label => label.id === 'f2b6e3e9-b42d-4106-821c-6a08dcb489a9').length }}. - Filter Unclassified Tickets skickar utdata till både AI Classification Prompt och Retrieve Linear Teams parallellt.
- I Combine Data Streams ställer ni in Mode till
chooseBranchför att slå ihop AI-resultat och teamdata korrekt.
Steg 5: Validera och routa resultatet
Validera AI-svaret, mappa team-ID och uppdatera ärendet eller avisera Slack.
- I Validate Team Selection ställer ni in villkoret att kontrollera att
{{ $json.message.content }}inte är lika medOther. - 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 }}. - 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 }}. - Inloggningsuppgifter krävs: Anslut era linearApi-inloggningsuppgifter till Modify Team Assignment.
- På false-grenen konfigurerar ni Post Slack Alert med Text
The AI was not able to identify a fitting team for a bugoch Channel som{{ $('Initialize Team Options').first().json.slackChannel }}. - 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.
- Klicka på Execute Workflow och trigga ett exempelärende i Linear som matchar filtervillkoren.
- En lyckad körning ska visa ett teamnamn i AI Classification Prompt, ett giltigt
teamIdi Assign Team Identifier och ett uppdaterat team på ärendet i Modify Team Assignment. - Om AI:n returnerar
Otherbekräftar ni att Post Slack Alert postar till kanalen som definieras i Initialize Team Options. - När ni är nöjda växlar ni arbetsflödet till Active för att aktivera klassificering i realtid.
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
Cirka 30 minuter om du redan har åtkomst till Linear, Slack och OpenAI.
Nej. Du kopplar mestadels konton och redigerar några fält i klartext, som teamnamn, etiketter och statusar.
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.
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.
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.
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.
En typisk setup hanterar hundratals ärenden per månad utan problem.
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.