Build Custom Business Apps with Power Apps and SharePoint
Real-world examples, the canvas vs model-driven choice, delegation limits you must know, and how to publish your app to Teams, SharePoint, and mobile — no code required.
Real-world examples, the canvas vs model-driven choice, delegation limits you must know, and how to publish your app to Teams, SharePoint, and mobile — no code required.
Most organisations already have SharePoint lists holding business data — asset registers, helpdesk tickets, purchase requests, employee records. The problem is that SharePoint's default list view is built for information managers, not the frontline staff who need to submit and update that data. Microsoft Power Apps solves this by letting you build custom, mobile-friendly interfaces on top of your existing SharePoint data — without writing any code. This guide shows you exactly how to do it.
Power Apps comes in two fundamentally different types. Choosing the wrong one is the most common Power Apps mistake. Here's the clear comparison:
| Canvas App | Model-Driven App | |
|---|---|---|
| Best for | Task-focused apps with custom UI: data entry forms, inspection checklists, approval screens | Data-rich business applications: CRM, case management, project tracking with complex relationships |
| Data sources | 400+ connectors including SharePoint, Excel, SQL, Salesforce, and more | Microsoft Dataverse (formerly CDS) — structured relational database in the Power Platform |
| UI design | Fully custom — drag and drop controls, set position and size of every element | Data-driven — generated automatically from data schema; less visual flexibility |
| Mobile experience | Excellent — design specifically for phone or tablet screens | Good but less optimised for mobile-first scenarios |
| Complexity | Lower — good for 1–3 SharePoint lists | Higher — better for multi-table relationships and business logic |
| SharePoint fit | Native — SharePoint lists are a first-class data source | Indirect — usually requires Dataverse, though SharePoint data can be synced |
For most SharePoint-based use cases, canvas apps are the right choice. Model-driven apps shine when you're building something closer to a Dynamics 365 application with complex entity relationships. If your data lives in SharePoint lists, start with canvas.
SharePoint lists are one of the simplest data sources to connect in Power Apps. When you connect a SharePoint list to a canvas app, Power Apps reads the list's columns (including column types: text, choice, person, date, lookup) and uses them to generate forms automatically.
| SharePoint column type | Default Power Apps control | Notes |
|---|---|---|
| Single line of text | Text input | Simple text box; supports max length |
| Choice | Dropdown / Radio buttons | Options auto-populated from SharePoint choices |
| Person or Group | People picker | Searches Azure AD; returns user object |
| Date and Time | Date picker | Timezone-aware; can be date-only |
| Yes/No | Toggle | Boolean; useful for approval flags |
| Lookup | Dropdown | References another SharePoint list — delegation applies |
| Managed metadata | Limited | Requires workaround; Power Automate often handles this better |
A canvas app that replaces a shared Excel spreadsheet used by the facilities team to track company assets — laptops, monitors, projectors, vehicles. The SharePoint list stores asset details (category, serial number, assigned user, location, condition, last-checked date). The app provides a mobile-first interface for staff to check assets in and out, log condition notes, and scan barcodes using the device camera.
A two-screen canvas app replacing email-based IT support requests. Screen 1 is a submission form for staff to log issues — category, priority, description, and photo attachment. Screen 2 is an IT team dashboard showing all open tickets, filterable by status and assignee. Tickets are stored in a SharePoint list; Power Automate handles routing and SLA notifications.
A mobile-first canvas app for submitting and approving expense claims. Employees photograph receipts (stored in a SharePoint document library), enter claim details, and submit. Managers receive an Adaptive Card in Teams asking them to approve or reject, with the receipt image embedded. Finance sees an aggregate view of all pending claims with export-to-Excel.
Delegation is the most misunderstood concept in Power Apps, and ignoring it causes apps to silently return wrong data in production. Here is what it means and why it matters.
When Power Apps queries a SharePoint list, it can either process the query locally (loading data to the device first, then filtering) or delegate the query to SharePoint (letting SharePoint do the filtering server-side). Delegation is far more efficient — but not all functions support it.
For non-delegable queries, Power Apps loads a maximum of 2,000 records to the device (this was 500 before 2019; it is now configurable up to 2,000). If your SharePoint list has 5,000 items and you use a non-delegable filter like Search() without delegation, your app only sees the first 2,000 items — and Power Apps shows a yellow delegation warning, which many developers ignore.
| Function | Delegable to SharePoint? | Notes |
|---|---|---|
Filter() with simple comparisons (=, <, >) | Yes | Most column types supported |
Sort() | Yes | Single column; multi-column sort not always delegable |
Search() | Yes (text columns only) | Searches title and text fields |
StartsWith() | Yes | Text column prefix match |
Filter() with in operator | No | Use multiple Or conditions instead |
CountIf() | No | Loads all records; use Dataverse for aggregate queries |
Filter() with lookup columns | Limited | ID field delegable; expanded fields may not be |
Delegation rule of thumb: If your SharePoint list will ever exceed 2,000 records, design around delegation from day one. For lists that genuinely need aggregate queries or complex filtering, consider migrating that list to Dataverse or using a SQL Azure backend instead.
Once your canvas app is built, you have several ways to deploy it to users — each suited to different scenarios:
The most popular option for internal business apps. Users access the app directly in Teams without installing anything. Requires publishing as an app package from Power Apps and adding it to Teams via the Admin Centre or individually by users. Apps can be pinned to specific Teams channels, making them contextual to the team's work. Microsoft documentation walks through the exact steps.
📄 Embed a canvas app as a Teams tab — learn.microsoft.comEmbed your app directly into a SharePoint page using the Power Apps web part. This works well when the app is related to a specific SharePoint site — for example, embedding an asset management app in the Facilities team site. Users don't need a separate app installed; they access it while browsing SharePoint.
Share a direct URL (from make.powerapps.com) with users. They open it in a browser and can pin it as a progressive web app on their desktop or home screen. Good for apps shared across departments where there's no single Teams team or SharePoint site as a home.
Available on iOS and Android. Users install the Microsoft Power Apps app from the App Store or Google Play, sign in with their M365 credentials, and all apps shared with them appear in the app library. Ideal for frontline workers without Windows devices — field engineers, warehouse staff, retail teams.
Power Apps makes it very easy for citizen developers to build and share apps — which is great for productivity but creates governance challenges if unmanaged.
OceanCloud can design, build, and deploy a canvas app on your existing SharePoint environment in 2–4 weeks — or train your team to build their own. Either way, we handle governance and ensure it scales.
Talk to a Power Apps Specialist