Skip to content
Demiton

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 applies alone.

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 timeISO 8601, with time zone

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 timeISO 8601, with time zone

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.deadlineDateYYYY-MM-DD

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 when estimate is.

estimateNumber

The raiser's estimate of what this costs the job if nobody acts, in currency. Never amount: that key is in the claim-window verdict's exposure keys and would reach the Baseline.

estimate_atDate and timeISO 8601, with time zone

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.

Schema URL
https://docs.demiton.io/registers/email_issue/v1.json
Show 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.

Book a 30-minute callStart free