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

Shopify + Google Sheets: enhetlig produktcopy

Rickard Andersson Partner, Nodenordic.se

Dina produktsidor ska inte kännas som en aldrig sinande redigeringskö. Men när du hanterar dussintals (eller hundratals) SKU:er blir texterna snabbt inkonsekventa. En person skriver ”premiumläder”, en annan skriver ”äkta läder”, och plötsligt felsöker du ton och korrekthet i stället för att sälja.

E-handelsansvariga brukar se det först. Marketing leads märker det när SEO:n tappar och returerna börjar smyga upp. Och byråteam som skriver om kunders kataloger? Samma röra. Den här Shopify copy automation skapar tydliga, varumärkesanpassade beskrivningar utifrån produktbilder och spårar sedan varje utkast i Google Sheets så att du kan granska, godkänna och publicera med mindre risk.

Nedan ser du hur flödet körs, var texterna kommer ifrån och vad du behöver för att få det live utan att göra det till ett ”stort techprojekt”.

Så fungerar den här automatiseringen

Hela n8n-flödet, från trigger till slutresultat:

n8n Workflow Template: Shopify + Google Sheets: enhetlig produktcopy

Problemet: produktbeskrivningar glider iväg, och du betalar för det

De flesta butiker har inte ett ”copywriting-problem”. De har ett operationsproblem. Nya produkter läggs in, bilder ändras, leverantörer skickar ofullständig info och teamet fyller luckorna manuellt. Det är då misstagen händer. Någon gissar ett material som inte syns. En annan kopierar en gammal mall som inte passar den här SKU:n. Sedan redigerar du igen, korrekturläser igen och omformaterar body_html för Shopify-teman, vilket ärligt talat är den värsta sortens sitta-syssla. Under tiden växer katalogen och dina standarder hamnar tyst på efterkälken.

Friktionen byggs på. Här är var det oftast brister.

  • Beskrivningar skrivs utan en konsekvent källa till sanning, så varje nyanställd levererar en ny ”stil”.
  • Manuell text introducerar onödig risk eftersom personer spekulerar om detaljer som inte är bekräftade av produktbilderna.
  • Du tappar tid på fram-och-tillbaka-granskningar i Slack eller e-post eftersom det inte finns en enda plats som spårar status, utkast och fel.
  • När du väl bestämmer dig för att ”fixa katalogen” fastnar du i batcharbete vid sämsta möjliga tidpunkt (lanseringsveckan).

Lösningen: bildförankrade utkast + granskningskontroll i Google Sheets

Det här n8n-flödet gör din Shopify-katalog till en strukturerad, spårbar produktionslina för produkttexter. Det kontrollerar regelbundet Shopify efter produkter som har bilder men tom beskrivning, och hämtar bara artiklar som matchar dina regler (till exempel en säsongstagg som currSeas:SS2025). Sedan analyserar GPT‑4o Vision produktbilden och extraherar enbart det som är synligt sant (material, stängningstyp, klackform, sula och så vidare). Därefter skriver Claude 3.5 Sonnet själva beskrivningen i ett styrt format: kort, nyttodriven, konsekvent ton och korrekt formaterad HTML som fungerar bra med Shopify-teman. Om du vill ha extra träffsäkerhet kring leverantörs- eller varumärkespåståenden kan Perplexity ta fram officiell kontext så att du slipper gissa.

Allt går via Google Sheets: produkter förbereds, utkast skrivs tillbaka för granskning och du spårar ”Redo”, ”Under granskning”, ”Godkänd” eller vilken status du föredrar. Fel loggas också med förklaringar på vanlig svenska, så att det inte tar en eftermiddag att åtgärda en trasig behörighet.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du lägger in 50 nya produkter på en vecka. En typisk manuell process tar ungefär 10 minuter per SKU för att granska bilder, skriva en beskrivning, formatera den för Shopify och klistra in den. Det är cirka 8 timmar, och det blir oftast mer när redigeringarna börjar. Med det här flödet blir ”arbetet” granskning: du kanske lägger 1–2 minuter per SKU på att godkänna utkast i Google Sheets, vilket är runt 1–2 timmar totalt. Resten kör på schema varannan minut, så din backlog växer inte till en snöboll.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Shopify Admin API access token för Products read och Orders read
  • Google Sheets för att förbereda produkter, spåra status och revidera
  • OpenAI API-nyckel (hämta den från din OpenAI-dashboard)
  • OpenRouter API-nyckel (hämta den från ditt OpenRouter-konto)
  • Perplexity API-nyckel (hämta den från dina Perplexity API-inställningar)

Svårighetsgrad: Medel. Du kopplar konton, klistrar in API-nycklar och mappar några kolumner i arket, men du behöver inte skriva kod.

Vill du inte sätta upp detta själv? Prata med en automatiseringsexpert (gratis 15 minuters konsultation).

Så fungerar det

Ett schema (och valfri manuell körning) startar flödet. Flödet kör på en tät timer för textgenerering, plus ett separat dagligt schema för säljanalyser. Du kan även trigga genereringsflödet manuellt när du vill testa på en liten batch.

Shopify-produkter hämtas och filtreras. n8n anropar Shopify REST API, går igenom sidor via Link-headers och sparar page_info-pekaren i ett ProcessingState-ark så att nästa körning kan fortsätta säkert. Ett kodfilter behåller bara kvalificerade artiklar, som produkter med bild och utan nuvarande beskrivning.

AI genererar ”säker” copy utifrån det som syns. GPT‑4o Vision extraherar fysiska attribut från bilden, sedan skriver Claude den kundnära beskrivningen enligt dina formateringsregler. Perplexity kan lägga till verifierad kontext om en leverantör eller ett varumärke när du behöver det, vilket hjälper dig att undvika påhittade påståenden.

Google Sheets blir din kontrollpanel. Utkast, statusar och fel skrivs till specifika flikar (Products, Error_log, Sales Analytics), så granskning blir centraliserad och sökbar. Du kan enkelt justera prompten för din varumärkesröst och dina regler för statusen ”redo för AI” efter behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera triggertypen

Det här arbetsflödet använder flera triggers för att starta produktbearbetning, försäljningsspårning och manuella körningar.

  1. Lägg till och konfigurera Five Minute Cron så att den körs var 5:e minut med Cron Expression inställt på */5 * * * *.
  2. Konfigurera Scheduled Trigger A så att den kör produktbeskrivningspipelinen med ert önskade intervall (använder standardregeln för schema enligt konfiguration).
  3. Konfigurera Scheduled Trigger B för daglig försäljningsspårning med Trigger At Hour inställt på 14 och Trigger At Minute inställt på 1.
  4. Behåll Manual Run Trigger för manuell testning och ad-hoc-körningar av produktflödet.
  5. Aktivera Error Event Trigger för att fånga arbetsflödesfel för felanalysgrenen.

Steg 2: anslut Google Sheets

Flera Google Sheets-noder hanterar produktköer, bearbetningsstatus, försäljningsloggning och felloggar.

  1. I Retrieve Sheet Rows A väljer ni Document [YOUR_ID] och Sheet Products, och behåller filtret Status inställt på Ready for AI Description.
  2. I Retrieve Sheet Rows B väljer ni Document [YOUR_ID] och Sheet ProcessingState.
  3. I Append Sheet Row B bekräftar ni att den lägger till rader i Sheet Products med mappade fält som Product ID {{$json['Product ID']}} och Image url {{$json['Image URL']}}.
  4. I Update Sheet Row A behåller ni Operation inställt på update och mappar batch number till {{$json['batch number']}} och page_info_next till {{$json.page_info}}.
  5. I Update Sheet Row Main säkerställer ni att Operation är update och att Matching Columns inkluderar Product ID.
  6. Konfigurera Append Sales Row och Append Zero Sales Row så att de skriver till shopify_daily_sales med Date inställt på {{ DateTime.now().setZone('Australia/Melbourne').minus({days: 1}).toISODate() }} och Total Sales till {{$json.sum_current_price}} eller =0.
  7. Konfigurera Log Error to Sheet så att den lägger till i Error_log med timestamp inställt på {{$now}} och Reason of Error inställt på {{$fromAI('Reason_of_Error', ``, 'string')}}.
  8. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter till alla Google Sheets-noder (7+ noder hanterar produktdata, status, försäljningsspårning och felloggar).

Steg 3: anslut Shopify och hantering av paginering

Shopify-produkter och ordrar hämtas via HTTP-förfrågningar, där pagineringen bearbetas och lagras för batch-spårning.

  1. I Retrieve Shopify Products ställer ni in URL till https://peter-sheppard.myshopify.com/admin/api/2024-04/products.json och frågeparametrarna limit till 200 och page_info till {{$json.page_info_next}}.
  2. Inloggningsuppgifter krävs: Anslut era shopifyAccessTokenApi-inloggningsuppgifter till Retrieve Shopify Products.
  3. I Parse Pagination Data behåller ni JavaScript-koden som den är för att extrahera page_info_next från Link-headern.
  4. I Pagination Check säkerställer ni att villkoret kontrollerar att {{$json.has_next_page}} är true.
  5. I Map Batch Fields ställer ni in batch number till {{$('Retrieve Sheet Rows B').item.json['batch number'] + 1}} och page_info till {{$json.page_info}}.

Retrieve Shopify Products skickar utdata parallellt till både Filter Eligible Products och Parse Pagination Data.

Steg 4: konfigurera produktfiltrering och vision-analys

Det här avsnittet filtrerar kvalificerade produkter, validerar ID:n och extraherar visuella attribut från bilder.

  1. I Filter Eligible Products behåller ni JavaScript-filterlogiken som kräver giltiga bilder, tom body_html och taggen currSeas:SS2025.
  2. I Validate Product ID bekräftar ni att villkoret kontrollerar att {{$json['Product ID']}} inte är tomt.
  3. I Cap Items A ställer ni in Max Items till 10 för att begränsa belastningen på AI-bearbetningen.
  4. I Image Attribute Review behåller ni Resource inställt på image och Image URLs inställt på {{$json['Image url']}}.
  5. Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Image Attribute Review.
  6. I Map Vision Fields mappar ni content till {{$json.content}} och produktfälten från Cap Items A såsom Product ID {{$('Cap Items A').item.json['Product ID']}}.

Tips: Säkerställ att ert Products-ark har en kolumn Image url som är ifylld, annars kommer Image Attribute Review att returnera tomma resultat och trigga omförsök.

Steg 5: konfigurera AI-copywriting och parsning

Copywriting-agenten genererar strukturerad JSON med hjälp av en språkmodell, minne och verktygsintegrationer.

  1. I Shopify Copywriting Agent behåller ni Text-prompten enligt konfiguration och säkerställer att alternativet hasOutputParser är aktiverat.
  2. OpenRouter Chat Engine är ansluten som språkmodell för Shopify Copywriting Agentinloggningsuppgifter krävs: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Engine.
  3. Structured Result Parser är ansluten som output parser för Shopify Copywriting Agent — säkerställ att den använder JSON-schemaexemplet för fält som product_id och generated_description.
  4. OpenRouter Chat Engine B är ansluten som språkmodell för Structured Result Parserinloggningsuppgifter krävs: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Engine B.
  5. Perplexity Query Tool är kopplat till Shopify Copywriting Agent för research om leverantörens ursprung — inloggningsuppgifter krävs: Anslut era perplexityApi-inloggningsuppgifter i Perplexity Query Tool (lägg till inloggningsuppgifter i verktygsnodens överordnade agentkontext).
  6. Conversation Memory B tillhandahåller minne för Shopify Copywriting Agent; inga inloggningsuppgifter krävs, men behåll Session Key som {{$now.minute}}.
  7. I Update Sheet Row Main säkerställer ni att mappningarna använder parsade utdatafält som {{$json.output.generated_description}} och matchar på Product ID.

⚠️ Vanlig fallgrop: Om Structured Result Parser returnerar ogiltig JSON kan Update Sheet Row Main misslyckas med att mappa utdatafälten. Behåll Auto Fix aktiverat.

Steg 6: konfigurera flödet för försäljningsspårning

Den här grenen hämtar betalda ordrar för föregående dag, summerar totaler och loggar resultat till Google Sheets.

  1. I Order API Request behåller ni URL inställt på https://re3-shop.myshopify.com/admin/api/2024-04/orders.json och frågeparametrar för föregående dag med {{$now.setZone('Australia/Melbourne').minus({days: 1}).startOf('day')}} och {{$now.setZone('Australia/Melbourne').minus({days: 1}).set({ hour: 23, minute: 59, second: 59, millisecond: 999 })}}.
  2. Inloggningsuppgifter krävs: Anslut era shopifyAccessTokenApi-inloggningsuppgifter till Order API Request.
  3. I Orders Present Check behåller ni villkoret som verifierar att {{$json.orders}} inte är tomt.
  4. Om ordrar finns delar Split Orders List upp arrayen med fieldToSplitOut inställt på orders, och därefter mappar Map Order Fields current_price till {{$json.current_total_price}}.
  5. Summarize Totals aggregerar current_price med Aggregation inställt på sum, och därefter skriver Append Sales Row dagens total.
  6. Om inga ordrar finns loggar Append Zero Sales Row ett Total Sales-värde på =0.

Steg 7: lägg till felhantering

Fel fångas, analyseras av en agent och loggas i ett Google Sheet.

  1. Säkerställ att Error Event Trigger är kopplad till Failure Analysis Agent för att fånga körningsfel.
  2. OpenRouter Chat Engine C är ansluten som språkmodell för Failure Analysis Agentinloggningsuppgifter krävs: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Engine C.
  3. Perplexity Query Tool B är kopplat som verktyg för Failure Analysis Agentinloggningsuppgifter krävs: Anslut era perplexityApi-inloggningsuppgifter i Perplexity Query Tool B (lägg till inloggningsuppgifter i verktygsnodens överordnade agentkontext).
  4. Log Error to Sheet är också kopplad som ett verktyg till Failure Analysis Agentinloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter till Log Error to Sheet (inloggningsuppgifterna hör till verktygsnoden, men dess utdata styrs av agenten).
  5. Basic Memory Cache tillhandahåller minne till Failure Analysis Agent; behåll Session Key inställt på {{$now.minute}}.

Steg 8: testa och aktivera ert arbetsflöde

Kör kontrollerade tester för att bekräfta att varje gren exekverar korrekt innan ni aktiverar schemalagda triggers.

  1. Klicka på Execute WorkflowManual Run Trigger för att testa produktbeskrivningsflödet, och bekräfta sedan att rader uppdateras av Update Sheet Row Main med en Statusgenerated.
  2. Kör tillfälligt Scheduled Trigger B manuellt för att verifiera att Append Sales Row skriver ett Total Sales-värde och korrekt datum.
  3. Framkalla ett fel (t.ex. inaktivera en credential) för att bekräfta att Error Event Trigger loggar till Log Error to Sheet.
  4. När testerna passerar växlar ni arbetsflödet till Active för att aktivera schemalagda körningar för Five Minute Cron, Scheduled Trigger A och Scheduled Trigger B.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Shopify-behörigheter kan löpa ut eller sakna scopes. Om produkt-hämtningar misslyckas, kontrollera först behörigheterna för din Shopify Admin API-token (Products read, Orders read) i Shopify-admin.
  • Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du att redigera output för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Shopify copy automation?

Räkna med cirka 45 minuter om du redan har API-åtkomst och Google Sheetet är skapat.

Behöver jag kunna koda för att automatisera Shopify-texter?

Nej. Du kommer mest att koppla konton och matcha kolumner i arket mot fält.

Är n8n gratis att använda för det här Shopify copy automation-flödet?

Ja. n8n har ett gratis self-hosted-alternativ 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 API-användning för OpenAI, OpenRouter (Claude) och Perplexity, vilket beror på hur många produkter du bearbetar.

Var kan jag hosta n8n för att köra den här Shopify copy automation?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade exekveringar men kräver grundläggande serverhantering.

Kan jag anpassa det här Shopify copy automation-flödet efter min varumärkesröst och produktregler?

Ja, och det bör du. Du kan ändra filtreringslogiken som väljer kvalificerade produkter (till exempel kräva en säsongstagg eller hoppa över vissa leverantörer) och du kan justera prompterna i noderna Image Attribute Review och Shopify Copywriting Agent så att output matchar din tonalitet. Vanliga justeringar är att tvinga en kortare beskrivningslängd, lägga till din ”säg inte”-lista och göra texterna könsanpassade baserat på dina befintliga produkttaggar.

Varför fallerar min Shopify-anslutning i det här flödet?

Oftast är det en utgången token eller saknade API-scopes. Skapa om din Shopify Admin API access token (eller installera om den anpassade appen), uppdatera sedan behörigheten i n8n och kör om ett enda test på en produkt. Det kan också vara en felaktig API-version i sökvägen, eller rate limiting om du försöker bearbeta för många produkter på en gång. Kolla posten i Error_log-arket eftersom det här flödet skriver både en teknisk hint och en förklaring på vanlig svenska.

Hur många produkter klarar den här Shopify copy automation?

Det är byggt för skala: Shopify-hämtningar körs i sidor med upp till 200 produkter, och flödet sparar pagineringsstatus så att det kan återuppta korrekt. På n8n Cloud beror kapaciteten på din plans månatliga exekveringar, eftersom varje batchkörning och varje AI-anrop räknas. Om du self-hostar begränsas du främst av din server och API:ernas rate limits. I praktiken börjar de flesta team med en liten gräns (som 10 produkter per körning), bekräftar kvaliteten och ökar sedan volymen när granskningarna flyter.

Är den här Shopify copy automation bättre än att använda Zapier eller Make?

För det här flödet är n8n oftast en bättre match eftersom det klarar paginering, förgrenad logik och strukturerade outputs utan att bli en dyr labyrint av flera Zaps. Self-hosting är också en stor fördel om du bearbetar stora kataloger. Zapier eller Make kan ändå fungera om du bara vill ha ett lätt flöde ”ny rad → generera text → uppdatera produkt” och inte bryr dig om återupptagbar paginering eller feldiagnostik. Prata med en automatiseringsexpert om du vill ha en snabb rekommendation baserat på antal SKU:er och er granskningsprocess.

När detta väl är i drift slutar produkttexter att vara en återkommande brandkårsutryckning. Du får korrekta utkast, en granskningshistorik i Google Sheets och en katalog som förblir konsekvent när den växer.

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