# Price, SLA and warranty: what Connect may say

A price, an SLA or a warranty that Knowledge does not support is refused and escalated to a person, not improvised. That refusal is the correct outcome rather than a missing feature: an agent that guesses a figure has committed your business to it. What Connect may say is what your own sources already say, quoted rather than inferred.

- **Status:** Available
- **Audience:** both
- **Channels:** email, whatsapp, phone
- **In the app:** #/knowledge, #/needs-you, #/pipeline
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/sales/safe-sales/

## The rule

`safe_sales.py` holds one principle across every channel: Connect does not create commercial terms. It is not a filter bolted to the end of a reply — it is the difference between an assistant that answers from your sources and one that produces a plausible number under pressure from a customer who wants an answer now.

| The question | Answered when | Otherwise |
|---|---|---|
| What does it cost? | A figure for that item exists in Knowledge | Refused; the question reaches a person with the conversation attached |
| Can you do it cheaper? | A published discount rule covers the case | Refused — a discount is an authority the workspace holds, not a negotiation the agent may open |
| How quickly will it be done? | A stated turnaround exists for that work | Refused; a commitment invented on a call is still a commitment |
| What is the guarantee? | A warranty statement exists and applies | Refused, and this one matters most: warranties outlive the conversation |
| Will you match their quote? | Never answerable from sources alone | Always a person's decision |

## What grounded actually means

Grounded means the words came from a source the workspace supplied, not from a model's sense of what a reasonable figure looks like. Knowledge is budgeted into any reply — of the order of 2,000 characters and four facts — so grounding is selective by design: the facts that bear on the question, carried into the answer, with the rest left out.

- A number in Knowledge may be quoted as it stands, in the context its source gives it.
- A term that applies conditionally is answered with the condition, or not at all — a conditional term stated flatly is a different term.
- Where two sources disagree, the disagreement is a reason to escalate rather than a reason to pick one.
- Nothing is inferred by arithmetic from a related figure. A unit price is not a bulk price, and deriving one from the other is invention with a calculation in front of it.

## The realtime voice path is different, and honestly so

On the turn-based carrier path every sentence is produced by Connect and is checked before it is spoken. On the realtime speech-to-speech path the model talks directly to the caller: there is no seam between deciding and saying, so the rule can only live in the instructions the session was opened with. Prevention is not available there.

So a breach is *detected* instead. `price_spoken` counts the lines the voice priced, using the same expression the carrier path checks each sentence with — deliberately the same expression, so that the two paths agree on what counts as a price rather than each holding a private opinion. A call where that count is not zero is visible afterwards and can be listened to, corrected in the instructions, and used to decide whether that workspace should be on the realtime path at all.

> **Careful** This is stated plainly because a page claiming the same guarantee on both paths would be false. On the realtime path the guarantee is detection with evidence, not prevention.

## What a refusal looks like to a customer

A refusal is not a wall. The reply says what Connect can say, states that the commercial part is being put to a person, and — where the channel and the autonomy rules allow — commits to coming back. That commitment becomes a follow-up with a reason and a due time, so it is a record rather than a promise nobody kept.

**What the customer hears** — An answer to everything answerable, and a clear statement that the figure is coming from a person.
**What is created** — A review on the deal, an item in Needs You, and usually a follow-up carrying the promise.
**What is not created** — A number. Nothing is written to the opportunity's value on the strength of a conversation nobody has authorised.
**What is recorded** — The refusal itself, in the decision log, with the rule that produced it.

## Making more of it answerable

1. Look at what is being escalated repeatedly. The pattern is the specification for what your Knowledge is missing.
   - Result: Three escalations of the same question are a documentation gap, not three incidents.
2. Add the term to Knowledge in the form a customer asks about it, including its conditions.
   - Result: The next identical question is answered from a source, and the answer cites something a person can check.
3. Leave genuinely negotiable terms out.
   - Result: Escalation is the right outcome for a decision that depends on the customer in front of you, and Knowledge should not pretend otherwise.

> **Note** The Assistant's rights are narrower than a person's here too: it does not price, and it cannot clear a do-not-contact entry. Asking it to quote gets the same refusal a customer would get.

## Questions

### Is refusing to quote a limitation of the plan?

No. It is the same behaviour in every workspace, including the operator's own. The alternative is an agent that commits your business to terms nobody chose, which is not a feature at any price.

### Can I let Connect quote from a price list?

That is exactly the supported path. A price list in Knowledge makes the figure grounded, and the answer then quotes your source rather than inventing one. What stays refused is a figure that no source carries.

### How do I know whether a live call priced something?

The call record carries the count of priced lines, produced by the same test the carrier path applies to every sentence. A non-zero count is the thing to listen to, and the reason detection was built rather than assumed.

## Related

- [Escalating a commercial decision](https://connectbyjbrh.com/docs/sales/commercial-escalation/)
- [Sales in Connect](https://connectbyjbrh.com/docs/sales/)
- [Knowledge in Connect](https://connectbyjbrh.com/docs/knowledge/)
- [Answering a commercial question, end to end](https://connectbyjbrh.com/docs/workflows/commercial-question/)
- [Why a sales agent should refuse to answer](https://connectbyjbrh.com/research/safe-refusals-in-sales/)
- [Connect would not give a price](https://connectbyjbrh.com/docs/troubleshooting/connect-refused-to-quote/)

## What this page is based on

- docs-source/sources/CHANNELS.md §6 — safe_sales and price_spoken
- docs-source/sources/GENERAL.md §8 and §11 — Assistant rights and measured budgets
- Connect capability registry (docs-source/facts.py) — safe_sales, realtime_voice
