Sales in Connect
Connect keeps a pipeline of opportunities against real people and companies, moves them under stage rules, schedules the follow-ups a deal needs and records what closed and why. What it does not do is invent commercial terms: a price, an SLA or a warranty that Knowledge does not support is refused and put in front of a person.
What the section covers#
Everything here runs on sales.py and its API, with safe_sales.py holding the boundary. The pipeline screen is #/pipeline; the same records appear on the deals sheet in #/data and against each person in their relationship view.
| Page | What it answers |
|---|---|
| Opportunities | The record itself, every field, and what each is used for |
| The pipeline | The stages, the board, and what moving a card actually does |
| Stage rules | What restricts a move and what a refusal looks like |
| Next best action | How one is chosen and what evidence sits behind it |
| Price and terms | What Connect may say commercially, and what it refuses |
| Commercial escalation | What lands in Needs You and what happens after a person decides |
| Quotes and documents | What can be produced, from what, and where versions live |
| Deal relationships | How a deal links to people and companies, and what a merge does |
| Follow-ups on a deal | Triggers, channel choice and the duplicate rule |
| Closing a deal | What each outcome records and changes downstream |
| Owner and customer | The identical pipeline, and the two operator-only screens |
Three things to know before reading further#
- Money is stored in minor units
money(value_minor, currency)is the shape of every value. A deal worth twelve and a half thousand is stored as 1250000 with its currency, so nothing depends on a decimal point surviving a round trip.- A refused move is a normal outcome
movechecks stage rules and can decline. A decline is information about the deal — something the next stage needs is absent — not an error to be worked around.- Commercial invention is refused, not improvised
- This is the rule
safe_sales.pyexists to hold, and it is the one behaviour in this section that people most often mistake for a limitation.
Where an opportunity comes from#
Opportunities are not a separate world from the conversations that produced them. An opportunity is usually opened from an exchange that already exists — a call where somebody asked what something costs, an enquiry that named a quantity, a prospect who replied. The end-to-end path is written up in creating an opportunity.
- From a conversation, by a person or by the Assistant's
create_opportunity. - From a call, where the outcome recorded a commercial intent.
- From prospecting, when a researched organisation replies and is taken on.
- By hand on
#/pipeline, which is the right route when the signal arrived somewhere Connect cannot see.
Demos have their own small vocabulary alongside the opportunity — requesting, scheduling, completing and cancelling one — because a demo is a commitment with a time attached, and an intention with no date is not.
What sits next to sales#
Three neighbouring sections carry most of the questions that start here. Follow-ups owns the dated commitments a deal creates. What Connect may do owns whether a reply on a reply on one goes out by itself. Relationships owns the person and company an opportunity is attached to, and a merge over there changes what it points at over here.
Everything in this section#
11 pages, each with its own status and the date it was last checked against the running system.
| Page | What it covers |
|---|---|
| Closing a deal: won and lost | What each closing outcome records, what it starts or stops downstream, and what to do with the commitments the deal made before it closed. |
| Escalating a commercial decision | What a refused commercial question looks like in Needs You, what the person deciding actually sees, and what happens to the customer afterwards. |
| Follow-ups on a deal | What raises a chase on an opportunity, how the channel is chosen, and the duplicate rule that stops one customer being pursued twice for the same thing. |
| How a deal connects to people and companies | The links between an opportunity, its person and its organisation — what each one is for, and exactly what a merge does to them. |
| Opportunities: the deal record | What an opportunity holds — value in minor units, stage, the people it belongs to, the review flag — and what each field is actually used for. |
| Price, SLA and warranty: what Connect may say | Connect does not invent commercial terms. What counts as grounded, what is refused and escalated instead, and how a breach is caught on a live call. |
| Quotes and sales documents | A quote in Connect is a file, not a special object: what can be assembled, which terms it may contain, and where its versions and provenance live. |
| Sales for the Owner and for a customer | The pipeline is one implementation serving both audiences. What a plan bounds, and why two commercial screens are correctly operator-only. |
| Stage rules and refusals | Why a deal will not move: the four shapes a stage restriction takes, what a refusal tells you, and why declining is a correct answer. |
| The next best action on a deal | How Connect picks the next thing to do on a deal, the records that evidence it, and what to change when the suggestion is wrong. |
| The pipeline board | What the board shows, what dragging a card actually calls, and why a total on a board must be counted in the database rather than in the page. |
Questions#
Can Connect close a deal on its own?
It can move one where the stage rules allow it and record an outcome a person confirms. What it cannot do is agree the terms that make it closeable — that decision reaches a person by design.
Is the pipeline different for a customer workspace?
No. The same implementation serves both audiences; a customer's plan bounds volume rather than capability. Two commercial screens are operator-only because they are about running the platform, not selling with it.
Where do I see every opportunity at once?
#/pipeline for the board, and the deals sheet in #/data for a grid you can sort, filter, group and export. Both read the same records through the service that owns them.