Build your agent
Price display
Prices go stale faster than anything else a chatbot says. A number the assistant types into a sentence was true when the page was last crawled; the shop's own product page is true right now. Prices in answers (agent settings β Prices in answers) lets each agent decide where a price is allowed to appear at all.
The four modes
They are the cells of a two-by-two: may the price appear in the reply text, and may it appear on the product card.
| Mode | Text | Card | Pick it when |
|---|---|---|---|
| Text and card (default) | yes | yes | You have no webshop. Text is the only channel you have, so restricting it would leave visitors with no answer at all. |
| Product card only | no | yes | You want the number visible but only in one controlled place, where it sits next to the product image and a View button. |
| Text only (no card) | yes | no | You want a straight spoken answer and find the card too heavy for your conversation style. |
| Product page only | no | no | Your prices change often. Nothing in the chat can go stale, because nothing in the chat carries a number β the card keeps its View button and the shop page is the single source of truth. |
The default is stored as absence, so agents that never touch this setting keep following the default even if it changes later.
Shipping costs are not product prices
Every restriction here is scoped to product prices. "What does shipping cost?" and "from how much is delivery free?" keep working in every mode β those amounts are ordinary knowledge, not a price that drifts with your catalogue.
That distinction is enforced with real data rather than guesswork: the system compares each amount against the prices in your product register. An amount that matches a product is a product price; anything else is left alone.
Why a product register makes the restricted modes airtight
Instructions alone are probabilistic. A single "what does this cost?" usually obeys them; an answer comparing four variants gives the model four more chances to slip, and that is exactly where the first version of this feature leaked (card #512). The fix was to stop asking the model to hold a number it must not use:
- The sources are scrubbed. In a mode that forbids prices in text, product prices are removed from the knowledge the assistant receives, including the snapshot of the page the visitor is on. A model that never saw the number cannot write it.
- The register's price line is withheld from the product facts attached to the turn, for the same reason.
- The card is filled by the server. In Product card only the price on the card comes from your register, not from the assistant. This is also why the card is now consistent: filling it is no longer something the model can forget.
- The reply is checked before it is stored. A final pass removes any product price that still made it into the text.
Only the last of those can act on an agent with no register, and it acts after the words have already streamed to the visitor β the transcript ends up clean, but the number may be briefly visible. With a register, the earlier layers mean there is nothing to catch.
What the assistant says instead
A restricted agent does not refuse or apologise β a missing price is a deliberate choice, not a gap in its knowledge. Asked what something costs it answers positively and points at where the number lives:
- Product card only β "the price is on the card below", with the card attached.
- Product page only β "you'll find the current price on the product page", with a card that links straight there.
One consequence worth knowing: an agent that cannot see prices cannot rank by them either, so "which of these is cheapest?" gets a pointer to the cards rather than a direct answer. That is the trade the restricted modes make β reliability over price reasoning.
Changing the setting
Agent settings β Prices in answers β pick a mode β Save. It applies to the next message; no re-index or re-crawl is needed. The setting is per agent, so a workspace running several agents can price them differently.