Skip to content

Getting inventory in ​

Every way to load a product catalog into MyChatBot, plus what happens to it once it lands. Use this page when you're wiring up a catalog source and need to know which method to pick in the app, what each one requires, and how your data ends up searchable.

You add inventory entirely from the app β€” the Knowledge Base. There's no API to call. Whatever method you pick, your products are parsed and indexed so your agent's product search can find them (by keyword, by meaning, and β€” optionally β€” by image). The methods differ only in how your catalog reaches MyChatBot.

In the app

Knowledge Base β†’ Create New, then pick a product source. Most catalog setup β€” filters, auto-update, and image search β€” lives here. (One exception: Instagram products is set up under Channels β†’ Instagram, not Knowledge Base β€” see Instagram products below.) https://app.mychatbot.app/knowledge-base

The Knowledge Base source catalog β€” the product sources you can add

What becomes searchable products vs background knowledge ​

Not everything you add lands in product search. Where a source goes decides whether your agent can search and filter it as a product catalog, or only read it as reference when answering. There are three destinations:

What you addWhere it landsProduct-searchable & filterable?
Product Feed, Product Spreadsheet, Products / Catalog (added in the app), Instagram productsSearchable product indexβœ… Yes β€” this is what the product-search tools, filters, and image search actually search
FAQ, Business Documents, Business Files (uploaded DOC / PDF / …)Background knowledge❌ No β€” the assistant references them when answering, but you can't browse or filter them as products
Business Links (your website URLs)Live website lookup❌ No β€” not indexed; fetched live from your site at reply time when a question needs it

The practical takeaway

Only the first row feeds product search. Everything else is context the assistant reads β€” useful for answering questions, but invisible to the product-search tools, filters, and image search covered in the rest of these docs. Which mode that first row runs in (a single lookup vs. a step-by-step search agent) is the Agentic Search toggle β€” see Direct vs agentic search.

Uploaded product files become background knowledge, not a searchable catalog

Uploading product info as files (DOC / PDF / HTML / …) puts it in file/document knowledge: the assistant can read it to answer, but those products don't enter the searchable product index, so product-search filters and image search won't cover them. It's fine for quick tests or doc-shaped catalogs β€” but for real product search, load your catalog as a Product Feed, Product Spreadsheet, or the in-app Products catalog.

OpenCart / WordPress stores connect as a feed

The OpenCart and WordPress / WooCommerce plugins below aren't a separate kind of knowledge. The plugin publishes your store's product export, and MyChatBot consumes it just like a Product Feed β€” so "connect your store" really means "connect its product feed," and those products land in the searchable index (the first row above).

Cheat sheet ​

Ways to load a catalog ​

MethodBest forHow you connect itAuto-updateImage search
Product Feed (XML / YML / text)Any store that can publish a feed URLPaste a public feed URL (XML, YML, or TXT)Every ~6 h (toggle)Yes (toggle)
Product Spreadsheet (Google Sheet)Inventory maintained in a spreadsheetConnect Google Drive and pick the sheetEvery ~6 h (toggle)Yes (image1…imageN columns)
Product Files (upload)Existing product docs, quick testsUpload up to 7 filesNoNo
OpenCart CMS PluginOpenCart storesInstall the MyChatBot pluginEvery ~6 h (toggle)Yes (toggle)
WordPress / WooCommerce PluginWordPress/WooCommerce storesInstall the MyChatBot pluginEvery ~6 h (toggle)Yes (toggle)
Instagram productsAn Instagram business account's posts & reelsSet up under Channels β†’ Instagram (not here)Yes, automaticYes (frames pulled from reels)

Which one should I use?

If your platform can emit a feed URL, use the Product Feed β€” it's the most direct and the most configurable. Use the CMS plugins (OpenCart / WordPress) when you'd rather install a plugin than expose a feed. Use the Product Spreadsheet when a human maintains the catalog by hand. Use Product Files only for quick tests or doc-shaped catalogs β€” it gives you the least control over attributes and filtering.

Supported feed formats (auto-detected) ​

MyChatBot auto-detects your feed's format β€” there's no format picker in the app. The supported formats include:

FormatNotes
JSON product feedFastest to parse
ChatGPT commerce feedOpenAI's commerce feed format
Google ShoppingRSS / Atom; the common default
YMLYandex Market XML (<offer> elements)
Amazon XMLAmazon product XML
AtomGeneric Atom feeds
Generic XMLFlexible fallback for other XML shapes
1C JSONRussia / 1C exports

…plus several store-specific formats. If your feed is a niche format and search looks wrong (for example, every product lands in a single catch-all category), contact MyChatBot support β€” they can pin the right parser for your catalog.

Load a catalog by method ​

Product Feed (XML / YML / text) ​

The most direct method. Supported formats: XML, YML, TXT. The feed must be publicly accessible and return raw content (no HTML wrapper page).

  1. Knowledge Base β†’ Create New β†’ Product Feed (name it).
  2. Enter the Feed URL.
  3. Pick the Language closest to your descriptions (so search matches word variations).
  4. Toggle Auto-update products to re-sync every ~6 hours (or re-save manually anytime).
  5. Enable Agentic Search for filter/attribute-aware search on large, heterogeneous catalogs.
  6. Click Connect to start processing. After it finishes, the app auto-extracts fields (size, price, brand…); toggle on the ones you want as filters, and enable range search for numeric fields like price.

A typical YML/<offer> shape:

xml
<yml_catalog>
  <shop>
    <offers>
      <offer id="123">
        <name>Product Name</name>
        <description>Product description</description>
        <price>99.99</price>
        <picture>https://example.com/image1.jpg</picture>
        <brand>Brand Name</brand>
        <size>Medium</size>
      </offer>
    </offers>
  </shop>
</yml_catalog>

Two hard requirements

Every product needs a unique id. Duplicate IDs fail the whole import. And for large feeds, categorise properly (usually via your feed's product_type / category field) β€” flat catalogs hurt search accuracy at scale.

Group variants with parent_product_id

Apparel and other catalogs that ship one row per size/color should set the optional parent_product_id field on each variant to the shared parent product's id. That links the SKUs so MyChatBot relates them and groups them as variants, instead of cluttering search results with near-duplicate rows. Leave it unset for standalone products.

Product Spreadsheet (Google Sheet) ​

Connect a Google Spreadsheet directly. The sheet must be native Google Sheets format β€” an XLSX file merely stored in Drive will not work.

  1. Knowledge Base β†’ Create New β†’ Product Spreadsheet β†’ Connect.
  2. Grant Google Drive consent, pick the account, Pick File β†’ select the sheet.
  3. Choose the language; toggle Auto-update products to sync changes; Connect.

Column rules:

  • Headers in the first row.
  • id β€” unique per product (required).
  • product β€” product name/title (required).
  • parent_product_id β€” optional; put the same value (the parent's id) on every variant row (sizes/colors of one product) to group them as variants instead of near-duplicate rows.
  • Any additional columns become attributes: price, size, color, composition, category, description, availability, … (unlimited).
  • For image search, put image URLs in columns named image1, image2, image3, image4, and so on.

Once connected, your agent searches this catalog automatically.

TIP

If it isn't a column, the agent can't see it. Add every attribute customers ask about. After connecting, you'll get a summary like 119 products, 1 categories.

Product Files (upload) ​

The quickest setup, with the least control. Knowledge Base β†’ find the Product Files integration β†’ Connect β†’ select files.

  • Up to 7 files, max 7 MB each.
  • Formats: DOC, DOCX, PDF, HTML, JSON.
  • Text and product info are extracted and indexed automatically, then searchable by text.

Limitations

No control over how products are indexed, and no configurable attribute filters. Uploaded files are read as background/reference knowledge rather than added to the searchable product index (see What becomes searchable products vs background knowledge), so the product-search tools, filters, and image search won't cover them. Great for testing search or doc-shaped catalogs; use a feed, plugin, or sheet for anything you'll run in production.

OpenCart ​

  1. Knowledge Base β†’ Create New β†’ OpenCart CMS Plugin.
  2. Enter your store URL (including https://), name the plugin, choose whether to enable image search.
  3. Download mychatbot-inventory.ocmod.zip.
  4. OpenCart admin β†’ Extensions β†’ Installer β†’ upload the zip.
  5. Find it under Extensions β†’ Modules as "Mychatbot" β†’ Edit β†’ set Service Status β†’ On β†’ Save. (Ensure the admin user group has permission to modify extensions/modules.)
  6. Back in MyChatBot, click Install on the integration that appeared, pick the language, set auto-update (every ~6 h) and filters (price range, quantity, rating…).

Provides semantic + filter search and product-ID lookup.

WordPress / WooCommerce ​

  1. Knowledge Base β†’ Create New β†’ WordPress CMS Plugin (name it).
  2. Enter your store URL (including https://), name the plugin, choose whether to enable image search.
  3. Download mychatbot-wp-inventory.zip.
  4. WordPress admin β†’ Plugins β†’ Add New β†’ Upload Plugin β†’ install and activate "MyChatBot-Store" (description: "Plugin to expose products API for AI assistants").
  5. Back in MyChatBot, confirm it shows connected; indexing starts automatically. Set auto-update (every ~6 h) and optional filters.

Your agent searches this catalog automatically, with text search, the filters you enabled, and image search when it's on.

Instagram products ​

Turn an Instagram business account into a searchable product catalog. Each post and reel becomes a product β€” its caption supplies the title and description, and its images (plus frames pulled from reels) are indexed for image search too. It auto-updates as the account posts.

Set this up under Channels β†’ Instagram β€” not the Knowledge Base page

This is the common confusion: Instagram products is configured under Channels β†’ Instagram (app.mychatbot.app/channels β†’ your agent β†’ Instagram) β€” not under Knowledge Base like the other product sources.

  1. Connect the Instagram channel for your agent β€” see Connect Instagram.
  2. Turn on Instagram products, choose a feed language (English, Russian, or Ukrainian), and name it.
  3. It indexes existing posts and reels as products and refreshes automatically.

Once indexed, you search it exactly like any other product source β€” semantic search, filters, and image search all apply, and the Agentic Search toggle (Direct vs agentic search) works here too.

What Instagram products can't do

  • Ingest is time-boxed β€” very long reels can be capped (only part of a long video is pulled in).
  • It needs a connected Instagram channel to pull from.
  • Languages are English, Russian, or Ukrainian only.
  • Posts are modeled as generic products β€” there's no price, SKU, or variant unless that detail is written in the caption.

How indexing works ​

The pipeline ​

Once you connect a source, every method runs the same path behind the scenes:

  1. Fetch & parse β€” MyChatBot pulls your feed and reads its products.
  2. Exclude noise β€” any attributes you've marked to ignore are dropped before indexing.
  3. Build categories β€” your category hierarchy and per-category attributes are recorded.
  4. Index for search β€” each product is indexed for both keyword and meaning-based (semantic) search, along with its filterable fields.
  5. Image indexing (optional) β€” when image search is on, product images are analyzed.

Processing runs in the background and can take up to an hour for large feeds. Watch the app for the completion summary (total products and categories).

Categories, and what "no categories" means ​

Categories drive search structure β€” results are grouped and ranked per category. If a feed has no category information, every product falls into a single catch-all category. That works, but it disables per-category ranking, so a large uncategorised catalog searches worse. (If a big catalog that should have categories collapses into one, that's usually a sign the wrong parser fired β€” see the format note above.)

Image indexing ​

When image search is on, MyChatBot analyzes the product's images (up to a limit tuned by MyChatBot). It builds fast visual fingerprints for near-duplicate matching and β€” when deeper visual matching is enabled for your account β€” adds AI-based visual recognition for better recall. These power image search (a shopper uploads a photo β†’ finds the matching product). The AI visual matching adds semantic recall but is a little slower; fingerprint-only is faster but more collision-prone. See Image search for the matching pipeline.

Length limits ​

Two size limits shape what's searchable:

  • Descriptions β€” very long product descriptions are trimmed to a length limit (tuned by MyChatBot) before indexing. Front-load the important detail; anything past the limit isn't indexed.
  • Searchable attributes β€” all your non-code attributes are combined into one searchable block that filters glob over, and it has a per-product size cap. Keep attribute values concise so the important ones all fit.

Code-like attributes are handled separately

Attributes that look like codes (vendor code, SKU, product code, model number) are kept out of the fuzzy attribute search on purpose. For exact code lookups, the agent matches them directly (exact-code matching is on by default) or fetches the product by ID. See Filters, attributes & params.

Unrecognised attributes are display-only, not filterable

Attributes nested in an unusual way in your feed β€” e.g. a price or vendor field the parser didn't expect β€” can still show on the product card, but they were never indexed as a filterable field, so filters on them silently return nothing. If a field you expect to filter on isn't narrowing results, it likely wasn't indexed as a filter. When that happens, the integration needs a fresh index β€” see Re-indexing & repairs.

Re-indexing & repairs ​

Normal updates are incremental ​

  • Auto-update products re-syncs the source about every 6 hours (per-integration toggle).
  • Re-saving the integration in the app re-runs the feed on demand.

Both re-parse the source and update only what changed β€” they do not rebuild the index from scratch. That's the right behaviour for day-to-day catalog changes.

A from-scratch reindex isn't a self-serve knob ​

There's no toggle in the app that forces a full from-scratch rebuild. You need one in one main case: an older integration whose attribute filters return nothing because it was indexed before the current search fields existed (see the tip below). When that happens you have two options:

  • Delete and re-add the integration. A fresh integration indexes from scratch with the current pipeline, rebuilding all the searchable and filterable fields. (Re-creating it changes the integration, so re-check any agent that references it.)
  • Contact MyChatBot support on Telegram: https://t.me/mychatbot_support. Support can force a rebuild for you. Include your account id, integration id, and a one-line symptom β€” e.g. "attribute filters return empty on integration 4821."

Why old integrations' filters go empty

Attribute filters glob over each product's searchable-attributes block. Integrations indexed before that block existed don't have one, so attribute filters silently return nothing. Search auto-falls-back once per request to the per-category typed fields, so many filtered queries still return something (see Filters, attributes & params) β€” but that masks the gap rather than fixing it. The permanent fix is a from-scratch reindex via the delete-and-re-add or support path above.

Ghost results from an old catalog

Deleting and re-creating an integration can occasionally leave a stale index behind, so search may return products from a catalog you've already removed. A stale index has to be wiped by MyChatBot β€” contact support on Telegram (https://t.me/mychatbot_support) with the account id and integration id.

Best practices ​

Do

  • Give every product a genuinely unique id.
  • Categorise large catalogs (usually via your feed's product_type field).
  • Include every attribute customers ask about β€” sizes, price, stock, images.
  • Pick the language closest to your descriptions (so search matches word variations).
  • Exclude internal noise attributes that pollute search.
  • Let MyChatBot auto-detect the format; only ask support to pin a parser when a niche feed is genuinely misdetected.
  • Repair an old integration whose filters return empty (or a stuck import) by deleting and re-adding it, or by asking support for a from-scratch reindex.

Don't

  • Don't ship duplicate IDs β€” they fail the entire import.
  • Don't leave a large catalog uncategorised (it collapses into one catch-all category).
  • Don't expect a re-save or auto-update to rebuild a broken index from scratch β€” it's an incremental update; use delete-and-re-add or support.
  • Don't bury key facts past the description length limit.
  • Don't upload an XLSX-in-Drive as a "Google Sheet" β€” convert to native Sheets first.

Test it ​

  1. Kick off the feed β€” create or re-save the integration in the app, then watch until it reports the completion summary (or a failure).
  2. Check the summary β€” total products and categories should match your catalog. A single catch-all category on a catalog that has categories means the wrong parser fired (ask support to pin the right one).
  3. Run a known-item search β€” query for a product you know exists and confirm it ranks. If attribute filters return empty on an older integration, it needs a from-scratch reindex: delete and re-add it, or contact support (see Re-indexing & repairs).
  4. Spot-check filters and images β€” verify a price/attribute filter narrows results, and (if enabled) that an image query returns the right product.

See Testing search for the regression-test pattern (query β†’ expected products).

See also ​