Produktlistningar låter enkelt tills du har 30 stycken som väntar. Då blir det bildnedladdningar, copy, alt-texter, SEO-fält, taggar och en massa små kontroller som på något sätt snor hela din eftermiddag.
Shopify-butiksägare känner av det först. Men e-handelsgrundare som släpper nya produkter varje vecka och byråteam som bygger kataloger fastnar i samma loop. Den här automatiseringen för Shopify Gemini listings förvandlar en produktbild plus några detaljer till ett publiceringsklart utkast, utan ett copy-paste-maraton.
Nedan ser du exakt vad flödet skapar, vad det automatiserar i n8n och hur du anpassar det efter dina produktkategorier.
Så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Shopify + Google Gemini: produktlistningar skrivna från bilder
flowchart LR
subgraph sg0["Image Analysis Engin Flow"]
direction LR
n0["<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/webhook.dark.svg' width='40' height='40' /></div><br/>Inbound Webhook Gate"]
n1@{ icon: "mdi:robot", form: "rounded", label: "Image Analysis Engine", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Parse JSON Script"]
n3["<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/webhook.dark.svg' width='40' height='40' /></div><br/>Return Webhook Reply"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map Product Fields", pos: "b", h: 48 }
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/>Combine Streams"]
n6@{ icon: "mdi:cog", form: "rounded", label: "Aggregate Payload", pos: "b", h: 48 }
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/>Shopify API Post"]
n8["<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/>Upload Image Host"]
n5 --> n6
n8 --> n5
n0 --> n1
n0 --> n8
n6 --> n7
n4 --> n5
n1 --> n2
n2 --> n3
n3 --> n4
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 n1 ai
class n0,n3,n7,n8 api
class n2 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n5,n7,n8 customIcon
Problemet: att göra om bilder till produktlistningar tar evigheter
De flesta team har inte problem med att ”skapa en produkt” i Shopify. De har problem med att skapa en bra produktlistning, konsekvent och i högt tempo. Du skriver en titel och skriver om den för att den är för lång. Du lägger till punktlistor och inser att du glömde taggar. Sedan alt-text. Sedan SEO-titel och beskrivning. Och det är innan du ens upptäcker att bild-URL:en du laddade upp inte är den Shopify vill ha, eller att tonen skiljer sig från gårdagens produkter, vilket får butiken att kännas rörig.
Det summerar snabbt. Här är var det brukar fallera i riktiga kataloger.
- Varje listning blir till 10+ små uppgifter, och varje ”liten” uppgift kräver fortfarande fokus.
- Texten varierar beroende på vem som skrev senast, vilket gör att varumärkesrösten blir inkonsekvent över era kategorisidor.
- Alt-text och SEO-fält är lätta att hoppa över, så synligheten i sök försämras tyst över tid.
- Bildhantering blir en dold flaskhals eftersom Shopify behöver en användbar, hostad bild-URL — inte ”filen på din dator”.
Lösningen: generera Shopify-listningar direkt från produktbilder
Det här flödet startar så fort ditt system skickar en produktbild och några grundfält till en n8n-webhook (produktnamn, materialtyp och de extra detaljer du har). Parallellt laddar det upp bilden till en onlinehost så att du får en felfri URL som du kan koppla till Shopify-produkten. Medan det pågår analyserar Google Gemini bilden med din produktkontext och returnerar strukturerad JSON för listningsinnehållet: titel, full beskrivning, punktlistor, taggar, alt-text samt SEO-titel/beskrivning. n8n rensar och tolkar sedan AI-utdata, slår ihop det med den hostade bild-URL:en och bygger en komplett Shopify-payload. Till sist postar det produkten till Shopify via API:et, inklusive dina varianter, leverantör, alternativ och produkttyp.
Flödet börjar med en webhook-uppladdning. Gemini skapar text och metadata medan bilden hostas för Shopify-användning. Sedan slås allt ihop till en payload och skickas till Shopify så att en ny produkt skapas som ett utkast du kan granska och publicera.
Vad du får: automatisering vs. resultat
| Vad flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du lägger till 25 nya produkter för ett månatligt släpp. Manuellt, även om du är snabb, lägger du kanske 15 minuter per produkt på titel, beskrivning, punktlistor, taggar, alt-text och SEO-fält, plus ytterligare 5 minuter på bilder och Shopify-formatering. Det blir cirka 8 timmar riktigt monotont jobb. Med det här flödet skickar du webhook-payloaden (cirka 1 minut per produkt) och låter Gemini + bildhosten göra grovjobbet medan n8n skapar produkten automatiskt. Du granskar fortfarande innan publicering, men du granskar utkast i stället för att skriva från noll.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Shopify för att skapa produkter via API.
- Google Gemini API för att generera text från bild.
- API-nyckel för bildhosting (hämta den från imgbb eller din leverantör).
Kunskapsnivå: Medel. Du klistrar in API-nycklar, mappar några fält och kör ett webhook-test med en riktig bild.
Vill du inte sätta upp det här själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Så fungerar det
En webhook tar emot din produktbild och grundfält. Det här är flödets ”inkorg”, så din PIM, Airtable, ett formulär eller ett enkelt uppladdningsverktyg kan trigga skapandet av listningen.
Bilden hostas så att Shopify kan använda den. Flödet skickar filen till en bildhost (som imgbb) och får tillbaka en publik URL, vilket förebygger trasiga medier och röriga manuella uppladdningar.
Gemini analyserar bilden och skriver strukturerat listningsinnehåll. Med produktnamn, materialtyp och dina extra detaljer returnerar den JSON för titel, beskrivning, punktlistor, taggar, alt-text och SEO-fält. Sedan tolkar n8n den JSON:en och rensar den så att Shopify godkänner den.
Allt slås ihop till en Shopify-payload och postas. Din angivna leverantör, produkttyp, varianter och alternativ inkluderas, så den skapade produkten ligger mycket närmare ”redo” än ”platshållare”.
Du kan enkelt ändra Gemini-prompten så att den matchar din produktkategori och varumärkeston utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera webhook-triggern
Konfigurera den inkommande webhooken som tar emot produktdata och bildfiler för att starta arbetsflödet.
- Lägg till noden Inbound Webhook Gate som trigger.
- Ställ in HTTP Method på
POST. - Ställ in Path på
387b3de0-7931-478b-b7d0-9d12c013afc6. - Ställ in Response Mode på
responseNodeför att möjliggöra en separat svarsnod.
file för bildanalys och uppladdning.Steg 2: Sätt upp parallell bearbetning för bildanalys och uppladdning
Arbetsflödet delas upp i två parallella grenar: en för AI-bildanalys och en för bildhosting.
- Anslut Inbound Webhook Gate till både Image Analysis Engine och Upload Image Host för att köra parallellt.
- I Image Analysis Engine ställer ni in Resource på
imageoch Operation påanalyze. - Ställ in Input Type på
binaryoch Binary Property Name påfile. - Ställ in Text på
={{ $json.body.text }} name of the product: {{ $json.body.product_name }} in this product {{ $json.body.material_type }} fabric used. provide output in json formate. - Credential Required: Anslut era
googlePalmApi-uppgifter i Image Analysis Engine. - I Upload Image Host ställer ni in URL på
https://api.imgbb.com/1/uploadoch Method påPOST. - Ställ in Content Type på
multipart-form-dataoch lägg till en body-parameter image med Input Data Field Namefile. - Ställ in query-parametrarna expiration på
600och key på[CONFIGURE_YOUR_API_KEY]. - Credential Required: Anslut era
httpBasicAuth- ellerhttpBearerAuth-uppgifter i Upload Image Host.
file som binärdata kommer både bildanalys och uppladdning att misslyckas.Steg 3: Tolka och mappa AI-output
Normalisera AI-svaret till strukturerade produktfält som kan slås ihop med bildens URL.
- Anslut Image Analysis Engine till Parse JSON Script för att tolka AI-svaret på ett säkert sätt.
- I Parse JSON Script behåller ni standardkoden för att ta bort code fences och parsa JSON till utdatafält.
- Anslut Parse JSON Script till Return Webhook Reply och ställ in Respond With på
allIncomingItems. - Anslut Return Webhook Reply till Map Product Fields.
- I Map Product Fields mappar ni varje fält med uttryck:
- data.title →
={{ $json.title }} - data.description →
={{ $json.description }} - data.tags →
={{ $json.tags }} - data.bullet_points →
={{ $json.bullet_points }} - data.alt_text →
={{ $json.alt_text }} - data.meta_title →
={{ $json.meta_title }} - data.meta_description →
={{ $json.meta_description }}
- data.title →
Steg 4: Slå ihop strömmar och posta till Shopify
Kombinera de mappade AI-fälten med den hostade bildens URL, aggregera payloaden och skicka den till Shopify.
- Anslut Map Product Fields till Combine Streams.
- Anslut Upload Image Host till Combine Streams.
- I Combine Streams ställer ni in Mode på
combine, Join Mode påkeepEverythingoch Fields to Match pådata. - Anslut Combine Streams till Aggregate Payload och ställ in Fields to Aggregate så att
dataingår. - Anslut Aggregate Payload till Shopify API Post.
- I Shopify API Post ställer ni in URL på
https://dcbq8p-1b.myshopify.com/admin/api/2025-07/products.jsonoch Method påPOST. - Ställ in Specify Body på
jsonoch JSON Body på den tillhandahållna mallen:{ "product": { "title": "{{ $json.data[0].title }}", "body_html": {{ JSON.stringify($json.data[0].description) }}, "vendor": "{{ $('Inbound Webhook Gate').item.json.body.vendor }}", "product_type": "{{ $('Inbound Webhook Gate').item.json.body.product_type }}", "tags": "{{ $json.data[0].tags }}", "published": true, "options": {{ $('Inbound Webhook Gate').item.json.body.options }}, "variants": {{ $('Inbound Webhook Gate').item.json.body.variants }}, "images": [ { "src": "{{ $json.data[1].url }}" } ], "seo": { "title": "{{ $json.data[0].meta_title }}", "description": "{{ $json.data[0].meta_description }}" } } } - Lägg till header-parametern X-Shopify-Access-Token och ange er Shopify Admin API-åtkomsttoken.
Steg 5: Testa och aktivera ert arbetsflöde
Verifiera webhooken, AI-parsningen och Shopify-postningen innan ni går live.
- Klicka på Execute Workflow och skicka en test-POST-förfrågan till Inbound Webhook Gate-URL:en med produktfält och en binär
file. - Bekräfta att Image Analysis Engine returnerar strukturerad JSON och att Return Webhook Reply svarar med den parsade payloaden.
- Verifiera att Upload Image Host returnerar en publik bild-URL och att Combine Streams slår ihop båda grenarna.
- Kontrollera att Shopify API Post får ett lyckat 201-svar och bekräfta att produkten visas i Shopify med bilder och SEO-fält.
- Slå om arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Shopify-inloggning kan gå ut eller sakna rätt scopes. Om det skapar fel, kontrollera först behörigheter för Shopify-appens access token och API-åtkomstinställningar.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Geminis standardpromptar är generiska. Lägg in varumärkeston och formateringsregler tidigt, annars kommer du redigera utdata i all evighet.
Vanliga frågor
Cirka 30–60 minuter när du har dina API-nycklar redo.
Nej. Du kopplar konton, klistrar in uppgifter och mappar några fält i n8n.
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 volymer. Du behöver också räkna in Gemini-användning samt dina kostnader för bildhosting.
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 kör n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, men gör det med avsikt. Lägg till ett översättningssteg direkt efter att Gemini-utdata har tolkats (efter noden Parse JSON Script) så att varje fält översätts konsekvent. Många team översätter beskrivningen och punktlistorna först och regenererar sedan SEO-titel/beskrivning på målspråket så att det låter naturligt. Du kan också förgrena per marknad med en If- eller Switch-nod och sedan använda olika promptar per land.
Oftast är det ett access token-problem: tokenen har gått ut, appen har tappat behörigheter eller nödvändiga scopes (skrivåtkomst för produkter) är inte aktiverade. Det kan också fallera om payload-formatet är lite fel, särskilt kring varianter/alternativ, eftersom Shopify är strikt. Om du skapar många produkter snabbt kan rate limits också dyka upp som sporadiska fel, vilket är frustrerande men går att lösa genom att sakta ned flödet.
Många, så länge din n8n-plan och dina API:er hänger med. I n8n Cloud beror din månatliga körningsgräns på din plan, medan self-hosting inte har något körningstak (det handlar mest om serverstorlek). I praktiken begränsas flödet oftast av Geminis svarstid och Shopifys API-rate limits, så bulkuppladdningar körs bäst i batchar.
Ofta, ja, ärligt talat, eftersom det här inte är en enkel ”skicka data från A till B”-Zap. Du hanterar filuppladdning, parallella spår (bildhosting plus AI), JSON-tolkning, sammanslagningar och sedan ett strukturerat API-anrop till Shopify. n8n är byggt för den typen av förgrening och dataformning, och self-hosting är ett alternativ när volymen växer. Zapier eller Make kan fortfarande fungera om du håller payloaden minimal och inte har något emot att betala mer när antalet körningar ökar. Om du vill ha en second opinion, prata med en automatiseringsexpert.
När detta väl rullar blir produktbilder användbara Shopify-utkast utan en hög av pilljobb. Sätt upp det, finjustera prompten efter din varumärkeston och lägg tiden på de delar av e-handeln som faktiskt driver intäkter.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.