What if you need a mobile app for your sales team to scan product barcodes on the warehouse floor, but no off-the-shelf app matches your exact workflow? Building canvas apps solves that problem by letting you design every pixel of the screen yourself, from the colour of a button to the data it fetches. For the PL-900 exam, you need to understand when to choose a canvas app over other app types and how its free-form design differs from template-based solutions.
Jump to a section
A simple way to picture Building Canvas Apps with Power Apps
A cake decoration station is a blank, white cake on a turntable. A baker chooses every element on that cake from scratch. They pick the icing colour, the piping nozzle shape, the placement of every single sugar flower. They drag a star tip across the top to create a border, or use a leaf nozzle to pipe green leaves around the base. The final, unique cake depends entirely on the baker's choices about position, colour, and shape.
Building a canvas app works the same way. The 'blank canvas' is a completely empty screen in Power Apps. Instead of icing and nozzles, the baker — the app builder — drags 'controls' onto the screen. Controls are things like text labels, image boxes, input fields, and buttons. The builder decides exactly where each control sits, how big it is, what colour it is, and what happens when a user clicks a button. They connect the button to a data source — say, a list of customer names in a Microsoft Dataverse table — and write a simple formula like 'Filter( Customers, City = "London" )' so that clicking the button shows only London customers. The canvas app has no pre-built layout. Just like the cake, every pixel is placed by the builder. That freedom to design pixel-perfect interfaces for specific business tasks is the whole point of canvas apps.
A canvas app is a type of app you build inside Microsoft Power Apps by dragging and dropping elements onto a blank screen. It is called a 'canvas' app because you have complete control over the visual layout, just like a painter working on a blank canvas. Every button, text box, image, and data chart is placed exactly where you want it, pixel by pixel.
The alternative is a model-driven app, which uses a pre-defined layout based on data tables. Canvas apps are better when you need a highly customised, task-specific interface — for example, a field-service app where a technician uses a tablet to log repairs with photos and GPS coordinates. Model-driven apps are better for complex business processes that follow a standard record-view-edit workflow, like managing customer accounts in a CRM system.
To build a canvas app, you start in the Power Apps studio. The studio gives you a blank screen. You then add 'controls' from a toolbox. Controls are the building blocks: a 'Label' shows text, an 'Input Text' field lets a user type information, a 'Button' triggers an action, a 'Gallery' displays a list of records from a data source, and an 'Image' control shows a picture.
Every control has 'properties' you can set. Properties control how the control looks and behaves. For a button, properties include its text (the label on the button), its 'X' and 'Y' position on the screen, its width and height, its background colour, and a 'Text' property that shows the clickable word. The most important property is the 'OnSelect' property. This defines what happens when the user clicks or taps the button. You write a formula in the 'OnSelect' property, such as: - 'Navigate(Screen2)' — moves the user to another screen - 'Patch(Inventory, Defaults(Inventory), {Item: "Widget A", Quantity: 5})' — adds a new record to the 'Inventory' data source - 'Collect(TempList, {Name: "John"})' — creates a temporary collection of data for the current session
These formulas are written in Power Fx, a programming language that uses plain English-like syntax. Power Fx is similar to Microsoft Excel formulas. If you have ever written '=SUM(A1:A5)' in Excel, you already understand the basic idea: you type a formula into a property, and the formula runs when the app needs it.
Canvas apps connect to 'data sources'. A data source is any place your app reads or writes data. Common data sources include:
Microsoft Dataverse (the built-in database for Power Platform)
SharePoint lists
Microsoft SQL Server databases
Excel workbooks stored in OneDrive or SharePoint
Microsoft Lists
Third-party services like Salesforce or Google Sheets via connectors
A 'connector' is a bridge between your app and the data source. When you build a canvas app, you choose which connector to use. Power Apps provides hundreds of pre-built connectors. For example, the 'Office 365 Outlook' connector lets your app read your email inbox, the 'Microsoft Teams' connector lets your app send messages to a Teams channel, and the 'Twitter' connector lets your app search for tweets containing specific words.
Canvas apps can be responsive, meaning they adapt to different screen sizes — phone, tablet, or desktop. You can set rules so that controls resize themselves proportionally when the screen width changes. This is crucial for building one app that works on a warehouse employee's handheld scanner and a manager's desktop monitor.
Why do canvas apps exist? Before Power Apps, a company that needed a custom mobile form would have to hire a software developer to build a native iOS or Android app. That process took months and cost thousands of pounds. Canvas apps let a business analyst or an IT pro with no coding background build the same form in hours. They replace the need for traditional programming for simple data-entry and approval apps.
What do canvas apps replace? They replace paper forms, spreadsheet-based data collection, and expensive custom development. A factory that used to have inspectors fill paper checklists can now have those same inspectors tap through a canvas app on a tablet. The data goes instantly into a database, eliminating data entry errors and delays. A hospital that used to call patients to book appointments can build a canvas app where patients see available slots and book themselves.
Canvas apps are part of the Microsoft Power Platform, which also includes Power BI for data visualisation, Power Automate for workflows, and Power Virtual Agents for chatbots. All four products share the same common data service — Dataverse — so data flows seamlessly between them. A canvas app can trigger a Power Automate flow when a button is clicked, which then sends an email and creates a new record in Dataverse.
When you take the PL-900 exam, you will be asked to identify the correct scenario for a canvas app. The key exam clues are: the app needs a custom layout, the interface must be highly tailored to a specific task, or the user interacts with the app on a phone or tablet with limited screen space. If the question describes a standard form that looks the same for every record, the answer is likely a model-driven app. If the question describes a free-form design with drag-and-drop controls, the answer is a canvas app.
Open Power Apps Studio and create a new blank canvas app
Start by signing into Power Apps (make.powerapps.com). Click 'Create' and choose 'Canvas app' from the blank template. You will be asked whether the app is for a phone or tablet layout. Choosing the phone layout sets the default canvas size to a mobile screen ratio, which saves you from manually adjusting dimensions later.
Add a data source
In the left navigation pane, click the 'Data' tab (database icon). Click 'Add data' and choose from the list of connectors. For example, select 'SharePoint' and then pick the specific SharePoint site and list. This step links your app to the data it will read from and write to. Without a data source, your app is just a static design.
Design the first screen by dragging controls onto the canvas
From the 'Insert' tab, drag controls such as a 'Text label', a 'Text input', and a 'Button' onto the blank canvas. Position them by setting the 'X' and 'Y' properties or by dragging them with your mouse. This step establishes the visual interface that users will interact with.
Configure control properties in the property pane
Select a control you placed (e.g., the button). In the property pane on the right side, change its 'Text' property to something meaningful like 'Submit'. Set its 'Fill' colour to a company brand colour. For the button's 'OnSelect' property, write the formula: 'Navigate(Screen2)'. This defines the button's behaviour when clicked.
Add a second screen and set up navigation
Click the 'New screen' button from the top toolbar and choose a layout (e.g., 'Blank'). On this second screen, add a label that says 'Success!'. On the original button, you already wrote 'Navigate(Screen2)'. Now the app flows from the first screen to the second. Navigation is essential for multi-step forms and workflows.
Write the data submission formula
On the second screen, you might add another button that writes data to your data source. For its 'OnSelect' property, write: 'Patch(YourDataSource, Defaults(YourDataSource), {Field1: TextInput1.Text, Field2: DatePicker1.SelectedDate})'. This formula creates a new record with the values the user typed on the first screen.
Publish and share the app
Click the 'Publish' button in the top right corner. After publishing, go to the 'Share' option in the Power Apps portal. Enter the email addresses of the users who need access. Choose whether they only need to 'Use' the app (end-user permission) or also 'Edit' it (co-owner permission). Users then open the app from the Power Apps Mobile app or a web browser.
A field service manager at a heating and cooling company, 'ComfortAir', needs a new way for technicians to record their daily maintenance visits. Currently, technicians fill out paper forms after each job. The paperwork is scanned at the end of the week, and a data entry clerk types the information into a database. Errors happen: dates are illegible, serial numbers are mistyped, and sometimes forms are lost.
The manager decides to build a canvas app in Power Apps. Here is the step-by-step process the manager follows:
The manager opens Power Apps studio and creates a new blank canvas app optimised for a phone layout.
The manager adds a data source: a SharePoint list called 'Maintenance Visits'. The list has columns for Customer Name, Address, Serial Number, Job Date, and Notes. The manager chooses the SharePoint connector from the data sources menu.
The manager designs the first screen: a 'Welcome Screen' with the company logo (an 'Image' control) and a button labelled 'Start New Visit'. The manager sets the button's 'OnSelect' property to 'Navigate(FormScreen1)'.
The manager creates a second screen called 'FormScreen1'. On this screen, the manager adds:
- A 'Text Input' control for the customer name. - A 'Text Input' control for the address. - A 'Text Input' control for the serial number of the unit. - A 'Date Picker' control for the job date. - A 'Text Input' control for the technician's notes. - A 'Button' labelled 'Submit'. The manager writes the formula for the button's 'OnSelect' property: 'Patch(MaintenanceVisits, Defaults(MaintenanceVisits), {Title: TextInput1.Text, Address: TextInput2.Text, SerialNo: TextInput3.Text_x0020_, JobDate: DatePicker1.SelectedDate, Notes: TextInput4.Text})'. 5. The manager adds a success screen: after the submit button is clicked, the app navigates to a 'Thank You' screen that displays a checkmark icon and the text 'Visit recorded successfully'. 6. The manager tests the app on a phone by clicking 'Preview' in the studio. She types sample data and clicks submit. The record appears in the SharePoint list instantly. 7. The manager publishes the app from the studio. She then shares it with the four technicians by inviting them using their email addresses in Microsoft 365. They open the app on their work phones via the Power Apps mobile app.
The result: technicians now record visits directly in the field. No more paper forms. No more typing errors. Data is available in SharePoint immediately, so the office team can see which machines were serviced on the same day. The entire app took the manager three hours to build.
If ComfortAir later needs to add a photo-capture feature, the manager can add a 'Camera' control to the form screen and set its property to store the photo alongside the other data. If the manager wants an approval workflow, she can add a 'Power Automate' button that sends an email to the supervisor when a repair costs over £500.
Key actions an IT professional takes when building a canvas app:
Identify the specific user task the app must support (e.g., 'log a defect', 'approve a holiday request').
Choose the right data source. If the data lives in an on-premises SQL server, the IT pro sets up an on-premises data gateway first.
Design the app screen layout: arrange controls on the canvas, set colours, font sizes, and responsive resizing.
Write formulas in Power Fx for control properties like OnSelect, Default, and Visible.
Add navigation between multiple screens using the Navigate() function.
Test the app in preview mode, then publish it to a production environment.
Manage app sharing and permissions: decide who can use the app (end users) and who can edit it (co-owners).
The PL-900 exam tests your ability to distinguish canvas apps from other Power Apps types and to identify the correct use cases. The exam does not ask you to write Power Fx formulas. Instead, it presents multiple-choice questions about features, scenarios, and design principles.
Key exam concepts for canvas apps:
Free-form layout is the defining feature. The exam will give a question like: 'A company needs an app with a custom interface where users can drag elements freely. Which type of app should they build?' The correct answer is always 'canvas app'. The trap answers are 'model-driven app' and 'portal'. Model-driven apps have a pre-defined layout; portals are websites for external users.
Responsive design. The exam asks: 'You need an app that works on both phones and tablets with a single design. Which capability should you use?' The answer is 'responsive layout'. The trap is 'screen size property' — there is no such property. The correct term is the responsive container or the ability to set control sizes relative to screen dimensions.
Connectors. Questions ask: 'Which of the following is NOT a data source for a canvas app?' Trap options include things like 'Power BI dashboard' (which is a visualisation, not a data source) or 'Microsoft Dataverse' (which IS a data source). You must memorise that connectors exist for SharePoint, Dataverse, SQL Server, Excel, and Office 365. Third-party connectors include Salesforce, Twitter, and Google Drive.
Power Fx basics. While you won't write formulas, you may be asked to identify the correct formula syntax. For example: 'Which formula navigates to a screen named Screen2?' Answer: 'Navigate(Screen2)'. A trap might be 'GoTo(Screen2)' or 'MoveTo(Screen2)' — these are not valid. Similarly, for patching data: the formula is 'Patch(DataSourceName, Defaults(DataSourceName), ...)'.
Canvas app designer. The exam may ask: 'Where do you create a canvas app?' Answer: 'In Power Apps Studio.' A trap might say 'Power Automate' or 'Power BI Desktop'. Know that Power Apps Studio is the design tool.
Sharing and permissions. The exam tests: 'A user built a canvas app. How do they let other employees use it?' Correct: 'Publish the app and share it via the Power Apps portal by adding the users' email addresses or assigning them to a security group.' Trap: 'Email the app file' or 'Copy the URL' — you must share through the platform.
Common trap patterns:
The question describes a scenario with a complex data model (many related tables). The instinct is to choose canvas app. Wrong — the correct answer is typically model-driven app because canvas apps struggle with deeply relational data navigation.
The question says the app must integrate with a third-party service. The trap says 'use a model-driven app because it has built-in connectors.' Both types have connectors, but canvas apps have a wider variety of standard and premium connectors. The answer depends on the need for a custom UI.
The question says 'The app must be built quickly with no coding.' Canvas apps still require some formula writing (Power Fx). The exam might pit canvas apps against Power Apps portals or model-driven apps. For a truly no-code solution, the answer might be 'use a model-driven app with an out-of-the-box form'.
Definitions to memorise:
Canvas: The blank screen where controls are placed.
Control: An element on the screen (button, label, input).
Property: A specific attribute of a control (Text, Fill, OnSelect).
Power Fx: The low-code formula language used in canvas apps.
Connector: A link between Power Apps and a data source.
Data source: The external location where app data is stored.
Responsive layout: The capability of controls to resize and reposition based on screen size.
The exam loves to test the difference between a 'canvas app' and a 'model-driven app'. Create a mental comparison: canvas = free-form, pixel perfect, phone-first, custom. model-driven = pre-built forms, data model driven, web-first, uniform UX. If the question says the user needs to 'drag and drop' or 'design every element', choose canvas. If it says 'uses the Dataverse data model' or 'provides a uniform interface', choose model-driven.
A canvas app gives you complete control over the pixel-level layout of every screen element by dragging controls onto a blank canvas.
Canvas apps connect to data sources like SharePoint lists, SQL Server tables, Excel files, and Dataverse using over 300 pre-built connectors.
Power Fx is the low-code formula language used in canvas apps, and it is intentionally similar to Excel formulas so business users can learn it quickly.
The exam distinguishes canvas apps from model-driven apps by use case: canvas apps for custom, free-form interfaces; model-driven apps for standard record-based workflows.
You must design for responsive layout if you want your canvas app to work well on different screen sizes; controls do not resize automatically.
Canvas apps are shared with users through the Power Apps portal by adding their email addresses or assigning them to a security group, not by sending a file.
You cannot submit a canvas app to a public app store; it runs inside the Power Apps Mobile app or a web browser for internal business use.
The OnSelect property of a button is where you write the formula that tells the app what to do when the button is clicked, such as navigating to another screen or patching data.
These come up on the exam all the time. Here's how to tell them apart.
Canvas App
Free-form layout: controls placed anywhere on the screen
Best for task-specific interfaces like a field-service form
Uses Power Fx formulas to control behaviour
Model-Driven App
Pre-defined layout based on the data model of Dataverse
Best for standard record-based workflows like a CRM system
Uses form components and business rules without custom formulas
Power Fx Formula (Canvas)
Uses functions like Navigate(), Patch(), Filter() for app actions
Applies to control properties such as OnSelect, Visible, Default
Runs in the context of the app frame, not a spreadsheet cell
Excel Formula
Uses functions like SUM(), VLOOKUP(), IF() for calculations
Applies to cell values in a spreadsheet grid
Runs in the context of a workbook cell or range
Canvas App (Phone Layout)
Optimised for portrait-oriented screens (e.g., a smartphone)
Default canvas width is narrower (approximately 360 pixels)
App designed for touch interactions and vertical scrolling
Canvas App (Tablet Layout)
Optimised for landscape-oriented screens (e.g., a desktop monitor)
Default canvas width is wider (approximately 1024 pixels)
App designed for mouse and keyboard interactions with horizontal scrolling
Canvas App Data Source (SharePoint)
Data stored in a SharePoint list with columns for each field
Offline mode is not natively supported
Limited to 30,000 items per list for performance in canvas apps
Canvas App Data Source (Microsoft Dataverse)
Data stored in Dataverse tables with relational modelling
Native offline support in Power Apps Mobile
Can handle millions of rows and complex data relationships
Mistake
Canvas apps can only connect to Microsoft Dataverse.
Correct
Canvas apps can connect to hundreds of data sources, including SharePoint, SQL Server, Excel, Office 365, Salesforce, and many third-party APIs via connectors.
Many beginners assume Power Apps is locked to Dataverse because that is the default data source in tutorials, but the app platform was designed to be universal.
Mistake
You need to be a professional programmer to write Power Fx formulas.
Correct
Power Fx is a low-code language that uses plain English keywords like 'Filter', 'Navigate', and 'Patch'. Anyone comfortable with Excel formulas can learn it quickly.
The word 'formula' sounds technical, but Microsoft deliberately modelled Power Fx on Excel syntax to lower the barrier for non-developers.
Mistake
Canvas apps automatically work on all devices without any extra effort.
Correct
You must explicitly design for responsive layout if you want the app to look good on phones, tablets, and desktops. Without responsive containers, controls stay fixed at the size you placed them.
Beginners drag controls at a certain size and think the app will magically stretch. They do not realise that a fixed-width button on a phone screen will be too large or too small on a tablet.
Mistake
Canvas apps and model-driven apps are interchangeable for any business need.
Correct
Canvas apps are best for highly customised, task-specific interfaces (e.g., a feedback form with a photo upload). Model-driven apps are best for standard record-based workflows with complex data relationships (e.g., a CRM system).
Both are called 'Power Apps', so beginners think they are the same thing. The exam specifically tests the difference in use cases.
Mistake
Once you have built a canvas app in Power Apps Studio, you can sell it on a public app store.
Correct
Canvas apps are internal business apps. They are not compiled into standalone installer files and cannot be submitted to Apple's App Store or Google Play. They run inside the Power Apps Mobile app or a web browser.
People hear 'app' and assume it is the same as a consumer app distributed through an app store. Canvas apps are for internal business use only.
Mistake
All canvas app controls have the same set of properties.
Correct
Different controls have different properties. For example, a 'Text Input' control has a 'Default' property; a 'Button' does not. A 'Gallery' control has a 'TemplateSize' property; a 'Label' does not.
Beginners see that labels and buttons both have 'X' and 'Y' properties and assume the full property list is identical, leading to errors when they try to set a property that does not exist on a control.
Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.
Not in the traditional sense. You do need to write simple formulas in Power Fx, but these are plain English statements like 'Navigate(Screen2)' or 'Patch(DataSource, ...)'. If you can write an Excel formula, you can build a canvas app.
No. Canvas apps run inside the Power Apps Mobile app (available on iOS and Android) or in a web browser. They are not compiled into standalone installer files and cannot be submitted to the Apple App Store or Google Play Store.
Technically, there is no hard limit, but performance degrades with hundreds of controls. For most business apps, you will stay well under any limit. The bigger constraint is usability — too many controls on one screen confuse users.
Use responsive layouts. In Power Apps Studio, enable 'Responsive layout' in the 'Settings' menu. Then use 'Container' controls to group elements and set rules so that controls resize and reposition proportionally based on screen width.
The app will still work, but the new column will not automatically appear in your screens. You must manually update the app to add or reference the new column. You can refresh the data source connection in the studio to see the new schema and then adjust your formulas.
Yes, with some limitations. The Power Apps Mobile app supports offline capability if you use Dataverse as your data source. For other data sources like SharePoint, offline mode is not natively supported. You would need to build workarounds using collections to store data locally.
Yes, each person who uses the app needs a Power Apps licence, typically included with Microsoft 365 plans (E3/E5) or purchased as a per-user/per-app plan. Users with a free 'Microsoft Entra ID' guest licence cannot run the app without a paid licence.
You've finished Building Canvas Apps with Power Apps. Continue through the PL-900 study guide to build a complete picture of the exam.
Done with this chapter?