Connect by JBRH Open Connect

Opportunities: the deal record

An opportunity is one commercial deal, attached to the person and company it belongs to, carrying a value in minor units with its currency, a stage, and a flag saying whether it needs a person's attention. It is opened, valued, updated, moved and closed through sales.py, and every one of those verbs leaves an audit entry.

Status
Available What this means
Audience
both
In the app
#/pipeline, #/data, #/relationships
Last verified
Product version
6.3.2

What the record holds#

FieldSet byWhat reads it
What the deal is foropen_opportunity, then updateThe board, the Assistant, and any summary of the relationship
Value, in minor unitsset_value, as money(value_minor, currency)Every total on the board; arithmetic never touches a decimal string
CurrencySet with the value, not separatelyFormatting, and the refusal to add two currencies together
Stagemove, subject to stage rulesThe column the card sits in, and what the next action is
The person and companyThe relationship it was opened fromContext for a reply; the merge path in relationships
Review flagraise_for_review / clear_reviewNeeds You — this is how a deal asks for a human
Demo staterequest_demo, schedule_demo, complete_demo, cancel_demoThe follow-up that a scheduled demo implies

Minor units are the field worth pausing on. A value is stored as a whole number of the currency's smallest unit — 1250000 rather than 12500.00 — so no total depends on a decimal point surviving a JSON round trip, a spreadsheet import or a locale that writes its separators the other way round. Formatting back to something a person reads happens at the edge, once.

The verbs, and what each one guarantees#

open_opportunity
Creates the record against a relationship. A deal with no person or company attached is possible and is nearly always a mistake worth correcting immediately.
set_value
Writes value and currency together. Changing the value later is an update to the record, not a new deal, so the board's history stays honest.
update
Changes descriptive detail without touching stage or value. This is the safe verb, and the one the Assistant reaches for most.
move
Attempts a stage change and consults the stage rules first. It can decline, and a decline is an ordinary answer.
raise_for_review / clear_review
Puts the deal in front of a person and takes it back out again. The pair is what makes escalation reversible without deleting anything.

What the record does not carry#

Two absences are deliberate and are worth knowing before you go looking for a field that is not there.

  • Agreed commercial terms. A price Connect has quoted, an SLA it has committed to, a warranty it has promised — none of these exist as an opportunity field, because Connect does not create them. Terms come from Knowledge or from a person, and the deal records the outcome rather than authoring it.
  • A forecast Connect invented. Nothing on the record is a model's guess about whether the deal will close. What the record holds is what somebody did and when.

Both absences follow from the same principle: the record is evidence, and evidence that a machine wrote about its own optimism is not evidence.

Reading and editing deals in bulk#

The deals sheet in #/data is the same records in a grid — sortable, filterable, groupable, with saved views, inline editing and CSV export. It is not a second database: every change goes through the sales service that owns the record, so a bulk edit is audited exactly like a click on the board. CSV export neutralises formulas on the way out.

Questions#

Why are values stored as integers?

Because currency arithmetic in decimals is where money quietly goes missing. Minor units make every total exact and every comparison unambiguous, and the conversion to a readable figure happens once, at the point of display.

Can one deal belong to two companies?

It is attached to the relationship it was opened from. Where two organisations are genuinely involved, keep the deal on the one that will sign and record the other on the timeline — splitting a single commitment across two records makes both of them wrong.

What happens to the deal if its person is merged into another record?

It survives the merge. Deals, along with identities, stages, follow-ups, demos, cases and onboarding, are preserved from both sides — see how a deal connects to people and companies.