Email issue
Email issue is one of Demiton's published registers for Australian civil construction. Demiton keeps it current from the systems a contractor already runs and publishes the record's shape as a versioned JSON Schema, so the same question works whichever system produced the record.
- Register ID
email_issueUse this name to ask for the register. The API calls it a shelf ID.- Data
- OrganisationPrivate to each organisation's own workspace.
- Version
- v1 (1.1.0)Current version.
Connectors
Connected today
Demiton keeps this register current from these systems now.
No system fills this register yet.
On the roadmap
Systems in the planned connector rollout that can fill this register. Partial means the system holds only some of its fields.
None planned yet.
Fields
27 fields: 13 required, 14 optional.
Required
Every record carries these fields.
- kindText
What kind of issue it is, chosen by the person in the panel. Documents the vocabulary for the panel and the validators; the write path refuses an unknown value (email_issue_kinds.validate_kind), because the fact gate checks presence and type only and enforces no enum anywhere.
One of
extra_work,delay,defect,dispute,over_budget,compliance,other- clockGroup of fields
The notice clock computed in code at raise time. Code, never the model, and P9 arms a window from
appliesalone.- clock.appliesTrue or false
True only when the kind can start a clock, the sender is on the principal's side, and contract_terms states the period.
- emailsList
Every email stored as this issue's evidence, the raised one first.
- emails[].blobText
The org-uploads key of the stored .eml (org_<id>/evidence/email_issue/<sha256>.eml).
- emails[].subjectText
That email's subject line.
- emails[].received_atDate and time
That email's Date header, ISO 8601.
- senderText
The From address of the raised email.
- projectText
The job this issue was raised against, by name. The fact also carries the project as its coordinate, which is what the window engine reads.
- raisersList of whole number
The Demiton user ids who raised this issue; more than one when two people raised the same message.
- subjectText
The subject line of the raised email.
- message_idText
The raised email's internetMessageId. With the org, the kind and the project it is the dedupe key.
- received_atDate and time
The raised email's own Date header, ISO 8601. The fact's occurred_at and every window deadline are counted from this, never from the day someone noticed.
Optional
Present when the source system records them.
- clock.daysWhole number
The period in days, as the contract states it.
- clock.clauseText
The contract clause the period comes from.
- clock.deadlineDate
The date the notice is due, counted from received_at.
- chosenGroup of fields
What the person actually picked, which is what the rest of the payload reflects.
- chosen.jobText
The job as raised, by name.
- chosen.kindText
The kind as raised.
- guessedGroup of fields
What the panel pre-selected, kept so the guess's accuracy can be measured again from production rows.
- guessed.jobText
The guessed job, by name.
- guessed.kindText
The guessed kind, or null when nothing was guessed.
- currencyText
ISO 4217 code of
estimate. Present exactly whenestimateis.- estimateNumber
The raiser's estimate of what this costs the job if nobody acts, in
currency. Neveramount: that key is in the claim-window verdict's exposure keys and would reach the Baseline.- estimate_atDate and time
When the estimate was raised, UTC. The pilot window filters on this.
- estimate_byWhole number
The Demiton user id whose estimate this is: the first raiser's.
- sender_domainText
The sender's domain, as used to match the job.
Filed against
Records are indexed along these dimensions, so they can be asked for by any of them.
- Projectwhat the record is about, from
Always set
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/email_issue/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 fill from them, on your data, in a 30-minute call.