Back to Alchemy
Alchemy RecipeBeginnerautomation

Generate product descriptions and marketing copy at scale from supplier catalogues

Imagine you've just acquired 5,000 SKUs from a new supplier. Their catalogue lists "Widget, 47mm, black" across all five thousand entries. Your e-commerce platform expects rich, keyword-optimised descriptions that drive conversions. Your content team is four people. The math doesn't work. This is the moment most teams either hire contractors, accept mediocre SEO performance, or build a half-working internal tool and call it done. There's a better option. By chaining together a few focused AI tools and an orchestration platform, you can generate thousands of unique, brand-aligned product descriptions in a single batch run, complete with audio samples for accessibility and styled product images. The entire workflow runs unattended. This post walks through a production-ready setup that ingests raw supplier data, enriches it with AI-generated copy and visuals, and deposits polished product records back into your system.

The Automated Workflow

The workflow moves data through five stages: ingest, generate descriptions, create audio variants, enhance imagery, and export. We'll use n8n for orchestration because it handles scheduled batch jobs well and doesn't charge per task.

Stage 1: Ingest and Parse

Start with a CSV upload or API endpoint that feeds product data into n8n. Each record should contain at minimum: product SKU, category, supplier specifications, and price.

POST /api/n8n/webhook/product-ingest
Content-Type: application/json { "sku": "WGT-47-BLK", "category": "Fasteners", "supplier_spec": "Widget, 47mm, black, stainless steel", "price_gbp": 12.50, "stock_count": 342
}

Store these records in n8n's built-in database or pass them to a temporary storage location. The key is ensuring each record has a unique identifier that travels through all downstream steps.

Stage 2: Generate Product Descriptions

Route the parsed data to Copy.ai via its API. Use a prompt template that includes the supplier specification, category, price point, and your brand voice guidelines. This ensures consistency across thousands of descriptions.

POST https://api.copy.ai/v1/generate
Authorization: Bearer YOUR_COPY_AI_KEY
Content-Type: application/json { "prompt": "Write a compelling 80-word product description for an e-commerce listing. Category: Fasteners. Product: Widget, 47mm, stainless steel, black finish. Price: £12.50. Brand voice: professional, technical, no jargon. Target audience: engineers and manufacturers. Output: HTML paragraph tag.", "max_tokens": 150, "temperature": 0.7
}

Copy.ai returns generated descriptions. Store the output in your n8n database, keyed to the original SKU. Build in a retry mechanism here; API timeouts happen, and you want to flag failures without losing the entire batch.

Stage 3: Generate Audio Descriptions

Take the generated product description and send it to ElevenLabs Turbo v2.5 for text-to-speech conversion. This serves two purposes: accessibility compliance and a sales channel (some platforms benefit from audio product teasers).

POST https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM
Authorization: xi-api-key YOUR_ELEVENLABS_KEY
Content-Type: application/json { "text": "Widget, 47mm stainless steel fastener. Black powder coat finish. Ideal for structural applications requiring high corrosion resistance...", "model_id": "eleven_turbo_v2_5", "voice_settings": { "stability": 0.5, "similarity_boost": 0.75 }
}

Store the returned audio file URL (or download and host the MP3 locally). Link it back to the SKU record in your database.

Stage 4: Enhance Product Imagery

If your supplier data includes a basic product image, pass it to AI Boost for upscaling and background customisation. For products without images, generate one using DALL-E 3 or Midjourney v6.1, seeded with the product category and description.

POST https://api.aiboost.io/v1/image/upscale
Authorization: Bearer YOUR_AIBOOST_KEY
Content-Type: application/json { "image_url": "https://supplier.example.com/images/widget-47-black.jpg", "upscale_factor": 2, "background_removal": false, "enhance_quality": true
}

For image generation, use a structured prompt built from your description:

POST https://api.openai.com/v1/images/generations
Authorization: Bearer YOUR_OPENAI_KEY
Content-Type: application/json { "model": "dall-e-3", "prompt": "Product photograph of a 47mm stainless steel fastener with black finish. Professional studio lighting. White background. Photorealistic.", "n": 1, "size": "1024x1024", "quality": "hd"
}

Again, store image URLs keyed to SKUs.

Stage 5: Export and Load

Compile all enriched data (description, audio URL, image URL, original specs) into a structured output format. Export as CSV, JSON, or direct POST to your e-commerce platform's API.

POST https://your-ecommerce.api/v2/products/bulk-import
Authorization: Bearer YOUR_ECOMMERCE_KEY
Content-Type: application/json [ { "sku": "WGT-47-BLK", "name": "Widget, 47mm Stainless Steel, Black", "description": "<p>Widget, 47mm stainless steel fastener...</p>", "audio_description_url": "https://elevenlabs.io/...", "image_url": "https://aiboost.io/...", "category": "Fasteners", "price_gbp": 12.50 }
]

Use n8n's error handling to catch failed imports and log them for manual review. Most workflows fail on a handful of items; it's far faster to fix those manually than to debug the entire orchestration.

Scheduling

Configure n8n to run this workflow on a schedule (weekly, for example) or trigger it manually when new supplier data arrives. Set n8n to process batches of 50–100 products per API call to avoid rate limiting and manage costs.

The Manual Alternative

If you prefer control over speed, skip the orchestration and do this in stages. Export your supplier catalogue as CSV. Paste it into Copy.ai's web interface and generate descriptions in batches. Download the results. Use ElevenLabs' web dashboard to convert text to speech for standout products. Manually select images or commission them separately. Import everything via your e-commerce admin panel. This approach takes longer but gives you time to review and tweak outputs before they go live. It's sensible if you're unsure about your brand voice or product category mix.

Pro Tips

1. Prompt engineering matters more than model choice.

A well-constructed prompt to Claude Sonnet 4.6 often beats a weak prompt to o4-mini. Invest time in your template. Include category, price range, audience, tone, and output format.

2. Batch processing saves money and time.

Don't run one-off API calls. Group 50–100 products and send them in a single request where possible. Most AI providers charge per token; fewer requests mean fewer overhead costs.

3. Implement idempotency.

If your workflow crashes mid-run, you don't want to regenerate descriptions for products already processed. Store a processed flag in your database and skip those records on the next run.

4. Rate limit gracefully.

Copy.ai allows 100 requests per minute on most plans. ElevenLabs similarly has limits. Build in deliberate delays (2–3 second pauses) between API calls. n8n's rate limiter node handles this.

5. Validate outputs before import.

Even good AI makes mistakes. Check that descriptions match category, audio files are non-corrupt, and images have appropriate resolution. A simple n8n script can flag descriptions under 50 characters or audio files under 2 seconds as potential errors.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
n8nSelf-hosted (free) or Cloud Pro£0–£25Self-hosted recommended for high volume; no per-task fees
Copy.aiProfessional£49Includes 5,000 monthly API credits; scales well for batch work
ElevenLabs Turbo v2.5Professional£99250,000 characters per month; 5,000 products at 80 words each ≈ 51,000 characters
AI BoostPay-per-use or Pro plan£25–£100Upscale + customisation; variable based on image count
DALL-E 3API pay-per-image£0.04–£0.10 per imageUse sparingly; only for products missing images
Your e-commerce platformExistingIncludedNo additional cost for API import