An enterprise-grade n8n workflow for LEIVIP, an Italian B2B fashion wholesale platform. The system reads product data from Google Sheets, downloads images from Google Drive, generates English product copy using GPT-4o-mini, and batch-uploads everything to Shopify via the GraphQL Admin API — including variants, media, and SEO metadata.
A complete end-to-end pipeline: from manufacturer spreadsheet to published Shopify drafts, with automatic color/size variant generation, vendor brand mapping, and real-time Telegram notifications on completion.
A Google Sheets trigger detects new manufacturer data. The workflow reads product codes, Italian titles, cost prices, composition, season, and color/size information from structured sheets.
The workflow searches a Google Drive folder by product code prefix, downloads all product images, and extracts color codes from filenames. Images are mapped to variants and uploaded to Shopify via GraphQL media mutations.
Using GPT-4o-mini with a structured output parser, the system generates English titles, bullet-point descriptions, SEO meta descriptions, style tags, fit notes, and subtitle copy — all based on the Italian product data and product images.
Products are created in Shopify as drafts via the GraphQL Admin API. Each product gets color and size options, variants with SKUs and pricing, vendor branding, and media files. The system batches requests with randomized delays to avoid rate limits and logs errors to a dedicated sheet.
On completion, the workflow sends a summary notification via Telegram with a direct link to the Shopify admin panel for final quality review.
Each product gets variants for every color-size combination. Color codes (e.g., BLK, NVY, ROS) are mapped to English names, and sizes are parsed from Italian format strings.
Product codes encode the brand and product type. The workflow maps 20+ vendor codes (CB → CHERRY BLUE, MM → MICHELA MII, etc.) and 20+ product type codes (AB → Dress, GI → Jacket, etc.) automatically.
The workflow handles Shopify OAuth token lifecycle — requesting new tokens when expired and caching them in static data to minimize API calls.
Failed product creations are logged to a dedicated error sheet with error type, detail, and timestamp. The workflow continues processing remaining products without interruption.