Du publicerar på LinkedIn och “kollar siffrorna” senare. Förutom att senare blir till tio olika inloggningar, skärmdumpar och halvt ihågkomna gissningar om vad som faktiskt fungerade.
Marknadschefer som försöker rapportera resultat känner av det här varje vecka. Grundare som postar mellan möten känner det också. Och ärligt talat: innehållsskapare som bygger en riktig publiceringstakt har inte råd med manuell spårning. Den här Bright Data Sheets-automationen hämtar prestandadata till ett kalkylark så att du kan se mönster utan att bo i LinkedIns analysvy.
Nedan ser du hur arbetsflödet går från “skrapa verkliga mätvärden” till “rensa rader i Google Sheets”, plus vad du kan fråga den inbyggda AI-assistenten när datan väl finns där.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Bright Data + Google Sheets för LinkedIn-insikter
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n3@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Post Id"]
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/nocodb.svg' width='40' height='40' /></div><br/>Get posts"]
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Config", pos: "b", h: 48 }
n11@{ icon: "mdi:cog", form: "rounded", label: "Download Snapshot", pos: "b", h: 48 }
n12@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Ready?", pos: "b", h: 48 }
n16@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Returned Posts?", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "Scrape LinkedIn Posts", 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/>Update Post"]
n19@{ icon: "mdi:cog", form: "rounded", label: "Get Snapshot Status", pos: "b", h: 48 }
n12 --> n19
n10 --> n9
n5 --> n17
n9 --> n4
n15 --> n11
n15 --> n12
n4 --> n5
n6 --> n18
n16 --> n6
n16 --> n19
n11 --> n6
n19 --> n15
n17 --> n16
n3 --> n10
end
subgraph sg1["When chat message received Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n2@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n7@{ icon: "mdi:memory", form: "rounded", label: "Agent memory", pos: "b", h: 48 }
n8@{ icon: "mdi:memory", form: "rounded", label: "Chat memory", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Get LinkedIn Profile", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "Get Top LinkedIn Posts", pos: "b", h: 48 }
n8 -.-> n2
n7 -.-> n0
n1 -.-> n0
n13 -.-> n0
n14 -.-> n0
n2 --> n0
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 n3,n2 trigger
class n0 ai
class n1 aiModel
class n7,n8 ai
class n15,n16 decision
class n6,n18 api
classDef customIcon fill:none,stroke:none
class n6,n9,n18 customIcon
Problemet: LinkedIn-rapportering är långsam, inkonsekvent och svår att lita på
LinkedIn ger dig mätvärden, men inte ett felfritt, repeterbart sätt att använda dem. Du studsar mellan inläggs-URL:er, inbyggd analys och det där kalkylarket du startade för tre månader sedan (det med kolumnerna du slutade fylla i). Det värsta är beslutsfattandet. När datan ligger utspridd faller du tillbaka på magkänsla: “Den här kändes bra” eller “Kanske funkar omröstningar igen”. Det är ingen strategi. Det är gissningar med extra steg.
Det blir snabbt mycket. Här är var det oftast fallerar.
- Manuella kontroller tar cirka 10 minuter per inlägg om du vill ha korrekta siffror, inte grova uppskattningar.
- Mätvärden kopieras inkonsekvent, vilket gör att din lista över “toppinlägg” ändras beroende på vem som gjorde rapporteringen.
- Äldre inlägg är svåra att jämföra eftersom format skiftar, och du fångar sällan samma fält varje gång.
- När du väl har sammanställt något har tillfället att satsa på ett vinnande ämne redan passerat.
Lösningen: Bright Data-skrapning + en prestandalogg redo för Sheets
Det här arbetsflödet gör LinkedIn-spårning av performance till ett system som kör i bakgrunden. Det börjar med att hämta en lista med inlägg från en strukturerad databas (NocoDB), och ber sedan Bright Data att skrapa engagemangsdata för varje inlägg med hjälp av verkliga snapshots. När snapshoten är klar hämtar arbetsflödet filen, plockar ut inläggsidentifieraren och uppdaterar din sparade post med de senaste mätvärdena. Nu har du en felfri datamängd som du kan synka till Google Sheets (eller Excel) för rapportering, dashboards och snabba jämförelser.
När den grunden är på plats blir AI-assistenten på riktigt användbar. I stället för “skriv ett LinkedIn-inlägg om försäljning” kan du ställa förankrade frågor som “vilka ämnen fick mest engagemang förra månaden?” och få svar baserat på dina historiska resultat, inte generiska råd.
Det du får: automation kontra resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du publicerar 5 inlägg i veckan och följer upp dem igen i slutet av veckan för rapportering. Manuell hantering är kanske 10 minuter per inlägg för att öppna LinkedIn, hitta inlägget, notera mätvärdena och klistra in dem i ett ark, alltså cirka 50 minuter per vecka (och det är lätt att göra fel i en rad). Med det här arbetsflödet lägger du cirka 5 minuter på att starta en körning och väntar sedan på Bright Data-snapshots i bakgrunden. Du får hela datamängden uppdaterad i ett svep, redo att sortera i Google Sheets.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Bright Data för LinkedIn-skrapning och snapshots
- Google Sheets för att analysera och rapportera mätvärden
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard)
Kunskapsnivå: Medel. Du kopplar credentials, sätter några variabler och är bekväm med att testköra flöden i n8n.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En körning startas från n8n. Du kan starta den manuellt för att testa, och sedan schemalägga den när du litar på resultatet. Arbetsflödet laddar först dina sparade inställningar, så att du inte behöver konfigurera om samma variabler varje gång.
Din befintliga inläggslista blir single source of truth. Arbetsflödet hämtar dina inläggsposter från NocoDB, mappar fälten den behöver och sammanställer dem till en felfri batch att skrapa. Det löser problemet med “slumpmässiga inläggs-URL:er i en anteckningsapp”.
Bright Data skrapar verklig engagemangsdata. Den triggar en snapshot, kontrollerar om Bright Data returnerade en, och fortsätter sedan att polla tills snapshoten är klar. Ett Wait-steg används här så att du inte försöker läsa resultat som inte är färdiga ännu.
Mätvärden sparas, och sedan kan AI-assistenten fråga på dem. När snapshot-filen hämtats extraherar arbetsflödet LinkedIn-inläggets identifierare och uppdaterar den sparade posten via HTTP-anrop. Separat låter chat-triggern tillsammans med AI Agent och OpenAI-modellen dig ställa frågor som “visa mig toppinlägg förra månaden”, baserat på vad som finns i din datamängd.
Du kan enkelt modifiera vilka fält du sparar så att de matchar hur du rapporterar (till exempel lägga till ämnestaggar eller en kampanjetikett). Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera den manuella triggern
Det här arbetsflödet startar med en manuell körning för datasynk och ger även en separat chattbaserad ingång för AI-assistans.
- Öppna Manual Run Trigger och låt standardinställningarna vara som de är för att möjliggöra manuell körning.
- Öppna Chat Message Trigger och bekräfta att Authentication är inställt på
n8nUserAuthoch att Initial Messages ärHey, I'm your AI content assistant. What can I help you with?. - Säkerställ att Chat Message Trigger har Public aktiverat (
true) om ni vill ha en offentlig chatt-ingång.
Tips: Ni kan köra datasynken med Manual Run Trigger och samtidigt använda chattflödet för insikter vid behov.
Steg 2: anslut NocoDB och definiera grundinställningar
Konfigurera var er NocoDB-bas och tabellen för inlägg finns och hämta sedan alla inlägg för scraping.
- Öppna Settings Builder och ställ in nocodbBaseUrl och nocodbPostsTableId till era NocoDB-värden (de är för närvarande tomma).
- Öppna Retrieve Post List och ställ in Project ID till
[YOUR_ID]och Table till[YOUR_ID]. - Uppgifter krävs: Anslut era nocoDbApiToken-uppgifter i Retrieve Post List.
⚠️ Vanlig fallgrop: Om ni lämnar nocodbBaseUrl eller nocodbPostsTableId tomt i Settings Builder kommer efterföljande HTTP-anrop att sluta fungera.
Steg 3: förbered poster och skrapa LinkedIn-inlägg
Det här steget mappar inläggens URL:er, aggregerar dem och skickar dem till Bright Data för scraping.
- Öppna Map Input Fields och behåll Mode inställt på
rawmed JSON Output inställt på={ "url": "{{ $json.Link }}" }. - Öppna Compile Records och behåll Aggregate inställt på
aggregateAllItemData. - Öppna Scrape LinkedIn Entries och ställ in URLs till
={{ $json.data.toJsonString() }}med Resource inställt påwebScrapper. - Uppgifter krävs: Anslut era brightdataApi-uppgifter i Scrape LinkedIn Entries.
Steg 4: övervaka snapshot-status och hämta resultat
Arbetsflödet loopar genom statuskontroller för snapshot tills scrapingen är klar och laddar sedan ner datan.
- I Verify Snapshot Returned behåller ni villkoret som kontrollerar att
={{ $json.snapshot_id }}finns. - Öppna Check Snapshot Status och bekräfta att Operation är
monitorProgressSnapshotmed snapshot_id inställt på={{ $json.snapshot_id }}. - I Check Snapshot Ready säkerställer ni att den kontrollerar att
={{ $json.status }}är lika medready. - Öppna Pause Execution och behåll Amount inställt på
1så att arbetsflödet väntar innan det kontrollerar igen. - Öppna Fetch Snapshot File och behåll Operation inställt på
downloadSnapshotoch snapshot_id på={{ $json.snapshot_id }}. - Uppgifter krävs: Anslut era brightdataApi-uppgifter i Check Snapshot Status och Fetch Snapshot File.
Tips: Loopen följer Check Snapshot Ready → Pause Execution → Check Snapshot Status tills statusen är ready.
Steg 5: uppdatera NocoDB-poster med skrapade insikter
När snapshoten har laddats ner hittar arbetsflödet det matchande inlägget i NocoDB och patchar innehåll, gilla-markeringar och kommentarer.
- Öppna Retrieve Post Identifier och bekräfta att URL är
={{ $('Settings Builder').item.json.nocodbBaseUrl }}/api/v2/tables/{{ $('Settings Builder').item.json.nocodbPostsTableId }}/records?where=(Link,eq,{{ $json.input.url }}). - Uppgifter krävs: Anslut era nocoDbApiToken-uppgifter i Retrieve Post Identifier.
- Öppna Update Post Record och behåll Method inställt på
PATCHmed Send Body aktiverat. - I Update Post Record bekräftar ni att body-parametrarna mappar till: Id =
={{ $json.list[0].Id }}, Content =={{ $('Scrape LinkedIn Entries').item.json.post_text }}, Likes =={{ $('Scrape LinkedIn Entries').item.json.num_likes }}, Comments =={{ $('Scrape LinkedIn Entries').item.json.num_comments }}. - Uppgifter krävs: Anslut era nocoDbApiToken-uppgifter i Update Post Record.
Steg 6: konfigurera AI-assistenten för innehåll
AI-assistenten använder en chatt-trigger, minnesbuffertar, en OpenAI-modell och verktygsnoder för att hämta er profil och era toppinlägg.
- Öppna OpenAI Chat Engine och bekräfta att modellen är inställd på
gpt-5.2. - Uppgifter krävs: Anslut era openAiApi-uppgifter i OpenAI Chat Engine.
- Öppna Chat Context Buffer och Agent Context Buffer och behåll Context Window Length inställt på
10. - Öppna AI Content Conductor och granska System Message så att den matchar er ton och era krav på vägledning.
- Öppna Fetch Top LinkedIn Posts och ställ in Project ID till
[YOUR_ID]och Table till[YOUR_ID]. - Öppna Fetch LinkedIn Profile och ersätt
i URLs med er profil-URL. - Uppgifter krävs: Anslut era nocoDbApiToken-uppgifter i Fetch Top LinkedIn Posts.
- Uppgifter krävs: Anslut era brightdataApi-uppgifter i Fetch LinkedIn Profile.
Tips: Chat Context Buffer, Agent Context Buffer, Fetch Top LinkedIn Posts och Fetch LinkedIn Profile är kopplade till AI Content Conductor som minne/verktyg. Säkerställ att uppgifter är inställda på respektive verktygsnod och på modellnoden OpenAI Chat Engine.
Steg 7: testa och aktivera ert arbetsflöde
Kör båda ingångarna för att verifiera datauppdateringar och AI-svar innan ni går live.
- Klicka på Execute Workflow på Manual Run Trigger och bekräfta att Update Post Record patchar rätt NocoDB-poster.
- Starta en konversation via Chat Message Trigger och verifiera att AI Content Conductor svarar med hjälp av er profil och era toppinlägg.
- En lyckad körning ser ut så här: en slutförd Bright Data-snapshot, uppdaterade NocoDB-fält (Content, Likes, Comments) och AI-svar i chatten.
- Slå på arbetsflödet Active för att använda det i produktion.
Vanliga fallgropar
- Bright Data-uppgifter kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera, kontrollera först din Bright Data API-åtkomst och workspace-inställningar.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder skapar fel på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera outputen i all oändlighet.
Vanliga frågor
Cirka 30–60 minuter när dina credentials är redo.
Nej. Du kopplar främst konton, klistrar in API-nycklar och redigerar några konfigurationsfält i n8n.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis testperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI API-kostnader (ofta några cent per analys) och Bright Data-användning baserat på hur många inlägg du skrapar.
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger obegränsade exekveringar men kräver grundläggande serveradministration.
Ja, och det är det smarta sättet att använda det. Du kan lägga till extra kolumner (som “ämne”, “erbjudande” eller “content pillar”) i NocoDB och sedan utöka steget Set/Map fields så att etiketterna följer med in i din datamängd. Många team schemalägger också den manuella triggern att köra veckovis och justerar AI-agentens systemprompt så att den sammanfattar performance i det format du redan rapporterar. Om du föredrar Excel kan du skicka output via Microsoft Excel 365 i stället för Google Sheets.
Oftast är det ett problem med API-nyckeln eller workspace-behörigheter på Bright Data-sidan. Kontrollera credentials i n8n igen och bekräfta sedan att Bright Data:s scraper-/snapshot-endpoints är aktiverade för ditt konto. Om snapshoten startar men aldrig returnerar data kan det också vara ett timingproblem. Öka Wait-tiden så att loopen för “kontrollera status” får tillräckligt med tid innan arbetsflödet försöker hämta snapshot-filen.
Praktiskt sett dussintals till hundratals per körning, så länge du budgeterar för Bright Data-användning och ger snapshots tillräckligt med tid att bli klara. På n8n Cloud beror din månatliga exekveringsgräns på din plan. Om du hostar själv finns ingen plattformsgräns för exekveringar, men serverresurser och externa verktygs rate limits spelar fortfarande roll. Om du skrapar ett stort arkiv, kör i batchar så att du inte överbelastar dina databasuppdateringar.
Ofta, ja. Det här arbetsflödet bygger på polling, förgreningslogik och en AI-agent som jobbar mot lagrad data, och n8n hanterar de mönstren snyggt utan att göra varje “om/så” till extra betalda steg. Zapier eller Make kan fortfarande fungera för enkel loggning, men de blir mindre smidiga när du lägger till statuskontroller för snapshots och en chat-upplevelse som bygger på data. Om du redan spårar inlägg i en databas (NocoDB) och vill ha ett återanvändbart analyslager är n8n ett bättre val. Prata med en automationsexpert om du vill ha hjälp att välja.
När dina LinkedIn-mätvärden hamnar i ett kalkylark automatiskt slutar du diskutera vad som funkade och börjar bygga vidare på det. Sätt upp det, låt det köra och lägg din uppmärksamhet på nästa inlägg.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.