Expert guide

Generate Product Descriptions in Bulk from Excel with AI

Accurate, distinct copy for hundreds of SKUs, without inventing a single feature

Short answer: put each product's facts in an Excel row (name, category, features, specs, use case), write a category-specific prompt that allows only those facts, generate a description per row into a new column, filter for anything marked MISSING, review a sample per category, then export to your store's CSV template. Structured data in, structured copy out. We automate the whole pipeline, including store sync, as AI workflow automation.

Online retailers and wholesalers face the same backlog: a supplier sends 400 new SKUs with a spreadsheet of specifications and nothing a customer would want to read. Copywriting them by hand takes weeks; copying the supplier's text creates duplicate content across every store that sells the same product. AI can write good descriptions quickly, but only if you treat the spreadsheet as the source of truth and the AI as a writer who is not allowed to make things up.

Step 1: Structure the Product Sheet

ColumnContentWhy it matters
SKUUnique IDJoins back to the store and inventory
NameCustomer-facing nameUsed in the first sentence
CategoryControls which prompt is usedKitchenware and power tools need different tone
Features (3–6)Short factual phrases separated by semicolonsThe model may use these and nothing else
SpecsSize, weight, material, capacity, compatibilityAccuracy-critical; returned as a list, not prose
Use case / audienceWho it is for and when they use itMakes copy specific instead of generic
Search termsTwo or three phrases customers typeUsed naturally once, not stuffed
Char limitPer channel (marketplace, own store, email)Avoids truncation on import

Most of the quality comes from this step. If the Features column says "high quality, durable, great value", the description will be generic no matter how good the model is. Five specific facts produce a specific description.

Step 2: Write a Prompt Per Category

You write product descriptions for an online kitchenware store.
Voice: practical, warm, no exaggeration, no exclamation marks.
Structure:
1. One sentence: what it is and who it is for.
2. Two short paragraphs on the most useful features, in customer terms.
3. A bullet list "Specifications" containing the specs exactly as given.
Rules:
- Use ONLY the features and specs provided. Never add materials,
  certifications, dimensions or compatibility that are not listed.
- If Name, Features or Specs is empty, return: MISSING: <field>.
- Mention one of the search terms naturally, once.
- 120–160 words excluding the specifications list.
- Return HTML using <p> and <ul><li> only.

Product:
Name: Cast Iron Skillet 26 cm
Features: pre-seasoned; works on induction; helper handle; pour spouts both sides
Specs: Diameter 26 cm; Weight 2.6 kg; Material cast iron; Oven-safe 260°C
Use case: home cooks searing, baking and roasting
Search terms: cast iron skillet induction; pre-seasoned frying pan

Separate prompts per category keep descriptions varied. Fifty pans written with the same instructions as fifty drill bits produce copy that sounds alike across the whole catalogue.

Step 3: Generate in Bulk

  • Under 100 products

    Copilot in Excel or a chat assistant with batches of 10 rows pasted at a time.

  • Hundreds to thousands

    A VBA or Office Scripts loop that builds the prompt from each row and writes the response to a Description column.

  • Ongoing catalogue updates

    An automated job that generates descriptions only for new or changed SKUs and logs every call.

The row-by-row loop is the same as in calling the OpenAI API from Excel VBA; you only change how the prompt is built from the columns.

Build the user message for row r in a helper column:
="Name: "&[@Name]&CHAR(10)&
 "Features: "&[@Features]&CHAR(10)&
 "Specs: "&[@Specs]&CHAR(10)&
 "Use case: "&[@[Use case]]&CHAR(10)&
 "Search terms: "&[@[Search terms]]

Step 4: Quality Checks Before Export

  • Filter Description for MISSING and fix the source data.

  • Check length: =LEN(REGEXREPLACE([@Description], "<[^>]+>", "")) against the channel's limit.

  • Check that every spec value appears unchanged: for numeric specs, test with ISNUMBER(SEARCH()).

  • Search for risky words your products cannot claim: 'waterproof', 'certified', 'medical', 'organic', 'guaranteed'.

  • Review 10 descriptions per category by a person who knows the products.

  • Check for near-duplicates: sort by the first 60 characters and look for repeats.

Step 5: Export to Your Store

PlatformDescription fieldNotes
ShopifyBody (HTML)Handle identifies the product; import via Products → Import CSV
WooCommerceDescription / Short descriptionBuilt-in CSV importer maps columns; SKU matches existing products
BigCommerceProduct DescriptionBulk edit via CSV import
Amazon Seller CentralBullet points and description in category templatesStrict character limits and restricted claims

Create an Export sheet whose headers exactly match the platform template and whose columns reference the product sheet. Save as CSV UTF-8 so special characters such as ° and é survive the import.

Making It a System, Not a One-Off

Retailers who do this well keep the product sheet, or better an inventory database, as the master record. Supplier updates flow in, AI descriptions are generated only for new or changed products, a person approves them, and the store is updated via API. That loop is a natural extension of Access inventory management or an Excel API integration with your e-commerce platform. For checking orders and payouts after the products are live, see e-commerce order reconciliation in Excel.

FAQ

AI product descriptions FAQ

For e-commerce teams and wholesalers

Yes. Keep one row per product with its attributes (name, category, material, dimensions, key features, audience), then have an AI model write a description per row using a fixed template and tone guide. The result goes into a new column, which you review and export to your store's import format.

Search engines care about whether content is helpful and accurate, not whether a tool helped write it. Thin, near-identical descriptions across hundreds of products are the real risk. Feed the model real, specific attributes for each product, require different angles per category, and review for factual accuracy.

Instruct it to use only the attributes in the row, to leave out anything not provided, and to return 'MISSING: [attribute]' when a required field is empty. Then filter for MISSING before export. Never let a model guess dimensions, materials, certifications or compatibility.

At minimum: SKU, product name, category, three to six factual features, materials or specifications, intended user or use case, and any compliance notes. Optional: brand voice notes per category, keywords customers search for, and a character limit for the target channel.

Yes. Each platform accepts a CSV import with specific column headers. Build an export sheet that maps your columns to the platform's template, including the HTML body field. For frequent updates, an API integration avoids repeated manual imports.