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 a Connector node in Agent mode with a strict Response Schema, so Spojit returns a short description and a long description back together, optionally gated by a Human approval step before publish.
Prerequisites
- A Shopify, WooCommerce, or BigCommerce connection with write access to products.
- 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: Loop and Generate Copy with a Response Schema
Wrap the per-product generation in a Loop node (ForEach) over the products returned in Step 2, so each item is processed in turn. Inside the loop, add a Connector node in Agent mode with a Response Schema to force structured JSON 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.
Set the loop's output variable so the generated drafts collect into a list you can review and write back in the following steps.
Step 4: Optional Human Approval
Add a Human node after the generation loop so the team can review the drafts before anything goes live. Set a Label and Message, then add at least one approval slot (the only required field); a slot holds atoms (User, Role, or Team) and any atom satisfies it. The workflow pauses until every slot is satisfied, and approvers act in the Approvals inbox. If the run is rejected it halts, so nothing is published. 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
Add a Loop node over the approved drafts and, inside it, a Connector node calling update-product on the store (shopify, woocommerce, or bigcommerce). 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 a fixed part of the prompt rather than repeating it per product. It keeps voice consistent and reduces the tokens sent each iteration.
- Use a Response Schema 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. The AI sometimes emits nested or unclosed tags that break the storefront. Run the long description through a regex step (such as
matchorreplace) to validate or strip stray tags 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.