Skip to content

Thing

A Thing is an instance of one or more Nouns, with an identity, a current state, and the union of their properties.

Properties

PropertyTypeRequiredDescription
idstringrequiredThe stable identifier, which never changes.
typelist of NounrequiredThe Nouns this Thing is an instance of.
statestringThe current state in its lifecycle.
outsidejsonThe ids this Thing has in outside tools, one per Integration, so a re-run matches instead of duplicating.

Object

JSON
{
  "$id": "https://api.sb/quietcopy.com/things/thing_1",
  "$type": "Thing",
  "id": "Example id",
  "type": [
    "noun_1"
  ],
  "state": "Example state",
  "outside": {}
}

Relationships

  • A Thing is acted on by many Actions: the Thing an Action changes; a Thing’s history is the Actions that acted on it. actedOnBy, inverse actsOn.
  • A Thing aims for many Goals: every Thing pursues Goals, such as a Startup’s quarterly objective or a Team’s weekly target. aimsFor, inverse heldBy.
  • A Thing has many Comments: a Comment is an internal note on one Thing, never sent to a Contact. comments, inverse annotates.
  • A Thing is configured by many Settings: the Thing whose choice a Setting holds; everything below it inherits the value unless it sets its own. configuredBy, inverse configures.
  • A Thing has many Dashboards: a Dashboard summarizes one scope, such as a Studio, a Startup, a Team, or a Role. dashboards, inverse views.
  • A Thing is decided by many Decisions: a Decision records one choice about a Thing and stays on that Thing’s record forever. decidedBy, inverse decides.
  • A Thing is an instance of many Nouns: a Thing takes the properties, relationships and Verbs of every Noun it is an instance of. instanceOf, inverse instances.
  • A Thing has many Issues: an Issue is about one Thing, such as a Product, a Page, or an Order. issues, inverse reports.
  • A Thing is a member of many Collections: Members are listed one by one or matched by the Collection’s saved query; a Thing can belong to many Collections. memberOf, inverse contains.
  • A Thing is versioned as many Versions: every published change to a Thing’s definition is an immutable Version, kept forever. versionedAs, inverse versionOf.

Verbs

  1. createCreates a Thing.
    POST /{namespace}/thingsdoThing.created
  2. getReturns one Thing by id.
    GET /{namespace}/things/{id}readNo Event
  3. listReturns Things, newest first, one page at a time.
    GET /{namespace}/thingsreadNo Event
  4. updateChanges the given properties of a Thing.
    PATCH /{namespace}/things/{id}doThing.updated
  5. deleteDeletes a Thing; its history is kept.
    DELETE /{namespace}/things/{id}doThing.deleted
  6. relateRelate links two Things by a Relationship their Nouns declare, readable from both ends at once.
    POST /{namespace}/things/{thing}/relatedoThing.related
  7. resolveResolve finds the one Thing of a Noun that matches given properties, or creates it, and says which it did.
    POST /{namespace}/things/resolvedoThing.resolved
  8. shareShare grants a person, a Role or a guest Verbs on one record and everything it contains.
    POST /{namespace}/things/{thing}/sharedoThing.shared
  9. unrelateUnrelate ends a Relationship between two Things; the link stays in history and reads back at any earlier moment.
    POST /{namespace}/things/{thing}/unrelatedoThing.unrelated

Permissions

Which Access level may call each Verb. One-way Verbs wait their delay window.

Operationowneradminmemberviewer
Thing.createYesYesYesNo
Thing.getYesYesYesYes
Thing.listYesYesYesYes
Thing.updateYesYesYesNo
Thing.deleteYesYesYesNo
Thing.relateYesYesYesNo
Thing.resolveYesYesYesNo
Thing.shareYesYesYesNo
Thing.unrelateYesYesYesNo

Call it

Text
Share the latest thing with a party.

Example

One recruiting agency is a single Thing that is both an Organization and a Customer, with one id and the properties of both Nouns.