Veckorapportering låter enkelt tills du jonglerar tre dashboards, förra veckans siffror och ett kalkylark som är ”nästan” uppdaterat. Då fastnar du i flik-hoppande, copy-paste och att du tvivlar på om du verkligen tog rätt vecka.
YouTube Airtable-rapportering slår hårt mot marknadsansvariga eftersom du förväntas ”veta vad som fungerade” innan nästa kampanj går ut. Byråägare känner det när kundrapportering blir ett söndagskvällsjobb. Och community managers som följer Skool-engagemang får extra huvudvärk av att behöva hämta statistik som inte finns samlad på ett och samma, strukturerat ställe.
Det här n8n-flödet löser det genom att samla YouTube-, TikTok- och Skool-statistik varje vecka, räkna ut week-over-week-tillväxt och mejla en felfritt formaterad AI-skriven rapport. Du får se vad det gör, vad du behöver och hur du anpassar det till din setup.
Så fungerar den här automatiseringen
Se hur den löser problemet:
n8n Workflow Template: YouTube + Airtable: veckorapport via e-post, klar
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Video Data"]
n8@{ icon: "mdi:cog", form: "rounded", label: "Get last weeks vids", 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/>Get Transcripts"]
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 tiktok data"]
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/merge.svg' width='40' height='40' /></div><br/>Merge1"]
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/code.svg' width='40' height='40' /></div><br/>combine items"]
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "last 7 days?", 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/code.svg' width='40' height='40' /></div><br/>last weeks lable"]
n15@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields4", pos: "b", h: 48 }
n16["<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/>add up metrics"]
n17@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Model", 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/airtable.svg' width='40' height='40' /></div><br/>Create a record"]
n19["<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/>last weeks lable1"]
n20["<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/airtable.svg' width='40' height='40' /></div><br/>Search records1"]
n21["<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/airtable.svg' width='40' height='40' /></div><br/>current metrics"]
n22["<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/>calculate metrics"]
n23@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger1", pos: "b", h: 48 }
n24["<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/markdown.dark.svg' width='40' height='40' /></div><br/>Markdown1"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get skool members2"]
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/merge.svg' width='40' height='40' /></div><br/>Merge2"]
n27@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract member count1", pos: "b", h: 48 }
n28@{ icon: "mdi:cog", form: "rounded", label: "Get channel stats1", pos: "b", h: 48 }
n29@{ icon: "mdi:cog", form: "rounded", label: "Aggregate1", pos: "b", h: 48 }
n30["<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/airtable.svg' width='40' height='40' /></div><br/>Search records2"]
n31["<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 week lable"]
n34@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Channel stats", pos: "b", h: 48 }
n39@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract follower count for t..", pos: "b", h: 48 }
n40@{ icon: "mdi:robot", form: "rounded", label: "Generate analysis report", pos: "b", h: 48 }
n41@{ icon: "mdi:message-outline", form: "rounded", label: "Send html style report to yo..", pos: "b", h: 48 }
n42@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format youtube video stats", pos: "b", h: 48 }
n11 --> n29
n26 --> n11
n24 --> n27
n29 --> n16
n29 --> n19
n15 --> n22
n13 --> n26
n12 --> n39
n7 --> n9
n31 --> n11
n16 --> n21
n9 --> n42
n10 --> n34
n10 --> n12
n20 --> n40
n30 --> n15
n21 --> n14
n14 --> n30
n23 --> n8
n23 --> n25
n23 --> n10
n23 --> n28
n23 --> n31
n22 --> n18
n19 --> n20
n28 --> n11
n25 --> n24
n8 --> n7
n34 --> n13
n27 --> n11
n17 -.-> n40
n40 --> n41
n42 --> n11
n39 --> n26
end
subgraph sg1["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", 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/markdown.dark.svg' width='40' height='40' /></div><br/>Markdown"]
n2["<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 skool members"]
n3@{ icon: "mdi:cog", form: "rounded", label: "Get channel stats", 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/airtable.svg' width='40' height='40' /></div><br/>Update record"]
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/>Merge"]
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/airtable.svg' width='40' height='40' /></div><br/>Search records"]
n32["<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 tiktok followers"]
n33["<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/>extract current tiktok follo.."]
n35@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format youtube sub count", pos: "b", h: 48 }
n36@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Skool member count", pos: "b", h: 48 }
n37@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map out all 3 counts for eac..", pos: "b", h: 48 }
n38@{ icon: "mdi:cog", form: "rounded", label: "combine the data", pos: "b", h: 48 }
n5 --> n38
n1 --> n36
n6 --> n4
n0 --> n2
n0 --> n3
n0 --> n32
n38 --> n37
n3 --> n35
n2 --> n1
n32 --> n33
n35 --> n5
n36 --> n5
n33 --> n5
n37 --> n6
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 n23,n0 trigger
class n40 ai
class n17 aiModel
class n13 decision
class n18,n20,n21,n30,n4,n6 database
class n7,n9,n10,n25,n2,n32 api
class n12,n14,n16,n19,n22,n31,n33 code
classDef customIcon fill:none,stroke:none
class n7,n9,n10,n11,n12,n14,n16,n18,n19,n20,n21,n22,n24,n25,n26,n30,n31,n1,n2,n4,n5,n6,n32,n33 customIcon
Utmaningen: veckovis analysrapportering över flera plattformar
Varje vecka vill du samma sak: en enkel ögonblicksbild av tillväxt, vilket innehåll som presterade och vad ni ska göra härnäst. Men verkligheten är rörig. YouTube har en uppsättning mätetal, TikTok-statistiken finns någon annanstans och Skool-engagemang är sin egen värld. När du väl har hämtat följarsiffror, listat förra veckans uppladdningar och försökt skriva ”insikter” har du bränt en timme (eller mer) och litar ändå inte på siffrorna. Än värre: du tappar tråden vecka för vecka, så ”strategin” blir att reagera i stället för att lära.
Det blir snabbt mycket. Här är var det faller isär i praktiken.
- Du slutar med att kopiera mätetal från tre dashboards in i Airtable eller Sheets, och ett litet inklistringsfel förstör week-over-week-jämförelsen.
- Kontexten för videoprestanda försvinner eftersom du har siffror, men inte transkriptionerna eller innehållsmönstren som förklarar varför något fungerade.
- Veckoetiketter glider (”förra veckan” blir otydligt), så historisk uppföljning blir en gissningslek när du behöver visa trender.
- Rapporteringen stjäl exakt den tid du borde lägga på att planera nästa veckas innehåll eller kundleveranser.
Lösningen: en veckovis AI-skriven rapport byggd på riktiga siffror
Det här flödet körs på ett schema (veckovis, som standard på söndagar) och fungerar som en lättviktig analytiker som aldrig glömmer att logga siffrorna. Det hämtar dina aktuella följar-/prenumerantantal från YouTube, TikTok och Skool, och hämtar sedan detaljer för videorna du publicerat de senaste sju dagarna. Det hämtar även transkriptioner för dessa videor, vilket gör att rapporten kan prata om vad du sa och hur du byggde hooks, inte bara att ”visningar gick upp”. Därefter slår det upp förra veckans sparade KPI-post i Airtable, räknar ut week-over-week-tillväxt och paketerar allt i en felfritt formaterad HTML-rapport. Till sist mejlar det rapporten via Gmail och sparar den nya baslinjen tillbaka i Airtable så att nästa veckas jämförelser blir automatiska.
Flödet startar med schemalagda triggers som samlar plattformsdata via YouTube Data API och HTTP-scraping (Apify actors för TikTok och Skool). Dessa strömmar slås ihop, tillväxt beräknas mot tidigare Airtable-poster och en LLM (via OpenRouter eller OpenAI) skriver narrativet. Gmail levererar den färdiga rapporten och Airtable behåller historiken.
Vad som förändras: före vs. efter
| Det här elimineras | Effekt du kommer att se |
|---|---|
|
|
Praktisk effekt i verkligheten
Säg att du publicerar 3 YouTube-videor per vecka och att du följer tre plattformar (YouTube, TikTok, Skool). Manuellt tar det kanske 10 minuter per plattform att hämta följarsiffror och anteckningar, plus cirka 15 minuter per video för att hämta statistik och kontext, vilket landar runt 2 timmar i veckan när du dessutom formaterar och skriver mejlet. Med det här flödet lägger du cirka 15 minuter på första uppsättningen och en snabb genomläsning av rapporten varje vecka. Scraping, jämförelser och mejlleverans kör medan du gör något annat.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Airtable för att lagra veckovis KPI-historik.
- Gmail för att skicka mejlet med HTML-rapporten.
- Apify-konto (skaffas via Apify) för TikTok- och Skool-scraping.
- Google Cloud-projekt för att aktivera YouTube Data API.
- OpenRouter- eller OpenAI API-nyckel (hämtas i din OpenRouter/OpenAI-dashboard) för AI-analysen.
Kunskapsnivå: Medel. Du kopplar konton, klistrar in några ID:n/URL:er och testar en veckokörning.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
Ett veckoschema sätter igång det. På söndagar (eller den dag du väljer) startar n8n två koordinerade hämtningar: ”aktuella plattformsantal” och ”innehållsprestanda senaste 7 dagarna”.
Mätetal samlas in och normaliseras. YouTube-data kommer från YouTube Data API. TikTok- och Skool-siffror kommer in via HTTP-anrop (oftast Apify actors), och därefter tolkar och formaterar flödet värdena så att allt matchar en konsekvent struktur i Airtable.
Förra veckan blir baslinjen. Airtable genomsöks efter föregående veckas KPI-post, och sedan beräknar kodnoder week-over-week-tillväxt (nya följare, förändring i prenumeranter och summeringar som total engagemang över senaste videor).
AI skriver rapporten som folk faktiskt läser. Videotranskriptioner och prestandadata matas in i en LLM-nod (OpenRouter/OpenAI). Flödet genererar en formaterad HTML-rapport med insikter, trender och ett tydligare ”vad gör vi härnäst”-perspektiv.
Mejlet skickas, data arkiveras. Gmail skickar HTML-rapporten till din inkorg, och Airtable sparar den nya KPI-raden så att nästa veckas jämförelser fungerar automatiskt.
Du kan enkelt ändra schemadag och plattformslista utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den schemalagda triggern
Det här arbetsflödet använder två schematriggers: en för frekventa plattformsräkningar och en annan för veckovis innehållsrapportering.
- Öppna Scheduled Run Trigger och ställ in schemat så att det körs varje minut med standardregeln för intervall (noden har redan Interval inställt på minuter).
- Öppna Weekly Schedule Trigger och ställ in Cron Expression till
0 21 * * 0för att köra veckovis kl. 21:00 på söndagar. - Bekräfta parallell körning: Scheduled Run Trigger skickar utdata till Fetch Skool Members, Retrieve Channel Stats och Fetch TikTok Followers parallellt.
- Bekräfta den veckovisa parallella körningen: Weekly Schedule Trigger skickar utdata till Retrieve Last Week Videos, Fetch Skool Members 2, Retrieve TikTok Data, Retrieve Channel Stats 2 och Generate Week Label parallellt.
Steg 2: anslut centrala datakällor (Skool, YouTube, TikTok)
Konfigurera HTTP- och YouTube-hämtningarna som driver flödet för plattformsräkningar.
- I Fetch Skool Members ställer ni in URL till
=YOUR_SKOOL_URL_HEREoch låter Send Headers vara aktiverat för att efterlikna en webbläsarförfrågan. - I Render Markdown ställer ni in HTML till
={{ $json.data }}så att HTML-svaret konverteras till markdown för extrahering. - I Retrieve Channel Stats ställer ni in Channel ID till
[YOUR_ID]och låter Operation varaget. Inloggning krävs: anslut era youTubeOAuth2Api-uppgifter. - I Fetch TikTok Followers ställer ni in URL till
=https://www.tiktok.com/@[YOUR_ID]?lang=enoch låter headers vara aktiverade för att undvika blockerade förfrågningar. - I Parse TikTok Followers låter ni JS-koden vara oförändrad för att extrahera antal följare från HTML-payloaden.
[CONFIGURE_YOUR_TOKEN] och API-nycklar som [CONFIGURE_YOUR_API_KEY]. Uppdatera dessa innan ni kör, annars misslyckas förfrågningarna.Steg 3: aggregera och mappa plattformsräkningar
Det här steget slår ihop räkningar från Skool, YouTube och TikTok till en enda dataset för uppdateringar i Airtable.
- I Extract Skool Count behåller ni uttrycket för medlems-extrahering
={{$json.data.match(/(\d+)\s*members/i)?.[1] || $json.data.match(/\[(\d+)Members\]/i)?.[1]}}. - I Format YouTube Subs ställer ni in YT subs till
={{ $json.statistics.subscriberCount }}. - I Combine Streams säkerställer ni att Number of Inputs är
3så att den tar emot flöden från Skool, YouTube och TikTok. - I Aggregate Counts låter ni Aggregate vara
aggregateAllItemDataför att paketera alla räkneobjekt. - I Map Platform Counts mappar ni fält med uttryck: Skool members →
={{ $json.data[0]["skool mems"] }}, Sub count YT →={{ $json.data[1]["YT subs"] }}, TT followers →={{ $json.data[2].followerCount }}.
Steg 4: konfigurera veckovis insamling och berikning av innehåll
Den veckovisa grenen samlar in innehåll från YouTube och TikTok, transkriptdata och veckovisa Skool-medlemsantal.
- I Retrieve Last Week Videos ställer ni in Published After till
={{ new Date(Date.now() - 7*24*60*60*1000).toISOString() }}för att hämta de senaste 7 dagarnas YouTube-innehåll. Inloggning krävs: anslut era youTubeOAuth2Api-uppgifter. - I Fetch Video Details ställer ni in query-parametrar: key till
[CONFIGURE_YOUR_API_KEY], id till={{ $json.id.videoId }}och part tillcontentDetails, snippet, statistics. - I Fetch Transcripts låter ni JSON Body vara som konfigurerat och uppdaterar headern Authorization till
Bearer [CONFIGURE_YOUR_TOKEN]. - I Format YouTube Video Stats mappar ni fält med uttryck som
={{ $('Fetch Video Details').item.json.items[0].statistics.viewCount }}och={{ $json.captions }}. - I Retrieve TikTok Data låter ni Method vara
POSToch ersätter[CONFIGURE_YOUR_TOKEN]och@[YOUR_ID]i URL och body. - I Format TikTok Stats behåller ni mappningar som videoViews →
={{ $json.playCount }}och videoLikes →={{ $json.diggCount }}. - I Validate Last 7 Days behåller ni villkoret som jämför
={{ new Date($json.postedDateandTime).getTime() }}med={{ Date.now() - 7 * 864e5 }}. - I Fetch Skool Members 2 och Render Markdown 2 speglar ni Skool-konfigurationen som användes i steg 2 och låter HTML vara
={{ $json.data }}. - I Extract Member Count 2 behåller ni uttrycket för medlems-extrahering
={{$json.data.match(/(\d+)\s*members/i)?.[1] || $json.data.match(/\[(\d+)Members\]/i)?.[1]}}.
Steg 5: aggregera veckodata och beräkna KPI:er
Det här avsnittet sammanställer veckodata, beräknar tillväxt och förbereder KPI-mått.
- I Combine Streams 2 säkerställer ni att Number of Inputs är
5för att slå ihop YouTube-statistik, TikTok-statistik, Skool-medlemmar, kanalstatistik och veckomärkningen. - I Aggregate All Data låter ni Aggregate vara
aggregateAllItemDataoch Destination Field Name varaallData. - Bekräfta parallell körning: Aggregate All Data skickar utdata till både Sum Engagement Metrics och Prior Week Label 2 parallellt.
- I Prior Week Label 2 och Previous Week Label låter ni ISO-veckoetikettkoden vara oförändrad för att beräkna föregående veckas etikett.
- I Lookup KPI History och Lookup Prior KPIs låter ni Filter By Formula vara
={Week} = "{{ $json.prevWeekLabel }}". Inloggning krävs: anslut era airtableTokenApi-uppgifter. - I Map Current Metrics behåller ni mappningar som Current Youtube sub count →
={{ $('Fetch Current Metrics').item.json['YT sub count'] }}. - I Compute Growth Metrics behåller ni JS-koden som beräknar tillagda prenumeranter, följare och medlemmar.
Steg 6: konfigurera Airtable-uppdateringar och lagring av KPI:er
Airtable lagrar både aktuella mätvärden och veckovis KPI-historik.
- I Lookup Records väljer ni rätt Airtable-Base och Table för “Current metrics”. Inloggning krävs: anslut era airtableTokenApi-uppgifter.
- I Modify Record mappar ni fält med uttryck som
={{ $('Map Platform Counts').item.json["Sub count YT"] }}och={{ $json.Calculation }}. Inloggning krävs: anslut era airtableTokenApi-uppgifter. - I Fetch Current Metrics väljer ni tabellen “Current metrics”. Inloggning krävs: anslut era airtableTokenApi-uppgifter.
- I Create KPI Record behåller ni mappningar som Week →
={{ $('Generate Week Label').item.json.weekLabel }}och YT likes →={{ $('Sum Engagement Metrics').item.json['YouTube likes'] }}. Inloggning krävs: anslut era airtableTokenApi-uppgifter.
YT sub count, Tiktok Followers, Total YT subs), annars misslyckas uppdateringar utan tydlig felindikering.Steg 7: konfigurera AI-insikter och e-postleverans
Skapa HTML-rapporten med AI och skicka den via Gmail.
- I Generate Insights Report behåller ni prompten i Text som innehåller
={{ JSON.stringify($('Aggregate All Data').item.json.allData) }}och uttrycken för totaler från förra veckan. - Öppna OpenRouter Chat Engine och bekräfta att Model är inställd på
google/gemini-2.5-flash. Inloggning krävs: anslut era openRouterApi-uppgifter. - Obs: OpenRouter Chat Engine är ansluten som språkmodell för Generate Insights Report — uppgifter ska läggas till i OpenRouter Chat Engine, inte i kedjenoden.
- I Email HTML Report ställer ni in Send To till
[YOUR_EMAIL], Subject tillWeekly content performanceoch Message till={{ $json.text }}. Inloggning krävs: anslut era gmailOAuth2-uppgifter.
Steg 8: testa och aktivera ert arbetsflöde
Validera dataflödet från början till slut och bekräfta e-postleverans innan ni aktiverar produktionskörningar.
- Klicka på Execute Workflow från Scheduled Run Trigger för att testa flödet som uppdaterar plattformsräkningar hela vägen till Modify Record.
- Kör Weekly Schedule Trigger manuellt för att testa den veckovisa innehållspipelinen som slutar med Email HTML Report.
- En lyckad körning ska visa aggregerad data i Aggregate All Data och en fullständig HTML-utdata i Generate Insights Report.
- Kontrollera Airtable efter en ny post i “Weekly Content KPIs” från Create KPI Record och en uppdaterad rad i “Current metrics” från Modify Record.
- När ni är nöjda växlar ni arbetsflödet till Active för att aktivera schemalagda produktionskörningar.
Saker att se upp med
- Airtable base-/table-ID:n och fältnamn måste matcha den tillhandahållna mallen. Om steget ”Lookup Prior KPIs” inte returnerar något, kontrollera base-länken i sticky notes och bekräfta att din första baslinjerad finns.
- Om du använder Wait-noder eller extern scraping varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på grund av tomma svar.
- OpenRouter/OpenAI-utdata kan kännas platt i början. Uppdatera prompten i kedjan ”Generate Insights Report” tidigt med din tonalitet, kundkontext och vad du betraktar som en ”bra vecka”, annars kommer du att redigera varje mejl.
Vanliga frågor
Cirka en timme om du redan har konton och API-nycklar.
Ja. Ingen kodning krävs, men någon behöver vara bekväm med att klistra in ID:n/URL:er och testa en schemalagd körning.
Ja. n8n har ett gratis alternativ för self-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 med kostnader för Apify-scraping och din OpenRouter/OpenAI-användning (oftast bara några ören per körning).
Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serveradministration.
Du kan byta LLM i OpenRouter/OpenAI-noderna, ändra schematriggrarna och utöka steget ”Map Platform Counts” för att inkludera fler plattformar. Vanliga justeringar är att lägga till LinkedIn/Instagram (med rätt Apify actors), ändra mejlformatet i noden ”Email HTML Report” och lagra extra fält i Airtable för kundspecifika KPI:er.
Oftast beror det på fel base-, tabell- eller fältmappning. Dubbelkolla Airtable-mallen som refereras i sticky notes och bekräfta sedan att dina n8n Airtable-uppgifter fortfarande har åtkomst till den workspacen. Om ”Lookup Prior KPIs” inte returnerar något kan det också betyda att du inte har skapat den första baslinjeraden än.
Mer än tillräckligt för veckorapportering.
Ofta, ja, om du bryr dig om logik i flera steg och att behålla en riktig KPI-historik. Det här flödet slår ihop flera dataströmmar, gör week-over-week-jämförelser och matar sedan transkriptioner till en AI-modell. Zapier/Make kan lösa delar av det, men förgreningar, dataformning och mönstret ”spara baslinje och jämför nästa vecka” tenderar att bli klumpigt (och dyrt) när det växer. n8n ger dig också möjligheten att self-hosta, vilket är hjälpsamt när du vill ha förutsägbara kostnader. Om du är osäker, prata med en automationsexpert så kartlägger vi den enklaste vägen.
När det här väl rullar dyker dina veckosiffror upp med kontext, inte kaos. Flödet tar hand om de repetitiva delarna, så att du kan fokusera på nästa veckas innehållsbeslut.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.