One of the most consequential decisions you will make when building a Power Apps canvas app or model-driven app is choosing where your data lives. Pick the wrong data source and you will hit delegation limits, licensing walls, or performance ceilings that no amount of clever formula-writing can fix later.
In this post, we take a deep, practical look at the two most common Power Platform data source options — SharePoint Lists and Microsoft Dataverse — covering what each one is, where it excels, where it falls short, and exactly when you should choose one over the other. We also briefly survey the broader connector ecosystem so you have the full picture.
The Power Platform Data Source Landscape
Power Apps connects to over 900 data sources through its connector framework. These range from cloud databases and SaaS platforms to on-premises systems and flat files. Despite this breadth, the vast majority of real-world Power Platform solutions are built on one of five foundational data sources:
|
📋 SharePoint Lists
The most widely used starting point. Already included in every Microsoft 365 licence, zero additional cost, and familiar to most IT administrators. |
🗄️ Microsoft Dataverse
The purpose-built relational database at the heart of the Power Platform. Required for model-driven apps and advanced governance scenarios. |
|
📊 Excel / OneDrive
Great for rapid prototyping and single-user scenarios. Delegation is not supported, making it unsuitable for datasets above a few hundred rows. |
☁️ SQL / Azure SQL
Ideal when connecting to an existing enterprise database. Excellent delegation support and relational capability, but requires SQL licences and expertise. |
|
🔗 Third-Party Connectors
Salesforce, Dynamics 365, ServiceNow, and hundreds more. Useful for surfacing external data inside Power Apps without custom development. |
🔧 Custom Connectors
Build your own connector to any REST API using an OpenAPI definition. Powerful, but requires developer involvement and careful DLP governance. |
SharePoint Lists — Deep Dive
SharePoint Lists are structured, web-based tables that live inside a SharePoint site. Each list has columns (fields) and rows (items), with out-of-the-box support for versioning, item-level permissions, attachments, and views. Because every Microsoft 365 tenant already has SharePoint, lists are the lowest-friction starting point for Power Apps development.
What SharePoint Lists do well
Zero additional licensing cost
SharePoint Lists are included in every Microsoft 365 Business Basic, Business Standard, E1, E3, and E5 plan. You do not need a Power Apps Premium licence to connect canvas apps to SharePoint — the standard Power Apps licence covers it. This makes it the natural choice when rolling out solutions to large user populations where per-user cost is a constraint.
Familiar to business users and administrators
Most organisations already manage SharePoint lists through the browser interface. Creating columns, applying views, and setting permissions are tasks that non-developers can perform with confidence. This familiarity significantly reduces time-to-deployment and ongoing maintenance overhead for IT teams.
Built-in versioning and audit history
SharePoint Lists natively track every change made to every item, including who changed what and when. Major and minor versioning can be configured per list without any additional development. For simple compliance use cases — approval workflows, asset registers, incident logs — this is often sufficient without needing a dedicated audit table.
Item-level permissions
SharePoint’s permission model allows you to break inheritance on individual list items, granting or restricting access at a row level. This is powerful for scenarios like expense forms where each employee should only see their own submissions, without requiring any code. Power Apps can leverage this transparently through the SharePoint connector’s user context.
Native Microsoft 365 integration
SharePoint Lists integrate natively with Power Automate, Power BI, Teams, and Outlook without additional connectors or configuration. A list item approval workflow, for example, can be triggered automatically via Power Automate, notify approvers in Teams, and surface a summary dashboard in Power BI — all with no-code tooling and no middleware.
SharePoint List limitations you must understand
Microsoft Dataverse — Deep Dive
Microsoft Dataverse (formerly Common Data Service) is a cloud-based, relational data platform built specifically for the Power Platform. It stores data in tables with typed columns, enforces business rules and calculated fields at the platform level, and provides a rich security model that spans rows, columns, and business units. Dynamics 365 applications are built on Dataverse, which gives you a sense of the scale it is designed to handle.
What Dataverse does well
True relational data model
Dataverse supports one-to-many, many-to-many, and self-referential relationships between tables, with full referential integrity. You can model complex real-world data structures — orders with line items, projects with tasks and resources, customers with multiple contacts — in a way that is impossible to do cleanly in SharePoint Lists.
Full delegation support in Power Apps
Dataverse supports delegation for Filter, Sort, Search, and LookUp across all standard column types. This means that when your canvas app applies a filter, the query executes on the server and only the matching records are returned — regardless of whether your table has 10,000 or 10 million rows. This is the single most important technical advantage Dataverse holds over SharePoint for data-intensive apps.
Role-based security with row and column-level control
Dataverse’s security model uses Security Roles assigned to users or teams. A role defines Create, Read, Write, Delete, Append, Append To, Assign, and Share privileges per table — scoped to User, Business Unit, Parent Business Unit, or Organisation level. Column-level security can additionally restrict specific fields (e.g. salary, NI number) to named users or profiles, independently of the table-level role.
Server-side business logic
Business rules, calculated columns, rollup columns, and plug-ins all execute on the Dataverse server — not in the app client. This means your data integrity rules are enforced regardless of whether the user is accessing data through a canvas app, a model-driven app, Power Automate, or the Dataverse API directly. In SharePoint, all validation logic lives in the app, making it easy to bypass.
Required for model-driven apps and Copilot Studio
Model-driven Power Apps — which auto-generate forms, views, and dashboards from your data schema — only work with Dataverse. If your roadmap includes model-driven apps, Dynamics 365 integration, or Copilot Studio agents that interact with structured data, Dataverse is not optional. It is the foundational layer those capabilities are built on.
Built-in auditing, rich data types, and file storage
Dataverse provides native audit logging at the table and column level — who created, modified, or deleted each record, and what the previous values were — stored in a queryable audit history table. It also supports rich column types including Currency (with multi-currency support), Choices (managed option sets shared across tables), Image, File, and polymorphic Lookup fields that can point to multiple table types.
Dataverse limitations and considerations
Side-by-Side Comparison
The table below summarises the key differences between SharePoint Lists and Dataverse across the dimensions that matter most when making an architectural decision.
When to Use SharePoint Lists
SharePoint Lists are the right choice when most of the following are true for your scenario:
Your user population is large and cost-sensitive
If you are rolling out a solution to 500 frontline workers, hospital staff, or retail employees who already have Microsoft 365 licences, requiring each of them to have a Power Apps Premium licence adds $10,000+ per month to your operating costs. SharePoint-backed canvas apps are included in the licences they already have.
Your data model is simple — one or two flat tables
Leave requests, asset registers, event sign-ups, safety checklists, staff rosters — these are all single-table or two-table scenarios. There is no compelling reason to introduce Dataverse’s complexity when a well-structured SharePoint List will serve the data model perfectly.
Row counts will stay comfortably below 5,000
If your list will never grow beyond a few thousand rows — annual leave requests for a 200-person company, for example — the 5,000 item threshold is never a practical concern. You can build, deploy, and operate with complete confidence.
The team is new to Power Platform
Starting with SharePoint Lists gives citizen developers an immediate win. They can see their data in the SharePoint UI, debug it directly, and build apps without needing to learn environments, solutions, or security roles. It is the ideal onramp for organisations beginning their Power Platform journey.
The solution needs to live inside a SharePoint site
Intranet portals, team sites, and departmental hubs often embed Power Apps directly in SharePoint pages. When the app and its data both live in the same site, SharePoint Lists give you a seamless, zero-friction integration story with no authentication gaps or connector dependencies to manage.
When to Use Dataverse
Dataverse is the right choice when your scenario demands any of the following:
You are building a model-driven app
There is no alternative. Model-driven apps only work with Dataverse. If your solution requires automatically generated forms across multiple related tables, a sitemap with multiple modules, dashboards, charts, and views driven by the data schema, Dataverse is the only supported backend.
Your data has complex relationships across multiple tables
If you are building a CRM-style system, a project management tool with tasks/resources/milestones, or any application where five or more tables relate to each other with referential integrity requirements, Dataverse is the appropriate foundation. Trying to model this in SharePoint creates a brittle, slow, and unmaintainable architecture.
You expect data volumes above 50,000 rows
When you know your dataset will be large — field service records, inspection logs, IoT sensor readings, order histories — Dataverse’s full delegation support and purpose-built database engine will deliver consistent performance where SharePoint would struggle. Plan for scale from the beginning rather than migrating later under pressure.
Strict data governance or compliance is required
If your solution handles personally identifiable information (PII), financial data, health records, or any data subject to GDPR, ISO 27001, or sector-specific regulation, Dataverse’s column-level security, server-side audit logging, and environment isolation give you controls that SharePoint’s permission model simply cannot match.
You are integrating with Dynamics 365
Dynamics 365 Sales, Customer Service, Field Service, and Finance are all built on Dataverse. If your Power App needs to read or write to the same tables as a Dynamics 365 application — Accounts, Contacts, Cases, Work Orders — you are already in Dataverse. Building a canvas app on SharePoint that then tries to call Dynamics 365 data via a connector creates unnecessary complexity and latency.
You need proper ALM and environment management
Dataverse solutions can be exported as managed or unmanaged packages and deployed across Development, Test, and Production environments via Power Platform CLI or Azure DevOps pipelines. This is the foundation of professional Power Platform development. SharePoint has no equivalent native mechanism — teams either deploy manually or use community tools like PnP PowerShell, which lack the governance features of the Dataverse ALM model.
Quick Decision Guide
If you are still unsure which data source fits your scenario, run through these questions. A single “yes” in the Dataverse column is usually enough to tip the decision.
Other Data Sources Worth Knowing
SharePoint and Dataverse cover the majority of Power Platform use cases, but there are scenarios where other data sources are the better fit.
Azure SQL / SQL Server
If your organisation already has an investment in SQL Server or Azure SQL, connecting Power Apps directly to an existing database avoids data duplication and keeps your single source of truth intact. SQL offers excellent delegation support, mature tooling, and the ability to use stored procedures via Power Automate. The trade-off is that it requires a SQL licence and database expertise to manage, and the SQL connector is a Premium connector requiring Power Apps Premium.
Excel on OneDrive
Excel is appropriate only for single-user, prototype, or very low-volume scenarios. It does not support delegation, has no concurrent write safety (two users saving at the same time will cause data loss), and has no security model beyond file permissions. It is an excellent prototyping tool, but should never be used as the backend for a production app used by more than one person simultaneously.
Dataverse for Teams
Dataverse for Teams is a lightweight, embedded version of Dataverse available inside Microsoft Teams at no additional cost — it is included with select Microsoft 365 licences. It supports canvas apps built within Teams, basic tables, and Power Automate flows, but has capacity limits (2 GB storage per environment, max 1 million rows) and does not support model-driven apps, plug-ins, or promotion to a full Dataverse environment without data migration. It sits neatly between SharePoint Lists and full Dataverse in terms of capability and cost.
Final Thoughts
There is no universal answer to the SharePoint vs Dataverse question. The right data source is the one that matches your data complexity, your user volumes, your security requirements, your team’s maturity, and your budget — in that order.
Start with SharePoint Lists when you are building departmental tools for teams of any size who already have Microsoft 365, when your data model is simple, and when speed-to-value matters more than architectural perfection. Upgrade to Dataverse when you outgrow SharePoint’s delegation limits, need relational integrity across multiple tables, or when compliance and governance requirements demand server-enforced business logic and column-level security.
The most important decision is making the choice deliberately — understanding the trade-offs before the first row of data is written — rather than discovering the limitations of your chosen data source six months into a project.