ConceptsData model
Data model
How Coevera records fit together. Entities and their plural paths, owners and sales units, the relation rows that link records, and where your own fields and entities are described.
Answer
Each record type is an entity with a plural path, such as /entities/Accounts. Records point at each other through id fields such as owner_id, and through relation entities such as ContactAccountRelations. Every record except Leads and Tasks has an owner, a Client (user). Your custom fields and custom entities are described only in your space's own spec.
Every integration starts from the same questions: which entity holds the data, how two records are linked, and who owns them. The names below are the API's; the glossary pairs them with the names the app shows, and the REST API reference has a page for every entity.
Entities and their paths
Each record type is an entity. REST paths use the plural name, /entities/Accounts,
/entities/Opportunities, /entities/OpptyProductRelations; the GraphQL repository is the
singular name in camelCase, entities { account { … } }. A singular or misspelt path is refused
with HTTP 404, code 2006 ERROR_UNKNOWN_TYPE.
| Entity | What it holds |
|---|---|
Accounts |
Companies and organisations |
Contacts |
People, usually linked to accounts |
Leads |
Unqualified sales opportunities |
Opportunities |
Qualified deals in a pipeline, on a step (Steps) of a Pipelines record |
OpptyProductRelations |
Product line items on an opportunity; the catalogue is Products |
Quotes |
Quotes for an opportunity |
Projects |
Projects |
Tasks, Appointments |
The two kinds of activity |
Notes |
Notes attached to a record |
Emails, Memos |
Logged e-mails, and internal messages (shown in the app as Message) |
CloudObjects |
Documents and files; CloudObjectRelations attaches them to records |
Clients |
The space's users; their roles are MasterRights |
SalesUnits |
Sales units, which group users and records |
Data |
The options of dropdown fields |
There is no Messages entity: /entities/Messages answers 404, code 2006. Logged e-mails are
Emails and internal messages are Memos, both linked to records through MessageRelations.
Leads and opportunities share one base, so their relation fields are called lead_oppty_id.
Owners and sales units
owner_id (shown in the app as Owner) is required on every record except Leads and Tasks:
those two may be unassigned, while Appointments, Accounts, Contacts, Opportunities, Quotes,
Projects and custom entity records always have an owner. A lead still needs a sales unit: send
owner_id, or unit_id alone for an unassigned lead; without either, the create answers 422. The owner is a Clients record, a user
of the space. Users are looked up by email, not email1 as on contacts and accounts:
filter[email]=dana.whitfield@example.com on /entities/Clients.
unit_id (shown as Sales unit) places the record in a SalesUnits record, which decides
who else in the space sees it.
How records link
A record points at another one in two ways:
- An id field, such as
owner_idoraccount_id, holds the other record's ID. Write it to link records; filter on it to find them. - A relation field with the bare name, such as
owner, returns the related record's URL. Addexpand=ownerto a list request to get the record itself (querying).
Many-to-many links are records of their own, in relation entities:
| Relation entity | Links |
|---|---|
ContactAccountRelations |
Contacts and accounts, with position and is_; the create an account with contacts recipe writes them |
LeadOpptyAccountRelations, LeadOpptyContactRelations |
Leads and opportunities, and their accounts and contacts |
QuoteAccountRelations, QuoteContactRelations |
Quotes, and their accounts and contacts |
ActivityRelations |
Tasks and appointments, and the records they are about |
MessageRelations |
E-mails and messages, and the records they are about |
CloudObjectRelations |
Documents, and the records they are attached to |
Relation records outlive their records: deleting a contact or an account leaves its
ContactAccountRelations active, still pointing at the deleted record. Delete them on their own
(batch operations).
Your own fields and entities
The published spec describes the standard entities and fields every space has. Your space's
custom fields (API names starting with cf_) and custom entities (CE_ names) are in your
space's own spec, served with your credentials at
https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/openapi.json, and in the
Fields and Entities endpoints.
Limits
| Limit | Details |
|---|---|
| Owner | Required on every record except Leads and Tasks; a lead without an owner needs a unit_ |
| Custom fields and entities | Not in the published spec; only in your space's own spec and the Fields and Entities endpoints |
| Relation records | Not deleted with the records they link |
| Entity names | Messages, Documents and Users are not entities: use Emails and Memos, CloudObjects and Clients |