A well-designed workspace doesn't start with the question of how many pages to create. It starts with the question of which things have their own lifecycle. A company, contact, project, task, invoice, line item, newsletter or email are not just paragraphs in a document. They are records with state, owner, history, relationships and often outputs.
In Apexloop it therefore makes sense to think about databases first, and only then about the pages that explain or display them.
Start with the area, not the perfect model
The first version of the model should cover a real process the team uses every week. Typically three to five databases are enough. CRM can start with Companies, Contacts, Deals, Activities and Emails databases. Project management can start with Projects, Tasks, Milestones, Risks and Files.
For each database, write down:
- who creates the record,
- who owns it,
- what statuses it goes through,
- what it relates to,
- what report or output comes from it.
This helps you avoid columns that will never be used, and pages that just repeat grid data.
Choose columns by meaning
Plain text works for simple values, but most working data has a more precise type. Numbers can carry a unit or currency, dates define planning, a person column holds people and groups, and a files attachment column stores attachments. Rich text belongs in a cell popover when you need a short structured description. A document page link should be used when each record has its own document.
IDs deserve special attention. A user ID with a prefix and auto-increment number is practical for invoices, requests, contracts or incidents. The system GUID stays hidden and serves for unambiguous identity.
Relations are the backbone of the workspace
Select and multiselect columns link records to a specific database. A record column is polymorphic and can link to a record from any database. A view column shows filtered related records — for example, the line items of the current invoice or the tasks of the current project.
Use backlinks via related properties for relationships that should be synchronous: "Subitem / Parent item", "Blocks / Blocked by", "Company / Contact" or "Project / Customer". The user then doesn't have to manually fill in the other side of the relationship.
Dictionaries belong in databases
Don't keep statuses, priorities, segments, order types and loss reasons just as fixed lists. In Apexloop it pays to make them standalone databases and use them via select or multiselect.
This lets you describe, filter, annotate, sort and use the values in views and automations. When sales adds a new segment, the CRM structure doesn't need to change. A record is added to the dictionary.
Formulas connect levels of data
Formulas can compute a number, text, date, boolean or person field from a record's context. When a formula depends on another formula, a cascade is created within a single row. A view column additionally adds filtered children to the context.
This enables rollups without manual copying. A task calculates its cost, a project sums tasks and a company sums projects. The same principle works for capacity, margin, open blockers, completion or risk.
Adapt views to roles
A datagrid is great for data management, but it's not the only working mode. Kanban helps manage status, calendar and schedule work with time, timeline holds long plans, chart shows aggregations and gallery works for visual content.
One data model can have multiple views for different roles. Finance tracks amounts, sales the pipeline, the project team tasks and management a summary — all working on the same records.
A good model is recognised by its outputs
At the end of the design, ask what the workspace should be able to produce. If it needs to generate an invoice, you need an ID sequence, a customer, line items, amounts, an address, a QR code and a PDF template. If it needs to send a newsletter, you need a campaign, a segment, document content, a date and an automation for conversion to email-safe HTML.
A model is not done when it has all the columns. It is done when the team can reliably take the next step from it.