Opportunity
Changes to a pipeline opportunity over time.
Part of Opportunities in the register catalog.
- Register ID
opportunityUse this name to ask for the register. The API calls it a shelf ID.- Each record is
- An eventSomething that happened at a point in time.
- Status
- AvailableFilled today from connected systems, uploads or public data.
- Data
- OrganisationPrivate to each organisation's own workspace.
- Version
- v1Current version.
Connectors
On the roadmap
Systems in the planned connector rollout that can fill this register. Partial means the system holds only some of its fields.
- MYOB Acumatica
- ProcorePartial
Fields
18 fields: 8 required, 10 optional.
Required
Every record carries these fields.
- external_idText
The tenant's own opportunity number, unique per source company; the fact's natural key.
Example:
OPP-2026-021- occurred_atDate and time
The episodic event time: source creation date, falling back to last-modified then close date.
Example:
2026-06-20T09:00:00Z- source_systemText
Which bound system produced the event.
Example:
D365_BUSINESS_CENTRAL- titleText
Human identity of the opportunity, truncated to 500 characters.
Example:
ITT2529 Streetscape Upgrade - Mill & Currie Streets, Nambour- outcomeText
won,lostoropen.Example:
open- bid_statusText
bidwhen the opportunity was actually pursued, elselogged_no_bid(a tenant may log every opportunity, including no-bids).Example:
submitted- valueNumber
Estimated opportunity value,
INSTANTANEOUS.Example:
1850000- currencyText
Denomination of
value.Example:
AUD
Optional
Present when the source system records them.
- work_type_idText
The org's classification of the work, from the shared
work_types.yamlcatalogue.- work_type_sourceText
Provenance of the classification (keyword vs LLM path).
- sales_cycle_codeText
The source system's sales-stage code.
Example:
TENDER- salespersonText
Name of the source-system opportunity owner.
Example:
Brett Hollis- jurisdictionText
AU state/territory the opportunity is in, matched from the title text.
Example:
QLD- customerText
The customer entity anchor, when the source row names a contact company/number.
Example:
Sunshine Coast Council- projectText
The project/job anchor, when one resolves.
- financial_periodText
The financial period the event falls in.
- estimatorText
The internal estimator assigned to the pursuit.
Example:
Kim Tanaka- legal_entityText
The BC company that owns the opportunity.
Example record
A sample from Bridgeworks Group, Demiton's demonstration company. The values are illustrative; the shape is exactly what the contract describes.
{ "bid_status": "submitted", "currency": "AUD", "customer": "Sunshine Coast Council", "estimator": "Kim Tanaka", "external_id": "OPP-2026-021", "jurisdiction": "QLD", "occurred_at": "2026-06-20T09:00:00Z", "outcome": "open", "sales_cycle_code": "TENDER", "salesperson": "Brett Hollis", "source_system": "D365_BUSINESS_CENTRAL", "title": "ITT2529 Streetscape Upgrade - Mill & Currie Streets, Nambour", "value": 1850000}Use this contract
The contract is a standard JSON Schema (draft 2020-12) document, so any JSON Schema validator can check a record against it. Keywords starting with x-demiton- add Demiton's own meaning, such as units and requiredness, and validators ignore them.
https://docs.demiton.io/registers/opportunity/v1.jsonShow the full JSON Schema
Loading the schema…
Talk to the team
Tell us what you run - your ERP, field, payroll and document systems - and we will show you the registers Demiton would keep current from them, on your data, in a 30-minute call.