
What's Changed Since This Session
The technological foundation of Microsoft Power Apps has evolved dramatically since Paul Stork's masterclass was recorded around 2022. Below is a factual summary of the core technologies and workarounds discussed in that session, their current status as of April 2026, and the modern equivalents you must use today.
| Technology / Approach (2022) | Status in April 2026 | What Replaced It |
|---|---|---|
| Manual TimeZoneOffset formulas | Obsolete for Dataverse | Dataverse Time Zone Independent behavior for Date Only columns. |
| Power Automate for >2000 records | Legacy Workaround | Enhanced Delegation for UpdateIf/RemoveIf 2 and Dataverse caching. |
| External Flow Triggering | Integrated / Superseded | Power Automate Pane inside Studio 4 and Agent Builder. |
| Math-based Responsive Layouts | Obsolete | Modern Grid Containers utilizing Fluent 2 design systems. |
| LoadData / SaveData for Offline | Legacy (Non-Dataverse only) | Native Dataverse Mobile Offline with auto-generated profiles. |
| App Checker / Delegation Warnings | Augmented | Power Apps Monitor with AI-driven recommendations. |
| Power Apps Per App License | End of Sale (Jan , 2026) | Power Apps Premium ($20/user/mo) or Pay-As-You-Go meters. |
How to Build This Today
The core business logic demonstrated in the 2022 session remains highly relevant to enterprise application development. However, the mechanical execution of that logic has completely transformed. You saw Paul build complex, math-heavy, and workaround-dependent solutions to overcome the strict limitations of the 2022 Power Platform framework.
Today, you would do almost all of this natively using platform configuration rather than writing custom code. The introduction of Fluent 2 design systems, Agentic AI, and deep Dataverse integration has shifted the developer's role from writing formulas to configuring environments. This section breaks down exactly how to modernize Paul's six core scenarios using the current April 2026 toolset.
1. Handling Dates and Times
What Paul Built:
You saw Paul demonstrate how to normalize dates using complex TimeZoneOffset and DateValue formulas. He built intricate Power Fx expressions to convert stored midnight UTC dates into local display times for users. This manual math prevented frustrating shifts across time zones for date-only fields pulling from legacy sources like SharePoint or Excel.
When users in the UK opened forms created in the US, the date picker would often show the wrong date because SharePoint inherently stores date/time values in UTC. Paul's solution required developers to intercept the data before it hit the user interface and manually adjust the offset.
How You Would Build It Today:
Today, you would avoid complex Power Fx date math entirely by leveraging Microsoft Dataverse's native column behaviors. Microsoft has significantly upgraded how the platform handles time zones at the foundational data layer.
If you are using Microsoft Dataverse, you simply configure the specific column behavior to ignore time zones completely. This ensures that a date entered as "October 12th" in London remains exactly "October 12th" when viewed in Los Angeles, requiring zero formula intervention in the canvas app itself.
Step-by-Step April 2026 Instructions:
- Navigate to your environment in the Power Apps Maker Portal.
- On the left navigation pane, select Tables, and then choose your target Dataverse table to open the schema designer.
- Under the Schema section, select Columns, and click the + New column button.
- Name your column appropriately, and set the Data type to Date and time.
- Change the Format dropdown selection to Date only.
- Expand the Advanced options section located at the bottom of the configuration pane.
- Locate the Behavior dropdown and change it from the default User local to Time zone independent.
- Click Save to apply the schema change.
Quick Win: If you are stuck using a legacy SharePoint list instead of Dataverse, you cannot change the underlying column behavior. Instead, go to your SharePoint site, click the Settings gear icon > Site information > View all site settings > Regional settings, and lock the entire site to a single organizational time zone. Then, in Power Apps, ensure your Date Picker's DateTimeZone property matches this setting to prevent display shifts.
For displaying and formatting dates directly in a text label, Copilot can now write the formatting string for you. You no longer need to memorize specific mm/dd/yyyy formatting syntax or localization parameters.
Step-by-Step Copilot Formatting:
- Select your Label control in the Power Apps Studio authoring canvas.
- Open the Copilot chat pane located on the right side of the screen.
- Type a natural language prompt: "Format the text property to show the current date and time in the French locale."
- Copilot will automatically apply the optimized formula Text(Now(), "dd/mm/yyyy hh:mm", "fr-fr") to your control's text property.
Official Microsoft Documentation:(https://learn.microsoft.com/en-us/power-apps/maker/data-platform/behavior-format-date-time-field)
2. Large Data Sources and Delegation
What Paul Built:
You saw Paul outline strategic workarounds to handle data sources containing more than 2000 records. Because complex queries and bulk operations were strictly non-delegable at the time, he built secondary architectures that offloaded the heavy lifting to Power Automate flows.
These external flows were triggered from Power Apps buttons to perform server-side processing on SharePoint lists. Once the flow processed the bulk update, it returned a smaller, manageable dataset back to the app canvas.
How You Would Build It Today:
Today, you would rely on the Enhanced Delegation features rolled out and finalized between 2024 and 2026. Microsoft has specifically upgraded the internal delegation engine for bulk operations, allowing you to run UpdateIf and RemoveIf natively against large datasets.
Furthermore, you no longer need to build an external flow just to process a large batch of Dataverse records. The modern Dataverse connector inherently caches larger amounts of data, and the updated Power Fx engine can handle these specific operations safely up to the configured record threshold without timing out.
Step-by-Step April 2026 Instructions:
- Open your canvas app inside the Power Apps Studio editor.
- On the top command bar, click the Settings gear icon to open the configuration pane.
- In the Settings pane, ensure you are on the General tab.
- Scroll down to the Data row limit field and change it from the default 500 to the maximum 2000.16
- Next, select the Updates tab located within the same Settings pane.
- Click on the New category (this area formerly housed Preview or Experimental features).
- Scroll down the list and toggle on the feature labeled Enhanced delegation for UpdateIf and RemoveIf.
- Close the Settings pane to apply the new delegation engine rules to your app session.
Warning: Increasing the data row limit to 2000 dictates that any non-delegable query will physically pull 2000 records over the network to the user's local device before processing. On older mobile devices or poor cellular connections, this can cause significant memory spikes and unresponsive app behavior. Only increase this limit if you are absolutely certain your locally filtered dataset falls within this exact boundary.
If your enterprise dataset vastly exceeds 2000 records (e.g., a table with 50,000 historical rows) and requires complex aggregation, you must pivot your architecture. Instead of attempting to pull this data into a canvas app gallery, you should surface a Power BI visual directly inside the app, or utilize a custom Agent to query the massive dataset server-side.
Official Microsoft Documentation: Understand delegation in a canvas app
3. Power Apps-Power Automate Integration
What Paul Built:
You saw Paul demonstrate the full, multi-step process of calling Power Automate flows directly from Power Apps. He had to navigate entirely out of his app, build a workflow in the separate Power Automate portal, add the specific Power Apps trigger, and then manually link it back to a button within his app canvas.
He also spent considerable time showing how to handle complex parameter passing. Variables had to be carefully routed between the two distinct systems to ensure the flow had the correct context to execute approvals or data updates.
How You Would Build It Today:
Today, you would almost never leave the Power Apps Studio interface to build an integrated flow. Microsoft introduced a dedicated Power Automate pane directly inside the app authoring canvas, seamlessly uniting the development environments.
More importantly, the nature of integration is now heavily assisted by generative AI. If your external flow is intended to perform routine data tasks, you might bypass Power Automate entirely and configure a new Agent using the Agent Builder. Agents autonomously execute logic based on natural language descriptions, entirely replacing the need for rigid flow buttons and manual parameter passing.
Step-by-Step April 2026 Instructions (Standard Flow Integration):
- Open your canvas app inside the Power Apps Studio environment.
- Look to the far-left vertical navigation bar and click the Power Automate icon (represented by the blue chevron/arrow symbol).
- In the Power Automate pane that slides out, click the Create new flow button.
- A modal dialog appears directly over your canvas. Choose Create from blank or select a pre-built template like Click a button in Power Apps to send an email.
- The full flow designer interface opens inside your Power Apps window, allowing you to maintain visual context of your app.
- Configure your flow actions. When you click Save, the flow is automatically bound to your app environment.
- Select a button on your canvas, navigate to the OnSelect property in the formula bar, and type your flow's name followed by .Run() to execute it.
Step-by-Step April 2026 Instructions (Agentic Approach):
If your legacy flow was originally designed to answer user questions, summarize data, or process complex multi-step logic, you should build an Agent instead.
- In the left navigation pane of Power Apps Studio, select Agents. (If it is hidden, click the More icon to reveal and pin it).
- Click the primary button labeled Create an agent from an app.
- Copilot will automatically analyze your app's connected Dataverse tables and underlying metadata.
- Provide a comprehensive natural language instruction, such as: "When a user asks to expedite an order, update the order status to 'High Priority' and email the regional manager."
- The Agent Builder will automatically generate the required backend actions, triggers, and knowledge base extractions without you writing a single line of traditional flow logic.
Quick Win: Always validate parameters passed from Power Apps to Power Automate. Because arguments are technically visible as network traffic, an external actor could theoretically intercept and change them. Add a simple condition block at the very start of your flow to ensure variables (like email domains) perfectly match expected internal organizational formats before proceeding.
Official Microsoft Documentation:(https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/working-with-flows)
4. Responsive Design and Modern Layouts
What Paul Built:
You saw Paul build highly responsive apps using exhaustive manual mathematical formulas. To ensure his apps looked good on any screen, he set control widths dynamically using formulas like Parent.Width * 0.5.20
He carefully calculated X and Y coordinates so controls would shift appropriately when a user rotated their mobile device from portrait to landscape. This approach was incredibly tedious, required constant testing across device sizes, and was highly prone to breaking if a single formula contained a typo.
How You Would Build It Today:
Today, you would completely discard those math formulas and rely on Modern Controls combined with the powerful Grid Container. Introduced as a core component of the Microsoft Fluent 2 design system update, these containers auto-flow and scale exactly like CSS grids in standard web development.
The Grid Container allows you to define rigid rows, flexible columns, and exact pixel gaps. You simply drop a control into a specific grid cell, and the Power Apps engine handles all the complex resizing, scaling, and wrapping logic automatically based on the device viewport.
Step-by-Step April 2026 Instructions:
- Open your canvas app inside the Power Apps Studio interface.
- Disable the legacy scaling feature by navigating to Settings > Display and toggling Scale to fit to the Off position.
- Enable modern controls by navigating to Settings > Updates, selecting the New tab, and toggling on Modern controls and themes.
- Close the settings panel to refresh your authoring environment. On the top command bar, click Insert.
- Expand the Layout category from the drop-down menu and select Grid container.
- In the right-hand properties pane for your new Grid container, locate the Columns and Rows properties. Set them to your desired initial layout (e.g., 3 columns, 2 rows).
- Drag a modern Text input control from the insert menu and drop it directly into the container area.
- Select the new control inside the container. In the properties pane, you will now see grid-specific layout options like Row start, Row end, Column start, and Column end.
- Adjust these integer values to make the control span multiple columns or rows. The control will remain perfectly aligned and responsive on any device screen without a single formula.
Quick Win: To instantly modernize the aesthetic of an older app, navigate to the Themes pane on the left authoring menu and select one of the default Fluent 2 themes. This action will instantly update the colors, typography, drop shadows, and interaction states of all modern controls across your entire application from a single central location.
Official Microsoft Documentation: Grid container control in Power Apps
5. Building Offline-Capable Apps
What Paul Built:
You saw Paul construct a highly complex offline architecture using the native LoadData and SaveData functions. He built local in-memory collections to temporarily store data when a device became disconnected from the network.
Upon reconnection, he wrote intricate Patch statements to batch upload the stored records. He also had to write custom logic to handle merge conflicts in case another user had modified the same record on the server during the disconnection period.
How You Would Build It Today:
Today, you would completely discard LoadData and SaveData unless you are absolutely forced to use a non-Dataverse connector like a SharePoint list.
If your enterprise app runs on Microsoft Dataverse, you must use the native Mobile Offline feature. This creates a true offline-first experience where the app automatically downloads necessary data to a local SQLite-based cache directly on the mobile device. All user reads and writes happen locally against this cache, ensuring blazing fast performance. The system then automatically syncs changes to the cloud in the background the moment connectivity returns, handling conflicts intrinsically.
Step-by-Step April 2026 Instructions:
- Navigate to your environment in the Power Apps Maker Portal.
- Ensure your backend tables are enabled for offline use. Go to Tables, select your specific table, click Properties, expand Advanced options, and check the box for Can be taken offline.
- Open your canvas app inside Power Apps Studio.
- On the top command bar, click the Settings gear icon.
- Under the General tab, scroll down and toggle on the Can be used offline switch.
- A dropdown menu will appear below the toggle. Select Auto-generated to let Power Apps automatically create an optimal offline profile based entirely on the data sources currently used in your app.
- Save and Publish the application.
Warning: Native offline functionality is strictly available only when running the application natively through the Power Apps Mobile players on iOS, Android, or Windows operating systems. It will fundamentally fail if the user attempts to run the app offline inside a standard web browser.
If your application relies on massive Dataverse tables containing millions of rows, do not use the auto-generated profile. Instead, you must create a custom mobile offline profile in the admin center. This allows you to apply strict data filters, ensuring only relevant data (such as "Tasks actively assigned to the current user") downloads to the device, preventing local storage bloat.
Official Microsoft Documentation:(https://learn.microsoft.com/en-us/power-apps/mobile/canvas-mobile-offline-setup)
6. Troubleshooting and Performance Monitoring
What Paul Built:
You saw Paul rely heavily on the built-in App Checker stethoscope icon and the pervasive yellow delegation warning triangles to identify bottlenecks. He spent significant time manually optimizing formulas and running test queries to see exactly where the app slowed down under load.
How You Would Build It Today:
Today, while the App Checker remains useful for basic syntax errors, you would use the Monitor tool and Copilot for deep, enterprise-level performance troubleshooting. Monitor is a real-time telemetry tool that captures incredibly detailed event logs of every single data request, formula execution, and network call your app makes.
By 2026, the Monitor dashboard includes advanced, pre-calculated metric cards such as Time to Interactive (TTI), Time to Full Load (TTFL), and AI row summary dwell times. Furthermore, if you are running your app inside a Managed Environment, Monitor will proactively analyze your telemetry and provide actionable, button-click recommendations to fix performance bottlenecks automatically.
Step-by-Step April 2026 Instructions (Using Monitor):
- Navigate to the Power Apps Maker Portal.
- Ensure you are operating in the correct environment using the top-right environment switcher.
- On the left navigation pane, click Apps.
- Select your target app from the generated list.
- On the top command bar, click the Monitor button.
- A new browser tab will open containing the dashboard. Click Play published app to launch a live tracing session.
- Interact naturally with your app. Return to the Monitor tab to observe a real-time grid of execution events.
- Scrutinize the Data request latency and Data request success rate columns to identify exactly which Dataverse or external API call is causing the application to hang.
Step-by-Step April 2026 Instructions (Using Copilot for Formulas):
- Open your app inside Power Apps Studio.
- If you have a complex or legacy formula that is failing, highlight the code directly in the top formula bar.
- Open the Ask Learn AI assistant chat experience (this was previewed in late 2025 and is now a core troubleshooting feature).
- Submit a natural language prompt to Copilot, such as: "Explain why this specific formula is failing to delegate to Dataverse," or "Rewrite this entire formula for better performance." The AI will analyze the contextual metadata and provide a corrected, syntax-perfect Power Fx string based entirely on 2026 platform best practices.
Quick Win: Make it a daily habit to review the "App open success rate" metric card located in the primary Monitor dashboard. Because it is calculated every 24 hours, this single metric is the absolute fastest way to know if a recent platform publish has inadvertently broken the launch experience for your broader end-user base.
Official Microsoft Documentation: Monitor app performance
Licensing Quick Reference
Microsoft's licensing models have been heavily restructured over the past few years to accommodate the massive influx of AI, Copilot, and Agentic features. Notably, the legacy Power Apps Per App Plan officially reached its End of Sale on January , 2026.9 While existing customers can technically renew it, all new architectures and modernized apps must rely on the current active pricing tiers.
| Feature / Architecture Requirement | Required License Status (April 2026) |
|---|---|
| Standard Canvas Apps (Using M365 connectors like SharePoint/Excel) | Power Apps Basic (Included with most Office 365 / M365 E3/E5 plans). |
| Dataverse Storage & Offline Capabilities (Native mobile offline) | Power Apps Premium ($20/user/month) or Azure Pay-As-You-Go. |
| Model-Driven Apps (With modern Fluent 2 themes) | Power Apps Premium. |
| Agent Builder & Copilot Integrations (Inside Power Apps Studio) | Power Apps Premium (Requires underlying AI Builder/Copilot capacity credits). |
| Managed Environments (For advanced Monitor telemetry & recommendations) | Power Apps Premium (Must be activated at the tenant level by an Admin). |
Administrators should utilize the unified Power Platform Admin Center to actively monitor license assignments and track exactly which users are consuming capacity within Managed Environments. As your organization transitions to heavy Dataverse offline capabilities and sophisticated Agentic workflows, securing Premium licensing is absolutely essential to fully unlock and support the 2026 feature set.