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.

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.

Canvas Apps vs Model-Driven Apps: Which One Do You Need?

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 AppModel-Driven App
Best forTask-focused apps with custom UI: data entry forms, inspection checklists, approval screensData-rich business applications: CRM, case management, project tracking with complex relationships
Data sources400+ connectors including SharePoint, Excel, SQL, Salesforce, and moreMicrosoft Dataverse (formerly CDS) — structured relational database in the Power Platform
UI designFully custom — drag and drop controls, set position and size of every elementData-driven — generated automatically from data schema; less visual flexibility
Mobile experienceExcellent — design specifically for phone or tablet screensGood but less optimised for mobile-first scenarios
ComplexityLower — good for 1–3 SharePoint listsHigher — better for multi-table relationships and business logic
SharePoint fitNative — SharePoint lists are a first-class data sourceIndirect — 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.

Using SharePoint as a Power Apps Data Source

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 types and Power Apps controls

SharePoint column typeDefault Power Apps controlNotes
Single line of textText inputSimple text box; supports max length
ChoiceDropdown / Radio buttonsOptions auto-populated from SharePoint choices
Person or GroupPeople pickerSearches Azure AD; returns user object
Date and TimeDate pickerTimezone-aware; can be date-only
Yes/NoToggleBoolean; useful for approval flags
LookupDropdownReferences another SharePoint list — delegation applies
Managed metadataLimitedRequires workaround; Power Automate often handles this better
📄 Use SharePoint Online with Power Apps — learn.microsoft.com

3 Real-World Power Apps + SharePoint Examples

📦
Asset Tracking App
Operations

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.

  • SharePoint lists used: Assets, Assignments, Locations, Categories
  • Key controls: Barcode scanner control, gallery with image thumbnails, location dropdown pre-filtered by department
  • Power Automate integration: Notify manager when an asset is flagged as damaged; send overdue-return reminders
💻
IT Helpdesk Ticket App
IT

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.

  • SharePoint lists used: Tickets, IT Staff (lookup)
  • Key controls: Form with add-attachment control, gallery with conditional formatting (red for overdue, amber for due today), edit form for status updates
  • Embedding: Published as a Teams tab in the IT Support team channel, so staff submit tickets without leaving Teams
💰
Employee Expense Claims App
Finance

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.

  • SharePoint lists used: Expense Claims, Expense Categories, Receipts (document library)
  • Key controls: Camera control for receipt capture, date picker, currency input, person lookup for manager
  • Power Automate integration: Multi-level approval flow — line manager first, Finance team second for amounts over £500

The Delegation Problem: What Every Power Apps Developer Must Know

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.

What is delegation?

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.

The delegation limit

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.

Delegable vs non-delegable operations on SharePoint

FunctionDelegable to SharePoint?Notes
Filter() with simple comparisons (=, <, >)YesMost column types supported
Sort()YesSingle column; multi-column sort not always delegable
Search()Yes (text columns only)Searches title and text fields
StartsWith()YesText column prefix match
Filter() with in operatorNoUse multiple Or conditions instead
CountIf()NoLoads all records; use Dataverse for aggregate queries
Filter() with lookup columnsLimitedID 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.

📄 Understand delegation in Power Apps — learn.microsoft.com

Publishing Options: Where Your App Lives

Once your canvas app is built, you have several ways to deploy it to users — each suited to different scenarios:

Microsoft Teams tab

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.com

SharePoint page web part

Embed 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.

Standalone web app

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.

Power Apps mobile app

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.

Governance: What Organisations Get Wrong

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.

  • Environment strategy: Use Development, Test, and Production environments via the Power Platform Admin Centre. Never build directly in the production environment.
  • Data Loss Prevention (DLP) policies: Define which connectors can be used in which environments. For example, block consumer connectors (Twitter, Dropbox) in the production environment to prevent data exfiltration.
  • App ownership: Set a co-owner for every production app so it doesn't become orphaned when the original developer leaves.
  • Licensing clarity: Canvas apps connecting to SharePoint require only a Microsoft 365 licence for users (no additional Power Apps licence needed). Connecting to premium connectors or Dataverse requires a Power Apps Per User or Per App licence.
  • Power Platform Centre of Excellence (CoE) Starter Kit: Microsoft provides a free CoE Starter Kit that gives IT admins inventory, analytics, and governance tools for all Power Platform usage in the tenant.

Ready to build your first Power App?

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