Loading...

Behind the Names: Unlocking Schema and Logical Names in Dataverse

Behind the Names: Unlocking Schema and Logical Names in Dataverse

Schema and Logical Names in Dataverse form the backbone of how data is structured, stored, and referenced within the platform. The Schema Name is a system-level, immutable identifier created when a table or column is generated; it is mainly used by developers, plugins, integrations, and API calls. It follows a strict format (prefix + name) and does not change even if the display name changes, ensuring long-term stability for solutions and custom code. The Logical Name, on the other hand, is the programmatic name Dataverse uses internally and externally when accessing data through the Web API, SDK, Power Automate, or Power Apps. Logical names are unique and aligned to the physical storage in the Dataverse database. While schema names provide structure and a consistent metadata definition, logical names enable efficient data operations and integration. Together, they create a reliable separation between user-friendly labels and system-driven identifiers, ensuring stability, consistency, and compatibility across environments, solutions, and automation.


Understanding Schema Names and Logical Names is one of the most powerful skills a Dataverse developer or architect can master. These two naming layers sit at the core of how Dataverse stores metadata, interacts with APIs, and supports customizations across environments. While they might appear similar, they serve very different purposes—and unlocking their roles helps you design more reliable, scalable, and maintainable solutions.

What Are Schema Names? (Design-Time Metadata Identity)

Schema Names represent the true identity of Dataverse components inside the solution layer.
They are created when you define tables, fields, relationships, or option sets.

Key Characteristics
  • PascalCase naming (e.g., new_CustomerCategory)
  • Used inside solution XML files
  • Used by Power Apps Studio and Solution Explorer
  • Cannot be changed after creation
  • Human-readable & organizationally branded
  • Critical for ALM, packaged deployments, and upgrades


Think of Schema Name as:

“The developer-friendly name that identifies a component in design and configuration.”

Where Schema Names Are Used
  • Solution XML (customizations.xml)
  • Plugin registration tool (for referencing images)
  • ERD diagrams
  • Relationship schema (1:N, N:N)
  • Model-driven app expressions
Why Schema Name Matters
  • Useful for documentation
  • Ensures consistency and readability
  • Used in relationship metadata
  • Maintains clear naming conventions

What Are Logical Names? (Runtime API Identity)

Logical Names are the runtime identifiers used by Dataverse's underlying platform, including:
  • Web API (OData calls)
  • SDK / C# Plugins
  • Power Automate Dataverse connectors
  • Query building and metadata lookups
  • Internal storage engine
Key Characteristics
  • Lowercase, underscore format (e.g., new_customercategory)
  • Immutable (never changes once created)
  • Required in all API calls
  • Designed for machine efficiency
  • Safe for URLs and OData standards
Think of Logical Name as:

“The name Dataverse uses internally to store, query, and process your data.”

Where Logical Names Are Used
  • C# plugin code: entity["crbe_firstname"]
  • JavaScript: formContext.getAttribute("crbe_firstname")
  • Web API: /api/data/v9.2/crbe_customerfeedbacks
  • Power Automate Dataverse actions
Why Logical Name Matters
  • The system executes using this name
  • Changing display names has no effect
  • Used by all backend components
  • Ensures stable API integrations

Best Practices for Dataverse Naming Conventions

Good naming conventions improve readability, governance, extensibility, and integration across Power Apps, Power Automate, Azure, and external systems.

Publisher Prefix

Every table, column, and relationship should start with a unique publisher prefix.

Why?
  • Avoids collisions with Microsoft standard entities
  • Helps identify your solution components easily
  • Mandatory for ALM and managed solutions
Example:


Display Name vs Schema Name vs Logical Name

Follow the expected structure:



Table Naming Conventions

Use singular nouns
  • Good: Customer, Invoice, CardList
  • Avoid plural: Customers, Invoices

Avoid acronyms unless industry-standard
  • Good: GSTNumber
  • Not good: GN

Prefix custom tables
  • abc_CardLististLink
Use clear functional names
  • Not: abc_DetailTable
  • Use: abc_AccountRiskAssessment

Column Naming Conventions
  • Use PascalCase for schema name
    • abc_IsBlacklisted
    • abc_ConsumptionPerMonth

Boolean fields → prefix with Is, Can, Has
  • abc_IsPrimary
  • abc_HasActiveSubscription
  • abc_CanBeBlacklisted

Lookup fields → suffix with Id
  • abc_ContactId
  • abc_AccountId

Choice fields → end with Type or Status
  • abc_CustomerType
  • abc_ApplicationStatus

Date fields → end with Date
  • abc_ApprovalDate
  • abc_InvoiceDate

Relationship Naming Conventions

One-to-Many
  • Format:
  • publisherPrincipalTable_dependentTable
Example:
  • abc_Account_CardAccount

Many-to-Many
  • Format:
  • publisherTable1_Table2
Example:
  • abc_Account_Opportunity
View Naming Conventions
  • Always include
  • Purpose
  • Filter Criteria
Example:
  • Active Card Accounts
  • Expired Licenses (Last 30 Days)
  • Accounts With Blacklisted Cards
Form Naming Conventions
  • Format:
    • Main – Purpose
    • Quick – Purpose
Examples:
  • Main – Blacklist Management
  • Quick – Contact Summary
Business Process Flows

Include scope + purpose
  • Account – Onboarding Process
  • CardAccount – Blacklisting Review

Power Automate Flow Naming
  • Format:
    • System/Team – Entity – Action – Additional Info
Examples:
  • Ops – Account – Populate Blacklisting
  • CRM – Lead – Convert to Account
  • Finance – Invoice – Send Reminder Email
Security Role Naming
  • Format:
    • App – Role Level
Examples:
  • Cards – Administrator
  • Cards – Read Only
  • Sales – Manager
General Rules to Follow


Why Dataverse Has Schema Name AND Logical Name (Technical Reasons)

Dataverse maintains two separate names for every table, column, and relationship because each name serves a different technical purpose in the platform.

Schema Name is for Solution Layer (Design-Time Metadata)

Technical Purpose
  • Identifies components inside a solution
  • Used by solution packaging, deployment, and ALM
  • Required during component references in forms, views, relationships
  • Supports PascalCase for readability
  • Must be stable for export/import across environments
This name stays consistent inside all managed/unmanaged solution files.

Why Needed?
  • Metadata in solution.xml, customizations.xml, and relationship.xml uses schema names.
  • Ensures deterministic referencing, meaning solutions can be reliably imported/exported.
Logical Name is for the Runtime Layer (Database + API)

Technical Purpose
  • Used by Dataverse database engine
  • Used in Web API, OData, SDK, and Plug-ins
  • Lowercase + underscores → URL-safe and API-friendly
  • Optimized for querying, joins, filter expressions, and indexing
Why Needed?

Dataverse runs on a highly optimized distributed storage engine under the hood.

Logical names give consistent internal naming:
  • For database tables/columns
  • For runtime metadata lookups
  • For Web API routes (/api/data/v9.0/abc_customers)

Logical names cannot change once created — changing runtime names would break every API, plugin, and integration.

Schema Name Supports Readability — Logical Name Supports Machine Execution

Schema Name
  • PascalCase
  • Easy for developers & solution designers
  • Visible mainly inside apps (Power Apps Studio, Solution Explorer)

Logical Name
  • Lowercase
  • Must follow strict technical rules
  • Used internally by Dataverse engine & APIs

Backwards Compatibility Across Versions

Dataverse (formerly CRM) has been evolving since 2003.
Keeping two naming layers allows:
  • UI & metadata naming (schema name) to evolve
while
  • the API/runtime naming (logical name) remains stable
This prevents breaking:
    • Plugins
    • JavaScript
    • Workflows
    • Power Automate flows
    • External integrations
    • Web API calls

Logical Name is Required for OData & REST Standards

OData (which Dataverse Web API is built on) requires:
  • Lowercase names
  • No uppercase (preferred)
  • No special characters
  • URL-safe identifiers
Hence logical names follow strict rules:
  • lowercase
  • underscores
  • no spaces

Example OData request:

GET /api/data/v9.2/abc_cardaccounts?$filter=abc_isblacklisted eq true


Using schema names here is not allowed — APIs depend on logical names.

Separation Enables Strong ALM (Application Lifecycle Management)

Schema name

= belongs to solution metadata layer

Logical name

= belongs to database & runtime layer

Keeping them separate ensures:
  • Solution upgrades do not change API names
  • Managed solutions update UI labels without breaking API contracts
  • Teams can rename display names without breaking logic

Logical Names Enable Internal Optimization

Dataverse internally uses logical names to:
  • Resolve metadata references quickly
  • Build cache keys
  • Generate SQL queries to underlying storage
  • Manage partitioning & indexing

Schema names are too complex for internal processing.

Schema Names Allow More Flexibility for Customizations

You can:
  • Change Display Name anytime
  • Keep Schema Name readable
  • Expose Logical Name only to developers
This supports:
  • Better UX
  • Friendly UI labels
  • Clean developer experience

Without schema names, UI and runtime names would be tied together and impossible to separate.

Summary:

Dataverse uses two names because:

Schema Name = for developers
Logical Name = for machines

They separate design-time customization from runtime execution, ensuring stability, readability, and compatibility across updates.

Published on:

Learn more
Power Platform , D365 CE & Cloud
Power Platform , D365 CE & Cloud

Dynamics 365 CE, Power Apps, Powerapps, Azure, Dataverse, D365,Power Platforms (Power Apps, Power Automate, Virtual Agent and AI Builder), Book Review

Share post:

Related posts

Stay up to date with latest Microsoft Dynamics 365 and Power Platform news!
* Yes, I agree to the privacy policy