Skip to main content

Entity Model & Key Relationships

ZeyOS organizes data around a set of core entities that are linked together across modules. Understanding how these entities relate to each other will help you navigate the platform and keep your data consistent.

Core Entities at a Glance

EntityWhat it representsModule
ContactA person or company in the address bookContacts
AccountA business relationship (customer, supplier, etc.)Business Accounts
AddressA location tied to an account-contact pairBusiness Accounts > Addresses
UserA system login with credentials and permissionsUser Management
TransactionA sales or purchase document (quote, order, invoice, etc.)Invoicing / Procurement
ItemA product or service in the inventoryInventory
MessageAn email or internal communicationMessages
TaskA to-do or work itemProjects & Tasks
TicketA support or service requestTickets
NoteA knowledge-base or documentation entryNotes
ContractA recurring billing or service agreementContracts
OpportunityA sales lead in the pipelineOpportunities
CampaignA marketing initiativeCampaigns
PaymentA cash ledger entry (receipt or disbursement)Payments

Contact, Account, and Address

These three entities form the foundation of business data in ZeyOS:

Text
Contact (Person or Company)
↕ linked via account.contact
Account (Customer, Supplier, Prospect, Competitor, Employee)
↕ address requires both
Address (Billing, Shipping, Procurement, Collection)
  • A Contact is a person or company record — it stores who someone is (name, phone, email, photo).
  • An Account is a business relationship — it stores what role an entity plays in your business (customer, supplier, etc.) and links to a primary contact.
  • An Address always belongs to both an account and a contact. This means you can have different addresses for the same account depending on which contact person is involved, and you can type addresses by purpose (billing, shipping, procurement, collection).

One contact can have multiple accounts (e.g., a company that is both your customer and your supplier). One account can have multiple contacts (e.g., different people at the same customer organization). Addresses sit at the intersection.

User vs Contact vs Account

These three concepts are often confused. Here is how they differ:

ConceptPurposeManaged in
UserA system login — grants access to ZeyOS with a username, password, and permissionsAdministration > User Management
ContactA person or company record in the address book — stores name, phone, emailContacts
AccountA business relationship record — stores account type, customer/supplier number, tax IDBusiness Accounts

Key points:

  • A User can be linked to a Contact (via users.contact → contacts.ID). This synchronizes the user's profile with the contact's data. It is recommended to always link users to contacts.
  • An Account links to a Contact (via accounts.contact → contacts.ID). The contact provides the name, phone, and email displayed on the account.
  • An employee Account (type = Employee) is not the same as a User. A person can exist as an employee account without having a ZeyOS login, and a user can exist without being listed as an employee account.

Ownership and Assignment

Most entities in ZeyOS share two common fields:

FieldPurpose
Owner (ownergroup)Controls visibility — determines which group can see the record. Set to null for public (everyone can see it), or to a specific group ID.
Assigned User (assigneduser)The user responsible for managing this record. Used for workload distribution and filtering ("Show my items only").

These fields appear on contacts, accounts, transactions, tasks, tickets, notes, messages, and most other entities. For a deeper explanation, see Groups & Permissions and Status & Visibility.

Transactions and the Billing Chain

Transactions (quotes, orders, deliveries, invoices, credit notes) are the backbone of financial data:

Text
Transaction
→ account (which customer or supplier)
→ item (which product, if single-item transaction)
→ contract (which contract, if recurring)
→ assigneduser (who is responsible)

Transactions flow through stages — a quote becomes an order, which becomes a delivery, which becomes an invoice. Each conversion creates a new, linked transaction. For details, see Billing & Finance.

Associations and Events

Any entity can be linked to any other entity through two mechanisms:

  • Associations — Explicit links between records (e.g., linking a message to a contact, or a task to a transaction). Created via the + button in the right sidebar.
  • Events — Calendar entries or reminders attached to a record (e.g., a follow-up call scheduled on a contact, or a deadline reminder on a task).

These cross-module links are what makes ZeyOS an integrated platform rather than a collection of separate tools. For details, see Events & Associations.

Common Fields Across Modules

Most ZeyOS entities share these standard fields:

FieldDescription
IDUnique identifier (auto-generated)
CreatorThe user who created the record
CreatedTimestamp of creation
Last ModifiedTimestamp of last change
OwnerVisibility group (see above)
Assigned UserResponsible user (see above)
StatusCurrent workflow status (varies by module)
VisibilityRegular, Archived, or Deleted
TagsUser-defined labels for categorization
ForkModule fork ID (for custom module variants)