Introduction
Managing an e-commerce product catalogue is a grind. You've got hundreds or thousands of product descriptions scattered across spreadsheets, supplier PDFs, or legacy systems. Writing compelling listing copy for each platform takes hours. Adding product photography with consistent styling and branding takes more hours. Then you realise half your catalogue has missing data, inconsistent categorisation, or descriptions that don't convert.
The real problem is that these tasks are repetitive but not identical. You can't just bulk-import everything; each product needs its own tailored approach. Your bestsellers need premium photography. New launches need expanded descriptions. Slow-movers need completely rewritten copy to boost appeal. Manually handling these variations across platforms means you're either hiring more staff or accepting that your catalogue will be incomplete and inconsistent.
This is where combining three focused AI tools creates something genuinely useful. Instead of doing this work yourself or paying people to do it, you orchestrate AI-Boost, Copy.ai, and Flair.ai to work together in sequence. The workflow ingests raw product data, generates optimised descriptions, creates branded product images, and spits out catalogue entries ready to publish across Shopify, WooCommerce, or Amazon. No manual handoff between steps, no waiting for results, no copy-pasting between tools.
The Automated Workflow
We'll build this workflow using n8n, which is free, self-hosted, and flexible enough to handle the specific logic e-commerce catalogues require. You could use Zapier or Make instead, but n8n gives you more control over error handling and data transformation.
The workflow has four stages:
- Trigger: A new product is added to your source (Google Sheets, Airtable, or a webhook from your store)
- Enrich: AI-Boost analyses the product and extracts key selling points
- Generate: Copy.ai writes multiple listing variations (short, long, SEO-focused)
- Visualise: Flair.ai creates a product image with branded styling
- Output: Publish to your store and log results
Let's walk through each stage with real configuration.
Stage 1: The Trigger
Your workflow starts when a new product lands in your source system. For this example, we'll assume you're using Airtable, which is common for catalogue management. When a record is created with certain fields populated, the workflow kicks off.
In n8n, create an Airtable trigger node with these settings:
Trigger Type: "Watch Records"
Base ID: [Your Airtable Base ID]
Table Name: "Products"
View: "New Products" (or however you filter)
Poll Interval: 5 minutes
The trigger watches for new records with these fields:
Product Name(text)Raw Description(long text, often from supplier PDFs)Category(text)Price(number)Key Features(comma-separated text)
At this stage, you're not worried about completeness. The raw description might be poorly written or too technical. Some fields might be empty. That's what the AI steps handle.
Stage 2: Enrichment with AI-Boost
AI-Boost is designed to analyse product data and extract structured insights. You'll use it to standardise the messy input data and identify key selling points that Copy.ai will need.
Add an HTTP request node in n8n that calls the AI-Boost API:
POST https://api.ai-boost.io/v1/products/analyse
Content-Type: application/json
Authorization: Bearer [YOUR_API_KEY]
{
"product_name": "{{ $node.Airtable.json.fields.Product Name }}",
"description": "{{ $node.Airtable.json.fields.Raw Description }}",
"category": "{{ $node.Airtable.json.fields.Category }}",
"features": "{{ $node.Airtable.json.fields.Key Features }}",
"price": "{{ $node.Airtable.json.fields.Price }}"
}
AI-Boost returns a structured response like this:
{
"selling_points": [
"Waterproof construction",
"Lightweight at 150g",
"30-hour battery life"
],
"target_audience": "Outdoor enthusiasts",
"quality_score": 0.82,
"missing_data": ["dimensions", "material_composition"],
"suggested_category": "Outdoor Gear > Lighting"
}
Add a conditional node in n8n: if quality_score is below 0.7, log the product as needing manual review and stop the workflow. For products that pass, continue to the copy generation stage. This prevents wasting API calls on incomplete data.
Stage 3: Copy Generation with Copy.ai
Copy.ai takes the enriched data and generates multiple listing variations. You'll create three copies: one short for product tiles, one long for detailed pages, and one optimised for search engines.
Use three separate HTTP nodes, one for each copy variant. Here's the short-form call:
POST https://api.copy.ai/v1/generate
Content-Type: application/json
Authorization: Bearer [YOUR_COPY_AI_API_KEY]
{
"template": "ecommerce_short_description",
"variables": {
"product_name": "{{ $node.Airtable.json.fields.Product Name }}",
"selling_points": "{{ $node['AI-Boost'].json.selling_points.join(', ') }}",
"target_audience": "{{ $node['AI-Boost'].json.target_audience }}",
"category": "{{ $node['AI-Boost'].json.suggested_category }}"
},
"tone": "conversational",
"length": "short",
"language": "en-GB"
}
The response contains the generated copy. Store this in a variable for later. Repeat the same call for the long-form and SEO variants, changing the template and length parameters:
{
"template": "ecommerce_long_description",
"length": "long"
}
And for SEO:
{
"template": "ecommerce_seo_description",
"tone": "technical",
"include_keywords": ["waterproof", "outdoor", "lightweight"]
}
You now have three pieces of copy ready to use. Copy.ai sometimes outputs creative but not quite right descriptions, so add a simple validation step: if any copy piece is shorter than 20 words or longer than 500 words, flag it as needing review. This catches obvious failures without stopping the workflow.
Stage 4: Visual Generation with Flair.ai
Flair.ai creates product images using AI. You provide a product description and some parameters, and it generates a styled product photo against a branded background.
Add another HTTP node for Flair.ai:
POST https://api.flair.ai/v1/generate-image
Content-Type: application/json
Authorization: Bearer [YOUR_FLAIR_API_KEY]
{
"product_description": "{{ $node.Airtable.json.fields.Product Name }}",
"style_preset": "modern_minimalist",
"background_brand_colour": "#FFFFFF",
"include_product_highlights": true,
"highlights": "{{ $node['AI-Boost'].json.selling_points.slice(0, 3).join(', ') }}",
"format": "square",
"resolution": "1200x1200"
}
Flair.ai returns a URL to the generated image. Download this image and store it somewhere accessible (AWS S3 is common). Add a download node in n8n:
GET {{ $node['Flair'].json.image_url }}
Then add a node to upload to your storage:
POST https://s3.amazonaws.com/[YOUR_BUCKET]/products/
[Binary file upload]
Filename: {{ $node.Airtable.json.fields.Product Name }}-hero.jpg
Stage 5: Publishing and Logging
Now you have everything ready: enriched data, three pieces of copy, and a product image. Create an Airtable update node that writes all this back to your catalogue table:
PUT /databases/[BASE_ID]/records
Content-Type: application/json
{
"records": [{
"id": "{{ $node.Airtable.json.id }}",
"fields": {
"Status": "Generated",
"Short Description": "{{ $node['Copy-Short'].json.text }}",
"Long Description": "{{ $node['Copy-Long'].json.text }}",
"SEO Description": "{{ $node['Copy-SEO'].json.text }}",
"Hero Image URL": "{{ $node['S3Upload'].json.file_url }}",
"Generated At": "{{ now() }}",
"Quality Score": "{{ $node['AI-Boost'].json.quality_score }}"
}
}]
}
If you want to directly publish to Shopify, WooCommerce, or another platform, add a conditional based on a field in Airtable. For Shopify, you'd add a node like this:
POST https://[YOUR_SHOP].myshopify.com/admin/api/2024-01/products.json
X-Shopify-Access-Token: [YOUR_TOKEN]
Content-Type: application/json
{
"product": {
"title": "{{ $node.Airtable.json.fields.Product Name }}",
"body_html": "{{ $node['Copy-Long'].json.text }}",
"vendor": "{{ $node.Airtable.json.fields.Vendor }}",
"product_type": "{{ $node['AI-Boost'].json.suggested_category }}",
"images": [{
"src": "{{ $node['S3Upload'].json.file_url }}"
}],
"metafields": [{
"namespace": "custom",
"key": "seo_description",
"value": "{{ $node['Copy-SEO'].json.text }}",
"type": "single_line_text_field"
}]
}
}
Finally, add error handling. Wrap the entire workflow in a try-catch block so that if any step fails, n8n sends you a notification with the product name and the specific error. This is essential because you'll be processing hundreds of products, and you need to know which ones didn't complete.
Add a webhook that sends errors to Slack:
POST https://hooks.slack.com/services/[YOUR_WEBHOOK_URL]
Content-Type: application/json
{
"text": "Product catalogue automation failed",
"attachments": [{
"colour": "danger",
"fields": [
{"title": "Product", "value": "{{ $node.Airtable.json.fields.Product Name }}", "short": true},
{"title": "Error", "value": "{{ $node.Error.json.message }}", "short": true},
{"title": "Failed Step", "value": "{{ $node.Error.json.node_name }}", "short": false}
]
}]
}
The Manual Alternative
If you don't want to set up orchestration software, you can still use these three tools together, just with more manual steps. Export your product data to a CSV. Upload it to AI-Boost's web interface and download the enriched results. Copy those results into Copy.ai's batch processing feature and generate your copy variations. Finally, feed product names and features into Flair.ai one by one (or upload a batch if they support it), download the images, and manually compile everything back into your catalogue.
This approach takes a few hours per batch instead of being fully automated, but it requires no technical setup. It's useful if you're testing the workflow with a small product set first, or if your products update infrequently.
Pro Tips
Watch your rate limits. AI-Boost allows 100 requests per minute on the standard plan. Copy.ai is 50 per minute. Flair.ai is 30 per minute. If you're processing 500 products, stagger the workflow so you're not hitting all three simultaneously. Add a delay node in n8n between each major step (30 seconds is usually safe).
Validate before publishing. The AI tools produce good results most of the time, but not always. Before writing anything back to your live catalogue or publishing to Shopify, add a human review step. Create an Airtable view that shows all "Generated" products, have a team member check a sample each day, and only mark them as "Approved" once someone has verified the descriptions and image make sense. This takes five minutes per product instead of writing it from scratch.
Use different copy tones for different categories. If you sell both technical equipment and lifestyle products, the copy will be better if you tell Copy.ai to use different tones. Add a conditional in n8n that checks the category from Airtable and passes "tone": "technical" for electronics or "tone": "aspirational" for fashion. This is a small change that improves output quality noticeably.
Test with 10 products first. Before running this on your entire catalogue, test with a small batch. Set up the n8n workflow exactly as described, run it on 10 products, check the results, and refine the prompts or settings. Maybe your Copy.ai template needs tweaking, or maybe Flair.ai's styling doesn't match your brand colours. Better to learn this on 10 products than 1,000.
Log everything for cost analysis. Add a "Cost Tracking" table to Airtable and log each product with its API costs. AI-Boost costs roughly 0.001 GBP per request. Copy.ai costs 0.002 GBP per 1,000 tokens (roughly). Flair.ai costs 0.10 GBP per image. Track this for a week and you'll see exactly what your workflow costs. This helps you decide whether to run it on everything, just bestsellers, or only new products.
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| AI-Boost | Standard (100 req/min) | £20 | 6,000 products per month at 1 req per product |
| Copy.ai | Professional (unlimited generations) | £40 | 3 copies per product × 6,000 products = 18,000 generations |
| Flair.ai | Pro (1,000 images/month) | £30 | 1 image per product, can upgrade if needed |
| n8n (self-hosted) | Free or £20/month (cloud) | £0-20 | Self-hosted is free; cloud hosting is optional |
| Total | £90-110 | Processes 6,000 product variants monthly |
The per-product cost is roughly 0.015 GBP to 0.018 GBP. Hiring someone to write descriptions and brief product briefs for AI image generation would cost at least £500-1,000 monthly. This automation pays for itself after processing the first few hundred products.