AI can draft a description for every product in your catalog in an afternoon, but speed is the easy part. Descriptions stay accurate and distinct only when the model writes from structured product data, follows a template for each category, and passes automated checks plus a human review of every batch before anything goes live. Here is the workflow I use, from data cleanup to measuring whether the new copy changed anything.
Where AI descriptions help and where they hurt
AI earns its keep on volume and consistency. It hurts when it’s asked to fill gaps in knowledge, because a language model will write a confident sentence whether or not the fact behind it exists.
| Situation | Use AI? | Why |
|---|---|---|
| Long-tail catalog with empty or one-line descriptions | Yes | The gap is labor, not insight; structured data in, readable copy out |
| Pasted manufacturer copy shared with every other retailer | Yes | Rewriting from attributes gives shoppers and search engines something original |
| Seasonal drops with dozens of similar SKUs | Yes, with care | Templates keep the format consistent; similarity checks stop near-duplicates |
| Hero products and bestsellers | Draft only | These pages carry the most revenue and deserve a writer and real customer language |
| Products with health, safety or environmental claims | Only with expert review | A wrong claim is a legal and trust problem, not a copy problem |
| Products with missing specs | Not yet | The model will guess, and guesses turn into returns |
The failure modes are predictable: invented materials or dimensions, hundreds of pages that open with the same sentence, and adjectives doing the work specs should do (“premium,” “high-quality,” “perfect for any occasion”). Every step below exists to prevent one of them.
Getting structured product data in order first
The model can only be as accurate as its input. If fabric composition lives in a supplier PDF and sizing in a merchandiser’s head, no prompt will fix that. Assemble one row per product with every attribute the copy needs, from your PIM, supplier sheets or platform fields.
On Shopify, the durable home for this data is metafields and metaobjects, which also lets the same attributes power filters, spec tables and feeds. The setup is covered in Shopify metafields and metaobjects.
Then apply one rule to the whole pipeline: if a field is empty, the description doesn’t mention it. The prompt says so explicitly, and the checks below enforce it.
Before a batch runs:
- Every product has a category that maps to exactly one prompt template
- Required attributes for that category are filled: materials, dimensions, weight, compatibility, ingredients, care
- Units are consistent: one unit system, one format for dimensions
- Values are normalized: “100% cotton,” not “cotton 100,” “Cotton” and “cttn” from three suppliers
- A differentiator is captured as its own field, even a short one (“only style in the range with a two-way zipper”)
- Claims you’re allowed to make are listed, with the source for each certification
- Review excerpts or common customer questions are attached where available
The differentiator field matters most. Without it, the model describes what the product is; with it, the model explains why to pick this one over its neighbor.
Prompt templates by category
One universal prompt produces one universal voice, which is how a sofa and a phone case end up described the same way. Write one template per category, with shared rules on top.
What every template shares
- Brand voice: a short style guide plus three or four descriptions you consider good. Examples teach tone better than adjectives.
- Labeled inputs: attributes as structured fields, not a paragraph, so the model can’t blur them.
- Output format: the exact HTML your theme expects.
- Length range: set per category; a phone case needs fewer words than a mattress.
- Hard rules: only the facts provided, no unprovable superlatives, no competitor names, no banned words.
What changes by category
| Category | Lead with | Must include | Common mistake |
|---|---|---|---|
| Apparel | Fit and how it wears | Fabric composition, fit notes, model size, care | “True to size” with no measurements |
| Skincare and beauty | Skin type and intended result | Key ingredients, how to use, size | Implied medical claims |
| Electronics and accessories | Compatibility | Specs, what’s in the box, compatible models | Guessing compatibility |
| Furniture and home | Space and use | Dimensions, materials, assembly, weight capacity | Missing assembled dimensions |
| Food and supplements | Taste or occasion | Ingredients, allergens, serving information | Health claims the label doesn’t support |
A compact apparel template might look like this:
You write product descriptions for [brand]. Match the voice of the examples.
Use ONLY the attributes provided. If an attribute is missing, do not
mention it. Never use: premium, elevate, must-have, perfect for any occasion.
Structure:
1. One or two sentences on who it's for and how it fits, opening with
the differentiator field.
2. A <ul> with fabric, fit, model size and care.
3. One sentence on how to wear or style it.
Length: 80-130 words. Return HTML only.
Attributes: {product_json}
Examples: {approved_examples}
Avoiding duplicate and generic copy
Generated copy converges: one template across hundreds of similar products yields hundreds of descriptions with the same rhythm. Search engines have little reason to rank near-identical pages, and a shopper comparing two products learns nothing from either.
What works:
- Open with the differentiator. When the first line comes from a field unique to that product, openings vary naturally.
- Keep a banned-phrase list and grow it. Each batch review adds the phrases that showed up too often.
- Check similarity within the batch. Compare each new description against others in its category, using word overlap or embeddings, and flag pairs above a threshold you set after reviewing a few examples. Flagged pairs usually point to thin input data, not a bad prompt.
- Don’t write separate descriptions for variants. Colors and sizes belong on one product. If they’re split into separate products, consolidate before you generate.
- Feed in customer language. Review excerpts and common questions give the model real phrasing and real objections to answer, which is exactly what generic copy lacks.
Accuracy checks: materials, sizing and claims
This is where AI description projects fail quietly: an invented dimension goes live and surfaces weeks later as returns and “not as described” reviews.
Automated checks on every description
- Fact grounding: extract every number, unit and material from the output and confirm each appears in the input data. Anything unmatched gets flagged.
- Claim scan: search for restricted terms you define, such as “waterproof,” “organic,” “hypoallergenic,” “clinically proven,” “non-toxic,” “Made in USA” or “sustainable,” and flag any not backed by a field in the input.
- Format and length: confirm the HTML structure and word count match the template.
- Similarity: the duplicate check from the previous section.
Failed descriptions go back for regeneration with the reason attached, and to a person if they fail twice.
Human review of every batch
Automation catches errors of fact; people catch errors of judgment. My starting rule of thumb is to review 10-20% of each batch: every flagged item plus a random sample of the rest, weighted toward bestsellers and categories with high return rates. Reviewers check against the source data, not memory.
Set a rejection threshold before the review starts. If too much of the sample fails, fix the template or the data and regenerate the whole batch. Hand-editing individual descriptions hides the cause and guarantees the next batch repeats it.
Bulk publishing to Shopify and other platforms
Never write generated copy straight into live product descriptions. Stage it, review it, then publish with a way back.
| Step | What happens | Why |
|---|---|---|
| 1. Export | Pull product ID, handle, current description and attributes | Keeps the original for rollback |
| 2. Generate | Run the category template on each row | Output lands in a staging column or draft metafield |
| 3. Check | Automated checks, then the human sample | Nothing unchecked moves forward |
| 4. Publish | Write approved copy to the description field in batches | Only approved rows go live |
| 5. Log | Record product, date, template version and batch ID | Needed for rollback and measurement |
On Shopify, the simplest route is the product CSV import: update the Body (HTML) column and import with the option to overwrite products with matching handles. Test on a handful of products first, since a malformed file can change more than the description. For recurring pipelines, the Admin API lets a workflow tool such as n8n update descriptions and metafields directly. WooCommerce and BigCommerce support the same pattern through CSV import and their REST APIs.
This staged pipeline, from data pull to logged publish, is the kind of system I build in AI automation engagements, so new products get descriptions the day they’re added rather than whenever someone has time.
Measuring SEO and conversion impact
Roll out by collection or category rather than all at once, and keep a comparable group on the old copy for a few weeks. That gives you a control, which matters because seasonality, promotions and ad spend move product page metrics on their own.
Compare the rewritten pages with the control:
- Search: impressions, clicks and distinct queries per product URL in Search Console. More distinct queries is often the first sign that attribute-rich copy matches long-tail searches. Allow several weeks for recrawling.
- Conversion: product view to add-to-cart rate, and add-to-cart to purchase.
- Quality: return rate and return reasons, plus support tickets asking questions the description should have answered.
If search improves but add-to-cart doesn’t, the copy is findable but not persuasive, and the problem may sit elsewhere on the page: images, price presentation or reviews. Product page optimization covers those levers.
Get it built
If you have hundreds of products with thin or copied descriptions and no time to write them, I can build the pipeline: data cleanup, category templates, checks and staged publishing. Start with a Growth Audit, $1,500 fixed and credited if we continue, or see pricing for the AI automation add-on. Get in touch.