Att kopiera citat från Goodreads ser enkelt ut tills du har gjort det 50 gånger. Flikar spårar ur, formateringen går sönder och du står där med ett stökigt dokument som ingen kan söka i eller återanvända.
Den här automatiseringen för Goodreads-citat är en livräddare för marknadsförare som bygger swipefiler, innehållsstrateger som samlar källmaterial och små team som vill systematisera research utan att anställa en VA. Du får ett korrekt formaterat citatbibliotek i Google Sheets, redo att filtrera, tagga och plocka in i innehåll.
Nedan ser du hur arbetsflödet hämtar Goodreads-sidor via Bright Data, använder AI för att extrahera citat till en konsekvent struktur och sedan sparar resultatet där ditt team redan jobbar.
Så här fungerar automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Bright Data + Google Sheets, korrekt formaterade citat
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set the fields", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Quotes Extractor", 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/>Perform Bright Data Web Requ.."]
n1 --> n4
n2 -.-> n3
n4 --> n3
n0 --> n1
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 aiModel
class n4 api
classDef customIcon fill:none,stroke:none
class n4 customIcon
Utmaningen: göra Goodreads-sidor till användbara citat
Goodreads är bra för läsning. Det är inte bra för att bygga ett citatbibliotek som du faktiskt kan använda. Du hittar en sida med en handfull citat och sedan börjar grovjobbet: kopiera, klistra in, fixa radbrytningar, ta bort konstiga mellanrum, lägg till författaren, lägg till boken, lägg till URL:en, upprepa. Missar du en detalj kan du inte spåra citatet senare, vilket är ärligt talat den värsta delen när du försöker ange källor eller bygga trovärdigt innehåll. Och om du samlar citat för flera projekt får du dubbletter, inkonsekvent formatering och ett kalkylark som känns ”nästan användbart” men aldrig riktigt blir det.
Det summerar snabbt. Här är vad som fallerar i verkligheten.
- Du tappar cirka 10 minuter per sida bara på att rensa text och ta bort skräpformatering.
- Citat sparas utan konsekventa fält, så sökning på författare, bok eller tema blir gissningslek.
- Manuell kopiering ökar felen, särskilt när sidor laddas olika eller citat radbryts över flera rader.
- Team kan inte samarbeta smidigt eftersom alla klistrar in i sina egna dokument och slår ihop senare.
Lösningen: skrapa Goodreads, extrahera citat, spara till Sheets
Det här arbetsflödet gör Goodreads-citatsidor till strukturerad data som du kan lagra och återanvända. Du börjar med en fördefinierad lista med Goodreads-URL:er (sidorna du bryr dig om). n8n skickar dessa URL:er till en Bright Data-collector som hämtar sidinnehållet stabilt och returnerar den text du annars hade behövt kopiera för hand. Sedan läser ett AI-extraktionssteg (drivet av en Google Gemini-chatmotor) texten och plockar ut citatposter i ett förutsägbart JSON-format, så du slipper slumpmässiga radbrytningar och fält som är ”nästan rätt”. Därefter kan det skrivas till Google Sheets som ett korrekt formaterat, sökbart bibliotek som teamet kan filtrera på författare, tema eller käll-URL.
Arbetsflödet startar med en manuell körning i n8n och sätter sedan indatafält (inklusive din Goodreads-URL-lista). Bright Data hämtar sidtexten och AI-noden extraherar citatobjekt enligt ett definierat schema. Till sist är citatposterna redo att landa i Google Sheets, konsekvent formaterade varje gång.
Vad som ändras: före vs. efter
| Det här tar bort | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att du vill bygga en swipefil från 20 Goodreads-citatsidor för en kampanj. Manuellt: räkna med ungefär 10 minuter per sida när du inkluderar kopiering, formatering, lägga till författare/bok och klistra in URL:en, alltså cirka 3 timmar. Med det här arbetsflödet startar du det en gång (runt 5 minuter för att bekräfta dina URL:er och inloggningar), låter Bright Data hämta sidorna och låter AI-extraktorn strukturera citaten. Du lägger fortfarande lite tid på att granska resultatet, men det blir mer som 20 minuters QA i stället för en eftermiddag av monotont arbete.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Självhosting om du föredrar det (Hostinger fungerar bra)
- Bright Data för att skrapa Goodreads-sidor stabilt.
- Google Sheets för att lagra och söka i ditt citatbibliotek.
- Bright Data API-nyckel (hämta den i din Bright Data-kontopanel).
Kunskapsnivå: Nybörjare. Du kopplar inloggningar, klistrar in ett collector-ID och redigerar en URL-lista.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
Manuell start i n8n. Du klickar på kör när du är redo att uppdatera ditt citatbibliotek (perfekt för researchdagar i batch).
Indatafält tilldelas. Arbetsflödet sätter din fördefinierade lista med Goodreads-URL:er och eventuella andra värden som Bright Data-anropet behöver, som collector-ID.
Bright Data hämtar innehållet från Goodreads-sidan. n8n skickar en HTTP-request till Bright Data, som returnerar den skrapade texten så att du slipper hantera sidlayoutens egenheter eller manuell kopiering.
AI extraherar citatposter. Extraktionsnoden med Gemini läser texten och skickar ut citatobjekt enligt ett JSON-schema, så att varje rad följer samma struktur.
Du kan enkelt ändra Goodreads-URL-listan för att rikta in dig på nya författare, böcker eller ämnen utifrån dina behov. Se hela implementationsguiden nedan för anpassningsmöjligheter.
Steg-för-steg-guide för implementation
Steg 1: konfigurera den manuella triggern
Starta arbetsflödet med en manuell trigger så att ni kan testa pipelinen för citatextrahering vid behov.
- Lägg till noden Manual Launch Trigger som trigger.
- Koppla Manual Launch Trigger till Assign Input Fields.
Steg 2: anslut Bright Data
Förbered indata och konfigurera Bright Data-begäran som hämtar citatinnehållet.
- I Assign Input Fields lägger ni till två tilldelningar: sätt url till
https://www.goodreads.com/quotes/tag/freeoch sätt zone tillweb_unlocker1. - Öppna Bright Data API Request och sätt URL till
https://api.brightdata.com/request. - Ställ in Method på
POST, aktivera Send Body och aktivera Send Headers. - I Body Parameters sätter ni zone till
={{ $json.zone }}och url till={{ $json.url }}, och lägger sedan till format somrawsamt data_format sommarkdown. - Credential Required: Anslut era httpHeaderAuth-inloggningsuppgifter i Bright Data API Request.
Steg 3: konfigurera AI-extrahering
Använd AI-extraheraren för att tolka ut citat från det skrapade innehållet, med Gemini som motor.
- Öppna Extract Quote Entries och sätt Text till
=Extract the quotes from {{ $json.data }}. - Ställ in Schema Type på
manualoch klistra in detta i Input Schema:{ "type": "array", "properties": { "quote": { "type": "string" } } }. - Säkerställ att Gemini Chat Engine är ansluten som språkmodell för Extract Quote Entries.
- Credential Required: Anslut era googlePalmApi-inloggningsuppgifter i Gemini Chat Engine (AI-inloggningsuppgifter läggs till i den överordnade modellnoden).
Steg 4: konfigurera utdataflödet
Bekräfta körordningen så att begäran matar extraheraren utan parallella grenar.
- Verifiera att huvudflödet körs i denna ordning: Manual Launch Trigger → Assign Input Fields → Bright Data API Request → Extract Quote Entries.
- Säkerställ att det inte finns några parallella grenar; det här arbetsflödet körs sekventiellt.
Steg 5: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att validera begäran och AI-extraheringen, och aktivera sedan för produktion.
- Klicka på Execute Workflow i Manual Launch Trigger för att köra ett test.
- Bekräfta att Bright Data API Request returnerar innehåll och att Extract Quote Entries ger ut en array av
quote-strängar. - Om resultaten är tomma, kontrollera igen värdena för url och zone i Assign Input Fields samt uttrycksvärdena i Bright Data API Request.
- När allt är verifierat, växla arbetsflödet till Active för att aktivera löpande användning.
Se upp för
- Bright Data-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först din Bright Data-panel och collector-status.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in ert tonalitet/brand voice tidigt, annars kommer du redigera utdata i all evighet.
Vanliga frågor
Cirka 20 minuter om dina Bright Data- och Gemini-inloggningar är klara.
Ja. Du kommer inte att skriva kod, men du kommer att klistra in API-nycklar och uppdatera en lista med Goodreads-URL:er.
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 in Bright Data-användning och dina Gemini API-kostnader.
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger obegränsat antal körningar men kräver grundläggande serveradministration.
Du kan byta ut Goodreads-URL-listan i noden ”Assign Input Fields” och peka noden ”Bright Data API Request” mot ett annat collector-ID om du använder flera collectors. Många team justerar även extraktionsschemat i ”Extract Quote Entries” så att varje rad inkluderar taggar som tema, kampanj eller persona. Om du vill att utdata ska hamna direkt i Google Sheets, lägg till ett Google Sheets-steg ”Append row” efter extraktorn och mappa citatfälten till kolumner.
Oftast är det ett API-nyckelproblem eller att collector-ID:t i request-URL:en inte matchar en aktiv collector. Generera en ny Bright Data API-nyckel, uppdatera Header Auth-inloggningen i n8n och bekräfta att collectorn kör i ditt Bright Data-konto. Om requesten lyckas men returnerar tom text kan URL-listan vara felaktigt formaterad eller collectorn vara konfigurerad för ett annat källformat.
Den begränsas i praktiken av din Bright Data-plan, dina Gemini rate limits och hur många URL:er du matar in per körning.
Ofta, ja, eftersom detta är mer än ”flytta data från A till B”. Du skrapar sidinnehåll och extraherar sedan strukturerade objekt via ett AI-steg, vilket vanligtvis kräver förgreningar, retries och viss anpassad mapping. n8n hanterar den komplexiteten utan att varje liten logikändring blir ett betalt tillägg. Zapier eller Make kan fortfarande fungera för enklare flöden, men skrapning plus AI-extraktion blir snabbt pilligt där. Prata med en automationsexpert om du vill ha en snabb rekommendation för din exakta setup.
När detta väl rullar slutar det vara en seg sidouppgift att bygga ett citatbibliotek. Arbetsflödet tar hand om den repetitiva efterstädningen så att du kan fokusera på att använda citaten i riktigt innehåll.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.