Expert guide
Generate Product Descriptions in Bulk from Excel with AI
Accurate, distinct copy for hundreds of SKUs, without inventing a single feature
Call us at +1 (385) 386-3860
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
| Column | Content | Why it matters |
|---|---|---|
| SKU | Unique ID | Joins back to the store and inventory |
| Name | Customer-facing name | Used in the first sentence |
| Category | Controls which prompt is used | Kitchenware and power tools need different tone |
| Features (3–6) | Short factual phrases separated by semicolons | The model may use these and nothing else |
| Specs | Size, weight, material, capacity, compatibility | Accuracy-critical; returned as a list, not prose |
| Use case / audience | Who it is for and when they use it | Makes copy specific instead of generic |
| Search terms | Two or three phrases customers type | Used naturally once, not stuffed |
| Char limit | Per 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
| Platform | Description field | Notes |
|---|---|---|
| Shopify | Body (HTML) | Handle identifies the product; import via Products → Import CSV |
| WooCommerce | Description / Short description | Built-in CSV importer maps columns; SKU matches existing products |
| BigCommerce | Product Description | Bulk edit via CSV import |
| Amazon Seller Central | Bullet points and description in category templates | Strict 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