Alchemy RecipeIntermediateworkflow

E-commerce product catalogue optimization and listing expansion

Published

Managing an e-commerce product catalogue is a grinding task. You've got dozens, hundreds, or thousands of products sitting in your inventory management system. Each one needs a product title that sells, a description that converts, product images that look professional, and metadata that helps customers find it. Most e-commerce teams handle this manually: write a title, brief description, optimise it for search, create social media copy variants, generate product images or descriptions. Then repeat for the next item. By item 47, people are cutting corners.

The real cost isn't just time. It's inconsistency. One product has a punchy title with relevant keywords; another reads like an internal SKU code. One has polished imagery; another has a flat product shot. Customers notice. Search algorithms notice. Your conversion rates suffer.

This is where combining AI tools with workflow automation saves you. By connecting product data entry tools, AI copywriting services, and AI image generation into a single pipeline, you can process your entire catalogue in hours instead of weeks, with consistent quality throughout. Every product gets the same treatment: optimised titles, benefit-focused descriptions, social media variations, and professional imagery, all automatically fed into your e-commerce platform.

The Automated Workflow

We're going to build a workflow that takes product information from your system, generates marketing copy using AI, creates social media variants, and produces product imagery, all without touching anything manually once it's set up.

Which Tools We're Using

AI-Boost handles product data collection and initial optimisation prompts. Copy-AI generates your marketing copy and product descriptions with consistent messaging. Flair-AI creates the product images and visual assets. We'll orchestrate everything with Zapier as the primary platform, though we'll show n8n syntax as an alternative for teams wanting more control.

The Architecture

Your workflow runs on a trigger: when a new product is added to your catalogue management system (or when a product is marked as "needs optimisation"). The workflow then moves through four stages:

  1. Fetch product data and basic information from your source system
  2. Generate optimised product titles and descriptions via Copy-AI
  3. Create social media copy variants for different platforms
  4. Generate product imagery via Flair-AI
  5. Push everything back to your e-commerce platform with proper formatting

Building This in Zapier

Zapier's visual builder works well for this because it handles authentication and basic data mapping without coding. Here's how to set it up:

Step 1: Create a trigger. Use "Webhooks by Zapier" to listen for new products from your inventory system (or use a polling trigger like "Every 15 minutes, check for new products marked as needs_optimisation").


Trigger: Webhooks by Zapier
Event: Catch Raw Hook
Webhook URL: [Zapier generates this for you]
Expected data fields:
- product_id
- product_name
- product_category
- base_description
- target_audience

Step 2: Fetch enriched product data. If your source system has more details, pull them in using a REST call or native integration.


Zapier Action: Code by Zapier (Run JavaScript)
Input:
- product_id (from webhook)
- base_description (from webhook)

Code:
const productId = inputData.product_id;
const baseDescription = inputData.base_description;

// Format description for AI processing
return {
  productId: productId,
  enrichedDescription: baseDescription.trim(),
  timestamp: new Date().toISOString()
};

Step 3: Call Copy-AI to generate product titles and descriptions. Copy-AI's API accepts a prompt and returns AI-generated text. You'll need your API key from the Copy-AI dashboard.


Zapier Action: Webhooks by Zapier (Make a [POST](/tools/post) request)
URL: https://api.[copy.ai](/tools/copy-ai)/api/v1/generate
Method: POST
Headers:
  Authorization: Bearer YOUR_COPY_AI_API_KEY
  Content-Type: application/json

Body (JSON):
{
  "prompt": "You are an e-commerce copywriter. Create a compelling product title (max 60 characters) and a 2-3 sentence product description for this item. Focus on benefits, not features. Product: {{baseDescription}}. Target audience: {{targetAudience}}",
  "model": "[gpt](/tools/gpt)-4",
  "max_tokens": 300,
  "temperature": 0.7
}

Zapier will automatically parse the response. Extract the generated text and store it in variables for the next steps.

Step 4: Generate social media variations. You want the same product described for Twitter (280 characters), Instagram (150 character caption), and LinkedIn (300 characters). Call Copy-AI again with platform-specific prompts.


Zapier Action: Webhooks by Zapier (Make a POST request)
URL: https://api.copy.ai/api/v1/generate
Method: POST
Headers:
  Authorization: Bearer YOUR_COPY_AI_API_KEY
  Content-Type: application/json

Body (JSON):
{
  "prompt": "Create three social media posts for this product. 1) Twitter (max 280 chars, include 1-2 hashtags): 2) Instagram (max 150 chars, can be witty): 3) LinkedIn (max 300 chars, professional tone). Product description: {{generatedDescription}}",
  "model": "gpt-4",
  "max_tokens": 500,
  "temperature": 0.8
}

Step 5: Generate product imagery via Flair-AI. Flair-AI is built specifically for product photography. You send a product description and category, and it generates a professional product image. No photographer, no photo studio needed....... For more on this, see Product photography studio with AI model training and mar....


Zapier Action: Webhooks by Zapier (Make a POST request)
URL: https://api.flair.ai/api/v1/design
Method: POST
Headers:
  Authorization: Bearer YOUR_FLAIR_AI_API_KEY
  Content-Type: application/json

Body (JSON):
{
  "product_name": "{{productTitle}}",
  "product_description": "{{generatedDescription}}",
  "category": "{{productCategory}}",
  "style": "professional_product_shot",
  "background": "white",
  "format": "square"
}

Flair-AI returns a URL to a generated image. Store this URL.

Step 6: Push everything to your e-commerce platform. Most platforms (Shopify, WooCommerce, BigCommerce) have APIs for updating product data. Here's how to do it with Shopify as an example:


Zapier Action: Webhooks by Zapier (Make a POST request)
URL: https://{{your-store}}.myshopify.com/admin/api/2024-01/products/{{productId}}.json
Method: PUT
Headers:
  X-Shopify-Access-Token: YOUR_SHOPIFY_ACCESS_TOKEN
  Content-Type: application/json

Body (JSON):
{
  "product": {
    "id": {{productId}},
    "title": "{{generatedTitle}}",
    "body_html": "{{generatedDescription}}",
    "images": [
      {
        "src": "{{flairImageUrl}}"
      }
    ],
    "metafields": [
      {
        "namespace": "custom",
        "key": "social_twitter",
        "value": "{{twitterCopy}}",
        "type": "single_line_text_field"
      },
      {
        "namespace": "custom",
        "key": "social_instagram",
        "value": "{{instagramCopy}}",
        "type": "single_line_text_field"
      },
      {
        "namespace": "custom",
        "key": "social_linkedin",
        "value": "{{linkedinCopy}}",
        "type": "single_line_text_field"
      }
    ]
  }
}

Building This in n8n (More Advanced)

If you want finer control and don't mind working with code, n8n is more powerful than Zapier. Here's the same workflow in n8n syntax:

{
  "nodes": [
    {
      "parameters": {
        "path": "/webhook/product-optimisation",
        "method": "POST",
        "options": {}
      },
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [250, 300]
    },
    {
      "parameters": {
        "url": "https://api.copy.ai/api/v1/generate",
        "method": "POST",
        "headers": {
          "Authorization": "Bearer {{env.COPY_AI_KEY}}",
          "Content-Type": "application/json"
        },
        "body": "{\"prompt\": \"Create product title and description for: {{$node[\\\"Webhook Trigger\\\"].json.product_description}}\", \"model\": \"gpt-4\", \"max_tokens\": 300}"
      },
      "name": "Generate Copy",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [450, 300]
    },
    {
      "parameters": {
        "url": "https://api.flair.ai/api/v1/design",
        "method": "POST",
        "headers": {
          "Authorization": "Bearer {{env.FLAIR_AI_KEY}}",
          "Content-Type": "application/json"
        },
        "body": "{\"product_name\": \"{{$node[\\\"Generate Copy\\\"].json.title}}\", \"product_description\": \"{{$node[\\\"Generate Copy\\\"].json.description}}\", \"category\": \"{{$node[\\\"Webhook Trigger\\\"].json.category}}\", \"style\": \"professional_product_shot\"}"
      },
      "name": "Generate Image",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [650, 300]
    },
    {
      "parameters": {
        "url": "https://your-store.myshopify.com/admin/api/2024-01/products/{{$node[\\\"Webhook Trigger\\\"].json.product_id}}.json",
        "method": "PUT",
        "headers": {
          "X-Shopify-Access-Token": "{{env.SHOPIFY_TOKEN}}",
          "Content-Type": "application/json"
        },
        "body": "{\"product\": {\"title\": \"{{$node[\\\"Generate Copy\\\"].json.title}}\", \"body_html\": \"{{$node[\\\"Generate Copy\\\"].json.description}}\", \"images\": [{\"src\": \"{{$node[\\\"Generate Image\\\"].json.image_url}}\"}]}}"
      },
      "name": "Update Shopify",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [850, 300]
    }
  ],
  "connections": {
    "Webhook Trigger": {
      "main": [
        [
          {
            "node": "Generate Copy",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Copy": {
      "main": [
        [
          {
            "node": "Generate Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Image": {
      "main": [
        [
          {
            "node": "Update Shopify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

n8n runs on your own infrastructure (or their cloud), giving you more flexibility and typically lower long-term costs if you're processing thousands of products.

Real Data Flow Example

Let's walk through what happens when a product enters the system:

  1. Someone adds a new product to your inventory system with basic info: name = "Ergonomic Wireless Mouse", category = "Computer Accessories", description = "Mouse with silent clicking, long battery life, USB receiver."

  2. Webhook triggers, sending this data to your workflow.

  3. Copy-AI receives the prompt: "You are an e-commerce copywriter. Create a compelling product title (max 60 characters) and a 2-3 sentence product description for this item. Focus on benefits, not features. Product: Mouse with silent clicking, long battery life, USB receiver. Target audience: Remote workers and office professionals."

  4. Copy-AI returns: Title: "Silent Wireless Mouse, 18-Month Battery Life", Description: "Work without distraction. This ergonomic wireless mouse eliminates click noise, perfect for shared offices or home calls. With an 18-month battery life and universal USB compatibility, it works out of the box on any computer."

  5. Second Copy-AI call generates social variants.

  6. Flair-AI receives the title and description, plus category "Computer Accessories", and generates a professional product image showing the mouse on a desk with a laptop in the background.

  7. The image URL, title, description, and social copies all get pushed to your Shopify store in a single API call.

Total time elapsed: 90 seconds. Manual time saved: 30 minutes. Quality consistency: 100 percent.

The Manual Alternative

If you prefer having a human review each product before it goes live, you can add an approval step. In Zapier, use the "Delay" action combined with email notifications to create a queue. After the AI generates content and images, send an email to your product manager with a summary of what was generated. They click "Approve" to proceed to the final publishing step, or "Reject" to trigger manual review.

In n8n, you can use the "Wait" node to pause execution and wait for a webhook callback from an approval interface. This is more flexible but requires building a simple approval UI (or using a third-party tool like Airtable as your approval interface).

This hybrid approach means you get the speed and consistency of AI, with human oversight to catch any odd generations or brand misalignments.

Pro Tips

1. Rate Limiting and Throttling

Copy-AI and Flair-AI have rate limits. If you're processing 500 products in a batch, don't fire all requests simultaneously. In Zapier, use the "Delay" action between steps. In n8n, use the "Rate Limit" node to queue requests at a sensible pace, like one product every 5 seconds. This prevents API errors and keeps costs predictable.


n8n Rate Limit Node Configuration:
Max Requests: 1
Per: 5 seconds

2. Error Handling and Retry Logic

If Copy-AI fails to generate text (it happens, especially with ambiguous product descriptions), you need a fallback. In Zapier, use the "Error Handling" feature to catch failed steps and retry up to 3 times with exponential backoff. In n8n, use the "Try" node to catch exceptions.


n8n Try Node:
Catches HTTP errors from Copy-AI.
On error: Wait 10 seconds, retry.
After 3 retries: Log to error database and notify team.

3. Cost Optimisation

Copy-AI and Flair-AI charge per API call. Test your prompts with a small batch (10-20 products) before processing your entire catalogue. Refine your prompts to be concise and specific; a clearer prompt often produces better output on the first try, saving retries. Flair-AI's image generation is the biggest cost component, so consider whether you truly need a generated image for every product, or just for new product launches.

4. Data Validation

Before pushing data to your e-commerce platform, validate it. Check that generated titles aren't empty, descriptions contain at least two sentences, and image URLs are valid. In n8n, use the "Function" node to add validation logic:

// Validate generated product data
if (!title || title.length < 10 || title.length > 60) {
  throw new Error('Invalid title length');
}
if (!description || description.split('.').length < 2) {
  throw new Error('Description must have at least 2 sentences');
}
if (!imageUrl || !imageUrl.startsWith('https://')) {
  throw new Error('Invalid image URL');
}
return { valid: true };

5. Monitoring and Logging

Keep a log of every product processed, including timestamps, API response times, and any errors. This helps you identify patterns (e.g., certain product categories always need manual tweaking, or Flair-AI is slower at specific times). Use a simple Google Sheet, Airtable, or database table as your log. In Zapier, add a "Record in Google Sheets" step at the end of your workflow to log outcomes.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
Copy-AIPay-per-use£10–50Depends on API calls. Roughly £0.001–0.005 per request. Budget for 2–3 calls per product (title/description, then social variants).
Flair-AIPay-per-use£20–100Image generation is pricier. Costs roughly £0.50–2.00 per image depending on quality. Process 50–100 products monthly cost-effectively.
AI-BoostStarter or Pro£20–100Optional; mainly useful for batch management. Starter covers product data enrichment for 100–500 products monthly.
ZapierTeam plan£25–125Charged per task (a task = one action in a Zap). A 5-step workflow processing 100 products = 500 tasks. Team plan allows up to 750 tasks/month; anything more requires Premium.
n8nSelf-hosted or Cloud£0–50Self-hosted is free; Cloud starter at £20/month. Better economics if processing 500+ products monthly.
Your e-commerce platform APIIncluded in platform£0Shopify, WooCommerce, BigCommerce APIs are included; no extra cost for API calls.

For a typical mid-size e-commerce store processing 200 products per month, expect total monthly costs around £80–150 with Zapier, or £40–80 with self-hosted n8n.

More Recipes