Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 21, 2026

Google Sheets + OpenAI: utkast redo att publicera

Rickard Andersson Partner, Nodenordic.se

Din innehållsplan ser bra ut … tills det är dags att faktiskt producera utkasten. Ämnena ligger utspridda, researchen bor i 12 webbläsarflikar och det “slutliga” Google-dokumentet blir på något sätt fem versioner som heter “final-final-2”.

Det är här automationen Sheets OpenAI drafts hjälper. Marknadschefer som försöker hålla en jämn publiceringstakt märker det först, men content leads och små team som levererar sidor åt kunder fastnar i samma flaskhals. Du behöver jämn output utan att lägga in ännu ett möte.

Det här arbetsflödet gör en enkel rad i Google Sheets till ett researchat, strukturerat utkastpaket (plus bildhantering) och sparar det prydligt för publicering. Du får se vad det gör, vad du behöver och var team oftast går snett.

Så fungerar den här automationen

Se hur detta löser problemet:

n8n Workflow Template: Google Sheets + OpenAI: utkast redo att publicera

Utmaningen: att förvandla ämnen till publicerbara utkast (konsekvent)

De flesta team har inte brist på idéer. De fastnar i det stökiga mellanläget: research, disposition, skrivande, städa upp formatering, hålla reda på rätt bild och få allt till en plats där granskare faktiskt hittar det. Det är inte svårt, men det avbryts hela tiden. Du växlar verktyg, tappar kontext och dubbelkollar samma detaljer för att du inte litar på att “senaste” versionen verkligen är den senaste. Och så frågar någon: “Hur ligger vi till med den posten?” och du lägger 10 minuter bara på att svara.

Det bygger snabbt på. Här är var det brukar fallera i verkligheten.

  • Research görs om eftersom den sparas som länkar i Slack, inte kopplas till utkastet.
  • Utkast kommer tillbaka och behöver strukturella ändringar (inte bara språkjusteringar), vilket saktar ner granskningar och frustrerar alla.
  • Bilder är den tysta tidsboven: ladda ner från Drive, döpa om, ladda upp igen och försöka skapa delbara länkar.
  • Utan en gemensam lagringskälla som en databas blir “content ops” ett minnestest för människor.

Lösningen: en Google Sheets → research → utkast-pipeline som sparar allt

Den här automationen bevakar ett Google Sheet efter nya ämnen och gör grovjobbet åt dig. När en ny rad dyker upp kör den Tavily-research för att hämta in några relevanta källor, matar in kontexten i en OpenAI-driven innehållsagent och genererar strukturerad text avsedd för olika användningsfall (till exempel en webbsideversion, ett blogginlägg och en landningssideversion). Därefter städar den upp texten så att du slipper ta bort konstiga formateringsartefakter. Om din rad innehåller en bild-URL från Google Drive laddar den ner bilden, laddar upp den till Nextcloud och skapar en offentlig delningslänk så att ditt utkast kan referera till en stabil bild-URL. Slutligen sparar den hela innehållspaketet i Supabase, så att hämtning blir enkel och konsekvent.

Arbetsflödet startar med en trigger från en rad i Sheets. Tavily levererar färsk research-kontext, OpenAI producerar utkasten och flödet hanterar bildöverlämningen från Google Drive till Nextcloud. Supabase blir “hemmabasen” där utkast och bild-URL:er ligger tillsammans, redo för publicering eller granskning.

Vad som förändras: före vs. efter

Effekt i verkligheten

Säg att du publicerar 5 innehållsdelar i veckan och att varje del behöver research, ett utkast, städning och bildhantering. Manuellt blir det kanske 30 minuter research, ungefär en timmes skrivande och ytterligare 20 minuter med bild och länkar, alltså runt 2 timmar per del. Med det här flödet lägger du in en ämnesrad i Google Sheets (cirka 2 minuter) och väntar sedan på generering och filhantering (ofta omkring 10–20 minuter i bakgrunden). Du granskar och justerar fortfarande, men du lägger inte längre förmiddagen på rutinjobb.

Krav

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra ämnen och bild-URL:er.
  • OpenAI API för att generera utkast (åtkomst till GPT-4).
  • Tavily API-nyckel (hämta den i din Tavily-dashboard).
  • Google Drive för att lagra och hämta bilder.
  • Nextcloud för att hosta bilder och skapa offentliga URL:er.
  • Supabase för att spara utkast och metadata i en tabell.

Kunskapsnivå: Medel. Du skriver ingen mjukvara, men du kopplar API:er, sätter behörigheter och mappar fält noggrant.

Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så flödar arbetsflödet

Ett nytt ämne landar i Google Sheets. Flödet övervakar ditt ark efter nya rader som innehåller en TITLE och (valfritt) en IMAGE_URL.

Research hämtas in automatiskt. Tavily söker på webben efter några relevanta källor om ämnet, så utkastet inte bygger på magkänsla eller föråldrade anteckningar.

OpenAI genererar strukturerade utkast. Innehållsagenten tar fram text för flera kanaler (till exempel: webbversion, bloggversion, landningssideversion), och sedan tar ett städsteg bort spretig formatering så att det läser som om en människa skrivit det.

Bilden hanteras end-to-end. Om du angav en Drive-länk laddar flödet ner bilden från Google Drive, laddar upp den till Nextcloud och skapar en offentlig delnings-URL som du tryggt kan använda i publiceringsverktyg.

Allt sparas tillsammans för återanvändning. Det färdiga innehållspaketet (inklusive Nextcloud-bildens URL och kategori) sparas i Supabase, vilket gör att dina utkast blir sökbara och konsekventa.

Du kan enkelt justera researchdjupet och innehållsformaten så att de matchar din redaktionella process. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: Konfigurera Google Sheets-triggern

Ställ in arbetsflödets startpunkt så att nya rader i ert kalkylark startar innehållspipelinen.

  1. Välj Sheets Row Trigger och anslut den till ert kalkylark.
  2. Inloggningsuppgifter krävs: Anslut era googleSheetsTriggerOAuth2Api-inloggningsuppgifter.
  3. Ställ in Document till [YOUR_ID] och Sheet till gid=0 (Sheet1).
  4. Ställ in Poll Times till everyMinute för att ofta kontrollera om det finns nya rader.

Om ni vill göra färre API-anrop under uppsättningen kan ni tillfälligt ändra Poll Times till ett längre intervall och sedan återställa senare.

Steg 2: Koppla Google Sheets till research-insikter

Använd kalkylarkets titelkolumn för att hämta research-kontekst innan AI-innehållet skapas.

  1. Öppna Tavily Insight Fetcher och ställ in Query till ={{ $json.TITLE }}.
  2. Ställ in Topic till general, Max Results till 3 och Search Depth till advanced.
  3. Inloggningsuppgifter krävs: Anslut era tavilyApi-inloggningsuppgifter.
  4. Verifiera att körflödet fortsätter från Sheets Row TriggerTavily Insight FetcherCross-Channel Content Builder.

Steg 3: Sätt upp AI-innehållsgenerering

Konfigurera AI-agenten, dess modell och strukturerad parsning för att generera innehåll för webbplats, blogg och landningssida.

  1. Öppna Cross-Channel Content Builder och bekräfta att Text använder prompten med flera ämnen med uttryck som {{ $json.results[0].title }} och {{ $json.results[0].content }}.
  2. Säkerställ att Cross-Channel Content Builder har Has Output Parser aktiverat.
  3. Öppna OpenAI Chat Model och ställ in modellen till gpt-4.1-mini.
  4. Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Chat Model.
  5. Bekräfta att Structured Output Parser är ansluten som output parser för Cross-Channel Content Builder med det befintliga JSON-schemaexemplet.
  6. Bekräfta att Content Strategy Thinker är ansluten som ett AI-verktyg för Cross-Channel Content Builder.

Påminnelse om inloggningsuppgifter: Content Strategy Thinker och Structured Output Parser är AI-undernoder; inloggningsuppgifter ska läggas till i OpenAI Chat Model, inte i dessa undernoder.

Steg 4: Rensa AI-utdata och hämta bilder

Normalisera AI-svaret och hämta bildresursen från Google Drive.

  1. I Text Cleanup Script behåller ni den medföljande JavaScript-koden som rensar fälten title, Article och category.
  2. Verifiera att körflödet fortsätter från Cross-Channel Content BuilderText Cleanup ScriptDrive Image Fetcher.
  3. Öppna Drive Image Fetcher och ställ in Operation till download.
  4. Ställ in File ID till ={{ $('Sheets Row Trigger').item.json.IMAGE_URL }}.
  5. Inloggningsuppgifter krävs: Anslut era googleDriveOAuth2Api-inloggningsuppgifter.

⚠️ Vanlig fallgrop: Säkerställ att cellen IMAGE_URL innehåller en giltig delningslänk från Google Drive eller ett fil-ID, annars kommer Drive Image Fetcher att misslyckas.

Steg 5: Konfigurera bilduppladdning och delning

Ladda upp bilden till NextCloud och skapa en delbar länk för lagring.

  1. Öppna NextCloud Image Upload och ställ in Path till =/images/{{ $('Sheets Row Trigger').item.json.TITLE }}.jpg.
  2. Aktivera Binary Data Upload i NextCloud Image Upload.
  3. Inloggningsuppgifter krävs: Anslut era nextCloudApi-inloggningsuppgifter i NextCloud Image Upload.
  4. I NextCloud Share Link Maker ställer ni in Operation till share, Share Type till 3 och Path till =/images/{{ $('Sheets Row Trigger').item.json.TITLE }}.jpg.
  5. Inloggningsuppgifter krävs: Anslut era nextCloudApi-inloggningsuppgifter i NextCloud Share Link Maker.

Steg 6: Konfigurera lagring av innehåll i Supabase

Spara det rensade innehållet och bildens URL i er Supabase-tabell.

  1. Öppna Supabase Content Saver och ställ in Table till works.
  2. Mappa fält i Fields enligt följande: title={{ $('Text Cleanup Script').item.json.title }}, content={{ $('Text Cleanup Script').item.json.article }}, image_url={{ $json.url }}/preview, category={{ $('Text Cleanup Script').item.json.category }}.
  3. Inloggningsuppgifter krävs: Anslut era supabaseApi-inloggningsuppgifter.

Steg 7: Lägg till felhantering

AI-agenten är konfigurerad att fortsätta vid fel och kan skicka misslyckanden till ett sekundärt arbetsflöde.

  1. Öppna Cross-Channel Content Builder och bekräfta att den skickar felutdata till Run Error Workflow (Configure Required).
  2. I Run Error Workflow (Configure Required) ställer ni in Workflow till ett giltigt arbetsflödes-ID så att fel hanteras korrekt.

⚠️ Vanlig fallgrop: Om Run Error Workflow (Configure Required) inte har något arbetsflöde valt kommer felhändelser att gå förlorade och felsökningen blir svårare.

Steg 8: Testa och aktivera ert arbetsflöde

Verifiera hela flödet innan ni slår på det i produktion.

  1. Lägg manuellt till en ny rad i arket som används av Sheets Row Trigger med TITLE och IMAGE_URL ifyllda.
  2. Kör arbetsflödet en gång och bekräfta körvägen: Sheets Row TriggerTavily Insight FetcherCross-Channel Content BuilderText Cleanup ScriptDrive Image FetcherNextCloud Image UploadNextCloud Share Link MakerSupabase Content Saver.
  3. Kontrollera att Supabase Content Saver skapar en ny rad i works med fälten title, content, image_url och category ifyllda.
  4. Klicka på Activate i arbetsflödet för att aktivera kontinuerlig bearbetning.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Se upp med

  • Google Sheets- och Google Drive-inloggningar kan löpa ut eller kräva specifika behörigheter. Om saker slutar fungera, kontrollera credential-status i n8n och bekräfta först att arket är delat med rätt Google-konto.
  • Om du använder Wait-noder eller extern rendering varierar processtider. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du redigera utdata för alltid.

Vanliga frågor

Hur snabbt kan jag implementera den här Sheets OpenAI drafts-automationen?

Räkna med cirka 1–2 timmar när dina konton och nycklar är klara.

Kan icke-tekniska team implementera den här processen för utkastgenerering?

Ja, men du vill ha en “ops-inriktad” person som hanterar inloggningar och behörigheter. När allt är kopplat är det lika enkelt att använda som att lägga till rader i ett Google Sheet.

Är n8n gratis att använda för det här Sheets OpenAI drafts-arbetsflödet?

Ja. n8n har ett gratis alternativ för egen 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 in kostnader för OpenAI- och Tavily-API.

Var kan jag hosta n8n för att köra den här automationen?

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 serveradministration.

Hur anpassar jag den här Sheets OpenAI drafts-lösningen till mina specifika utmaningar?

Börja i instruktionerna till innehållsagenten (delen “Cross-Channel Content Builder”) och ändra ton, struktur och obligatoriska sektioner så att det matchar ditt varumärke. Om du inte behöver bildhantering kan du ta bort Google Drive-hämtaren och stegen för uppladdning/delning i Nextcloud och ändå spara utkastet i Supabase. Vill du ha ett annat researchbeteende? Justera Tavily-noden för att ändra sökdjup och hur många källor den returnerar. Du kan också utöka Supabase-fälten för att lagra extra metadata som författare, funnel-steg eller målsökord.

Varför misslyckas min Google Sheets-anslutning i det här arbetsflödet?

Oftast handlar det om behörigheter. Se till att kalkylarket är delat med samma Google-identitet som används i dina n8n-credentials, och dubbelkolla sedan kalkylarks-ID:t i trigger-noden. Om det fortfarande misslyckas kan ditt OAuth-samtycke eller scopes vara ofullständiga, eller så har credentialn i n8n helt enkelt löpt ut och behöver anslutas igen.

Vilken kapacitet har den här Sheets OpenAI drafts-lösningen?

Om du kör egen hosting finns ingen körningsgräns från n8n i sig (din server och API-gränser blir flaskhalsen). I praktiken kör många team dussintals utkast per dag utan problem, så länge rate limits i OpenAI/Tavily och skrivningar till Supabase är korrekt konfigurerade.

Är den här Sheets OpenAI drafts-automationen bättre än att använda Zapier eller Make?

Ofta, ja. Det här flödet bygger på mer avancerad logik (research + strukturerad AI-output + textstädning + filhantering + databaslagring), och n8n är helt enkelt bekvämare när ett flöde har flera grenar och “om det här, så det där”-regler. Egen hosting är också viktigt om du vill skala och inte vill att varje extra uppgift ska kosta mer. Zapier eller Make kan fortfarande passa bra för väldigt små, tvåstegsautomationer, eller när teamet vägrar att drifta något själva, helt enkelt. Om du är osäker, prata med en automationsexpert och matcha det mot din volym och granskningsprocess.

När detta väl rullar blir ditt kalkylark en produktionskö, inte en önskelista. Flödet tar hand om de repetitiva delarna så att du kan lägga tiden på beslut som faktiskt driver resultat.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal