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.
- 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
- Solution XML (customizations.xml)
- Plugin registration tool (for referencing images)
- ERD diagrams
- Relationship schema (1:N, N:N)
- Model-driven app expressions
- Useful for documentation
- Ensures consistency and readability
- Used in relationship metadata
- Maintains clear naming conventions
- Web API (OData calls)
- SDK / C# Plugins
- Power Automate Dataverse connectors
- Query building and metadata lookups
- Internal storage engine
- 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
- C# plugin code: entity["crbe_firstname"]
- JavaScript: formContext.getAttribute("crbe_firstname")
- Web API: /api/data/v9.2/crbe_customerfeedbacks
- Power Automate Dataverse actions
- The system executes using this name
- Changing display names has no effect
- Used by all backend components
- Ensures stable API integrations
- Avoids collisions with Microsoft standard entities
- Helps identify your solution components easily
- Mandatory for ALM and managed solutions
- Good: Customer, Invoice, CardList
- Avoid plural: Customers, Invoices
- Good: GSTNumber
- Not good: GN
- abc_CardLististLink
- Not: abc_DetailTable
- Use: abc_AccountRiskAssessment
- Use PascalCase for schema name
- abc_IsBlacklisted
- abc_ConsumptionPerMonth
- abc_IsPrimary
- abc_HasActiveSubscription
- abc_CanBeBlacklisted
- abc_ContactId
- abc_AccountId
- abc_CustomerType
- abc_ApplicationStatus
- abc_ApprovalDate
- abc_InvoiceDate
- Format:
- publisherPrincipalTable_dependentTable
- abc_Account_CardAccount
- Format:
- publisherTable1_Table2
- abc_Account_Opportunity
- Always include
- Purpose
- Filter Criteria
- Active Card Accounts
- Expired Licenses (Last 30 Days)
- Accounts With Blacklisted Cards
- Format:
- Main – Purpose
- Quick – Purpose
- Main – Blacklist Management
- Quick – Contact Summary
- Account – Onboarding Process
- CardAccount – Blacklisting Review
- Format:
- System/Team – Entity – Action – Additional Info
- Ops – Account – Populate Blacklisting
- CRM – Lead – Convert to Account
- Finance – Invoice – Send Reminder Email
- Format:
- App – Role Level
- Cards – Administrator
- Cards – Read Only
- Sales – Manager
- 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
- Metadata in solution.xml, customizations.xml, and relationship.xml uses schema names.
- Ensures deterministic referencing, meaning solutions can be reliably imported/exported.
- 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
- For database tables/columns
- For runtime metadata lookups
- For Web API routes (/api/data/v9.0/abc_customers)
- PascalCase
- Easy for developers & solution designers
- Visible mainly inside apps (Power Apps Studio, Solution Explorer)
- Lowercase
- Must follow strict technical rules
- Used internally by Dataverse engine & APIs
- 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
- Lowercase names
- No uppercase (preferred)
- No special characters
- URL-safe identifiers
- lowercase
- underscores
- no spaces
- Solution upgrades do not change API names
- Managed solutions update UI labels without breaking API contracts
- Teams can rename display names without breaking logic
- Resolve metadata references quickly
- Build cache keys
- Generate SQL queries to underlying storage
- Manage partitioning & indexing
- Change Display Name anytime
- Keep Schema Name readable
- Expose Logical Name only to developers
- Better UX
- Friendly UI labels
- Clean developer experience
Schema Name = for developers
Logical Name = for machines
Published on:
Learn moreWe can help you with Behind the Names: Unlocking Schema and Logical Names in Dataverse
If you want help implementing, troubleshooting, or improving this product, contact us and we’ll point you in the right direction.
Related posts
Copilot Studio: Agent Integration Approaches — Tools, Knowledge, and Agents
In Copilot Studio, agent integration employs the same fundamental integration concepts and patterns used in traditional enterprise integration...
Copilot Studio: How to Plan Integration with Enterprise Systems
Integrating Microsoft Copilot Studio agents with enterprise systems transforms a basic chatbot into a secure, intelligent digital teammate tha...
Book Review : The Manager 's Path : A Guide for Tech Leaders Navigating Growth and Change by Camille Fournier
After a long time, I came across a book that is truly valuable for engineering students and professionals, especially those working in t...
Power Platform Environment Deep Dive (Part 2)
In Microsoft Power Platform, choosing the right environment type is important because each environment is designed for a different business pu...
Power Platform Environment Deep Dive (Part 1)
Today, in the business enterpriese world, Power Platform enables organization to build application, automate workflow, analyze data crea...
Book Review : Life 3.0 by Max Tegmark
This is the third book I’ve read this year, and even though I’m still in the early chapters, it already feels like my favorite read of the yea...
Dataverse Views Demystified: Making Data Work for You
In Microsoft Dataverse, users do not always see all the data stored in a table. What they can view depends on their security permissions, role...
Decode & Fix : Shared App host initialization has timed out in Microsoft Power Apps
Issue :While working with apps in the Microsoft Power Platform, we encountered a critical issue where the application failed to load pro...
