monkmediaone.tech

Sovereign AI Deployments Private LLM Infrastructure Data-Sovereign Automation Zero Data Leakage Workflows Compliance-Ready Automation On-Premise AI Agents AI You Own. AI You Control. Sovereign AI Deployments Private LLM Infrastructure Data-Sovereign Automation Zero Data Leakage Workflows Compliance-Ready Automation On-Premise AI Agents AI You Own. AI You Control.
Shopify AI SEO: Automate Product Descriptions with N8N + OpenAI
How to Build a Shopify AI SEO Description Automation Workflow

How to Build a Shopify AI SEO Description Automation Workflow


Automating Shopify AI SEO product descriptions is no longer optional for stores with 500+ products. Without an efficient solution, managing SEO-optimized content becomes a full-time job or a missed opportunity. Most store owners often neglect this, leaving their products with generic manufacturer descriptions, duplicate content, and zero keyword optimization – significantly impacting organic traffic.

We built an N8N automation that generates, reviews, and publishes SEO-optimized product descriptions for Shopify stores automatically. Here's the full build.

What the Workflow Does

  • Reads all products from Shopify with missing or short descriptions
  • For each product, extracts: product title, category, tags, variants, and existing description
  • Sends to OpenAI with an SEO-focused prompt
  • Generates a keyword-rich, conversion-optimized description
  • Reviews the output for quality (another AI call — optional but recommended)
  • Updates the Shopify product via API
  • Logs every update to Google Sheets with the before/after

Shopify API Setup

First, create a private app in your Shopify admin:

  1. Go to Settings → Apps and sales channels → Develop apps
  2. Create a new app
  3. Configure Admin API scopes: read_products, write_products
  4. Get your API key and Admin API access token

Store in N8N credentials as shopify_token.

Step 1 — Fetch Products Needing Descriptions

// N8N HTTP Request — Shopify API
URL: https://YOUR-STORE.myshopify.com/admin/api/2024-01/products.json?limit=250
Headers: { "X-Shopify-Access-Token": "{{ $credentials.shopify_token }}" }

Filter products that need new descriptions:

// N8N Code node
const products = $input.first().json.products;

const needsDescription = products.filter(p =>
  !p.body_html ||
  p.body_html.replace(/<[^>]*>/g, '').trim().length < 150
);

return needsDescription.map(p => ({
  json: {
    id: p.id,
    title: p.title,
    product_type: p.product_type,
    tags: p.tags,
    vendor: p.vendor,
    variants: p.variants.map(v => `${v.title}: ₹${v.price}`).join(', '),
    existing_desc: p.body_html?.replace(/<[^>]*>/g, '').slice(0, 200) || 'None'
  }
}));

Step 2 — Generate SEO Description with OpenAI

System prompt:
You are an expert Shopify SEO copywriter specializing in Indian e-commerce.

Generate a product description that:
1. Opens with the primary keyword naturally in the first sentence
2. Is 150-200 words (ideal for SEO + mobile reading)
3. Highlights 3-4 key features/benefits
4. Uses active voice and customer-focused language ("you'll love", "perfect for")
5. Includes a natural call-to-action in the last sentence
6. Avoids superlatives like "best" or "most amazing"
7. Uses plain text only — no markdown, no HTML tags

Return ONLY the description text. No preamble.

Product Details:
Title: {{ $json.title }}
Category: {{ $json.product_type }}
Tags: {{ $json.tags }}
Variants/Pricing: {{ $json.variants }}
Current description: {{ $json.existing_desc }}

Step 3 — Quality Review (Optional but Recommended)

Before publishing, run a second AI call to check quality:

System prompt:
You are a Shopify SEO content reviewer.

Review this product description and return JSON:
{
  "approved": true/false,
  "seo_score": 1-10,
  "issues": ["list of issues if any"],
  "suggested_fix": "only if approved is false"
}

Approve if:
- Starts with a keyword
- 150-200 words
- No keyword stuffing
- Customer-focused language
- Has a call to action

Description to review:
{{ $json.generated_description }}

Only publish descriptions that receive "approved": true and seo_score >= 7.

Step 4 — Update Shopify Product

// N8N HTTP Request — Update product
URL: https://YOUR-STORE.myshopify.com/admin/api/2024-01/products/{{ $json.product_id }}.json
Method: PUT
Headers: { "X-Shopify-Access-Token": "{{ $credentials.shopify_token }}" }
Body: {
  "product": {
    "id": "{{ $json.product_id }}",
    "body_html": "<p>{{ $json.final_description }}</p>"
  }
}

Add a 2-second delay between updates to respect Shopify's rate limits (2 calls/second on the standard plan).

Step 5 — Bulk Mode with Rate Limiting

For stores with 1,000+ products, run in batches:

// N8N Code node — batch processing with rate limiting
const products = $input.all();
const BATCH_SIZE = 50;
const DELAY_MS = 500;  // 500ms between each product update

const batches = [];
for (let i = 0; i < products.length; i += BATCH_SIZE) {
  batches.push(products.slice(i, i + BATCH_SIZE));
}

// Process first batch, schedule rest for later runs
const currentBatch = batches[0];
return currentBatch;

Run the workflow on a daily schedule — it processes 50 products per run, completing a 1,000-product store in 20 days.

SEO Prompt Engineering for Indian E-commerce

For Indian Shopify stores, the prompt needs adjustments:

Additional prompt instructions for Indian stores:
- Include INR pricing context naturally where relevant
- Use Indian measurement standards where applicable (kg, cm, litre)
- Consider common Indian search patterns (e.g., "buy [product] online India")
- For fashion: mention size guides, fabric quality, occasion suitability
- For electronics: mention warranty, compatibility with Indian voltage
- For food: highlight ingredients, allergens, shelf life

Results from Client Stores

After running this on a D2C skincare brand with 340 products:

MetricBefore60 days after
Products with <150 word descriptions280 (82%)12 (4%)
Average organic sessions/month4,2007,800
Organic-attributed revenue₹1,80,000₹3,40,000
Time spent on product copy20 hours/week2 hours/week (review only)

The 86% increase in organic sessions came primarily from long-tail product searches that the new descriptions now ranked for.

Cost to Run This System

  • N8N (self-hosted): ₹800/month
  • OpenAI API (GPT-4o-mini): ~₹0.50 per product (generation + review) = ₹500 for 1,000 products one-time, then only for new products
  • Total for 1,000-product store: ~₹1,300 setup, ₹100–200/month ongoing

We're Monk Media One Tech — AI automation agency, Ahmedabad. We build Shopify AI automation, N8N workflows, and e-commerce AI systems.

Book a free discovery call: monkmediaone.tech/contact
📞 +91 88668 19349 | hello@monkmediaone.tech