# AI Assistance and Agent Tools

Two different things carry the word *AI* here, and they are switched on in two different places:

- **AI assistance** — the sparkle buttons on the Products, product and Stock pages, and two optional automations. A model writes words around figures the platform computed. It is a governed AI feature a super admin enables for the workspace, metered under **Inventory AI Spend**.
- **Agent tools** — fourteen inventory tools your voice, chat, SMS, email and task agents, and an MCP client, can call: search the catalog, check stock, take an order. They need no AI feature, only the module and the agent's tool selection.

## AI assistance

### What you'll need

- The AI feature **Inventory AI Assistance** on for the workspace. A Karmaflow.ai super admin turns it on under the tenant's **AI** tab; it starts off. Without it the sparkle buttons are absent and the automations do nothing.
- The permission `ai:inventory_ai:write`, which the seeded **Member** and **Manager** roles hold.
- Spend is metered as **Inventory AI Spend** on the billing page, under the workspace's [spend limits](/help/workspace-administration/spend-limits).

### Draft product copy

On a product page, click **Draft copy**. Optionally set a **Tone**, an **Audience** and **Notes for this draft**, then generate. The drawer shows a **Short description**, a **Description**, **Selling points**, an **SEO title** and **SEO description**, a suggested category and tags, and the list of things the AI *had to assume* because the record did not say. Nothing is saved until you click **Apply copy** or **Apply copy, category & tags**. The product then shows *Copy drafted by AI* under its name.

The draft is written from this product's record and the catalog's own categories and tags — not from the web, and never from customer data.

### Suggest categories

On **Inventory → Catalog → Products**, tick products and click **Suggest categories**. The result lists each product with the suggested category (marked *(new)* when it is not one the catalog already uses), tags, a confidence and a one-clause reason, under the heading *Suggested categories — nothing applied yet*. Click **Apply all** or **Dismiss**. The AI is told to reuse existing categories verbatim and to invent a new path only when nothing fits, so the catalog stays consistent.

### Import column mapping

On **Import**, the preview pre-fills the **Field** for every column the importer recognises by name. With AI assistance on, the columns it could not match are sent — headers and a few sample values only — and come back with a suggested field and a reason. Change any of them; nothing is imported until you click **Import**.

### Explain the plan

On **Stock → Reorder plan**, click **Explain the plan**. The AI writes a buyer's summary — what is urgent, what can wait, what looks odd (a fast seller with no reorder point, a slow one still flagged) — and re-orders the lines by what to act on first, with a reason beside each. Caveats appear only when the figures justify them (a thin sales window, incoming stock that may cover it). It never changes a quantity: the plan is arithmetic, the summary is words.

### Brief me

On **Stock**, click **Brief me** for a short brief over the ledger: what is low or out, what moved most, what to look at today, with the time it was written. It reads aggregates and catalog rows — no customer names.

### What the AI may do without being asked

**Inventory → Setup → Inventory Settings → What the AI may do without being asked** holds two switches, both off until you turn them on:

| Switch | What it does |
|---|---|
| **Draft a description for a product an import brings in with none** | After a store sync, a webhook or a spreadsheet import creates a product with an empty description, the AI drafts and applies the description, short description and SEO fields. Products that already have a description are never touched. |
| **Suggest a category and tags for every imported product that has none** | After an import creates products with no category, the AI suggests one with tags and applies it only when it is at least 60% sure. Categorised products are never touched. |

Both run a few seconds after the import answers and stamp what they wrote on the product, so the product page says *Copy drafted by AI*. The on-demand buttons above need neither switch. This is the [autonomy principle](/help/helpdesk/ai-and-governance) applied to the catalog: the choice is yours, the effect is visible, and the default is what you had before.

## Agent tools

Every agent type — voice, chat, SMS, email and task — and the MCP connector can use the inventory tools. They are offered on the agent's **Tools** tab like any other tool (hidden when the module is switched off for the workspace) and listed under **Inventory** in the MCP tool catalog.

| Tool | What it answers or does |
|---|---|
| `inventory_search_products` | Search by name, SKU, barcode, brand, category or tag; returns each sellable variant with its price and what is available now |
| `inventory_get_product` | One product in full: description, every variant with its price, stock per location |
| `inventory_check_stock` | How many of one variant can be sold now, in total and per location, and whether a wanted quantity can be fulfilled — the answer to "do you have X?" |
| `inventory_list_low_stock` | What is at or below its reorder point, or out |
| `inventory_reorder_suggestions` | The reorder plan's lines |
| `inventory_create_product` · `inventory_update_product` | Add a simple product (a SKU is minted; opening stock goes through the ledger) or edit one |
| `inventory_adjust_stock` · `inventory_transfer_stock` | Receive, return, adjust or count stock; move it between locations |
| `inventory_create_sales_order` · `inventory_get_order` · `inventory_update_order_status` | Take an order (units are reserved; a short line is refused with the figure), look one up, mark it paid, fulfilled or cancelled |
| `inventory_create_purchase_order` · `inventory_receive_purchase_order` | Draft a purchase order and receive it into stock |

Rules every channel gets from the tool descriptions, so a tenant prompt never has to repeat them: `available` is what can be sold now; `incoming` is on order and never promised; prices are per unit in the given currency; a SKU comes from a search, not from memory. A voice agent is told to confirm before any write — every inventory write moves a figure or an order — and plays a short filler while the lookup runs.

Every write stamps where it came from: the chat session, the call, the text thread, the task run or the orchestration. The ledger row and the order both link back to it, so a person reviewing an order can read what was said.

### Examples

- A caller asks "do you have the 2-litre in stock?" The voice agent searches, checks stock at every location and answers with the figure — and where it is held, if the caller asks.
- A website visitor says "I'll take two of the blue ones." The chat agent creates the order, the units are reserved at once, and the order appears under **Inventory → Orders → Sales orders** with the chat linked.
- A task agent runs every Monday, calls `inventory_reorder_suggestions`, drafts purchase orders for the lines marked **now** and emails the buyer the list.

## Workflow triggers and notifications

The module's events are workflow triggers under **Products & inventory** when you build an [orchestration](/help/orchestrations/overview): stock reached its reorder point, ran out, is back above zero, was adjusted; a product was created; a sales order was created, fulfilled or cancelled; a purchase order was received; a store sync failed. Each carries the SKU, location, figures, channel or platform as conditions, and none needs a contact.

Three notifications live under **Notification Preferences**: **A product reached its reorder point**, **A new order arrived from a connected store** and **A store sync stopped working**, each reaching only the people who hold the matching permission.

## Troubleshooting

- **No sparkle buttons.** The AI feature is not on for the workspace (ask a super admin), or your role lacks `ai:inventory_ai:write`.
- **"Suggest categories" is disabled.** Nothing is ticked, or the AI feature is off.
- **The import automations did nothing.** They act only on products the import *created* that had no description (or no category); updated products are skipped. Check the switches and the AI feature, and that the product was new.
- **An agent says it cannot find a product the catalog has.** The agent's **Tools** tab does not include the inventory tools, or the module is hidden for the workspace. Tick the tools and save the agent.
- **An agent promised stock that was not there.** `incoming` was read as available — check the agent's instructions do not override the tool's rule — or the level changed between the check and the order. The order itself is refused when the units are gone, so the customer is told at the order, not after.

## Next steps

- [Products, Stock and the Reorder Plan](/help/inventory/products-and-stock)
- [Connecting Shopify or WooCommerce](/help/inventory/shopify-woocommerce)
