Du öppnar en ”måste-se”-spellista, lovar dig själv att du ska anteckna och sen … blir det bara bakgrundsljud. Senare behöver du ett citat eller en specifik poäng, och då sitter du fast och får skrolla igenom timmar av video igen.
Det här är exakt den typ av röra som marknadsförare hamnar i när de gör konkurrentanalys. Byråägare råkar ut för det när de snabbt behöver bygga kundinsikter. Och helt ärligt: operatörer och founders stöter på det så fort lärandetiden konkurrerar med riktigt arbete. Den här automatiseringen för YouTube playlist insights gör spellistor till något du faktiskt kan söka i och ställa frågor om.
Du får lära dig vad workflowet gör, vad du behöver för att köra det och hur det förvandlar transkript till sökbara insikter som hamnar i Google Sheets.
Så fungerar automatiseringen
Här är hela workflowet du kommer att sätta upp:
n8n Workflow Template: YouTube + Google Sheets: sökbara spellisteinsikter
flowchart LR
subgraph sg0["Chat Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model1", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Handle Queries", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Summarize & Analyze Transcript", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Concatenate", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out1", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Limit", pos: "b", h: 48 }
n7@{ icon: "mdi:cube-outline", form: "rounded", label: "Qdrant Vector Store", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Recursive Character Text Spl..", pos: "b", h: 48 }
n9@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings Google Gemini", pos: "b", h: 48 }
n10@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model2", pos: "b", h: 48 }
n11@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings Google Gemini1", pos: "b", h: 48 }
n12@{ icon: "mdi:play-circle", form: "rounded", label: "Chat", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Video Titles", 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/>Merge"]
n15@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n16@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n17@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model4", pos: "b", h: 48 }
n18["<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/>Delete Collection"]
n19@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader", pos: "b", h: 48 }
n20@{ icon: "mdi:memory", form: "rounded", label: "Chat Buffer Memory", pos: "b", h: 48 }
n21@{ icon: "mdi:cog", form: "rounded", label: "Full Summary", pos: "b", h: 48 }
n22@{ icon: "mdi:memory", form: "rounded", label: "Chat Buffer Memory1", pos: "b", h: 48 }
n23@{ icon: "mdi:code-braces", form: "rounded", label: "YouTube Transcript", pos: "b", h: 48 }
n24@{ icon: "mdi:robot", form: "rounded", label: "Message Intent", pos: "b", h: 48 }
n25@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n26["<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/redis.svg' width='40' height='40' /></div><br/>Update Context Intent"]
n27["<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/redis.svg' width='40' height='40' /></div><br/>Get Previous Context Intent"]
n28@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route Message Intent", pos: "b", h: 48 }
n29["<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/>Process Status"]
n30@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n31@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory3", pos: "b", h: 48 }
n32@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model6", pos: "b", h: 48 }
n33@{ icon: "mdi:robot", form: "rounded", label: "Numb of Videos", 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/code.svg' width='40' height='40' /></div><br/>Default Intent"]
n35@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Playlist Limit", pos: "b", h: 48 }
n36@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Playlist or Video", 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/code.svg' width='40' height='40' /></div><br/>Get Fields for Summary"]
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/redis.svg' width='40' height='40' /></div><br/>Update Context Process Done1"]
n39@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model8", pos: "b", h: 48 }
n40["<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/>Playlist HTTP Request"]
n41@{ icon: "mdi:code-braces", form: "rounded", label: "YouTube Transcript1", pos: "b", h: 48 }
n42["<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/>Video HTTP Request"]
n43["<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/>Get Title and Desc"]
n44@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out2", pos: "b", h: 48 }
n45@{ icon: "mdi:cog", form: "rounded", label: "Concatenate1", pos: "b", h: 48 }
n46["<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/>Get Videos"]
n47["<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/>Get Playlist Videos Data"]
n48@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings Google Gemini2", pos: "b", h: 48 }
n49@{ icon: "mdi:cube-outline", form: "rounded", label: "Qdrant Vector Store3", pos: "b", h: 48 }
n50@{ icon: "mdi:wrench", form: "rounded", label: "Answer questions with a vect..", pos: "b", h: 48 }
n51@{ icon: "mdi:cube-outline", form: "rounded", label: "Qdrant Vector Store4", pos: "b", h: 48 }
n52@{ icon: "mdi:wrench", form: "rounded", label: "Answer questions with a vect..", pos: "b", h: 48 }
n53@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n54@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model3", pos: "b", h: 48 }
n55@{ icon: "mdi:cube-outline", form: "rounded", label: "Qdrant Vector Store2", pos: "b", h: 48 }
n56@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings Google Gemini4", pos: "b", h: 48 }
n57@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n58@{ icon: "mdi:cog", form: "rounded", label: "Count Content", pos: "b", h: 48 }
n59["<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/redis.svg' width='40' height='40' /></div><br/>Update Context Intent1"]
n57 --> n59
n57 --> n35
n12 --> n27
n6 --> n23
n6 --> n13
n14 --> n3
n2 --> n4
n46 --> n7
n5 --> n6
n44 --> n45
n4 --> n14
n15 --> n18
n45 --> n14
n21 --> n16
n13 --> n14
n58 --> n57
n30 -.-> n24
n34 --> n28
n24 --> n34
n35 --> n33
n35 --> n36
n29 --> n26
n31 -.-> n33
n18 --> n46
n36 --> n42
n36 --> n40
n20 -.-> n1
n43 --> n14
n42 --> n41
n42 --> n43
n23 --> n2
n22 -.-> n16
n19 -.-> n7
n7 --> n38
n41 --> n44
n55 --> n58
n49 -.-> n50
n51 -.-> n52
n28 --> n29
n28 --> n1
n40 --> n47
n26 --> n55
n37 --> n21
n59 --> n1
n9 -.-> n7
n47 --> n5
n53 -.-> n52
n11 -.-> n49
n48 -.-> n51
n56 -.-> n55
n0 -.-> n1
n10 -.-> n3
n54 -.-> n50
n17 -.-> n16
n32 -.-> n24
n39 -.-> n33
n25 -.-> n24
n27 --> n24
n38 --> n37
n3 --> n15
n8 -.-> n19
n50 -.-> n1
n52 -.-> n16
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 n12 trigger
class n1,n3,n8,n16,n19,n24,n25,n33 ai
class n0,n10,n17,n32,n39,n53,n54 aiModel
class n50,n52 ai
class n20,n22,n30,n31 ai
class n7,n49,n51,n55 ai
class n9,n11,n48,n56 ai
class n28,n35,n36,n57 decision
class n26,n27,n38,n59 database
class n18,n40,n42 api
class n23,n29,n34,n37,n41,n43,n46,n47 code
classDef customIcon fill:none,stroke:none
class n14,n18,n26,n27,n29,n34,n37,n38,n40,n42,n43,n46,n47,n59 customIcon
Varför det här spelar roll: YouTube-research som inte fastnar
Spellistor är toppen tills du faktiskt ska använda det du ”lärde dig”. Du ser tre videos, sen fem till. En vecka senare minns du att det fanns ett starkt ramverk någonstans, ett vassare citat och några taktiker som var värda att testa. Men var? Nu tittar du om, gissar tidsstämplar och försöker hålla anteckningar konsekventa mellan dokument, Slack-meddelanden och slumpmässiga webbläsarflikar. Tidskostnaden är uppenbar. Det större problemet är den mentala belastningen: du slutar lita på din egen researchprocess, så du undviker den eller stressar igenom den, och resultatet blir ytligt.
Det går fort att bygga upp. Här är var det faller isär i riktiga team.
- Folk antecknar på olika ställen, så en gemensam ”sanning” saknas alltid.
- Du tappar exakta formuleringar eftersom ingen fångar direkta citat med kontext.
- Att titta om för att bekräfta detaljer bränner en eftermiddag när du bara behövde ett svar.
- Även när ni fångar insikter är de inte sökbara eller återanvändbara i framtida projekt.
Det du bygger: en spellista du kan chatta med (och logga till Sheets)
Det här workflowet förvandlar en YouTube-spellista (eller en enskild video) till en interaktiv kunskapsbas. Du börjar med att skicka in en spellista-/video-URL i workflowets chatt-ingång. Det hämtar videodetaljer, plockar transkript och använder sedan en AI-modell för att förstå vad som sägs, inte bara kopiera det. Därefter delar det upp transkripttexten i sökbara delar, lagrar dem i en vektordatabas (Qdrant) och sparar kontext i Redis så att du kan ställa följdfrågor utan att upprepa dig. Till sist genererar det korrekta, strukturerade sammanfattningar och takeaways och skriver resultaten till Google Sheets (och valfritt till Excel/Drive, beroende på hur du konfigurerar utdata).
Workflowet startar när du klistrar in en YouTube-länk via chatt-triggern. Därifrån samlas transkript in och sammanfattas, och indexeras sedan för sökning. Efter det kan du ställa frågor som ”Vilka är huvudtemana i video 1–5?” och skicka de viktigaste takeaways till Sheets så att de blir enkla att återanvända.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du granskar en spellista med 10 videos för marknadsresearch. Manuellt kanske du tittar 20 minuter per video plus ytterligare 10 minuter för att anteckna, vilket blir cirka 5 timmar innan du ens har något du kan dela. Med det här workflowet klistrar du in spellistlänken, begränsar till de första 10 videorna och låter det hämta transkript och generera sammanfattningar. Du lägger kanske 10 minuter på att ställa riktade frågor och exportera de bästa takeaways till Google Sheets, sen är du klar.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- YouTube transcript community node för att hämta videotranskript
- Google Sheets för att lagra sökbara takeaways
- Google Gemini API-inloggning (hämta dem från Google AI Studio / Google Cloud)
- Qdrant-inloggning (hämta dem från din Qdrant Cloud-dashboard eller egenhostad Qdrant)
- Redis-anslutningsuppgifter (hämta dem från din Redis-host/leverantör)
Svårighetsgrad: Medel. Du kopplar ihop några tjänster och installerar en community-node om du kör egen hosting.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Ett chattmeddelande drar igång allt. Du klistrar in en YouTube-spellistlänk (eller en enskild video-URL) i workflowets chatt-trigger, och det listar ut vad du försöker göra.
Workflowet hämtar videodetaljer och transkript. Det laddar spellista-/videosidan, bygger en videolista, tillämpar en gräns för ”hur många videor?”, och hämtar sedan transkripttext för varje objekt via community-noden för YouTube-transkribering.
AI gör råa transkript till användbar kunskap. Gemini läser transkriptblocken, skapar sammanfattningar och förbereder innehållet för sökning genom att generera embeddings och lagra dem i Qdrant. Redis behåller kontexten i konversationen så att följdfrågor fortfarande blir logiska.
Dina svar och takeaways hamnar i Sheets. Du kan fråga ut spellistan som en mini-researchassistent och sedan logga de bästa teman, sammanfattningar och citat i Google Sheets (och vid behov även routa till Drive/Excel om du vill ha ett parallellt arkiv).
Du kan enkelt ändra videogränsen och sammanfattningsformatet efter dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera triggern för inkommande chatt
Konfigurera chattens startpunkt så att användare kan skicka in en YouTube‑spellista eller video-URL och starta assistenten.
- Lägg till Incoming Chat Trigger och behåll Public aktiverat.
- Ställ in Initial Messages till
Hi there! 👋 Please provide a URL of a Youtube playlist you would like me to analise.. - Bekräfta att Incoming Chat Trigger skickar vidare till Retrieve Prior Context som första steg i körningen.
Steg 2: Anslut kontextlagring och intent-routning
Behåll användarens intent mellan sessioner och routa arbetsflödet beroende på om meddelandet innehåller en spellista eller en video-URL.
- I Retrieve Prior Context ställer ni in Key till
=context_intent_{{ $('Incoming Chat Trigger').item.json.sessionId }}. - Autentiseringsuppgifter krävs: Anslut era redis-uppgifter i Retrieve Prior Context, Store Context Intent, Mark Context Done och Finalize Context Done.
- Bekräfta att Detect Message Intent använder Parse Intent Output som output parser (parsern är ansluten via AI Output Parser-kopplingen).
- I Set Default Intent behåller ni fallback-logiken för kontext som den är, för att återanvända värden från Retrieve Prior Context när ingen ny intent upptäcks.
- Verifiera att Route By Intent har två utgångar: PROCESS (spellista/video inte klar) och QUERY (ingen intent eller klar).
Autentiseringsuppgifter krävs: Anslut era googlePalmApi-uppgifter för Gemini Chat Lite, som är språkmodellen för Detect Message Intent.
Obs: Parse Intent Output är en AI-undernod; autentiseringsuppgifter appliceras på Gemini Chat Lite, inte på parsern.
Steg 3: Hantera spellistgränser och förgreningslogik
Be om en gräns för antal objekt i spellistan om den saknas och förgrena mellan bearbetning av spellista och enstaka video.
- I Check Playlist Limit behåller ni villkoren för Intent =
PLAYLISToch Limit ≤0. - Säkerställ att TRUE-grenen leder till Request Video Count och FALSE-grenen till Branch Playlist Or Video.
- I Request Video Count behåller ni Text inställt på
={{ $('Incoming Chat Trigger').item.json.chatInput }}. - Bekräfta att Branch Playlist Or Video routar till Fetch Video Page för
VIDEOoch Fetch Playlist Page förPLAYLIST.
Autentiseringsuppgifter krävs: Anslut era googlePalmApi-uppgifter för Gemini Chat Reasoner, som är språkmodellen för Request Video Count.
⚠️ Vanlig fallgrop: Om spellistgränser inte fångas upp kommer Check Playlist Limit att fortsätta routa till Request Video Count och aldrig gå vidare till bearbetning.
Steg 4: Hämta innehåll och transkriptioner för spellista eller video
Hämta sidor för spellista/video, parsa metadata och hämta transkriptioner. Notera att vissa steg körs parallellt.
- I Fetch Playlist Page ställer ni in URL till
={{ $('Store Context Intent').item.json.output.url }}. - I Parse Playlist Videos behåller ni den JavaScript-kod som extraherar spellistmetadata och videor från HTML:en.
- Från Split Video List ställer ni in Field To Split Out till
videosoch begränsar sedan med Apply Video Limit med={{ $('Store Context Intent').item.json.output.limit }}. - Apply Video Limit skickar utdata till både Fetch Playlist Transcript och Split Video Titles parallellt.
- För bearbetning av en enstaka video skickar Fetch Video Page utdata till både Fetch Video Transcript och Extract Title Details parallellt.
Tips: Om YouTube returnerar bot- eller samtyckessidor kan Parse Playlist Videos eller Extract Title Details ge fel. Arbetsflödet är utformat för att försöka igen och fortsätta, men ni kan behöva använda en proxy eller minska förfrågningsfrekvensen.
Steg 5: Normalisera transkriptdata och slå ihop videometadata
Dela upp transkriptobjekt, sammanfoga text och slå ihop med titlar för summering.
- I Extract Transcript Items och Extract Transcript Items B behåller ni Field To Split Out som
transcriptoch inkluderaryoutubeId. - I Combine Transcript Text och Combine Transcript Text B ställer ni in Fields To Split By till
youtubeId. - I Split Video Titles behåller ni Field To Split Out som
id,title. - I Merge Video Data behåller ni SQL-Query exakt som den är definierad för att kombinera transkriptioner och titlar.
⚠️ Vanlig fallgrop: Om transkriptioner saknas kan Merge Video Data producera tomma transcript_text-värden. Säkerställ att Fetch Playlist Transcript och Fetch Video Transcript returnerar transcript-arrayer.
Steg 6: Sammanfatta varje video och mappa fält
Skapa kortfattade sammanfattningar per video och mappa konsekventa fält för lagring.
- I Summarize Transcript Insights behåller ni hela prompten och säkerställer att den refererar till
{{ $json.video_number }},{{ $json.title }},{{ $json.youtubeId }}och{{ $json.transcript_text }}. - Bekräfta att Gemini Chat Flash A är ansluten som språkmodell för Summarize Transcript Insights.
- I Map Video Fields ställer ni in varje tilldelning med de angivna uttrycken, inklusive
={{ $('Store Context Intent').first().json.output.id }}för playlistId.
Autentiseringsuppgifter krävs: Anslut era googlePalmApi-uppgifter för Gemini Chat Flash A.
Steg 7: Förbered data för vektorlagring och infoga i Qdrant
Chunk:a sammanfattningar, skapa embeddings och lagra dokumenten i Qdrant för senare QA-hämtning.
- I Recursive Text Chunker behåller ni Chunk Size på
1200och Chunk Overlap på200. - I Load Document Data behåller ni metadata-mappningar för
video_number,youtubeId,summary,titleochplaylistId. - I Qdrant Store Insert ställer ni in Mode till
insertoch Collection till={{ $('Store Context Intent').first().json.output.id }}. - Autentiseringsuppgifter krävs: Anslut era qdrantApi-uppgifter i Qdrant Store Insert.
- Autentiseringsuppgifter krävs: Anslut era googlePalmApi-uppgifter i Gemini Embeddings A (embeddings för insert).
Obs: Gemini Embeddings A och Recursive Text Chunker är AI-undernoder som är anslutna till Qdrant Store Insert via AI-kopplingarna. Autentiseringsuppgifter appliceras på noden för embedding-modellen, inte på splittern.
Steg 8: Fråga befintlig vektordata och slutför kontext
Kontrollera om dokument redan finns och markera kontexten som klar för att undvika ombearbetning.
- I Qdrant Store Lookup ställer ni in Mode till
loadoch Prompt tillAre there any documents in the store?. - Behåll Count Stored Docs som summerar fältet
documentoch skickar vidare till Check Existing Data. - Om dokument finns routar Check Existing Data till Finalize Context Done för att uppdatera Redis-status till DONE.
Autentiseringsuppgifter krävs: Anslut era qdrantApi-uppgifter i Qdrant Store Lookup och googlePalmApi-uppgifter i Gemini Embeddings D (embedding-modell för lookup).
Steg 9: Konfigurera verktyg för hämtning och slutliga svar
Koppla in QA-verktygen för vektorlagret i agenterna som svarar användare med sammanfattningar.
- I Vector Store QA Tool behåller ni Name som
chat_playlist_dataoch TopK som10med det angivna beskrivningsuttrycket. - I Vector Store QA Tool B behåller ni Name som
chat_playlist_dataoch TopK som6. - Bekräfta att Qdrant Store Query och Qdrant Store Query B är anslutna till QA-verktygen som vektorlager.
- Verifiera att Process User Queries använder verktyget och att Generate Final Summary använder Aggregate Summaries i sin prompt.
Autentiseringsuppgifter krävs: Anslut era qdrantApi-uppgifter i Qdrant Store Query och Qdrant Store Query B.
Autentiseringsuppgifter krävs: Anslut era googlePalmApi-uppgifter i Gemini Chat Core A, Gemini Chat Flash B, Gemini Chat Flash C och Gemini Chat Flash D. Dessa är språkmodellerna för Process User Queries, Generate Final Summary, Vector Store QA Tool B och Vector Store QA Tool.
Obs: Vector Store QA Tool och Vector Store QA Tool B är AI-verktyg. Autentiseringsuppgifter läggs till på deras anslutna språkmodellnoder, inte på själva verktygsnoderna.
Steg 10: Konfigurera aggregering av utdata och slutlig sammanfattning
Aggregera sammanfattningar per video och generera ett slutligt svar till användaren.
- I Collect Summary Fields behåller ni koden
return $('Map Video Fields').all();för att konsolidera sammanfattningsobjekt. - I Aggregate Summaries behåller ni sammanfogning av sammanfattningar med Field
summaryoch Separate By inställt på en radbrytning. - I Generate Final Summary behåller ni prompten och säkerställer att den refererar till
{{ $('Incoming Chat Trigger').item.json.chatInput }}och{{ $('Aggregate Summaries').item.json.concatenated_summary }}.
Autentiseringsuppgifter krävs: Anslut era googlePalmApi-uppgifter för Gemini Chat Flash B, språkmodellen för Generate Final Summary.
Steg 11: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta intent-detektering, transkriptbearbetning och generering av sammanfattning innan ni går live.
- Klicka på Execute Workflow och skicka ett testmeddelande via Incoming Chat Trigger med en giltig spellista- eller video-URL.
- Verifiera att Detect Message Intent ger ett strukturerat JSON-svar och att Route By Intent styr körningen korrekt.
- Kontrollera att transkriptflödet körs genom Extract Transcript Items → Combine Transcript Text → Merge Video Data → Summarize Transcript Insights.
- Bekräfta att vektorlagervägen skriver dokument i Qdrant Store Insert och markerar status i Mark Context Done eller Finalize Context Done.
- Aktivera arbetsflödet för att ta emot livechatt-sessioner när lyckade sammanfattningar visas i utdata från Process User Queries eller Generate Final Summary.
Tips: Om ert svar saknar sammanfattningar, verifiera Qdrant-uppgifterna och att nyckeln i Store Context Intent innehåller ett giltigt spelliste- eller video-ID.
Felsökningstips
- Google Sheets-inloggning kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera sidan Credentials i n8n och bekräfta att det anslutna Google-kontot kan redigera mål-arket.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram faller på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera utdata i all evighet.
Snabba svar
Cirka 45 minuter när du har dina API-nycklar redo.
Nej. Du kommer främst att koppla konton och klistra in inloggningsuppgifter i n8n.
Ja. n8n har ett gratis alternativ för egen hosting 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 Gemini-användning (oftast småpengar per körning) samt eventuella kostnader för hosting av Qdrant/Redis.
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 hanterar n8n bra. Egen hosting ger obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det rekommenderas. Du kan byta ut skrivsteget till ”Google Sheets” och lagra utdata någon annanstans, eller ändra prompterna i ”Summarize Transcript Insights” och ”Generate Final Summary” för att få andra format, som en konkurrentbrief, en swipe file eller ett utbildningsdokument. Du kan också justera beteendet i ”Apply Video Limit” så att långa spellistor inte drar iväg i kostnad. Om du vill använda en annan LLM kan Gemini-chattnoderna ersättas med en annan chatmodell-node, så länge du behåller samma in- och utdata.
Oftast är det steget som hämtar transkript som faller, inte YouTube i sig. Workflowet bygger på community-noden youtubeTranscripter, som kräver en egenhostad n8n och en korrekt installation; om den saknas kommer transkriptnoderna att ge fel direkt. Kontrollera också den specifika videon: vissa videos har transkript avstängda eller saknar auto-undertexter, vilket betyder att det inte finns något att hämta. Slutligen, om du bearbetar en stor spellista kan du slå i rate limits eller timeouts, så att sänka videogränsen stabiliserar ofta körningen.
På n8n Cloud Starter kan du vanligtvis hantera några tusen körningar per månad, vilket räcker långt om en spellisteanalys motsvarar en körning. Om du kör egen hosting finns ingen körningsgräns (det beror på din server). I praktiken är begränsningen transkriptens längd och hur många videos du tillåter per körning; de flesta team börjar med 5–20 videos per spellista och ökar därifrån när allt är stabilt.
Ofta, ja. Det här workflowet bygger på flerstegslogik, förgreningar, minne och vektorsökning, och det blir snabbt krångligt (eller dyrt) i enklare automationsverktyg när du går bortom ett par actions. n8n ger dig också möjligheten att köra egen hosting, vilket är viktigt här eftersom community-noder krävs för att hämta transkript. Zapier eller Make kan fortfarande fungera om du bara vill ha en grundläggande ”sammanfatta den här videon och skicka någonstans”, men du tappar kunskapsbas-känslan. Prata med en automationsexpert om du vill ha hjälp att välja den enklaste stacken för just ditt användningsfall.
När det här väl rullar slutar spellistor att vara ”någon dag”-lärande och blir sökbara tillgångar som teamet faktiskt kan använda. Sätt upp det en gång, och låt workflowet stå för minnet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.