Generate Multilingual Shopify Product Descriptions with Gemini 2.5 Vision AI
Last edited 58 days ago
Shopify Multilingual Product Copy with n8n & Gemini 2.5 Flash-Lite
Use for free
Created by <Weiser22> · Last update 2025-09-02
Categories: E-commerce, Product Content, Translation, Computer Vision
Description
Generate language-specific Shopify product copy (ES, DE, EN, FR, IT, PT) from each product’s main image and metadata. The workflow performs a vision analysis to extract objective, verifiable details, then produces product names, descriptions, and handles per language, and stores the results in Google Sheets for review or publishing.
Good to know
- Model:
models/gemini-2.5-flash-lite(supports image input). Confirm pricing/limits in your account before scaling. - Image requirement: products should have
images[0].src; add a fallback if some products lack a primary image. - Sheets mapping: the sheet node uses Auto-map; ensure your matching column aligns with the field you emit (
idvsproduct_id). - Strict output: the Agent enforces a multilingual JSON contract (
es,de,en,fr,it,pt), each withshopify_product_name,shopify_description,handle.
How it works
- Manual Trigger: start a test run on demand.
- Get many products (Shopify): fetch products and their images.
- Analyze image (Gemini Vision): send
images[0].srcwith an objective, 3–5 sentence prompt. - AI Agent (Gemini Chat): merge Shopify fields + vision text under anti-hallucination rules and a strict JSON schema.
- Structured Output Parser: validates the exact JSON shape.
- Expand Languages & Sanitize (Code): split into 6 items and normalize handles/HTML content as needed.
- Append row in sheet (Google Sheets): add one row per language to your spreadsheet.
Requirements
- Shopify Access Token with product read permissions.
- Google AI Studio (Gemini) API key for Vision + Chat Model nodes.
- Google Sheets credentials (OAuth or Service Account) with access to the target spreadsheet.
How to use
- Connect credentials: Shopify, Gemini (same key for Vision and Chat), and Google Sheets.
- Configure nodes:
- Get many products: adjust
limit/filters. - Analyze image: verify
={{ $json.images[0].src }}resolves to a public image URL. - AI Agent & Parser: keep the strict JSON contract as provided.
- Code (Expand & Sanitize): emits
product_id,lang,handle,shopify_product_name,shopify_description,base_handle_es. - Google Sheets (Append): set
documentIdand tab name; confirm the matching column.
- Get many products: adjust
- Run a test: execute the workflow and confirm six rows per product (one per language) appear in the sheet.
Data contract (Agent output)
{
"es": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"de": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"en": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"fr": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"it": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"pt": {"shopify_product_name": "", "shopify_description": "", "handle": ""}
}
Customising this workflow
- Publish to Shopify: after review in Sheets, add a
product.updatestep to write finalized copy/handles. - Handle policy: tweak slug rules (diacritics, separators, max length) in the Code node to match store conventions.
- No-image fallback: add an IF/Switch to skip vision when
images[0].srcis missing and generate copy from title + body only. - Tone/length: adjust temperature and token limits on the Chat Model for brand-fit.
Troubleshooting
- No rows in Sheets: confirm spreadsheet ID, tab name, Auto-map status, and that the matching column matches your emitted field.
- Vision errors: ensure
images[0].srcis reachable. - Parser failures: the Agent must return bare JSON with the six root keys and three fields per language—no extra text.
You may also like
New to n8n?
Need help building new n8n workflows? Process automation for you or your company will save you time and money, and it's completely free!





