How to Generate Product Descriptions with AI for Your Store
Use AI to write compelling, SEO-friendly product descriptions at scale.
What This Integration Does
Copywriting at catalog scale is a bottleneck for most stores. New SKUs ship with placeholder text, descriptions are inconsistent across collections, and SEO suffers because the team simply can't keep up. This workflow takes the raw product fields you already have (name, features, specs, materials) and generates marketing-quality long and short descriptions in your brand voice.
The workflow can be triggered manually for a bulk pass, on a schedule for ongoing maintenance, or via webhook the moment a product is created. Each product is sent to an LLM step with strict Structured Output so you get a short description and a long description back together, optionally gated by a human review before publish.
Prerequisites
- A Shopify, WooCommerce, or BigCommerce connection with write access to products.
- An LLM provider configured (Vertex AI, OpenAI, Anthropic).
- A brand voice guide (style, tone, prohibited words). Optional but strongly recommended.
Step 1: Trigger
Drop a Trigger node. Use Manual for a one-off catalog refresh, Schedule for nightly catch-up runs, or Webhook for real-time generation as products are created.
Step 2: Fetch Products Without Descriptions
Add a Connector node calling shopify list-products (or woocommerce / bigcommerce list-products). Filter to products where the description is empty or below a minimum character count. Cap at 50-100 per run for cost control.
Step 3: Generate Copy with Structured Output
Add a Connector node in Agent Mode with Structured Output. Schema:
{
"shortDescription": "string (max 200 chars)",
"longDescription": "string (200-500 words, valid HTML)",
"bulletPoints": ["string"],
"seoTitle": "string (max 60 chars)",
"seoDescription": "string (max 160 chars)"
}
Prompt:
Write product copy for an e-commerce store.
Brand voice: friendly, confident, never hype-y. Avoid the words "revolutionary", "game-changer".
Product title: {{ item.title }}
Features: {{ item.features }}
Specs: {{ item.metafields.specs }}
Long description: 200-500 words, HTML allowed.
Short description: under 200 chars, single sentence.
Bullet points: 3-5 highlights.
Step 4: Optional Human Review
Add a Human node so the team can read and tweak the copy before it goes live. For mature workflows where the brand voice is dialled in, you can skip this and rely on spot checks.
Step 5: Write Back to the Store
Wrap the AI step in a Loop and add a Connector node calling update-product on the store. Map:
longDescription-> product body / description HTMLshortDescription-> excerpt / short description fieldseoTitle+seoDescription-> SEO fieldsbulletPoints-> rendered as a<ul>appended to the long description, or stored as a metafield
Step 6: Track Coverage
Insert a row per product into mongodb insert-documents (collection: copy_runs) with productId, lengths, model used, and timestamp. Send a final slack send-message summary at the end of each run so the team knows how many products were touched.
Tips
- Bake your brand voice into the system prompt rather than the per-product prompt. It's cheaper with prompt caching and keeps voice consistent.
- Use Structured Output every time. Free-form responses break parsers and silently skip products.
- Run an A/B test: enrich 100 products with AI copy, compare conversion vs. the original 100, then expand.
- Generate descriptions per locale if you sell internationally. Loop over locales rather than translating after the fact.
Common Pitfalls
- HTML safety. LLMs sometimes emit nested or unclosed tags that break the storefront. Run the long description through a sanitizer step (or use regex validation) before write.
- SEO char limits. The model overshoots. Add a text
truncatestep after generation. - Overwriting good copy. If you re-run on the whole catalog, you'll trample hand-written descriptions. Filter strictly on "description is empty".
- Token costs at scale. 10k products at 500 tokens out is real money. Estimate first by running on 50 products and extrapolating.
Testing
Run with list-products limit 3 on a known set of products. Read the JSON output, paste the long description into a preview page, confirm HTML renders. Have one merchandiser approve the first batch via the Human step before turning the schedule on.