Offerings (What you sell)
The products, services, courses, bookings and plans your Sales agent can sell.
On this page: What an offering is · Kinds · Four ways to add them · The form · CSV import · Synced offerings · Offering limit · Troubleshooting
What an offering is
An offering is one thing you sell: a product, a service, a course intake, an appointment, an event date or a plan. It has a name, a kind, a price (or “priced on request”), and optionally a description, category, stock, image and a page link. Your agent quotes prices and availability only from offerings, never from knowledge text, so what a customer is told can be checked when they order.
In the dashboard: Knowledge Base → Documents, then the What you sell tab (also linked from section 2 of the AI Sales Agent settings). Archiving hides an offering from the agent and never deletes it; you can restore it.
Kinds
| Kind | Key (for CSV and API) |
|---|---|
| Product | product |
| Service | service |
| Course intake | course_intake |
| Appointment | appointment |
| Event date | event_date |
| Plan | plan |
| Custom | custom |
You can rename a kind for your customers (for example “Course” for Course intake) on the AI Sales Agent settings.
Four ways to add offerings
- One at a time with the offering form.
- Many at once with a CSV file (up to 1000 rows).
- From your own system with the offerings feed of the Knowledge Sync API, which keeps them in step automatically.
- From what you already taught your agent with Find what I sell: you review and approve each suggestion.
The offering form
Press New offering. The form has four parts:
- What it is: name, category, short description (one or two lines for cards), description, tags, SKU, Code in your own system (the id your shop or booking system uses; chat orders send it to your system), image link and Page link (where the customer completes, when that is on your page).
- Kind, price and availability: kind; availability (stock, seats, time slots, unlimited or quote required); what happens after acceptance; price and currency; stock quantity; switches for Track inventory, Quote required and Active (off hides it from the agent).
- What the customer chooses: options, quantity per order, intakes and seats (courses and events), slot rules and opening hours (appointments), party size.
- What to collect: the details the agent asks for before a request. Contact details only; never passwords or card numbers.
A price is required unless the offering is Quote required.
CSV import
- Open Offerings → Import CSV and download the example file.
- Fill one row per offering. Save as CSV UTF-8, at most 2 MB and 1000 rows.
- Upload it. Valid rows are created; each refused row is listed with its line number (the header is line 1).
| Column | What it is |
|---|---|
name required | Name (required) |
offering_kind | Kind: product, service, appointment, course_intake, event_date, plan or custom |
price required | Price (required), such as 1250.00 |
currency | Three-letter code such as BDT; your default currency when blank |
sku | SKU; a row whose SKU matches an offering you entered here updates it |
description | Description |
stock_quantity | Stock quantity; blank means stock is not tracked |
image_url | Image link |
external_url | Page link, where the customer completes on your site |
category | Category name; created when you do not have it yet |
external_ref | Code in your own system: the id your shop or booking system uses for this item. Chat orders send it to your system; the SKU is sent when it is blank |
name,offering_kind,price,currency,sku,description,stock_quantity,image_url,external_url,category,external_ref
Jute planter (medium),product,1250.00,BDT,JP-M,Hand-woven jute planter,8,https://yourshop.com/planter.jpg,https://yourshop.com/planter,Planters,jute-planter-m
Consultation,service,800.00,BDT,,30-minute consultation,,,,,
- Only the columns above are accepted, each once; the header must include
nameandprice. - A blank
offering_kindmeans product. A stock quantity switches stock tracking on; blank means unlimited. - A row whose
skumatches an offering you entered here updates it instead of adding a second one. - The whole file is refused before anything is written when it is too large, not UTF-8, has too many rows, or its header is wrong.
Synced offerings are read-only
An offering that came from the offerings feed (or a connected system) shows Synced from … and opens read-only: you cannot edit, archive or overwrite it by CSV here. Change it in your own system and it syncs back. A code you type in Code in your own system never makes an offering read-only.
Offering limit
Your plan allows a number of active offerings; the offerings screen shows how many you have and your limit. On a paid plan the limit is at least 5000. A free trial keeps the smaller number it started with. Archived offerings do not count, and editing never counts.
Past the limit, the form, the CSV import, the feed and Find what I sell all refuse new active offerings with
the same words: Offering limit reached (N active offerings) (N is your limit). Archive an offering you no longer sell, or change
plan.
Troubleshooting
- The agent does not show an offering.
- Check it is Active, that its kind is ticked on the Sales settings, and that the settings are published.
- “This offering is synced from … and is read-only here.”
- It belongs to your feed or connected system. Change it there.
- My CSV was refused: “The file is not UTF-8 text.”
- In Excel, use Save as → CSV UTF-8.
Signed in? Your own keys, endpoint addresses and the full error tables are
on the API reference inside your dashboard. These public pages never show
anyone’s key: examples use placeholders such as YOUR_EXTERNAL_API_KEY.