Marknadsundersökningar faller isär på samma tråkiga sätt varje gång. För många flikar, för mycket skumläsning och en ”trendrapport” som egentligen bara är bokmärken du tänkte återvända till.
Content marketers känner det när måndagen slår till och teamet vill ha nya vinklar. Produktchefer känner det när signaler begravs under hype. Och om du gör research åt en kund vet du redan hur snabbt en Medium-trendrapport blir ett stökigt copy-paste-projekt.
Det här arbetsflödet gör om Medium-inlägg till en kurerad sammanställning i Google Docs och pingar sedan Slack med den färdiga länken. Du får veta vad det automatiserar, vad du behöver och hur du kan tänka kring att anpassa det för ditt ämne.
Så fungerar den här automatiseringen
Här är hela arbetsflödet du ska sätta upp:
n8n Workflow Template: Medium till Google Docs, trendrapporter snabbt
flowchart LR
subgraph sg0["Every Day Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "Structured Output", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Analyzer & Script writer", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Add Spacer", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Add Header & Body", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Add Body", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Target Page Link", pos: "b", h: 48 }
n8@{ icon: "mdi:play-circle", form: "rounded", label: "Every Day", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Scrape Headlines", pos: "b", h: 48 }
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/merge.svg' width='40' height='40' /></div><br/>Waiting for Inputs"]
n11["<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/>Slack Team Notification"]
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check for Header", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Rate Limit Mitigation", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split the AI-generated data", pos: "b", h: 48 }
n15@{ icon: "mdi:cog", form: "rounded", label: "Create a Document for Outlines", pos: "b", h: 48 }
n6 --> n2
n8 --> n7
n1 -.-> n3
n1 -.-> n0
n2 --> n11
n2 --> n13
n12 --> n5
n12 --> n6
n9 --> n3
n7 --> n9
n5 --> n2
n0 -.-> n3
n10 --> n14
n13 --> n12
n13 --> n4
n3 --> n15
n3 --> n10
n14 --> n2
n15 --> n10
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 n8 trigger
class n0,n3 ai
class n1 aiModel
class n12 decision
classDef customIcon fill:none,stroke:none
class n10,n11 customIcon
Varför det här spelar roll: trendresearch utan flikkaos
Att hålla sig uppdaterad på Medium är lurigt tidskrävande. Du börjar med ett taggarkiv, öppnar fem lovande inlägg, sedan fem till från ”rekommenderade” och plötsligt har du lagt en timme på att läsa saker du knappt kan sammanfatta. Det värsta är andra varvet: att avduplicera liknande vinklar, filtrera clickbait och försöka förklara för teamet varför en story spelar roll. Gör du detta varje vecka stjäl grovjobbet i det tysta en halv dag i månaden. Och det känns aldrig ”klart”, eftersom allt ligger i flikar, inte i en delbar rapport.
Friktionen byggs på. Här är var det oftast fallerar.
- Du samlar en hög länkar, men du har ingen tydlig uppdelning mellan ”måste-läsas” och ”bra att skumma”.
- Dubbletter smyger sig in eftersom flera författare återberättar samma nyhet med lite olika rubriker.
- Sammanfattningarna är inkonsekventa, så slutdokumentet känns som att fem olika personer har skrivit det.
- Delningen sker för sent, eftersom formateringen av rapporten är det sista smärtsamma steget.
Vad du bygger: en kurerad Medium-sammanställning i Google Docs
Den här automatiseringen körs enligt schema (dagligen eller veckovis) och kontrollerar ett specifikt Medium-taggarkiv som du väljer, till exempel artificiell intelligens eller bitcoin. Den använder BrowserAct för att hämta de senaste artikeltitlarna, författarna och utdragen, och skickar sedan det råa flödet till en AI-agent. AI:n städar upp genom att ta bort dubbletter och spam, och grupperar sedan det som är bra i tydliga kategorier som ”Måste läsas”, ”Engineering” eller ”Wealth”. Därefter skapar arbetsflödet ett nytt Google-dokument med en titel som matchar sammanställningen och bygger upp det avsnitt för avsnitt. När allt är klart får Slack ett enkelt meddelande med rapportlänken så att teamet kan läsa direkt.
Arbetsflödet börjar med en schemalagd trigger och en enda ”målkälla” som du styr. Därifrån skrapar BrowserAct innehållet, AI-agenten kurerar och kategoriserar det och Google Docs gör om det till en formaterad rapport. Till sist postar Slack bekräftelsen så att ingen behöver fråga: ”Är rapporten klar än?”
Det här bygger du
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du publicerar en veckovis trendöversikt för ett ämne. Manuellt kanske du öppnar 20 Medium-inlägg med cirka 5 minuter per inlägg (skumma, avgöra, anteckna) och sedan lägger ytterligare 30 minuter på att rensa dubbletter och formatera ett dokument. Det är ungefär 2 timmar. Med det här arbetsflödet ställer du in taggen en gång, väntar på att körningen blir klar (ofta runt 20 minuter inklusive skrapning och AI-bearbetning) och lägger bara 10 minuter på att granska det färdiga Google-dokumentet innan du delar Slack-länken.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för självhosting om du föredrar det (Hostinger fungerar bra)
- BrowserAct för att skrapa Medium-sidor på ett tillförlitligt sätt.
- Google Docs för att skapa och formatera den slutliga sammanställningen.
- OpenRouter API-nyckel (hämta den i din OpenRouter-instrumentpanel).
- Slack för att notifiera teamet med rapportlänken.
Svårighetsgrad: Nybörjare. Du kopplar konton, klistrar in en Medium-tagg-URL och justerar en eller två textprompter.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Ett schema startar allt. Arbetsflödet körs automatiskt enligt den takt du väljer, så att din trendsammanställning är klar före mötet eller planeringspasset.
Ditt Medium-ämne definieras en gång. Ett enkelt steg, ”Set Target Source”, innehåller URL:en till Mediums taggarkiv (till exempel https://medium.com/tag/bitcoin/archive), vilket gör resten av automatiseringen stabil.
Skrapning och kurering sker i mitten. BrowserAct extraherar färska rubriker och utdrag, och sedan analyserar en AI-agent listan, tar bort dubbletter och spam och placerar varje story i kategorier som är vettiga för en mänsklig läsare.
Rapporten byggs och delas. Google Docs skapar sammanställningsdokumentet, arbetsflödet loopar igenom de kurerade objekten för att lägga till rubriker och brödtext, och Slack postar ”klart”-meddelandet när allt är sammanställt.
Du kan enkelt ändra Medium-tagg-URL:en för att följa en annan nisch, eller ändra kategorierna så att de matchar hur teamet tänker. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den dagliga schematriggern
Ställ in arbetsflödet så att det körs enligt ett dagligt schema och skicka exekveringen vidare till källkonfigurationen.
- Lägg till noden Daily Schedule Trigger och behåll standardregeln för schemat (dagligen).
- Koppla Daily Schedule Trigger till Set Target Source.
Steg 2: Anslut innehållskällan och webbläsarextraktionen
Definiera URL:en till Mediums taggarkiv och skicka den till webbläsarautomationsflödet för att hämta rubriker.
- I Set Target Source lägger ni till ett strängfält med namnet Target_Medium_Link med värdet
https://medium.com/tag/artificial-intelligence/archive. - Öppna Extract Article Headlines och ställ in Type på
WORKFLOW. - Ställ in Workflow ID till
[YOUR_ID]och mappa indata Medium till{{$json.Target_Medium_Link}}. - Autentisering krävs: Anslut era browserActApi-inloggningsuppgifter i Extract Article Headlines.
- Koppla Set Target Source till Extract Article Headlines.
Steg 3: Sätt upp AI-analysen och strukturerad parsning
Konfigurera LLM:en och den strukturerade utdata-parsern som driver analysen i innehållssammanställningen.
- I OpenRouter Chat Engine ställer ni in Model till
anthropic/claude-sonnet-4.5. - Autentisering krävs: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Engine.
- I Structured Parse Output aktiverar ni Auto Fix och behåller JSON Schema Example som angivet.
- I Content Analysis Agent ställer ni in Text till
{{$json.output.string}}och behåller Prompt Type somdefinemed Has Output Parser aktiverat. - Säkerställ att OpenRouter Chat Engine är ansluten till Content Analysis Agent som språkmodell; Structured Parse Output är ansluten som utdata-parser (autentisering hanteras i OpenRouter Chat Engine, inte i parser-noden).
- Koppla Extract Article Headlines till Content Analysis Agent.
Steg 4: Bygg dokumentutdata och parallell sammanslagning
Skapa sammanställningsdokumentet, slå ihop AI-utdata och förbered dem för batchinfogning.
- I Generate Outline Document ställer ni in Title till
{{$json.output[0].header}}och Folder ID tilldefault. - Autentisering krävs: Anslut era googleDocsOAuth2Api-inloggningsuppgifter i Generate Outline Document.
- Koppla utdata från Content Analysis Agent parallellt till både Generate Outline Document och Sync Inputs Merge.
- Koppla Generate Outline Document till Sync Inputs Merge och ställ in Sync Inputs Merge till Mode
chooseBranchmed Use Data Of Input satt till2. - I Expand AI Output ställer ni in Field To Split Out till
outputoch kopplar Sync Inputs Merge till Expand AI Output. - Koppla Expand AI Output till Batch Iterator.
{{$('Generate Outline Document').first().json.id}} tolkas korrekt i efterföljande noder.Steg 5: Konfigurera villkorlig infogning, radavstånd och Slack-notifiering
Infoga innehåll i Google Docs, hantera rate limiting och notifiera Slack när bearbetningen är klar.
- I Append Header and Body ställer ni in Operation till
updateoch Document URL till{{$('Generate Outline Document').first().json.id}}. - Ställ in den första åtgärden till att infoga
{{$json.header}}följt av en radbrytning, och infoga sedan{{$json.body}}. - I Append Body Text ställer ni in Operation till
updateoch Document URL till{{$('Generate Outline Document').first().json.id}}, och infogar{{$json.body}}. - Autentisering krävs: Anslut era googleDocsOAuth2Api-inloggningsuppgifter till Append Header and Body och Append Body Text.
- I Validate Header Presence behåller ni villkoret String
notEmptymot{{$json.header}}så att rubriksektioner routas korrekt. - I Delay for Rate Limit ställer ni in Amount till
10för att strypa skrivningar till dokumentet. - Delay for Rate Limit skickar utdata parallellt till både Validate Header Presence och Insert Section Spacer.
- I Insert Section Spacer ställer ni in Operation till
updateoch Document URL till{{$('Generate Outline Document').first().json.id}}, och infogar en radbrytning som avskiljare. - Autentisering krävs: Anslut era googleDocsOAuth2Api-inloggningsuppgifter i Insert Section Spacer.
- Koppla Append Header and Body och Append Body Text till Batch Iterator, och koppla sedan Batch Iterator till Post Slack Update.
- I Post Slack Update ställer ni in Text till
The automation run has completed.och väljer målkanal. - Autentisering krävs: Anslut era slackApi-inloggningsuppgifter i Post Slack Update.
10 sekunder för att minska API-strypning.Steg 6: Testa och aktivera ert arbetsflöde
Validera arbetsflödet end-to-end och aktivera det sedan för dagliga körningar.
- Klicka på Execute Workflow och bekräfta att Daily Schedule Trigger startar körningen.
- Verifiera att Generate Outline Document skapar ett nytt dokument med titeln från
{{$json.output[0].header}}. - Bekräfta att Append Header and Body och Append Body Text infogar innehåll i rätt ordning och med korrekt avstånd.
- Kontrollera Slack efter meddelandet från Post Slack Update som indikerar att körningen är klar.
- När ni är nöjda växlar ni arbetsflödet till Active för att aktivera dagliga körningar.
Felsökningstips
- BrowserAct-autentisering kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först din BrowserAct API-nyckel och valet av sparad mall i ditt BrowserAct-konto.
- Om du använder Wait-noder eller extern skrapning varierar bearbetningstiderna. Öka väntetiden om efterföljande Google Docs-noder fallerar på tomma svar.
- Standardprompterna i AI-agenten är generiska. Lägg in din tonalitet och exakt vilka kategorier du vill ha tidigt, annars kommer du att redigera utdata i all evighet.
Snabba svar
Cirka 30 minuter om dina konton är redo.
Nej. Du kopplar mest in autentisering och klistrar in din Medium-tagg-URL i steget för målkälla.
Ja. n8n har ett gratis alternativ för självhosting 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 med kostnader för OpenRouter (LLM), vilket vanligtvis är några cent per körning beroende på modell och promptstorlek.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det är hela poängen. Byt Medium-tagg-URL:en i steget ”Set Target Source” och justera sedan kategorierna i AI-agentens prompt (prompten ”Analyzer & Script writer”) så att de matchar teamets indelning. Många team lägger till ett extra avsnitt som ”Konkurrenter” eller ”Finansiering” för att göra dokumentet mer beslutsvänligt. Du kan också ersätta Google Docs-stegen med Notion eller Airtable om du hellre vill lagra poster i en databas.
Oftast beror det på en utgången API-nyckel eller att BrowserAct-mallen inte sparades i ditt konto. Skapa en ny nyckel, välj mallen som används för skrapning igen och kör ett enda test från n8n. Om Medium blockerar skrapningen, testa att sänka frekvensen eller ändra målsidan för arkivet till en mindre aggressiv endpoint.
Tillräckligt för de flesta team, så länge du håller skrapstorleken på en rimlig nivå.
Ofta, ja, eftersom det här inte är en enkel ”A → B”-zap. Du skrapar innehåll, kör ett AI-kureringssteg, loopar igenom poster och bygger ett formaterat Google-dokument, vilket är exakt där Zapier-liknande prissättning och begränsningar kan bli irriterande. n8n ger dig också förgreningar (som rubrikvalideringen) och batchning utan att du behöver separata betalda tillägg. Samtidigt kan Zapier eller Make fungera bra om du bara vill ha ett enkelt Slack-meddelande med några länkar och noll formatering. Prata med en automationsexpert om du är osäker på vad som passar.
När det här väl rullar blir din ”trendrapport” en repeterbar tillgång, inte en veckovis stressinsats. Arbetsflödet sköter insamling, rensning och formatering så att du kan fokusera på vad trenderna faktiskt betyder.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.