> ## Documentation Index
> Fetch the complete documentation index at: https://boundbot.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Products

> Build a BoundBot product catalog for AI recommendations, pricing answers, and order-related workflows.

export const BrowserWrapper = ({src, alt, title, description, height = '280px', caption, imgStyle = {}, children, imagePadding = '0px'}) => {
  const legacyDocsImagePrefix = '/images/';
  const productionDocsImagePrefix = '/docs/images';
  const rawSrc = typeof src === 'string' ? src : src && (src.src || src.default) || '';
  const imageSrc = rawSrc.startsWith(legacyDocsImagePrefix) ? `${productionDocsImagePrefix}/${rawSrc.slice(legacyDocsImagePrefix.length)}` : rawSrc;
  return <Frame caption={caption || alt || title} width="100%">
      <div style={{
    border: '1px solid #e2e8f0',
    borderRadius: '12px',
    overflow: 'hidden',
    boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
    width: '100%'
  }}>
        <div style={{
    backgroundColor: '#f8fafc',
    padding: '10px 15px',
    borderBottom: '1px solid #e2e8f0',
    display: 'flex',
    gap: '6px'
  }}>
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#ff5f56'
  }} />
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#ffbd2e'
  }} />
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#27c93f'
  }} />
        </div>
        <div style={{
    overflow: 'hidden',
    background: '#ffffff',
    width: '100%',
    padding: imagePadding
  }}>
          {src ? <img src={imageSrc} alt={alt || ''} data-docs-screenshot style={{
    ...imgStyle,
    width: '100%',
    minWidth: '100%',
    height: 'auto',
    display: 'block',
    borderRadius: '0px'
  }} /> : children ? children : null}
        </div>
      </div>
    </Frame>;
};

The <a href="https://www.boundbot.com/dashboard/knowledge/products" target="_blank" rel="noopener noreferrer">product catalog</a> gives BoundBot structured product data it can use in conversations, recommendations, sales workflows, and order operations.

<BrowserWrapper src="../images/product-enable.png" alt="Product catalog dashboard with list of products." />

## Add products manually

This is the best option when you only manage a small catalog or need to clean up a few high-value items.

<Steps>
  <Step title="Open the product catalog">
    Go to <a href="https://www.boundbot.com/dashboard/knowledge/knowledge-base" target="_blank" rel="noopener noreferrer"><b>Knowledge</b></a> → <a href="https://www.boundbot.com/dashboard/knowledge/products" target="_blank" rel="noopener noreferrer"><b>Products</b></a>.
  </Step>

  <Step title="Create a product">
    Click **Add product** (or equivalent) and fill in the fields you need. See the table below for each property’s purpose.
  </Step>

  <Step title="Save">
    Save the product. It is available to the bot immediately for recommendations and answers.
  </Step>
</Steps>

### Product properties

| Field           | Purpose                                                                                  |
| --------------- | ---------------------------------------------------------------------------------------- |
| **Name**        | Display name the bot uses when recommending or describing the product.                   |
| **Description** | Full product description for answers and search; keep it concise and scannable.          |
| **SKU**         | Unique identifier for the product; useful for orders, inventory, and disambiguation.     |
| **Price**       | Unit price; use with **Currency** for correct display.                                   |
| **Currency**    | Currency code (e.g. USD, EUR) so the bot formats prices correctly.                       |
| **Stock**       | Optional quantity on hand; helps the bot answer availability and out-of-stock questions. |
| **Category**    | Grouping for filtering and “products like this” style answers.                           |
| **Website URL** | Link to the product page so the bot can direct users to buy or learn more.               |
| **Image URL**   | Product image URL for rich responses and widget display.                                 |
| **Tags**        | Extra keywords or labels to improve search and recommendation matching.                  |

<Tip>
  Fill **Name**, **Price**, and **Description** at minimum. Add **SKU** and **Website URL** when you use the catalog with <a href="/automation/actions">Actions</a> or <a href="/automation/workflows">Workflows</a> for orders or lead capture.
</Tip>

## Use variations

If a product comes in multiple combinations, enable **Has variations** and define up to three option groups such as:

* Color
* Size
* Material

BoundBot generates the variant matrix for you. You can then manage default variant, SKU, price, stock, and image URL per variant.

<Note>
  The **variant matrix** lets you track inventory and pricing per combination (e.g. “Blue / Large” vs “Red / Small”). Use it when you need the bot to answer with specific variant availability or to pass the correct SKU into <a href="/automation/actions">Actions</a> or <a href="/automation/workflows">Workflows</a> for order or lead capture.
</Note>

## Import products in bulk

Open the import flow when you want to load many products at once.

BoundBot supports:

* **CSV import** with strict headers
* **CSV import with AI mapping** when your columns do not match BoundBot fields cleanly
* <a href="/developers/google-sheets"><b>Google Sheets import</b></a> after you connect Google in team integrations

<Steps>
  <Step title="Open Products">
    Go to <a href="https://www.boundbot.com/dashboard/knowledge/products" target="_blank" rel="noopener noreferrer"><b>Knowledge</b></a> → <b>Products</b>.
  </Step>

  <Step title="Start import">
    Click **Import** (or **Bulk import**) and choose CSV upload or Google Sheets.
  </Step>

  <Step title="Map columns">
    Match your file’s columns to catalog fields, or use AI mapping and add a hint (see below).
  </Step>

  <Step title="Confirm and import">
    Review the preview, then run the import. New and updated products appear in the catalog once processing completes.
  </Step>
</Steps>

## AI mapping

The AI mapping flow is useful when:

* each row is a variant rather than a product
* your header names are custom
* you need help grouping rows into options and variants

You can add a **mapping hint** in the import flow so BoundBot interprets your file correctly. Examples you can copy and adapt:

**Example 1 – Variants per row, group by product**

```
Each row is a variant. Group by Product ID. Color and Size are option names. Map "Unit Price" to Price and "Item SKU" to SKU.
```

**Example 2 – Custom column names**

```
Column "Product Name" is Name. "Retail Price" is Price. "In Stock (Y/N)" means Stock: Y = 1, N = 0. "Category Name" is Category.
```

**Example 3 – Multi-option products**

```
One product per row. "Option 1" and "Option 2" are variation options. Combine them into a single product with two option groups. SKU column is unique per row.
```

<Tip>
  Be specific about which columns map to which catalog fields and how rows relate to products vs variants. Short hints often work better than long paragraphs.
</Tip>

## Plan limits

Product catalog access is plan-based:

* **Free:** no product catalog
* **Starter:** up to 100 products
* **Pro:** up to 5,000 products with CSV import
* **Business:** unlimited

If your plan does not include products or you have reached the limit, the dashboard shows an **Unlock products** (or upgrade) prompt when you open the catalog or try to add products.

<BrowserWrapper src="../images/products-create.png" alt="Unlock products modal or plan upgrade prompt when product catalog is not available on the current plan." />

<Warning>
  Product count is enforced per team. If you hit the limit, you must upgrade or remove products before adding more. Deleting products frees space immediately.
</Warning>

### Advanced: Actions and Workflows

For guided shopping, lead capture, and order handling, pair the catalog with **advanced features**:

* **[Actions](/automation/actions)** (<a href="https://www.boundbot.com/dashboard/automations/actions" target="_blank" rel="noopener noreferrer">open in app</a>) — trigger steps (e.g. “Add to cart”, “Capture lead”) from conversation or bot logic.
* **[Workflows](/automation/workflows)** (<a href="https://www.boundbot.com/dashboard/automations/workflows" target="_blank" rel="noopener noreferrer">open in app</a>) — multi-step automation that can use product data, collect details, and route to CRM or order systems.

View captured <a href="https://www.boundbot.com/dashboard/sales/leads" target="_blank" rel="noopener noreferrer">leads</a> and <a href="https://www.boundbot.com/dashboard/sales/orders" target="_blank" rel="noopener noreferrer">orders</a> in the app when you use these features with your catalog.

## Related pages

<CardGroup cols={2}>
  <Card title="Actions" icon="zap" href="/automation/actions">
    Advanced: trigger steps from conversations and use product data for lead or order capture.
  </Card>

  <Card title="Workflows" icon="workflow" href="/automation/workflows">
    Advanced: multi-step automation with product data and external systems.
  </Card>

  <Card title="Google Sheets import" icon="sheet" href="/developers/google-sheets">
    Connect a spreadsheet-driven import flow for catalogs maintained by non-technical teammates.
  </Card>

  <Card title="Website sources" icon="globe" href="/guides/websites">
    Keep structured product data separate from crawled marketing or help-center pages.
  </Card>

  <Card title="Leads and orders" icon="shopping-cart" href="/sales/leads-orders">
    Use the catalog alongside order-aware support and sales follow-up.
  </Card>

  <Card title="Plans and limits" icon="badge-dollar-sign" href="/reference/plans-and-limits">
    Review product count and import availability by tier.
  </Card>
</CardGroup>
