Capabilities
File upload, voice dictation, suggested replies and out-of-stock products, the extras a version can switch on beyond its chat tools. All off by default, toggled per agent version.
A version also has capabilities: a second checklist, separate from chat tools. A chat tool is something the assistant itself decides to call. A capability is the opposite: the assistant never calls it and has no way to trigger it. File upload and voice dictation are inputs the shopper controls in the composer. Suggested replies are generated by the server after the assistant has answered. Out-of-stock products changes which products the assistant receives from its product sources.
| Capability | What it adds |
|---|---|
| File upload | An attach button: a shopper can send an image or PDF with their message. |
| Voice dictation | A microphone button: a shopper can dictate their message instead of typing it. |
| Suggested replies | A row of up to 3 tappable suggestions under the assistant's answer. Shopping assistants only. |
| Out-of-stock products | Out-of-stock products can be shown, marked Out of stock, with no Add to cart button. Shopping assistants only. |
All four default to off, Shopping assistant included: the same explicit-opt-in policy as Web search and Web page reading. A new version enables none of them unless you tick it.
File upload
Turn it on and the chat composer shows an attach button, so a shopper can send a file (a screenshot, a photo of a product, a PDF) along with their message.
Uploads are limited to images and PDF: the only file types the assistant's model can actually read, and the safe common set across the supported engine providers. Other file types (a .docx, a .zip) aren't accepted: the file picker filters them out, and dropping one onto the composer is rejected rather than uploaded.
Turned off, the attach button doesn't appear, and if a request tries to send a file anyway, the server drops it before it reaches the model. That holds on both the playground and the AI Storefront.
Uploads are capped at 8 MB per file. A larger file is rejected before it's ever added as an attachment: the shopper sees a clear error naming the file and the limit, and nothing is sent. This cap applies unconditionally, on both chat routes, regardless of whether the capability is on: an oversized file is rejected the same way even on a version where attachment is enabled.
Needs a vision-capable engine
An uploaded file only helps if the version's engine can read it. The AISA engines handle images and PDFs; a lighter engine may ignore an uploaded image. The checklist label carries the same reminder. Turning this on lets shoppers attach files today. How much the assistant does with them depends on the engine.
This isn't checked automatically: enabling the capability never verifies the version's pinned engine actually supports vision. Nothing blocks turning it on for a non-vision engine, and nothing warns in the chat itself if an uploaded file is silently ignored by the model. The hint above is the only signal today.
Voice dictation
Turn it on and the composer shows a microphone button. A shopper clicks it, speaks, and the recognized text fills the composer's text input exactly as if they'd typed it; they can still edit it before sending. Recognition runs entirely in the shopper's own browser: no audio and no transcript is sent to iAdvize as part of dictation itself, only the resulting text, on ordinary send.
The button only appears when both are true:
- the version has Voice dictation enabled, and
- the shopper's browser supports native speech recognition (most Chromium-based browsers do; Firefox doesn't).
Either alone isn't enough: a supported browser with the capability off shows no microphone button, and an unsupported browser never shows one regardless of the setting.
This works the same way on the playground, the AI Storefront, and the embedded widget. See that guide's voice dictation section for the embedded iframe's own microphone-permission notes.
Off by default for every agent, including existing ones
Voice dictation used to work without any setting. It's now a per-version toggle like every other capability, defaulting off, including for agent versions that already existed before this changed. To bring it back for an agent, create a new version with Voice dictation ticked. See the changelog for background on this change.
Suggested replies
Turn it on and, after the assistant answers, the chat shows up to three suggested replies: short tappable chips for what the shopper might want next. Tapping one sends its text as the shopper's own message, and the assistant answers it like any other. The row sits above the message box. Typing a new message dismisses it.
Suggested replies are only offered on Shopping assistant agents. A custom agent's checklist doesn't list them, and saving a version of a custom agent with quick_replies is refused.
The assistant doesn't write these. After it finishes its answer, the server makes a separate, short model call that reads the conversation and your instructions, and proposes up to six candidates, most likely first. The server then checks them and keeps the first three that pass. If the call fails or takes longer than 6 seconds, the shopper gets the answer with no row and nothing else is affected.
When a row appears
A row follows a turn only when all of these hold:
- The version has Suggested replies on.
- The assistant's last step ended normally, or was cut at its step or length limit. An error or a content filter gives no row.
- The assistant didn't ask a clarifying question in that turn. Answering the question starts a new turn, which gets its own row.
- At least one kind of chip is possible with what the version has (see below).
- The generator returns at least one candidate and one passes the checks.
A chip's kind decides what it needs from the version:
| Chip | Needs |
|---|---|
| Look at one product | The Product detail chat tool |
| Compare products | The Product comparison chat tool |
| Search again or widen | A connector with a catalog search tool |
| Delivery, returns, policy | A connector with a shop policies and FAQ tool |
| Add to cart | A connector with a cart tool |
| Go to checkout | A connector with a cart or a checkout link tool, and an item already added to the cart |
With none of these, no row is generated at all.
What the server rejects
These checks run in code, whatever the generator wrote:
- A chip that names a product the assistant never saw.
- "Compare" when the shopper has been shown fewer than two products.
- "Go to checkout" before anything has been added to the cart.
- Anything but checkout or a reassurance chip, right after an add to cart.
- An "add to cart" chip, once it has been offered twice in a row and not tapped.
- A label that asks a question its own message answers, a label over 48 characters, and an "add to cart" whose message names the cart but whose label doesn't.
- A second chip of the same kind for "add to cart", "checkout" or "compare".
When too few candidates pass, the row carries two chips or one. When other chips were rejected and only a single "add to cart" or "checkout" chip is left, the row is dropped (unless the shopper just added to the cart).
The generator is also told to return nothing when the assistant declined a request outside shopping, and while it is collecting personal information such as an email or an order number. That part is the model's judgment, not a code check.
Suggested replies no longer check the answer in your content
The chip text comes from the model, and the server doesn't verify that your product descriptions or policy pages contain the answer a chip promises. The generator is told to promise only what the product facts in the conversation carry. A chip can still lead to an answer like "I don't have that information".
Existing agents
Suggested replies used to be a chat tool called Quick replies, on by default. A migration moved every version that had the tool to the Suggested replies capability and removed the tool, so those versions keep their row. A new version now starts with it off: tick it to turn it on. Conversations saved before the change still show their old rows.
Where the row shows
Rows show on the playground and on the shopper chat surfaces served by the public chat route. A row is stored with the assistant message that it follows. The conversation's read-only transcript, the REST API and the MCP get_conversation tool show it as a quick_replies block, last in that message. A conversation saved with the old tool shows the same block.
Out-of-stock products
By default the assistant never shows a product that is out of stock: it is removed before the assistant sees it, so a shopper who asks for it hears that it can't be found. Turn on Out-of-stock products and the assistant keeps such a product, knows it is out of stock, and can show it to the shopper. This is useful when your store has a back-in-stock alert, or when you'd rather the shopper learn the product exists.
Out-of-stock products is only offered on Shopping assistant agents. A custom agent's checklist doesn't list it, and saving a version of a custom agent with out_of_stock_products is refused.
Which products it affects
The capability applies to the three places the assistant gets products from, and each one decides what "out of stock" means in its own way:
- Shopify catalog: a product none of whose variants is available is kept instead of dropped, and shown as out of stock. One exception: a product whose variants are all discontinued is still dropped, because it will not come back. A product with some variants discontinued and the others out of stock is shown as out of stock.
- Adobe Commerce catalog: product searches are sent without the in-stock filter, and out-of-stock products in the results are kept. Adobe Commerce has no discontinued status, so this is the only case.
- Products read from your pages, used when the agent has no catalog connector (see Site page content): a page that declares its product unavailable, whether sold out or discontinued, still gives a product card, shown as out of stock.
With the capability off, all three behave as before: only products that can be bought reach the assistant.
What the shopper sees
On a product carousel, a product detail card or a comparison, an out-of-stock product:
- shows an Out of stock pill. On a carousel or a comparison, the pill sits on the dimmed image, in place of the assistant's own badge or the Recommended pill. On a product detail card, it sits above the product name;
- keeps its price;
- has no Add to cart button. It has a View product button instead, which opens the product page in a new tab.
What the assistant says
When this capability is on, the assistant gets one extra instruction. It may present an out-of-stock product, in an answer to a search or as a suggestion, only if its reply says plainly that the product is out of stock. It never offers to add it to the cart and never says it can be ordered. When a shopper asks for a product that is out of stock, it says so and offers available alternatives when the catalog has some.
It mentions a back-in-stock alert only if your instructions say the store has one. Otherwise it points the shopper to the product page. If your store has such an alert, say so in the version's instructions.
What is enforced in code, and what is an instruction
The card is enforced in code: an out-of-stock product never gets an Add to cart button, whatever the reply says. The reply is not. Saying the product is out of stock, and not offering the cart or an order, come from the model following its instruction. Nothing in code stops a cart action on such a product if the model attempts one, so test your version before you publish it.
Suggested replies and starter questions
When Suggested replies are also on, the server rejects any "add to cart" chip that names an out-of-stock product. A chip that opens the product for a closer look is still allowed.
Starter questions are unaffected: they are generated from in-stock products only, whatever this setting.
Choose a version's capabilities
Capabilities are part of an agent's configuration version, in the same form as its chat tools and connectors.
Open the agent and go to its Capabilities tab. You're already editing its current configuration, no separate "new version" step needed (see Edit a version).
Tick the capabilities this version should offer. The list is prefilled from the version you started from.
Save, as usual: on the version you're on, or as a new version. Your capabilities apply once that version goes live.
Fixed for that version
Which capabilities a version offers is part of that version and can't be changed afterward. Like its instructions, connectors, and chat tools, changing the set means creating a new version.
Chat tools
The built-in tools an agent version can call (product cards, clarifying questions, your own site's pages, web search, and web page reading) and how to choose them per version.
Playground
Chat with any agent version against the live model, compare two versions side by side, preview the chat panel in another language, and set the page the shopper is on, all before you put a version live.