Skip to content
Configuration

Use-Case Examples

These walkthroughs show how to model common real-world scenarios in Entu using entity types, properties, and references. Each one is a complete recipe — copy it as-is or adapt it to your needs.

CRM — Contacts & Companies

You run a small business and your customer knowledge lives in three places: a phone's contact list, an inbox, and someone's memory. You want one place that knows which people belong to which company, and what was last said to whom.

Goal: Track companies, the contacts within them, and any notes or activities linked to each contact.

Entity types to create

Company

Property nameTypeNotes
namestringCompany display name
websitestringStore as plain text or use markdown on a text field for clickable links
industrystring
notestext

Contact

Property nameTypeNotes
namestringFull name
emailstring
phonestring
companyreferencePoints to a Company entity
titlestringJob title

Activity

Property nameTypeNotes
datedatetime
typestringe.g. call, meeting, email
summarytext
contactreferencePoints to a Contact entity

Structure

  • Create a Companies container entity as the root.
  • Add each company as a child of that container.
  • Add contacts as children of their respective company — the company reference property and the _parent relationship both link the contact to the company.
  • Add activities as children of their contact.

Access control

Grant _editor rights on the Companies container to your sales team and enable _inheritrights: true on all children so rights propagate automatically.


Project Tracker

Your team juggles a dozen projects, and "what's the status?" is answered by scrolling chat history. You want every project to carry its own status, owner, deadline, and budget — and get a project number and hour totals without anyone maintaining them by hand.

Goal: Manage projects with properties, counters, and a formula-computed field.

Entity type

ParamValue
nameproject
labelProject
descriptionA client project or internal initiative
add_from(reference to the "Projects" menu)

Property definitions

nametypelabelNotable settings
namestringNamemandatory, search
statusstringStatusset: ["Planning", "Active", "On Hold", "Done"], mandatory
descriptiontextDescriptionmarkdown
ownerreferenceOwnerreference_query: _type.string=person
due_datedateDue Date
budgetnumberBudgetdecimals: 2
tagsstringTaglabel_plural: Tags, list
codecounterProject Codereadonly
notestextInternal Noteshidden
total_hoursnumberTotal Hoursformula, readonly, decimals: 1

What this demonstrates

  • set turns a string field into a dropdown.
  • counter generates a unique code per entity (e.g. project numbers).
  • hidden keeps a field out of the edit form but visible on the entity page — good for formula-driven values.
  • formula on total_hours recalculates automatically on every save using child/referrer data.

Media Library

Years of photos, videos, and documents are scattered across drives and cloud folders, and finding "that one picture" means opening thirty. You want albums with real metadata — who made it, what it shows, which tags apply — and the option to make chosen collections public.

Goal: Store and organise images, videos, and documents with metadata and tags.

Entity types to create

Collection

Property nameTypeNotes
namestringFolder / album name
descriptiontext

Media Item

Property nameTypeNotes
titlestring
filefileThe actual uploaded file
typestringimage, video, document
tagsstringlist: true — multiple values allowed
descriptiontext
authorreferencePoints to a Person entity
publishedboolean
sizenumberSet formula: 'file.size' on the property definition — auto-computed from the attached file

Structure

  • Create Collections as top-level containers.
  • Upload media items as children of the appropriate collection.
  • Use _sharing: public on collections that should be publicly browsable.
  • Use tags (with list: true) so each item can carry multiple tags for filtering.

Querying items by tag via the API

GET /api/{db}/entity?_type.string=media-item&tags.string=nature

Library — Books, Patrons & Lendings

A school library, a company bookshelf, or a club's equipment room — things go out, and nobody quite remembers to whom. You want a catalogue of what you own, who has borrowed what, and an automatic flag when something is overdue.

Goal: Manage a book and audio-visual collection, track patron records, and record lending history including due dates and returns.

Entity types to create

Book

Property nameTypeNotes
titlestringmandatory, search
authorstringlist: true — multiple authors allowed
isbnstring
typestringe.g. book, DVD, audio CD; set turns it into a dropdown
copiesnumberTotal copies owned
descriptiontext
coverfileCover image

Person

Property nameTypeNotes
namestringmandatory, search
emailstring
phonestring
card_numberstringLibrary card / patron ID
notestext

Lending

Property nameTypeNotes
bookreferencePoints to a Book entity
borrowerreferencePoints to a Person entity
lent_ondate
due_datedate
returnedbooleanSet to true when the item is back
overduebooleanformula: 'due_date < now() && !returned', readonly — auto-computed

Structure

  • Create a Books container and add each book as a child.
  • Create a Patrons container and add each person as a child.
  • Add lending records as children of the relevant patron — the borrower reference and _parent relationship both link the lending to the patron.

Access control

Grant library staff _editor rights on both the Books and Patrons containers with _inheritrights: true. Give patrons _viewer rights on their own entity so they can see their lending history through the API or a custom portal.