top of page
hero-bg-1.png

Search Content

174 results found with an empty search

  • Power Pages vs Microsoft Forms

    “We were drowning in PDFs.” That’s how one of our clients described their process before coming to us. Every time they needed information from a customer, whether it was a form to fill out, a document to sign, or a status update to share, they sent an email. Sometimes it included an Excel sheet. Sometimes it was a PDF. And sometimes, the client had to call just to figure out where to send it. It was slow, messy, and left sensitive data scattered across inboxes. Internal teams wasted hours tracking down responses, and customers were left wondering: “Did you get my file?” “Is there a better way to do this?” Like many small and midsize businesses, this client didn’t want to start from scratch or break the bank; they just needed a secure, user-friendly way to exchange data with external users. So we helped them compare two Microsoft tools: Power Pages vs Microsoft Forms.  Here’s what we found. Power Pages vs Microsoft Forms: A Practical Guide Data Collection & Interaction Microsoft Forms: Best for quick, one-way data collection like surveys or basic forms. It’s simple and stored in Excel or SharePoint. Forms don’t allow users to interact with your data after submitting. Power Pages: If you are looking for a two-sided conversation where users submit, update, and get data, Power Pages might be the better fit. Built for external data interaction, Power Pages allows you to create secure, public-facing websites where external users can view, edit, or submit data. It’s ideal for scenarios like partner portals, customer service sites, or registration systems. Lookup and Dropdown Flexibility (referencing other data) Microsoft Forms: Every reference you make in a form (choices and dropdown fields) is configured directly in Forms. If you update your list of options anywhere else, you must also update it in your form because there is no dynamic connection to other data sources. Power Pages: Uses Dataverse to pull real-time data into dropdowns. Add a product list? Done. Update service options? Instantly reflected. Attachments Microsoft Forms: Microsoft Forms currently only supports collecting attachments from internal users. Attachments from external users are not supported. Power Pages: Users can upload and download documents via a Power Pages portal. Data Sources & Security Microsoft Forms: Data is stored in Excel or SharePoint by default. Both sources are great if you have a simple security model or are working with a simple data structure. If you require a more robust data source, you will need to either manually transfer data from Forms or automate the process. Power Pages: Built on Dataverse, which is a robust data platform. Dataverse supports advanced data modeling and security. You can also connect Power Pages to external data sources using Virtual Tables or APIs. Licensing Microsoft Forms: Included with most Microsoft 365 subscriptions, there’s no additional cost, making it a budget-friendly option for basic data collection. Power Pages: Power Pages requires additional licenses based on your expected site traffic. Admins will also require a Power Apps per-app or premium license to access and maintain the underlying Dataverse solution. This cost reflects its advanced capabilities and scalability of solutions in this environment. Our Recommendation In this client’s case, Power Pages was the clear winner. They needed more than just a form; they needed a secure, branded space where customers could upload files, check the status of their requests, and interact with the business without ever touching the internal system. Microsoft Forms simply couldn’t support that level of interaction or security. That’s the key distinction. If you just need to gather a few fields of information quickly, Microsoft Forms is a solid, low-effort choice. But if your process involves sharing files, managing access for external users, or handling sensitive data with care, Power Pages gives you the structure, security, and scalability to get it right. Both tools have their place, but if your story sounds anything like the one above, chances are Power Pages is the better fit. Key Takeaway Microsoft Forms is great for quick, low-effort data collection, but Power Pages delivers when you need secure, interactive, and scalable solutions. The right tool depends on whether you just need answers or a true two-way digital experience. Ready to see how Power Pages could transform your processes? Reach out to our team and we’ll help you get started.

  • 5 SharePoint + Power Apps Features You Should Be Using (But Probably Aren’t)

    If you’ve been around the Power Platform for even a minute, you know SharePoint is one of the most common data sources for Power Apps. It’s everywhere. But here’s the thing: most makers are only scratching the surface. You might know that you can build a canvas app on top of a SharePoint list, but that’s just the tip of the iceberg. In this article, you’ll learn five different ways SharePoint and Power Apps work together , some simple, some advanced, that can dramatically improve your apps and your SharePoint experience. Whether you’re customizing list forms, embedding apps directly into SharePoint pages, or experimenting with Dataverse virtual tables, you’ll walk away with new tricks to put into action. And of course, if you prefer to watch than read, there is a full YouTube video SharePoint and Power Apps are better together . Sometimes those demos are better in action, than in stills. Why Power Apps and SharePoint Work So Well Together SharePoint has been the backbone of collaboration and content management in Microsoft 365 for years; heck I started with it in 2003 😲. Power Apps gives you the ability to turn that data into apps without writing code. Together, they create a supercharged combo: Familiar data storage  in SharePoint (lists, libraries, permissions). Custom user interfaces and automation  with Power Apps. Seamless integration  into Teams, Outlook, Copilot, and the rest of Microsoft 365. And not only is the combo also but it is popular. My back of the napkin math says that the most popular data source for Power Apps is SharePoint. I have no proof but... I have been doing this since day one and I feel pretty good about my assessment. Now let’s break down the 5 integrations every maker should know. 1 - Customize SharePoint List Forms with Power Apps First lets talk about using Power Apps to make the SharePoint browser experience better. By default, SharePoint list forms are basic. They work, but they’re not exactly exciting. With Power Apps, you can turn those forms into customized, interactive apps. What you can do: Add multiple screens (like a step-by-step wizard). Embed a Power BI dashboard right into the form. Add any of the 1,500+ Power Platform connectors to do things like Trigger Outlook emails Teams notifications Pull in other data sources Use conditional formatting, logic, and dynamic controls. Step-by-step: Open your SharePoint list. Go to Integrate > Power Apps > Customize forms . Power Apps will open a pre-built form tied to your list. Use the Power Apps designer to customize it however you want. Publish back to SharePoint. Pro tips: Don’t overdo it, heavily customized forms can get fragile. Permissions are controlled by SharePoint, not Power Apps. You can’t export these forms to other lists or environments. A custom SharePoint list form with a PBI Tile and Outlook button built with Power Apps. 2 - Embed Power Apps in SharePoint Pages Sometimes you want to add a Power Apps app to a SharePoint page. This keeps users inside SharePoint by embedding apps right on your intranet pages. Less clicking and less tabs equals less likely they get lost or distracted. How it works: Edit a modern SharePoint page. Add a new web part and search for Power Apps . Paste in the app URL. Resize and position the app for a natural fit. Bonus tip:  If you don't mind extra tabs, instead of embedding, use the button web part  to link users directly to an app. It keeps the page clean but makes apps one click away. A SharePoint Page with a Button Web Part for launching Power Apps and a Power Apps web part for displaying the app on the page. 3. Store Files in SharePoint Document Libraries Here’s a big one: when your app needs to handle files, always choose SharePoint document libraries , not list attachments. In my humble opinion, SharePoint is the literal best place to store a file to be used interactively for Power Apps. Why? Because users get: Inline previews and thumbnails (images, PDFs, Office docs). The ability to edit files directly in the browser. Automatic versioning and co-authoring. How to connect in Power Apps: In Power Apps, click Add data . Select SharePoint . Choose your site and document library. Build galleries or forms to interact with the files. A Power Apps gallery configured as a SharePoint Document Library explorer showing the file thumbnails. 4. Use SharePoint Lists as a Data Source This one’s the classic: SharePoint lists as your app’s backend. It’s simple, effective, and included in most Microsoft 365 licenses. You already knew this one but I felt obligated to include it anyway. Why it works well: SharePoint lists act like tables. Permissions are already baked in. It’s cost-effective compared to Dataverse. But… You’ll hit delegation limits if your data grows too big. It’s not meant to be an enterprise-scale database. A Power Apps app for managing Inventory Check In and Check Out with the data stored in SharePoint. 5. Explore Virtual Tables with Dataverse Sometimes we want to do crazy, over the top things. If your company is building in Dataverse and sometimes you wished you could pull in SharePoint, you can. Dataverse supports virtual tables  that can connect directly to SharePoint lists. This lets you: Build model-driven apps or Power Pages without migrating the data. Combine SharePoint data with other Dataverse tables. Things to watch out for: Not all SharePoint column types are supported. Errors are common—it takes testing and patience. Licensing costs are the same as Dataverse, so often it’s smarter to migrate. There is a lot of gotchas, and rarely are the best answer. The interface for adding a Virtual Table in Dataverse. Recap: SharePoint + Power Apps = Better Together To sum it up, here are five ways SharePoint and Power Apps work hand-in-hand: Customize list forms. Embed apps in pages. Store files in document libraries. Use lists as data sources. Experiment with Dataverse virtual tables. Each option opens up new opportunities for your apps and your business processes. Next Steps Want to take these ideas further? At PowerApps911  we specialize in helping organizations like yours: Build custom Power Apps that solve real business problems. Train your team through Power Apps training  and mentoring programs. Support you in using not just SharePoint and Power Apps, but also Power Automate, Power BI, and Microsoft Copilot. If we can do anything to help just click the Contact Us button in the top right corner and we are here for you.

  • How to Patch Dataverse Lookup Fields in Power Automate (Step-by-Step Guide)

    Why Lookups Matter This one’s for the Dataverse people. 👋 When you’re setting up your data model, Lookup fields can play a big role for several reasons. These columns make it much easier to connect your data, keep things consistent, and make your apps feel smarter and more reliable. Good database design is really the foundation of any successful Power Platform project. But here’s the catch: it’s not just about building the right tables and relationships. It’s also about knowing how the rest of the platform will interact with those choices. And every once in a while, you’ll stumble across something that isn’t as obvious as you’d expect. Patching Lookup fields in Power Automate is a perfect example of that. The Challenge with Patching Lookup Fields in Power Automate At first glance, it feels like it should be easy. Getting a record from Dataverse is pretty straightforward: use the Get Row  action, drop in the GUID, and you’re good to go. So naturally, you’d expect updating (patching) a Lookup field to work the same way. But that’s where things get tricky. It turns out that patching a Dataverse Lookup field in Power Automate requires very specific formatting. The good news? Once you know the secret, it’s smooth sailing. The Solution While the GUID is important, you also need the Entity Set Name  (which is just the Dataverse term for a table name). Luckily, it’s easy to find: Go to your Dataverse tables overview . Open the table you want. In the left panel under Table Properties , click Tools . Select Copy Set Name  (for example, pa911_testdata). Now, head back to your Power Automate flow: In your Create Item  or Update Item  action, find the Lookup field. Paste your Set Name, followed by parentheses () (example: pa911_testdata()). Add the GUID inside the parentheses. Code: pa911_testdata(GUID) It should look like this:   Your final result should look like this (an actual table is being used for this example) And that’s all there is to it! You can even pass the GUID through a variable, dynamic content, or inside an Apply to each . As long as the string is formatted properly, it’ll work every time. Recap Dataverse Lookup fields are powerful for connecting your data and building a strong data model. But when it comes to patching them in Power Automate, the formatting can trip you up if you don’t know the trick. Here’s the quick takeaway: You need both  the GUID and  the Entity Set Name . Format it like: EntitySetName(GUID) Use it directly in your Power Automate flow (variables and dynamic content work too). With this approach, updating Dataverse Lookup fields in Power Automate becomes simple and predictable. No more guesswork, just smooth automation. If you're looking for some quick help with Dataverse, Lookups, Power Automate or maybe something else, we are just a click away. Reach out, and let us know how we can help!

  • Mastering Power FX for Better Apps

    Power FX: Built for Makers Power FX is the engine behind how your apps and automations behave. If you’ve ever written a formula in Excel, you’re already halfway there. Microsoft designed Power FX to feel familiar and intuitive, so your spreadsheet skills translate directly into building smarter, faster solutions. Pro Tip: Microsoft’s Power FX Reference is a must-have bookmark. It’s searchable, well-structured, and kept up to date with every new function. Read the Helper Text (Yes, Really) That little pop-up box when you write a formula? It’s called helper text, and it’s more powerful than most people realize. It walks you through what’s required, what’s optional, and where you are in the formula, step by step. That blue highlight? It’s your guide that tells you where you currently are! For example, typing "If( " will show you exactly what content this formula requires: the logical test and the true result. Optional parts are hidden behind ellipses (…); just type a comma or semicolon to move forward. Once you know how to read it, writing complex formulas becomes much less frustrating and a lot more efficient. Don’t Ignore the “Error” Functions Power FX includes built-in ways to catch and handle errors gracefully, a must for building apps your users can trust. Use IsError() or IfError() to catch issues without showing red error messages. Example: IfError(1/0, "Oops, something went wrong") This keeps your app running smoothly and gives users clear, helpful feedback when something doesn't go as expected. Use Variables, But Use Them Intentionally It’s tempting to Set() everything, but too many global variables can turn into a debugging nightmare. Use them where they make sense. Then consider alternatives like passing values directly or using ClearCollect() to store and reuse data. Local variables (UpdateContext()) are great for managing screen-specific state without cluttering your app. Shane dives deeper into this in his 201 training , especially how to avoid "variable soup." Key Takeaway Power FX is designed to be approachable, but mastering its features, like helper text, error handling, and smart variable use, can dramatically improve the reliability and maintainability of your apps. Build with intention, and you’ll build apps your users love. If you're looking for some quick help with Power FX or maybe something else you are working on, we are just a click away. Reach out, and let us know how we can help!

  • Case File: Is SharePoint a Database?

    Scene:  A cold interrogation room. A single chair under a blinding light. Sitting in that chair? SharePoint. The crime it’s accused of? Pretending to be a database for Power Apps. Let’s open the case file and see what the evidence says. But of course, if you prefer the full details in action, then check out my full-length video on Is SharePoint a Database? Exhibit A: Can SharePoint Even Connect? First things first: does SharePoint show up in Power Apps as a data source? Yep. You can add a SharePoint list, pull in records, and build screens. Personally, I still think this is the most common scenario for Canvas apps. But wait, there is even more than you might notice at first glance. You can also connect to SharePoint Document Libraries. 🤯 And do you know where the absolute best place in the world to store files is for a Power Apps app? SharePoint. With your files stored there, instead of in a file column or even an attachment, you can leverage all of the power of Office Online to view and edit those files. Try editing a file stored in Dataverse or SQL, I will wait... yeah, not really a thing. Add SharePoint as a Data Source just like all of the other "databases" Exhibit B: Column Types Traditional databases love complexity. SQL Server offers more data types than you’ll ever need (and probably a few you’ll never understand, I don't). SharePoint? It keeps it simple. You don’t pick between decimal, int, and float, you just use Number.  And SharePoint gives you Choice columns , which let users pick from a dropdown of values. SQL doesn’t have that out of the box. The list of Column types for SQL and SharePoint Dataverse offers the best of both worlds but still gets a little confusing. In the end, SharePoint definitely wins the user-friendly  award here. Exhibit C: Relationships with SharePoint as a database In SQL, setting up relationships means defining primary keys, foreign keys, and constraints. Powerful, yes but also super hard to do well. SharePoint simplifies things with Lookup columns.  If you want your Employees list to reference a Departments list? Just add a lookup and you’re done. No foreign keys required or understanding what that even means, it just works. SharePoint create a Lookup column Dataverse does do this even better than SharePoint. The ability to dot notate your way through the relationship is awesome. It would be the winner if we were keeping score. Exhibit D: Scale This is where SharePoint’s story falls apart. The official documentation says a list can hold 30 million items. 🤣  Reality check? Not if you actually want to use them. In practice, SharePoint is fine for a few thousand records when being used as a database .  With indexed columns, maybe 25,000. But performance slows as the numbers climb. SQL and Dataverse, on the other hand, handle millions of rows without breaking a sweat. SharePoint list view threshold warning Exhibit E: Security SharePoint surprises us here. Unlike SQL, which usually manages security at the table level, SharePoint lets you configure row-level permissions. Not sure I would recommend you ever do this in SharePoint but technically possible. Item-level security is not perfect; it is tedious and doesn’t scale well but the flexibility is there. Dataverse still has the most robust security model (table, row, column, and org-level), but it’s also the hardest to configure. Exhibit F: ALM (Application Lifecycle Management) Moving apps from dev to test to prod? SharePoint is the weak link. Lists don’t package nicely into solutions, and replicating schema across environments is a pain. Best answer might be to create your SharePoint lists with PowerShell but that is a lot of work, and new stuff to learn for many people. Dataverse shines here with solutions, and SQL is straightforward with scripts. SharePoint? Let’s just say you don’t want to build a career on ALM with it. A Power Apps solution with Dataverse app and table Exhibit G: Normalization vs Reality Every DBA loves normalization , splitting data into multiple tables with relationships. I know in college we literally spent 2 years on this concept. 🤮 But Power Apps doesn’t always love it. Heavily normalized data can slow your app way down. SharePoint’s wide-table style (even with some repeated data) often makes apps faster and simpler. Sometimes the “bad database design” is actually the right choice for Power Apps performance. Don't shoot the messenger. The Verdict So, is SharePoint a database? Yes, technically.  It stores tabular data, supports relationships, and connects to Power Apps. No, if you’re comparing it to SQL Server.  It doesn’t scale or normalize the same way. But who cares?  In Power Apps, the real question is: does it meet the needs of your app? SharePoint is the most popular Power Apps data source in the world, in my educated opinion. Largely because it’s included in Microsoft 365 licenses for Standard Power Apps. Dataverse and SQL are better for scale and ALM, but SharePoint is the “free” option that just works for thousands of makers. So maybe we stop asking “Is SharePoint a database?” and start asking “ Does SharePoint work for this  app? ” Case closed. If you’re wrestling with data sources in Power Apps, don’t go alone into the interrogation room. Hit that contact button and call in the pros. Sometimes all it takes is a quick 30-minute consult to crack the case, and other times we roll out the full PowerApps911 squad to build something big. Either way, we’ve solved thousands of cases just like yours and we’re always ready for the next investigation.

  • Power Platform Admin Center: Classic Retires September 3, 2025 - Here’s What You Need to Know

    Big news for Power Platform admins: the Classic Power Platform Admin Center  is being retired on September 3, 2025 . If you’ve been relying on the old interface, now’s the time to get comfortable with the new Power Platform Admin Center . The good news? The new experience isn’t just a facelift - it brings new features, better organization, and smarter insights  to make administration easier. Let’s explore what’s changing, what’s brand-new, and how to get ready for the transition. Why Is the Classic Power Platform Admin Center Going Away? Microsoft is phasing out the Classic Admin Center to deliver a task- and outcome-driven design . Instead of burying settings under menus, the new Admin Center groups things by what admins actually want to achieve. Key Benefits of the New Admin Center Simplified navigation  - outcome-focused menus make tasks quicker. Smarter insights  - proactive recommendations via the Actions  tab. Modern monitoring  - dashboards and health tracking built-in. Future-focused  - ready for features like Copilot governance, pipelines, and improved security. When Will the Classic Power Platform Admin Center Be Retired? The official cutoff date is September 3, 2025 . After this, the Classic Admin Center will no longer be available. If you log in today, you’ll already see the banner notification: "Access to the classic admin center will end starting on September 3, 2025." That’s your friendly nudge to start preparing now. What’s New in the Power Platform Admin Center? The New Admin Center introduces: Manage  - Environments, groups, products, tenant settings Actions  - Recommendations and alerts to improve governance Monitor  - Dashboards and health insights for apps and environments Licensing  - Billing, license usage, and capacity add-ons Security  - Permissions and compliance Deployment  - Pipelines and catalogs Support  - Help and service requests New Features You Didn’t Have in the Classic Admin Center Here’s why the new Power Platform Admin Center  is more than just a UI update - it comes with brand-new capabilities. Monitor (Dashboards & Alerts):  Track operational health, download event logs, and set up custom alerts for performance issues. Deployment Management (Pipelines & Catalogs):  Manage ALM workflows and app catalogs directly in the Admin Center. Improved Search & Filtering:  Faster access to environments, apps, and settings. Modern Microsoft UI & Scalability:  Aligned with Microsoft’s design system for a consistent experience. Self-Service Data Export (Preview):  Export inventory and usage data without needing custom reports. Mapping Classic Pages to the New Admin Center If you’re wondering where things moved, here’s a quick reference: Classic Page New Admin Center Location Home Home Environments Manage > Environments Advisor (Recommendations) Actions > Recommendations Security Security Analytics (Dataverse, Power Automate) Manage > Products Billing & Licenses Licensing > Products Tenant Settings Manage > Tenant Settings Help + Support Support How to Navigate the New Power Platform Admin Center Visit admin.powerplatform.microsoft.com . By default, the new experience is ON. (The toggle back to Classic disappears after Sept 3, 2025.) Use the left-hand menu  to access: Manage, Licensing, Monitor, Security, Deployment, Copilot, and Support. Check out Monitor  for performance insights and Actions  for proactive governance tips. What You Should Do Before September 2025 ✅ Start using the new Admin Center now  - don’t wait until it’s mandatory. ✅ Update internal documentation and screenshots  - switch Classic visuals to New. ✅ Train your team  - make sure everyone knows the new navigation. ✅ Review governance and security  - align settings with the updated layout. Conclusion The end of the Classic Power Platform Admin Center  marks the beginning of a smarter, more intuitive experience. With features like Monitor dashboards, deployment management, and self-service exports , the new Admin Center isn’t just replacing Classic - it’s moving administration into the future. Ready to make the switch? Our team at PowerApps911  can help you set up, train your admins, and optimize your governance strategy in the new Admin Center. Click the button below to contact us.

  • Building a Vacation Request App in Power Apps, Approvals without Flow

    In this blog post, we're going to do a high-level overview of Shane’s Vacation Request app. By understanding why he built the app the way he did, it will help to piece everything together. If you would like a step-by-step breakdown, make sure to check out the video below: Understand The Functionality Used First off, and this is important, many of the things you will learn in the video can be applied to all different kinds of apps, which I think gets lost sometimes. So try to also watch the video from that perspective as well. Whether it be the approval process, deep-linking, the controls and galleries, or how the screens are set up. All of these techniques and functionalities can be applied to many different kinds of apps, timesheets, inspections, employee reviews, etc. You may not be building a Vacation request app, and that’s fine, but understanding how the functionality is used and how it could be reused is very important. The Breakdown In the video, Shane walks you through building a vacation request app with approvals, WITHOUT POWER AUTOMATE. He incorporates email notifications and deep-linking so users can easily find and approve/reject requests. This is very important from both a functionality and usability perspective. He also includes modern controls to give the user a simple, clean, easy-to-use design.   No Flow? No problem!  By eliminating a flow(s) from the equation, it keeps everything in one place, the canvas app. This can be important when building apps for both internal use and customer projects. If you were to go the flow route, there would then be another tool that would need to be maintained. So, keeping everything in one place, the Power App, it makes things easier to manage. Important to note:  I’m sure you have either heard of or used the out-of-the-box Approval flow in Power Automate, which isn’t a bad thing. But many times when customers come to us about creating an approval process, we like to share both approaches and let them decide which route to go with. One con of the Power Automate approvals we sometimes bring up is that they are less customizable, and sending reminders can be more difficult. Reminders are not impossible with the approval flow by any means, but can require more steps in the flow to ensure they run as expected, which also adds more complexity. Deep linking magic.  By incorporating deep-linking, which is generally highly recommended for approval-type apps, users can hop directly from the email or button straight into the exact screen they need. This is important when building apps where managers, finance, CEO’s, etc, will need to review something. You want to make it as easy as possible for them to find what they are looking for without clicking through several screens and buttons. Deep-links are embedded in the Office365SendEmail.V2 email, so you will have full control over the email subject, body, formatting, and so on. The app also includes the ability to send reminders, which is a much simpler approach in Canvas apps. Modern, stylish visuals.  By incorporating modern controls and some cool visual flair into the app, you are giving the users something they will want to use. Design and a clean interface can sometimes feel like an afterthought, but it’s actually very important for the user experience. Now you don’t need to go crazy and try to create the greatest-looking app of all time or anything. But being conscious of your users as you are building will help you to create an app that users will want to use. It’s always a good idea to ask yourself a few questions: “Would I want to use this app?” and “Could I just open the app, and understand what I am supposed to do?”. Most apps shouldn’t require extensive end-user training; they should be simple and straightforward in what users are expected to do.     In a Nutshell… Hopefully, you found this breakdown both informational and helpful. Again, the full video is linked above if you want to watch it and get the step-by-step breakdown. As always, if you have any questions or need any Power Platform assistance, just reach out to us; we're always happy to help.

  • No round() in Power Automate? Here's What to Do Instead (Plus Advanced Math via MathJS)

    If you’ve ever tried to round numbers in Power Automate, you’ve probably discovered something annoying:  there’s no built-in Power Automate rounding function. That’s right. You can’t just do: round(3.14159, 2)   …because it doesn’t exist.   But don’t worry - there are workarounds. And suppose you’re looking to go even deeper with math operations (logarithms, powers, roots, algebra). In that case, there’s a powerful solution using the open-source MathJS library included in this blog post as well.   How to Round Numbers in Power Automate Even though there's no official Power Automate  round()  function, you can still round numbers using the  formatNumber()  expression:   formatNumber(3.14159, '#0.00')   outputs  3.14 .   Need a whole number? Just drop the decimals:   formatNumber(3.14159, '#0')   outputs  3 .   This works great for formatting and even for use in simple logic conditions. But if you're doing deeper numeric operations, this approach has its limits. Want Real Math? Create a MathJS Custom Connector For anything beyond basic formatting - like:   round(2.717854, 3) → 2.718 pow(5, 6) → 15625 log(10000, 10) → 4 sqrt(4) → 2   You can even use variables/algebra like this, or use the array concept to pass multiple operations at once: Expression: [ a = 1.2 * (2 + 4.5), a / 2]   Result: [7.8, 3.9] How it Works You pass a math expression (expr) to MathJS via a custom connector. The connector handles the calculation and returns the result.   Power Automate Action Definition:     Power Automate Result: Key Features of MathJS No API key needed  Supports hundreds of math functions - full list at  functions for MathJS  Free service with: 10-second max evaluation time 10,000 requests/day Works well for loops, expressions, conditionals, and calculated values in flows Requires premium licensing   How to Create the Custom Connector You can import the custom connector using the MathJS.swagger.json file. Here's a video on how to import the file.   Once imported: Add it as a step in your Power Automate flow Use the expr field to write any valid MathJS expression Get your result directly back in the response   As always, if you have any questions or you're looking for Power Platform assistance, just reach out; we're always happy to help. Happy Building!

  • Pretty Power Apps Made Easy with Some HTML

    If you've ever felt limited by the default design options in Power Apps, you’re not alone. While the platform makes building functional apps easy, achieving truly stunning UI designs often requires creative use of advanced tools. Enter the HTML Text control . This often-overlooked feature unlocks a world of possibilities for styling and design, letting you create apps that are not just functional but visually engaging. In this post, we’ll explore three powerful HTML Text control tricks that can elevate your app designs: Glassmorphism , Dynamic Badges , and Gradient Backgrounds . Each of these techniques is easy to implement and delivers immediate visual impact, whether you’re designing an internal tool or a customer-facing app. Let’s dive in! If you want to see these concepts in action, check out our YouTube video on Use HTML Gradients and Styling to improve your Power Apps UI . Always a fun time, and of course if you need help with this or any Power Apps concept hit the Contact Us button, we are always happy to help. Glassmorphism: A Sleek, Modern Look What is Glassmorphism?  Glassmorphism is a design trend that creates a frosted-glass effect. You’ve likely seen it in modern user interfaces—semi-transparent backgrounds with a subtle blur and glow, as seen in the Severe Weather Alerts example below. Why Use It? Creates focus while maintaining context by blurring the content behind the element. Adds a polished, professional touch to your app. Makes overlays, modals, or navigation menus more engaging. How to Implement It in Power Apps   To achieve this effect, you’ll use the HTML Text control with inline CSS styling in the HTMLText property. Here’s the code ( Note:  make sure you begin and end with double quotes): "" Key Elements of the Code: background: rgba(7, 42, 200, 0.6 ): Sets the semi-transparency of the background. backdrop-filter: blur( 4px ): Applies the frosted blur effect. border-radius: 10px: Rounds the corners for a smooth, modern look. width:" & Self.Width-50 & "px; height: " & Self.Height-51 & "px:  sets the size of the to match the HTML Text control, adjusting for margins and ensuring the height is 1 pixel less to prevent a scrollbar. Pro Tip:  Use variables in PowerFX to dynamically adjust dimensions or colors based on user interactions or app state. Real-World Applications: Highlight key information with a frosted overlay. Create stylish modals or popups for alerts and confirmations. Design navigation menus that stand out without overwhelming the content. Power Apps Extreme Makeover is a live one day class that teaches all things Pretty Power Apps. Check it out here . Dynamic Badges: Highlight What Matters What Are Dynamic Badges?  Badges are small, attention-grabbing labels often used to display statuses, notifications, or other critical updates. They’re a simple but effective way to improve the usability of your app. Normally, badges with rounded edges are created using a container with a label inside. But it’s difficult to dynamically size such a badge if the label text is dynamic. Enter HTML Text. Using the method below, an HTML tag is used to create perfectly scaled dynamic badges using a single HTML Text control, reducing control count in your app and ensuring pixel-perfect scaling of your badge How to Implement It in Power Apps Here’s how you can create badges using the HTML Text control. Place the following code in the HTMLText property: "Severe Thunderstorm Warning Flood Watch" Key Elements of the Code: background-color: Defines the badge’s color, which can be dynamic based on data. padding and border-radius: Create a pill-shaped badge for a modern look. font-size: Ensures the text is legible even on smaller screens. Real-World Applications: Display task statuses like “Pending,” “In Progress,” or “Completed.” Highlight new notifications or updates. Use color-coded badges to indicate priority levels. If you enjoy learning from reading our blog posts, you will LOVE learning in on Training classes. We have Power Apps training available both on-demand and live. Classes for Power Apps, Power Automate, Power Pages, Power BI, and Copilot AI are all available. Gradient Backgrounds: Add Depth and Style What Are Gradient Backgrounds?  Gradients are smooth color transitions that can make your app visually appealing and professional. Whether used as section dividers or background elements, gradients add a touch of sophistication. Why Use Them? Breaks up monotony in the app design. Helps visually differentiate sections. Makes your app look modern and polished. How to Implement It in Power Apps To create a gradient background, use the HTML Text control with a linear-gradient style: " " Key Elements of the Code: linear-gradient(180deg, rgba(2,7,93,1) 0%, rgba(95,98,141,1) 100%): Creates a top-to-bottom gradient with two colors. width:" & Self.Width & "px; height: " & Self.Height-1 & "px: Fills the the HTML Text control, less the very bottom pixel when is necessary due to the odd behavior of the scrollbar showing up if the element exactly matches the height of the HTML Text control. Pro Tip:  Because this strategy leaves a white 1-pixel line at the bottom of the HTML Text control, set the Fill property of the HTML Text control to match the color at the bottom of the gradient (in the example, RGBA(95,98,141,1)). This will ensure a perfect background! Real-World Applications: Use gradients for section headers or banners. Highlight important data visualization areas. Add visual depth to dashboards and forms. Conclusion The HTML Text control is a powerful tool for transforming the look and feel of your Power Apps. By mastering techniques like Glassmorphism , Dynamic Badges , and Gradient Backgrounds , you can create apps that are not only functional but also visually stunning. These design tricks improve user experience, make your apps more engaging, and help you stand out as a Power Apps developer. Next Steps: Try these techniques in your own apps and see the difference they make. Explore more HTML and CSS tricks to expand your design capabilities. Watch the full video tutorial for a step-by-step guide to implementing these effects. Hit the Contact Us button to get support for this or any other Power Platform challenge you might be having.

  • Filtering SharePoint Data with oData Queries in Power Automate

    When working with SharePoint data in Power Automate, filtering your dataset efficiently is key to building optimized workflows. One of the most powerful ways to filter SharePoint data is by using oData filter queries  in the Get Items  action. This post will walk you through different examples of filtering various column types  and using logical operators  to refine your results. If you want to see all of the concepts from this blog post in action then check out the full length video where we go hand on with these and other examples of oData filtering. You can find the YouTube step-by-step video here: Filter SharePoint Data in Power Automate with oData Understanding oData Filter Queries in Power Automate oData (Open Data Protocol) is a standard query language that enables filtering and querying data efficiently from multiple data sources, including SharePoint, Dataverse, and SQL Server. When used in Power Automate, it allows you to retrieve specific records without pulling unnecessary data, improving performance and efficiency. For the examples in this post, we will be using the Power Automate Cloud Flow action "Get Items"  to filter SharePoint list data. However, it’s important to note that oData queries are widely applicable across various platforms, including Microsoft Dataverse, SQL Server, and even third-party services that support the oData standard. Learning how to construct and apply these queries will benefit you in multiple automation and data retrieval scenarios. An example of the Get Items action with an oData Filter Query for the Created by field in SharePoint Filtering Different SharePoint Column Types Each SharePoint column type has its unique characteristics and filtering them requires different approaches. Below are practical examples of how to filter single-line text, choice, lookup, number, and date columns  using oData. 1️⃣ Filtering a Single Line Text Column For a text-based column , you use the eq (equals) operator. The column name is case-sensitive and must match exactly as it appears in SharePoint. Example: Title eq 'Project X' This retrieves all SharePoint list items where the Title column is Project X . 2️⃣ Filtering a Choice Column Choice columns require the same syntax as text columns. Ensure you use single quotes around the value. Example: Department eq 'Sales' This filters all items where the Department  choice column is set to "Sales." 3️⃣ Filtering a Multi-Choice Column Multi-choice columns can contain multiple values, so filtering them requires an exact match. Example: Skills eq 'Power BI' This filters records where the Skills  column contains exactly "Power BI." For filtering multiple selections: Skills eq 'Power BI' or Skills eq 'Excel' This retrieves items where Skills  include either Power BI  or Excel. Pro Tip:  If you're unsure of a column’s internal name, check the List Settings  in SharePoint or inspect the raw JSON output from a Get Items  action. 4️⃣ Filtering a Lookup Column Lookup columns reference values from another list. The default way to filter is using the ID  of the lookup record. Example: DeptLookUp eq 3 This retrieves all records where the Department lookup field  has an ID of 3. If you prefer filtering by the title  of the lookup field: DeptLookUp/Title eq 'Marketing' This pulls items where the related department’s Title  is "Marketing." 5️⃣ Filtering by Number Values Number fields support operators such as eq, gt, lt, and le. Example: Age gt 30 This retrieves all items where the Age  column is greater than 30. To filter within a range: Age gt 30 and Age lt 50 This gets records where the age is between 31 and 49. 6️⃣ Filtering by Date Values Dates in SharePoint require a special format: YYYY-MM-DDThh:mm:ss. Example: HireDate ge '2020-01-01T00:00:00' This retrieves employees hired on or after January 1, 2020. To find records within a year: HireDate ge '2022-01-01T00:00:00' and HireDate le '2022-12-31T23:59:59' This filters records where HireDate  falls within 2022. 7️⃣ Filtering by Created By (Author) Field The "Created By" field in SharePoint is internally referred to as Author. To filter based on this field, you need to use /Email or /Title depending on whether you want to match an email or a display name. Example: Author/Email eq 'user@example.com' This retrieves all records created by user@example.com . If filtering by display name: Author/Title eq 'John Doe' This pulls items where the Created By  field matches "John Doe." Be mindful that display names are not always unique. Using Logical Operators: and, or, Parentheses oData allows for complex filtering by combining multiple conditions using and, or, and parentheses. Make sure you use them all lower case. Combining Filters with AND Department eq 'HR' and Age gt 25 This retrieves employees from the HR department who are older than 25. Combining Filters with OR Skills eq 'Power Automate' or Skills eq 'SharePoint' This retrieves records where employees have either Power Automate  or SharePoint  skills. Grouping Filters with Parentheses (Department eq 'IT' or Department eq 'Finance') and Age lt 40 This retrieves all employees from IT or Finance  departments who are younger than 40. Conclusion oData filtering in Power Automate is a powerful way to query SharePoint data efficiently. Understanding how different column types work and applying the correct operators ensures that your workflows run faster and return the most relevant data. If you need help with this, remember we have support services where someone will hop on a screenshare with you for as little as 30 minutes to help. Just hist the Contact button and let us know how we can help.

  • The Hidden Cost of Standing Still

    In today's digital landscape, standing still is not a neutral act. We often see organizations clinging to outdated tools: unsupported Access databases, untouched SharePoint workflows, or custom apps only one person understands. These systems may still “work,” but they’re slow, fragile, and prone to failure, leading to lost time, frustrated users, and growing technical debt. Microsoft’s recent announcement about the retirement of  SharePoint Alerts  is a perfect example of how the tech landscape is evolving. Microsoft is phasing out older functionality in favor of modern, secure, and integrated solutions like Power Automate and SharePoint Rules. Waiting to make these updates doesn’t just risk disruption, it can multiply costs when rushed fixes or full rebuilds become unavoidable. This article breaks down what we see every day: the real-world impact of delays, the hidden costs of standing still, and the business case for proactive modernization. You deserve to understand them. Real-World Impact: The cost of delays What starts as a “quick fix” or a decision to “wait until next quarter” can easily turn into a costly scramble when systems fail or can no longer be supported. Delays can: Undermine user trust in outdated tools that are slow, unreliable, or confusing. Increase support costs as IT teams spend more time maintaining/babysitting legacy systems instead of building new value. Limit access to new features and integrations, making it harder to innovate or respond to business needs. Create compliance and security risks when unsupported platforms fall out of alignment with modern standards. Let’s get real. These aren’t just “what ifs,” they’re the stuff of IT urban legends (except they actually happened)! Southwest Airlines faced over $1 billion in losses after its legacy systems failed to adapt during a holiday disruption. The cost of waiting goes far beyond licensing or development, it affects productivity, customer experience, and even brand reputation.   When to Modernize vs. When to Wait Ok, now that we are all on board, let’s make a plan. Not every system needs to be rebuilt today. Knowing when to modernize is critical. Spotting the right moment to modernize doesn’t require a crystal ball. Look for these telltale signs: You’re spending more time maintaining than improving. If your team is constantly fixing bugs or working around limitations, it’s time to consider a rebuild. Your tools are holding back your business. They are flip phones in a smartphone world. Legacy systems that can’t integrate with modern platforms or scale with your needs are costing you more than you think. You’re dependent on a single person to keep things running. If only one person understands how your system works, you’re one resignation away from a crisis. You’re delaying updates due to fear of disruption. The longer you hit snooze on modernization, the bigger the wake-up call when change finally comes. You’re exposed to security or compliance risks. Unsupported platforms and outdated processes can leave you vulnerable. If none of these apply, it might be okay to wait, but with a plan. Set a timeline, budget for the future, and revisit regularly. If any of these scenarios ring a bell, it’s time to sound the modernization alarm. Think “Avengers, assemble!” but with less spandex and more system upgrades. Setting your team up for success Ready to kick off your modernization adventure? Here are some steps to get you started on the right foot! Watch the full free webinar here . This one-hour session will give you tools to plan and prioritize your modernization efforts! Audit your current systems to identify outdated apps, unsupported databases, or manual processes that are slowing your team down. If this sounds daunting, tools like Microsoft’s CoE toolkit  can help with transparency! Get trained. With low-code technology, subject matter experts within your organization can be the ones helping you lead the modernization charge. Shane’s upcoming   Power Apps & Power Automate 201 course offers expert-led sessions designed to help your team build modern Power Platform solutions with confidence. Identify the cost of modernization. Collaborate with technology experts who have experience developing similar solutions; external guidance can be highly valuable. Your partners can assist you in forecasting timelines and costs, enabling the establishment of realistic expectations. Of course, this is where we tell you to contact us . Don’t wait for a system failure or forced retirement; start planning your modernization strategy today.

  • Triaging Incident Reports with Power Platform and Copilot Studio

    Incident reporting is super important for organizations. But how do we keep a simple paper cut from elevating all the way to the CEO? In a recent video, Shane Young introduces how you can use the analytical power of Copilot to analyze your data, including the initial report, witness statements and even incident images, to properly route your report. Does that sound appealing? In this post, we’ll break it all down, showing you how Power Apps , Power Automate , and Copilot Studio can work together to enhance incident management through effective Copilot Studio incident triage. This integration allows for the transformation of raw field data into actionable insights. Though Shane used Dataverse in this example, because it was easier to include in a solution, you can use this technique with any other data source, such as SharePoint or SQL. Step 1: Report the Incident (Power Apps Canvas App) The first piece of the puzzle is a mobile-friendly Power Apps canvas app. Built with field users in mind, the app helps users submit the important data for the initial report including: Incident location Date and severity Category and description Witness statements Photos of the incident Step 1: Report the incident Step 2: Triggering the Flow (Power Automate) Once an incident is submitted, Power Automate jump starts the process. A cloud flow watches a table (in this case Dataverse) and fires every time a new incident record is added. That flow sends the incident data to an Agent built with Copilot Studio , and it tells the agent to get to work. Step 2: Triggering the Flow Step 3: Let the Agent Think (Copilot Studio) What really takes this process to the next level is incorporating a Copilot agent to do some high-level analysis of the data. The agent accesses all the report data from the initial incident report, witness statements, and incident photos. Then it determines if the incident is truly low , medium , or high  severity. Here’s what it does: Pulls the incident report details Retrieves witness statements Gets the photo and uses AI Builder to describe what’s in it Uses a SharePoint-hosted knowledge document to evaluate the severity Saves the AI-generated photo description to Dataverse Sends a summary email and updates the incident record. Step 3: The Copilot agent takes over   Extracting Insights from Photos One highlight Shane makes in this process is how the agent calls another Power Automate flow to analyze the photo. This uses AI Builder’s Image Classification with Prompt action to describe the image and assess urgency. Shane builds this by adding an Agent flow  (Tool) to his agent. The cool thing about this is that it is just like a Power Automate Flow. Shane reminds us how easy this is, and that if you can do flows in Power Automate, you can build capability like this into your Copilot agent! Agent flow calls AI Builder You can then edit instructions for the Image Classification tool by selecting Edit  button under the Prompt, and then simply add natural language instructions for the AI Builder flow action. Using this technique, you can modify how AI Builder handles your image description. Edit the Instructions to AI Builder action Final Output: A Reasoned Response, Not Just a Reaction Instead of blindly escalating reports based on user judgment, this system adds real intelligence to the process. It: Reduces false alarms Stores meaningful, AI-enhanced data for review Empowers business users to evolve incident evaluation rules The image below is an example email that the flow generates. Notice Shane’s description at the top compared with Copilot’s analysis of the witness statements and photos leading to the Action Taken  conclusion. Final Output Build This Copilot Studio Incident Triage Yourself Check out Shane's videos below: Build the Power App Build the Autonomous Agent Consulting, Training, and More If you want help implementing a solution like this in your own organization, or you want to train your team on Power Apps, Power Automate, AI Builder, or Copilot Studio, then reach out to us here at PowerApps911 . We offer consulting as well as live (including in-person) and on-demand online classes to get you there faster. We can also build your entire solution from the ground up! Questions or Ideas? Got thoughts on how this system could go further? Something you'd want to try with your team? Drop your questions or requests on the YouTube video . We strive to make content that appeals to you, so please let us know!

bottom of page