A table (formerly called an “entity”) is where Dataverse stores a specific kind of record — Account, Contact, Opportunity, or a custom table you create yourself. Every table is really just a set of columns plus the metadata around them: ownership, relationships, security, and the forms/views used to work with it.
Standard vs. custom tables
Standard tables (Account, Contact, Opportunity, etc.) ship with the platform and carry built-in logic, forms, and integrations — a lot of plumbing you don’t have to build yourself. Custom tables are ones you create for data that doesn’t fit the standard model: a “Project,” an “Equipment Asset,” a “Booking.” Before creating a custom table, it’s always worth checking whether a standard table can be extended instead — it’s usually less work and keeps you compatible with out-of-the-box features.
Table types
- Standard — regular tables that store records directly, with full relationship and security support.
- Activity — tables representing an interaction (Task, Email, Phone Call, Appointment) that share common activity behavior like the regarding field and timeline.
- Virtual — tables backed by external data (via a data provider) rather than Dataverse’s own storage — useful for surfacing data from another system without replicating it.
Ownership
Every custom table is either user/team owned or organization owned:
- User/team owned — individual records are assigned to a specific user or team, and security roles control access based on that ownership (own records, business unit, etc.). This is the right choice for almost anything transactional — cases, opportunities, bookings.
- Organization owned — there’s no individual record owner; access is controlled purely by security role privileges. Good for reference/lookup-style data (e.g. a list of regions or product categories) that every user should see the same way.
The primary column
Every table has exactly one primary column — the text field used to represent a record wherever it’s referenced elsewhere (lookups, subgrids, search results). It’s set when the table is created and can’t be changed to a different column later, so pick something that will always meaningfully identify the record, like a name or a reference number.