Apps and packages
Record types are not defined in the workspace that uses them. They are built in an app workspace, published as a release, and installed where they are needed. The same goes for workflows (built in a workflow workspace) and connectors (a connector workspace). All three are packages.
| Package | Built in | Holds |
|---|---|---|
| App | An app workspace (/~helpdesk) | Record types, fields, relations, views, sidebar items, and data the app ships (a list of statuses) |
| Workflow package | A workflow workspace (/_acme-flows) | Workflow definitions and step templates |
| Connector | A connector workspace (/!core) | How to reach another service: its sign-in, its actions, its webhooks |
Why it works this way
- One definition, many workspaces. A Helpdesk app can be installed by ten teams. Each gets the Ticket type and keeps its own tickets.
- Upgrades. A new release changes the type for everybody who installs it, on their own schedule.
- Nothing breaks by accident. A team's workspace cannot edit an app's types; it can only install another release.
The path of an app
- Create an app workspace, with a three-character ID prefix (
HLP). - Build types in the Entity Builder.
- Commit, and publish a release.
- A superuser reviews and approves the release.
- A team's workspace installs it from the Marketplace.
The demo on this site is exactly that: an app "Helpdesk" (HLP) with the types Customer, Ticket and Ticket Status, installed in the workspace "Acme Studio".

What a workspace may do with an installed app
- Add records of the types the app opens to its installers (tickets, customers).
- Read the data the app ships (ticket statuses). Those lists are the app's and are read-only.
- Rename, hide and reorder the app's sidebar items.
- Translate or rename the app's labels (see Names and translations).
It cannot change the types themselves.
IDs
Every record's id starts with a code that says what it is: PRJ… is a project, HLPTKT… a ticket of the Helpdesk app (publisher HLP, type TKT). Codes are claimed once and never change, which is why the prefix and the type codes are asked for up front.
The core app
The Core app (/~core) is installed in every workspace. It defines Project, Document, File, Tag, Label, Link, Board and the other basic types. Your own types usually inherit from its base entity, which gives them a name, a summary, a description, labels, documents, files and translations without any work.
Two more apps come with the platform, and no workspace has them until it installs them from the Marketplace:
- CodeKasten (
/~codekasten) holds the Coding Session type, for workspaces that keep a coding agent's sessions. - Design (
/~design) holds boards and drawings.
They do not count against a plan's installed apps.