
Search Content
170 results found with an empty search
- 2024 Power Platform Functionality Highlights
As we wrap up the year, we know everyone is already in holiday mode, so instead of diving into complex new stuff, we’re taking a moment to reflect on the exciting functionality updates across the Power Platform in 2024. This year has been filled with innovation that continues to empower makers and users alike. Let’s dive into the highlights, broken down by product, to give you a quick recap before the new year. Power Apps The Power Apps Studio saw updates this year with the addition of Copilot , new Modern controls , and an updated interface for makers : Copilot: Made the formula bar more intuitive, automatically suggesting formula inputs as you type. You can even add remarks to your formula code, and Copilot will interpret these as coding suggestions. Modern Controls: Many modern controls are now production-ready, offering robust theming and customization options. These sleek controls, like combo boxes, date pickers, and the new data table (still in preview), make creating polished apps easier than ever. Enhanced Interface: The updated interface introduced hover menus for controls like galleries and combo boxes, providing quick access to settings without extra clicks. Tree view icons now better represent control types, while the Data and Media panels simplify resource management with smart removal buttons for unused assets. Power Automate Power Automate delivered notable updates in 2024, focusing on usability and integration: Modern Designer: Bugs have been ironed out, and Copilot now provides intuitive suggestions while designing and testing flows. Power Automate Desktop: Seamless integration between desktop and cloud flows is now possible, with Power FX support for desktop flows and improved functionality for the recorder tool. Tweaking automations has never been easier. Copilot for Automations: Copilot has improved significantly, turning natural language into functional automations. If you haven’t used it yet, now is the time to explore this game-changing feature. Power Pages 2024 Power Pages updates focus on enhancing the way makers create and connect their web experiences: Copilot for Pages and Forms: Easily create pages and forms using Copilot, which leverages natural language and the summarization API for actionable insights. Add insights to your lists and forms with Copilot integration with the summarization API. Improved Data Connectivity: A new setup wizard simplifies the creation of virtual tables in Dataverse and linking to external data sources, making integrations more accessible than ever. Power Fx Integration: While still in preview, Power Fx began rolling out in Power Pages, giving makers more flexibility to customize logic directly within their sites. Enhanced Data Model: All new sites now include an enhanced data model by default, setting a strong foundation for scalable and efficient data management. Power BI Power BI delivered some powerful updates in 2024, focused on enhancing collaboration, visual storytelling, and data-driven decision-making: Copilot Integration: Introduced natural language queries, AI-generated report summaries, and automated data cleaning to streamline workflows and enhance usability. DAX Enhancements: Released the general availability of DAX Query View, support for live connections, and new INFO functions for improved metadata insights. Feature Updates: Added visual calculations, dynamic format strings for measures, and enhancements to card and slicer visuals, offering greater flexibility and interactivity in reporting. Improved User Experience: Features like Dark Mode, advanced geospatial mapping with the Path Layer, and small multiples in card visuals further enhanced Power BI's analytical capabilities and ease of use. Shane releases new videos on his YouTube Channel , and those videos, plus exclusive extras (app downloads, code snippets), are available ad-free on our training site for just $15 per month (you can include office hours for $20 per month)!
- E-Signatures with docusign and Power Platform
Seriously, does anyone enjoy getting a document, printing it out, signing it with a pen, scanning, and then sending it back to the requestor? Anyone??? I didn't think so. Thankfully the ability to esign documents is pretty common these days and accepted in most scenarios. So today let's look at an end to end scenario using Power Apps, Power Automate, and docusign. And don't worry, while this is a getting started scenario we are going to do way more than hello world. We are going to: - Build a Power Apps app that creates a PDF dynamically from our data - Add Signature blocks to the PDF with some HTML fun - Send the HTML to Power Automate to generate the PDF - Then use docusign actions to create an envelope and send it for signature - Once the document is signed have another flow upload it to SharePoint Now the blog post isn't going to be the 100 pages long it needs to be to teach you all of this. Below we have some more details but if you want to learn how to build all of this then you will need to check out my YouTube video: Docusign for Power Apps and Power Automate Power Apps to filter your data and create HTML While giving you a PDF and saying here look Mom we got it signed would have been easy, that isn't real. The whole magic of Power Apps is you can build what you want. You could build your app to filter out invoices, generate a SOW, PO, or a contract for signature, or maybe to send internal HR documents that need a signature. By using the App you can build a nice interface to generate the unique content you need to send for signature. In the video we show filtering employee data but it doesn't matter, all that matters is you get well formed HTML with signature blocks hidden in it. Power Automate to create a PDF The process of creating the PDF is the same as always with Power Automate. Create an HTML file in OneDrive for Business, convert that to PDF with the built in action, and then save the new PDF file. The good news is you don't have to change any of that when using docusign. When you generate the HTML in Power Apps you add HTML tags like below: Name: \\n1\\\\ Date: \\d1\\\\ Signature: \\s1\\\\ These tags will be replaced with docusign parts in the later actions. docusign Actions In docusign now you are going to use a lot of actions. To make the process as flexible as possible they have every step in its own action. So you will need to create an envelope, add recipients, add tabs, and finally send the envelope. No one step is hard, you just need to work through them logically and make sure you get everything you want. For example, in my HTML above I showed 3 blocks I wanted: Name, Date, and Signature. So I need to add three tabs for a recipient on an envelope. I am sure yours will be different. Saving the Signed Document Back to SharePoint Alright, they have signed your PDF now you probably want to capture that file. In my case I wanted to put it in SharePoint. Turns out that is a pretty simple flow since there is a Power Automate cloud flow trigger for When an envelope status changes. Then you just get the document and save it to SharePoint. Boom! Practical Applications Think about HR departments needing approvals for hiring, project managers needing sign-offs for deliverables, or finance teams requiring authorization on budget documents. This kind of automated approval workflow can drastically reduce administrative load, eliminate bottlenecks, and keep projects moving forward smoothly. For example, in the scenario from the video, the system was used to collect managerial sign-off on employee lists filtered by department. The Power App allows users to dynamically adjust which data they want approved, and the entire process—from document creation to manager signature—is completed in a fully digital space, with every step tracked automatically. Closing Thoughts The combination of Power Apps, Power Automate, and DocuSign provides a powerful toolkit for businesses looking to streamline approval workflows. Not only does it save time, but it also provides the reliability and traceability that manual processes often lack. By reducing the need for human touchpoints, it minimizes the chances for errors and keeps everything moving smoothly—something every organization can benefit from. If you're interested in setting up something similar for your team, consider starting with a simple process that you can automate end-to-end. With tools like these, small changes can lead to big improvements in productivity and employee satisfaction. And of course, if you need help with this or anything Power related hit the Contact Us button. We have options from a 30 minute call to help you get unstuck to a 30-month project to help you automate EVERYTHING. Just let us know how we can help.
- Breaking Free from Gallery.Selected: Better Control in Power Apps with Variables
Are you tired of being stuck with the limitations of Gallery.Selected in your apps? Do you like having control of your app? Tired of confusing sequence for you users? Then take back control by switching to variables instead of Gallery.Selected. In this guide, we’ll dive into how to shift from using Gallery.Selected to a variable-based approach for better control, smoother navigation, and an overall improved user experience in Power Apps. We’ll go step-by-step on how you can introduce a single variable to manage record selections, handle new records more intuitively, and add more customization to your app—all while making your code cleaner and more efficient. And if you are more into seeing is believing then check out my 12-minute YouTube video Don't use PowerApps Gallery Selected Item Why Ditch Gallery.Selected? Using Gallery.Selected feels like a no-brainer when you first start building with Power Apps. It’s straightforward and provides an easy way to reference the record that a user clicks on. But… it’s not without its limitations: Lack of control: Once a user selects a record, Power Apps doesn’t let you control the next steps as much as you might like. This can lead to unintended highlights and inconsistencies, especially when users create or cancel new records. Inconsistent behavior: When a new record is created, the gallery often still highlights the previously selected item. Awkward, right? Limitations in multi-screen apps: Using Gallery.Selected across screens becomes tricky and isn’t as intuitive for users or developers. These limitations make a compelling case for switching to a variable-based approach, where we can leverage context and global variables to create a more reliable, user-friendly experience. Step 1: Setting Up Your Variable First things first, let’s create a variable to replace Gallery.Selected. You’ll use this variable to store the record information whenever a user clicks on an item in the gallery. Go to the gallery’s OnSelect property and add the following line of code to create a new variable (we’ll call it varRecord for simplicity): Set(varRecord, ThisItem) Now, instead of relying on Gallery.Selected, set your form’s Item property to varRecord. This will allow the form to reflect the selected record without directly depending on the gallery's selection. Step 2: Updating the Visual Cues Let’s add a few visual tweaks to make the selection experience smoother and more intuitive for users. This part is all about using varRecord to highlight the selected record, without those pesky issues tied to Gallery.Selected. Go to your gallery’s TemplateFill property and replace any reference to ThisItem.IsSelected with a condition that highlights based on varRecord . Here’s a quick example using the ID of each record: If(ThisItem.ID = VARrecord.ID, Color.LightBlue, Color.Transparent) Update any other properties that rely on ThisItem.IsSelected, like font weight or colors, using varRecord instead. Remember in the example above ID is the primary key column from the SharePoint list. If you are using another data source then you might not have ID as a column. Dataverse, for example, uses a unique identifier column that is named similar to the table name. The key is you need to find the primary column. Step 3: Customizing the New and Cancel Buttons Now that we’ve removed Gallery.Selected from the picture, let’s get our new and cancel record actions working flawlessly. For New Records: When a user clicks the “New” button, update varRecord to a blank value. This way, your gallery won’t highlight a record while the new form is open. Set(varRecord, Blank());NewForm(Form1) You may also want to repeat this step on the Cancel button. Or other places in your app you wish to clear the selected item. This approach ensures that your gallery and forms remain synchronized with each other, providing users with a seamless experience. Step 4: Setting Default Records (Optional) Want your app to open with a specific record highlighted? You can set varRecord to a default record (like “Greg” or “Chewy”) when the app starts. This is perfect if you want a particular item to show up as the default view when users first open the app. Steps: In your app’s OnStart property, add: Set(varRecord , LookUp(YourDataSource, ID = 1)) // Replace ID = 1 with your desired default Now, your app opens with the specific record highlighted automatically. No more blank first screens! In the video, you will see additional functionality, like adding a custom label that appears when the variable is blank and the form isn't in new mode like shown below. Now that you have complete control of when something is or isn't "selected" you can build whatever custom experience you would like. Benefits of Using a Variable Switching to a variable-based approach isn’t just a workaround—it’s an upgrade! Here are a few benefits: Better control : Gain more control over your gallery’s behavior, ensuring that records are only highlighted when and where you want them. More intuitive navigation : New and canceled records are handled seamlessly, without confusing the user with leftover highlights. Cleaner code : Using a single variable simplifies the app’s logic, making your code easier to read and maintain. Final Thoughts So there you have it! Ditching Gallery.Selected and embracing variables can give you and your users a smoother, more reliable experience in PowerApps. And, of course, it’ll make your app code cleaner, giving you less to troubleshoot when things go sideways. If you’re looking for even more PowerApps tips and tricks, we’re constantly adding new tutorials and updates. And if you’re curious about more ways to enhance your PowerApps skills, check out our training sessions. We offer everything from 30 minutes of mentoring to 30 years of project building, just hit the contact button and let us know what you need.
- AI & Me: Nicola's Honest Journey from Skepticism to Excitement
Nicola here, CEO at PowerApps911, sharing my honest thoughts on AI – I'm both thrilled and a little terrified. If you're leading an organization, a department, a team, or working in product development, you've likely been thinking about AI and its potential to boost productivity or enhance your product/service. I know I have. Initially, I felt like many of you – a bit hesitant but happy to use ChatGPT for things like content improvements, brainstorming games for team meetings, or drafting PTO flyers for school. This was easy to jump into since I spend around 14 hours a day with Shane, who brings up something AI-related at least once an hour 😊. I loved the productivity boost, especially since ChatGPT helped in areas that aren’t my strong suit, but I still didn’t quite grasp the game-changing potential. Then, the team working on our AI services asked us to brainstorm problems and inefficiencies in our organization that we’d love to solve. I was hesitant at first, still unclear on AI’s unique capabilities. I even asked, “How is this different from the solutions we already build with the Power Platform?” Their answer? AI doesn’t just follow instructions – it can interpret data and provide insights. Unlike standard automation, AI can think critically about the data it processes and give meaningful answers. And then… the wheels really started turning. I began thinking about areas of our business I’d love to make more efficient to better serve our clients and create a better work environment for our team. Some ideas were: Creating a solution to simplify time entry. We’re a time and materials-based consulting company, and as much as we might wish to avoid timesheets, they’re essential. Making that process easier for our team would be fantastic! We have a lot of meetings; maybe AI could look at calendars and suggest (or even prepopulate!) time entries based on meeting data. It could analyze historical patterns and recommend or prepopulate entries, streamlining the whole process. Improving the resource shuffle. If you manage resources like we do, you know the challenges of adjusting as projects delay, new projects arise, or skill needs change. We have a solid resource management tool and a team of skilled project managers juggling resources constantly. But what if AI could make it just a bit easier? Imagine AI recommending resource shifts that optimize skills and availability or suggesting allocations based on our project pipeline. Before this brainstorming, we were working on an internal project to make it easier to identify completed projects similar to new opportunities. In many organizations, this information is stuck in people’s heads. Someone asks, “Have you ever done a project that uses XYZ?” and we rely on team memory, sometimes asking everyone to find an answer. We tried solving this by tagging documents with skill and technology information and short project descriptions, but with a backlog of projects dating back to 2018, it was slow going. Then Daniel LeMay, one of our AI experts, stepped in and suggested AI could solve it faster and better. Now, he’s working on a solution to analyze all our past project content and automatically tag new ones as they’re completed. These are just a few examples. Once I fully grasped the possibilities, I quickly came up with ten ideas. If you're like me and need a quick discussion with someone to understand AI and its potential, contact us . We’re excited about what AI can do, and we’d love to brainstorm with you. If you decide to move forward with AI, we offer AI Services and Training – we can build for you or teach you to build. We’re here to be the partner you need.
- Power Pages: A Simple and Secure Way to Build Web Pages
Interest in Power Pages as a solution has become one of the fastest growing requests from our clients. And it is pretty easy to see why. Need a student registration website? An ordering portal for your vendors? A scheduling tool for subcontractors? Power Pages offers a secure solution for external users and connects seamlessly to your Dataverse environment. If you have processes that involve people outside of your company and right now rely on manual processes (email!), then consider Power Pages. Yes, there are licensing costs, but we ran some ROI numbers for our own org and building a Power Pages solution will ultimately save us time and money! But how low code is it? Power Platform is working to make application development accessible to people with little to no coding experience, and Power Pages is no exception. However, it is not quite as low code as some of its companion tools. As the child of Dynamics 365 Portals, Power Pages is built on Dataverse and is essentially a model-driven app on the back end. In its current form, you can only achieve so much with out of the box functionality and will need HTML, CSS, JavaScript and/or Liquid to go further. Currently, organizations can make very basic pages using low-code and need to leverage full dev to create more sophisticated interfaces. The Microsoft team is working to include more and more Power FX to Pages , which is great news, but it is still in the early stages. You can build for two different types of users: Authenticated or Anonymous Building for Authenticated Users Power Pages Authenticated users are users who obtain secure access to your website by logging in through an authentication provider website. More simply put, authenticated users are logged in to your website. Before you decide to start building for authenticated users, understand how you want each type of user to use the site. We call this, user roles. User roles help define what each type of user can access, view, and modify within the website. By establishing clear roles, you can tailor content and features to specific user needs, ensuring that sensitive information is only available to authorized users. When planning a Pages project, map out who will use your solution, and the different functions they will perform. Identify what tables in Dataverse they will have access to and make a plan to configure and test each users access role as you develop. Keep in mind that security in Dataverse is not relevant to Power Pages. It has its own thing which operates on the account and contact tables. By carefully planning user roles and enforcing security measures, organizations can create robust, secure websites that serve your audience’s needs without compromising on safety or compliance. Anonymous Users and Power Pages If you have no need to restrict the content to only certain users, then building for Anonymous users might be the right way to go. Anonymous access does not require users to log in. In these cases, your user role planning is focused on one user type- everyone. Even though user roles for anonymous users may seem simple, it is important to carefully plan and control what information is accessible. While sharing event details and documents is straightforward, it’s essential to ensure that sensitive data or internal resources are restricted and properly secured. Defining clear boundaries for anonymous users helps maintain the integrity of your organization’s information while still providing a user-friendly experience. Ready to build? Join our live three day workshop , November 12-14 (only $650!!), which will give you all the tools you need to get started with Power Pages. If you are still not sure, check out these videos or just reply to this email and ask us a question. Intro to Power Pages ( youtube.com ) How to Configure Power Pages for Item Redirection ( youtube.com )
- Export to CSV from Power Apps: A Complete Guide
I feel like just about every commercial app out there has the concept of Export to CSV. Turns out people like to grab their data and open it up in Excel. 🤷 Who Knew. So today, let's walk through how easy it is to add Export to CSV into your Power Apps. Basically, we select some table data, encode it in JSON, and then ship it off to Power Automate which has built in actions to make it super easy. Once the data is in Power Automate you can create a file an then save the file off to SharePoint, OneDrive, send it via an email attachment or basically anything else you can dream of. That is the beauty of flow, once you have the CSV file you can do anything you want. And speaking of Selecting items in a Gallery, we even cover how to Select All and Deselect All in the video version of this. Video: Power Apps Export to CSV with Power Automate Pro Tip: This tutorial assumes you’ve already got your Power App setup and you’re just focusing on the exporting bit. We’re skipping the app creation part today and heading straight into the exciting stuff: generating a JSON, converting it into CSV, and getting it where it needs to go. Check out the video above if you want to see the app creation and item selection. Creating the JSON from Power Apps First things first, we need to get our data into a JSON format. Power Apps can output data in various forms, but for exporting, JSON is the golden ticket. Step 1: Using the JSON Function In Power Apps, the JSON() function is your new best friend. This function allows you to take any table of data (like the items in your app) and convert it into JSON format. That’s the format Power Automate loves to work with. Here's how to create a JSON variable in Power Apps: UpdateContext({varJSON: JSON(yourTable, JSONFormat.IndentFour)}) This will take your data and turn it into a JSON string, which we’ll use in the next step to create our CSV. Now depending on your table, the previous step might be way more complicated. There JSON function doesn't work against controls or some advanced data types. In the video, we go through all of that but below you can see an example of just how complicated things can get. That is intense, and why the video is a bit longer but that is a good insight of what this looks like in the real world. Parsing JSON in Power Automate Next, it’s time to head into Power Automate. This is where the magic of converting our JSON data into a CSV file happens. Step 2: Parsing the JSON Inside your Power Automate flow, the first step after receiving the JSON from Power Apps is to parse it. This basically tells Power Automate what data you’re working with and how it’s structured. Add the Parse JSON action to your flow. Under "Content," insert the JSON data coming from Power Apps. Generate a schema by clicking "Generate from sample" and paste the sample JSON you want to parse. Boom! 🎉 Now Power Automate understands what’s inside your JSON file, and you can start working with that data. Converting JSON to CSV Now that Power Automate knows what your data looks like, let’s convert it into CSV format. Step 3: Create CSV Table Action We’ll use the Create CSV Table action in Power Automate to handle this. Here’s how: Add the Create CSV Table action. Choose your parsed JSON output as the input for this action. If you want to customize the columns, select Custom under "Columns" and specify the fields you want in your CSV (like Order Date, Total Amount, etc.). This action will generate a perfectly formatted CSV file with all your data. Now in the screenshot you can see some Expressions. Reminder, while you will bring over some raw data from Power Apps you can still fix it up. Order Date I updated to make a nicer looking format and Total Amount I set to look like currency. Once again, all of the gory details are covered in the video. Sending Your CSV File via Email With your CSV file ready to go, you can do just about anything with it. In this example, we’re going to email the file as an attachment. Step 4: Sending the CSV as an Attachment Add the Send an Email (V2) action to your flow. Then, use the following settings: To: Your desired recipient (or just yourself to test it out!). Subject: Something like, “Here’s your CSV export!” Body: You can keep this simple for now, like “Check out the attached CSV file.” Attachment Name: Export.csv (or whatever you want to call it). Attachment Content: Use the output from the Create CSV Table action here. Hit "Save," test it out, and if all goes well, you’ll receive an email with your brand-new CSV file attached. Bonus: Embedding Data as HTML Table (Optional) If you want to get even fancier, instead of attaching the CSV file, you can embed the data directly in your email as an HTML table. To do this: Add the Create HTML Table action (instead of CSV). Use the same parsed JSON as the input. In your Send an Email action, insert the HTML table output into the body of the email. Now, instead of a file attachment, your recipients will see a nicely formatted table right in their inbox! 📬 Wrap Up And that’s it! 🎉 You've just learned how to export data to CSV from Power Apps using Power Automate. With this knowledge, you can take your data anywhere it needs to go—whether that’s an inbox, cloud storage, or even SharePoint. Exporting CSVs from Power Apps is a super practical feature, especially if you're working with large datasets or need to automate data sharing across different teams. So go ahead, give it a try, and make your life a whole lot easier! If you need help with this or any apps or flows, just click the Contact button and we are happy to help. We have services that range from 30-minute screen shares to full scale project development.
- AddColumns in Power Apps: A Comprehensive Guide for Data Shaping with Power FX
As Power Apps developers, we frequently encounter situations where we need to manipulate and reshape data dynamically to meet specific app requirements. One powerful tool for this task is the AddColumns function. Whether you're working with SharePoint, Dataverse, or SQL data sources, understanding how to use AddColumns effectively can make your app development process smoother and more efficient. Why do we need tools like AddColumns? There are lots of reasons but the most common two are: One, we don't own the data source. Meaning we can't change the columns or what is avaialable we have to "make due" with what they provide. So adding our own to facilate functionality is a must. Two, we want to do something advanced. Creating a dynamic list of the next 10 Mondays in a dropdown, building an editable grid, or some other complex scenario where you need to be nimble. AddColumns lets you do all of this and more. In this post, we’ll explore practical use cases of the AddColumns function, along with other helpful data manipulation tips. So, grab your Power Apps toolkit, and let’s dive in! BTW - If all of this reading isn't your jam and you prefer video, I have got your covered AddColumns in Power Apps . We do all of this and then some. Handling Delegation and Performance Before you dive into the functions, one of the critical things to understand when using AddColumns or any of the data shaping formulas is delegation. Delegation refers to how much data Power Apps can handle and process on the backend server rather than on the client device. Some functions in Power Apps, including AddColumns, are non-delegable , which means that they can only work on the first 500 (or another limit set by your environment) records of your data. If you're working with large datasets, you must be cautious when applying AddColumns, as it might not return all rows, only the ones within the delegation limit. To prevent this, be mindful of where and how you use the function. To better understand delegation, check out our comprehensive guide on Power Apps delegation . Common things to keep in mind All of these functions are used to generate a table with a new shape. As you will see in the examples you can change a data source table or a table you generate. This generated table doesn't affect the table that is being shaped, meaning if you use AddColumns on a SharePoint list it isn't changing the SharePoint list. These functions are most often used in the Items property of a gallery or dropdown. Or if you need it more available then you can capture the output in a collection. What Is AddColumns and Why Should You Use It? At its core, AddColumns allows you to create a new column in your existing table, based on a calculation or formula, without altering your original data source. This is crucial because in many cases, you’re not allowed (or don’t want) to modify your backend data, especially if you’re dealing with a complex or restricted system like SharePoint or SQL. For instance, imagine you have an employees list in SharePoint with separate columns for First Name and Last Name , but you want to display a Full Name in your app. Instead of modifying the data source to combine these fields, AddColumns allows you to do this directly in Power Apps. Example 1: Creating a Full Name Column Let’s start with a basic example. You want to display the full name of an employee in your Power App. Here’s the formula: AddColumns(Employees, FullName, FirstName & " " & LastName) With this simple line, we’ve created a new column, Full Name , that combines the first and last names without touching the data in the original SharePoint list. Example 2: Sorting by Complex Columns Sorting data in Power Apps is generally straightforward until you deal with complex columns , such as Choice fields. Let’s say you have a Favorite Color choice column in your SharePoint list, and you want to sort your employees by their favorite colors. Sorting a complex column directly might throw errors. Here’s where AddColumns comes to the rescue: AddColumns(Employees, FavoriteColorValue, FavoriteColor.Value) Now that you’ve created a new text column for FavoriteColorValue , you can sort by it without issue: SortByColumns(AddColumns(Employees, FavoriteColorValue, FavoriteColor.Value),"FavoriteColorValue") Example 3: Grouping Data and Using AddColumns for Summarization Another exciting use case for AddColumns is when you need to group your data or calculate summaries. For example, you may have a list of sales transactions, and you want to group the data by department while calculating the total sales for each. Using AddColumns along with GroupBy and Sum functions, you can achieve this seamlessly: AddColumns( GroupBy(Sales, "Department", "GroupedSales"), TotalSales, Sum(GroupedSales, SalesAmount)) This formula adds a new column, TotalSales , to your grouped data, summarizing the sales amount for each department. Note: The screenshot has HourlyWage in place of SalesAmount. My demo data didn't line up exactly with the point I wanted to make. Example 4: Creating Dynamic Date Ranges Using AddColumns Here’s a quick trick for generating dynamic date ranges. Say you want to create a drop-down list of the next 10 same day of the week, starting from today. AddColumns works perfectly with Sequence , a function that generates a sequence of numbers that we can turn into dates. AddColumns( Sequence(10, 0, 7), SameDay, DateAdd(Today(), Value, TimeUnit.Days)) RenameColumns: Adjusting Column Names for Consistency When working with external data sources or collaborating with multiple teams, you may find that column names are not always consistent or easy to work with. That’s where RenameColumns comes in handy. This function allows you to rename one or more columns in your dataset without altering the actual data source. For example, if you’re working with a dataset that uses the column named Department but prefer to display it as Dept in your app, you can quickly rename it using this function: RenameColumns(Employees, Department, Dept) This simple rename action can make your app easier to maintain, especially when aligning with standardized naming conventions across your organization. DropColumns: Clean Up Unnecessary Data Sometimes, you’re working with a dataset that contains more information than you need. Excess data can slow down your app and make your formulas more difficult to manage. That’s where DropColumns can help. This function allows you to remove unwanted columns from a table without affecting the data source. For example, let’s say you have an employees table with a Photo column, but the photo is not needed for a particular view in your app. You can drop that column like this: DropColumns(Employees, Photo) By using DropColumns, you streamline your app's performance and ensure that only relevant data is downloaded to your app. ShowColumns: Focus Only on What’s Needed While DropColumns removes certain columns from a table, ShowColumns works in the opposite direction: it helps you specify exactly which columns you want to have available. This can be particularly useful when you’re dealing with large datasets but only need a few specific pieces of information. For example, if you only want to display an employee’s First Name , Last Name , and Department , you can use ShowColumns to limit the data returned: ShowColumns(Employees, FirstName, LastName, Department) By focusing only on the necessary data, you enhance both performance and readability in your app, ensuring that users see exactly what they need—nothing more, nothing less. Wrapping Up The AddColumns function is an essential tool for shaping and manipulating data on the fly in Power Apps, allowing you to do some really cool stuff. But don't forget about the functions friends. ShowColumns, DropColumns, and RenameColumns all have their magic moment where they are the perfect answer. And the more Power FX you know, the better. If you need help with this, or anything Power Platform related Click the Contact Us button at the top of the page and we would be happy to help.
- Archive SharePoint List Items with Power Automate
Do you use SharePoint as a data source? I bet you do. 🤩 If you do then let's talk about the importance of keeping those list sizes as small as possible and how you can use Power Automate cloud flows to help archive off those unnecessary items. Why Archive SharePoint List Items? Archiving isn't just about tidying up; it's about optimizing your app's performance and enhancing the user experience. 1. Overcoming Power Apps Delegation Limits If you've worked with Power Apps and SharePoint, you've likely encountered delegation limits. By default, Power Apps functions like Search can only work with the first 500 records of your data source (though you can bump this up to 2,000). This means those operations are limited to just those records, leaving the rest of your data untouched. Why is this a problem? Because if your SharePoint list has more than 2,000 items (and let's be honest, they grow faster than weeds), your app can have challenges with data beyond that limit. This can lead to incomplete data views and frustrated users. 2. Boosting App Performance Large datasets can slow down your app. Each time your app loads, it pulls data from your SharePoint list. The more data it has to fetch, the longer it takes. By archiving old or unnecessary items, you reduce the load on your app, making it snappier and more responsive. The way I have always explained this is for every 1,000 more items in your SharePoint list you can feel a slowdown in overall app performance. Purely a Shane made up stat but, that is what it feels like to me. So shrink them lists! 3. Enhancing User Experience Nobody likes sifting through thousands of records to find what they need. A cluttered app can overwhelm users and decrease productivity. Archiving helps keep your app clean and user-friendly. Seriously, I get questions about why can't I have 1000's of items in my dropdown? WHY! Because for starters what users wants to scroll through that much data? Find a way to only show them what they actually need. 4. Compliance and Data Retention Archiving isn't just about performance; it's also about compliance. Many industries have regulations around data retention. Archiving ensures you're keeping necessary records without cluttering your active workspace. So many compliance rules here, I will not even try to list them. But make sure if you are storing data, you are following the rules. Not only for how long you might need to keep it but also who can see it. How to Archive SharePoint List Items Using Power Automate Alright, now that we've covered the "why," let's get into the "how." We'll use Power Automate to create a flow that automatically moves items from your main SharePoint list to an archive list based on criteria you set. Why Power Automate for archiving? The best answer is because it is included. The same license that is letting you build those Power Apps on top of SharePoint lets you use Power Automate cloud flows. So, building a flow to archive your SharePoint lists items is not only easy but it is also "free". If you want step-by-step for building a flow to archive SharePoint list items then click the link to the video. Now building the flow can be easy or it can be hard. That really depends on your level of comfort with Power Automate and the type of SharePoint columns you are using. Most of your common SharePoint columns are easy and just plug and play. Your flow gets the item to be archived and then has a step to create a new item with that dynamic content. You play connect the dots and boom. You can also delete the item if you want. Now for columns like multiple choice they throw a bit of a curve ball. For those you have to use the Select action to get the exact data out and then insert that output into the field. Attachment Column And then finally you have the hardest of the hard, attachment column. It requires a lot of moving parts and multiple actions. I am not even going to try to explain it, if you need to do attachments you will have to watch the video . And then just make sure you go slowly, easy to get confused. Wrapping It Up There you have it! By archiving your SharePoint list items using a Power Automate cloud flow, you're not just cleaning house—you're optimizing your app's performance, enhancing user experience, and sidestepping those annoying delegation limits. So go ahead, give your app (and your users) the boost they deserve! Need a hand setting this up? We're here to help! Click the Contact us button. We can help you with this or any of your Power Platform challenges. We offer 30 minutes Teams calls all the way to full on project consulting.
- Getting Started with Dataverse: A SharePoint User's Guide
Let's be honest, Dataverse is the best data source for Power Apps. It has the best performance, most features, and the most delegable functions. But you started with SharePoint, like 99% of everyone else, because it was easy, and you had the license. No problem, I also started with SharePoint. 😎 But there comes a time you want to do more and Dataverse is usually the answer to doing more. So, let's learn how to get started with Dataverse. And to make it as easy as possible, I am going to explain things in SharePoint terms as much as possible. Leverage all of that knowledge you already have. Also, if you prefer to see things in motion then here is the video Getting Started with Dataverse . What is Dataverse? In simple terms, Dataverse is the underlying data platform for Power Apps , Power Automate , Copilot Studio , and the rest of the Power Platform . If you are looking to build your apps and solutions on the best platform, look no further, Dataverse is the answer. Not that it really matters but, under the hood, both Dataverse and SharePoint are built on top of SQL Server . With the biggest benefit of both is Microsoft worries about all of that database tuning and performance, you just use it. 😎 So what are some of the key components of Dataverse? Dataverse vs. SharePoint: Key Differences If you're a SharePoint user, think of Dataverse tables like SharePoint lists . However, Dataverse offers a more robust and scalable solution. Some of the key differences include: - Environments in Dataverse act like SharePoint site collections , isolating data, apps, and security settings. - Dataverse and SharePoint both support relationship management and complex data types , which allows for more sophisticated app development. Both have things like Lookup and Choice columns to help you build a solid data model and use similar terminology in most cases. - Dataverse’s performance and scalability far exceed what SharePoint can offer, making it the go-to option for apps with extensive data requirements. This is because SharePoint is a collaboration portal that we sometimes use as a database. Dataverse is built from the ground up to be a storage system for the Power Platform. Dataverse Tables Let’s jump into the practical side of things! One of the first things you'll do in Dataverse is create custom tables . This is very similar to creating a custom list in SharePoint. One of the biggest differences you may notice is there isn't different types. In SharePoint there are countless templates to start: Dataverse will always be the equivalent of choosing Blank list in SharePoint. Now to be fair, Dataverse is doing a lot to integrate Copilot so you can use words to create your first table or create a table from an existing data source like SharePoint, so you don't always have to start from blank but that is for another day. 😎 Different Column Types Dataverse and SharePoint have a lot of the same column types, not surprising, who doesn't need to store text or numbers? Below let's call out some key ones and talk about any differences you should know. Single Line of Text : Ideal for storing names, addresses, or other short text data. Defaults to 100 characters, can be increased to 4,000. Multiline can be increased to 1,000,000. SharePoint is 255 and ~64,000 and not adjustable. Number fields : With SharePoint you choose a number and it just works, decimals or not doesn't matter. With Dataverse there are Whole Numbers , Decimal , Float , and some other goofy ones. You do need to take a minute and make sure you choose the correct one. Date and time : SharePoint stores these always as full date and time, but has some UI options. In Dataverse, there is Date and time and Date Only + there are different options for how they are stored and returned. Make sure you spend a few minutes here. Lookup : These fields behave the same from a storage perspective in both. There is some coolness when referencing the data from Dataverse called polymorphic lookups, where you can dot (.) your way through the related record. Choice Fields : Same in both from a storage point of view. Filtering and other usage of Choice fields with Dataverse is clunky, I rarely use Choice fields for either product. Yes/No : Unlike SharePoint’s true/false columns, Dataverse uses a choice field for Yes/No values, which can be a bit confusing for SharePoint veterans. Boo! Currency : SharePoint is just a number field with a currency symbol in front of it. Dataverse... It has a robust system of fields and tables to build a currency conversion and rate system, not for the faint of heart but very cool if you need it and learn it. AutoNumber : Dataverse specific field with one thing of note. It is a text field, not a number, which can be confusing when working with it. But if you want an auto Invoice number like INV-0001 that is self-incrementing? This is it. File : Dataverse doesn't have document libraries 😢, so if you want to store files in Dataverse you need to use a File column, same for Images . They work but just not as convenient as a doc library from SharePoint. Formula : Dataverse's newest column let's use Power FX to create formula driven columns. Think of calculated columns on steroids, a very powerful win for Dataverse. Enjoying this? Do you like the way I explain things? You must, you are still reading. 😋 Be sure to check out my Power Platform Training Classes . Both live and on-demand class are available now! Dataverse Licensing: What You Need to Know Before you jump headfirst into Dataverse, it’s important to understand the licensing implications . Unlike SharePoint, which is included in most Microsoft 365 plans , Dataverse requires a premium license. This means that while you can build apps using Dataverse, your end users will need a premium license to access them. Conclusion: Is Dataverse Right for You? While Dataverse comes with licensing requirements, it’s by far the most powerful and scalable data source for Power Apps. Whether you're building simple apps or large enterprise solutions, Dataverse provides a level of performance and flexibility that surpasses SharePoint. If you’ve been frustrated with SharePoint’s limitations or you need to scale your apps to handle more data, then it’s worth exploring Dataverse. And now that you’ve seen how easy it is to create custom tables and integrate with Power Apps, you’re well on your way to mastering the Power Platform. To get help with this or any other Power Platform topic just scroll down the page a bit more and hit the Contact Us button. We are happy to help with anything from 30 minutes screen shares to long term projects. 😎
- Which SharePoint form are you using?
Welcome to our in-depth guide on leveraging SharePoint forms, Microsoft List, and Power Apps to enhance your data management processes. In our latest video, we dive into these tools, exploring their features, benefits, and limitations. Whether you're new to SharePoint or a seasoned user, this guide will provide you with valuable insights to optimize your workflows. If you want to see all of the tools in action this check out this video on Getting SharePoint Data? Use the right tool! SharePoint Or Microsoft Lists default form The Built in Experience When you create a SharePoint list whether through the SharePoint or Microsoft Lists experience, there is automatically an included experience to Create, Edit, and View your SharePoint data. With that default form you can make some tweaks by using JSON. It let's you make them look a little different but doesn't really change their functionality. Still, sometimes that is all you need and if so cool. It has literally worked for millions of people over the last 20 years. Understanding SharePoint Forms The New SharePoint Forms Button Recently, Microsoft introduced a new forms button in SharePoint, aimed at simplifying data collection. This feature is perfect for quickly setting up forms without needing extensive technical knowledge. However, while it's user-friendly, it comes with some limitations, such as lack of advanced customization and branching logic. Also, keep in mind these forms only work when you send someone the link. They don't change the default SharePoint experience. You cannot change the look and feel much but collecting data simply is where they shine. Use Cases and Limitations Quick Data Entry: Ideal for simple data collection scenarios. Security Considerations: Allows data entry without requiring users to have access to the entire list, which can be useful in controlled data collection environments. Leveraging Microsoft Forms for Data Collection Introduction to Microsoft Forms Microsoft Forms is a versatile tool within the Microsoft 365 suite, designed for creating surveys, quizzes, and forms. Unlike the other tools discussed, Microsoft Forms is not directly tied to SharePoint, but it offers a flexible and easy-to-use interface for collecting data from both internal and external sources. Features and Integration User-Friendly Interface: Microsoft Forms provides a straightforward setup, allowing you to quickly create forms with various question types, including multiple choice, text, and more. External Access: One of the standout features of Microsoft Forms is its ability to collect data from external users, making it ideal for public surveys or feedback forms. Data Storage: Data collected through Microsoft Forms is stored in an Excel file, which can then be integrated into other tools or systems using Power Automate. Limitations and Considerations No Direct SharePoint Integration: While Microsoft Forms is excellent for collecting data, it does not natively integrate with SharePoint lists. This means that additional steps, such as using Power Automate, are needed to transfer the data into SharePoint. Customization Limits: While it offers basic customization, Microsoft Forms does not provide the same level of control and customization as Power Apps. Advanced Customization with Power Apps Power Apps Integration Power Apps is the go-to tool for creating highly customized forms and applications that interact with SharePoint data. It provides extensive capabilities, allowing users to create complex, multi-step workflows and custom interfaces. With Power Apps there are two ways to use it here. First, you can use it to make SharePoint better by replacing the SharePoint default form. This will replace that default SharePoint form with one you build in Power Apps. Making the SharePoint Browser experience better. Second, you can build a complete standalone custom app, and have it save data directly to SharePoint. This works great in those complex business scenarios. One of our specialties here at PowerApps911. Pros and Cons Customization: Power Apps offers unparalleled customization, from simple color changes to complex data manipulation and workflow automation. Security Requirements: Requires proper permissions for users, making it less accessible for broader, anonymous data collection. Choosing the Right Tool Choosing the right tool depends on your specific needs: For simple data collection: The new SharePoint forms are quick and easy to set up. For a more user-friendly interface: Microsoft List offers a clean and straightforward experience. For a flexible experience you can use anywhere: Microsoft Forms allow a host of security options, including anonymous but do require you to build a Power Automate flow to get data into SharePoint. For advanced customization: Power Apps is the best choice, providing a comprehensive suite of tools for building sophisticated applications. Comparison Table To help you choose the right tool, we created a table comparing the options: Conclusion Our goal at PowerApps911 is to help you navigate the complexities of Microsoft 365 and the Power Platform. If you have any questions about these tools or need assistance with other Power Platform or Microsoft 365 solutions, we're here to help. Just scroll down and fill out the contact form, and one of our experts will be in touch!
- Power Apps Text Functions Deep Dive
In today's post, we're diving into the world of text (or string) functions in Power Apps. If you're working with any kind of data, chances are you'll need to manipulate strings at some point. Whether it's reformatting text, cleaning up user inputs, or extracting specific data, these functions are a key ninja skill you should develop. 🥷 Below we will talk through 17 different Power FX functions that allow you to manipulate your Power Apps data in all ways regardless of if it comes from your users via inputs or from your data sources like Dataverse, SharePoint, SQL, or the other twelve hundred that are available. And because I am super nice there is a code example of each so you can see the practical example and easily cut and paste. 😁 Finally, if you want to see the examples and hear the more detailed explanation of using these Power FX functions, then check out my video on Power Apps Text Functions . It might not win an Emmy, but maybe a Golden Globe? Split, Last, and First Functions One of the most common text challenges you'll encounter is splitting and reformatting strings. A classic example is converting names from "Last, First" format to "First Last". Using the Split function, you can break a string into pieces based on a delimiter (like a comma). From there, the Last and First functions come into play, allowing you to rearrange and clean up the data as needed. Example : Suppose you have a name formatted as "Young, Shane." By splitting on the comma and using First and Last, you can easily reformat it to "Shane Young." Trim(Last(Split(TextInput1.Text, ",")).Value) & " " & First(Split(TextInput1.Text, ",")).Value Index Function Need to grab a specific part of a string, like a middle name? The Index function is your go-to tool. This function retrieves a specific row from a table created by a split function. Example : Splitting "Shane Dog Young" on the spaces between the words would create a table with three rows. The Index function allows you to pull out the second row, which would be "Dog" in this case. Index(Split(TextInput2.Text, " "),2).Value Right, Left, Mid, and Find Functions When you're working with structured text, like invoice numbers or IDs, you'll often need to extract a fixed number of characters. The Right and Left functions allow you to grab a specific number of characters from the end or beginning of a string. For more complex cases, the Mid function is a lifesaver. It lets you extract characters from anywhere in a string, based on a starting point and length. Combine it with the Find function to locate specific characters or patterns in your text. Example : Use Right to grab just the last four digits of a string that represent the invoice number. Or use Left to get the first view characters. This works best when you know the structure of the data, and know it will not change. Right(TextInput3.Text, 4) Left(TextInput3.Text, 3) Example : Combining Mid and Find is another way to locate part of a string, like earlier when we used Split. The difference here is you might be finding a specific character(s) within the string to start from. Mid(TextInput5.Text,Find("-", TextInput5.Text) + 1, 3) Len Function Sometimes, you just need to know how long a string is. That's where the Len function comes in. This function counts the number of characters in a string and is particularly useful when validating inputs or calculating positions in more complex formulas. Example : Use Len to ensure that phone numbers or codes meet length requirements before processing them further. Len(TextInput6.Text) Upper, Lower, and Proper Functions Standardizing text case is crucial for data consistency. Whether you need everything in uppercase, lowercase, or proper case, these functions have you covered. The Upper function converts all characters to uppercase, Lower converts them to lowercase, and Proper capitalizes the first letter of each word. This is especially useful for normalizing names or email addresses to avoid case-sensitive issues. Example : Use Lower or Upper to standardize email addresses before comparing them, or Proper to clean up user-entered names. Upper(TextInput7.Text) Lower(TextInput7.Text) Proper(TextInput7.Text) Are you enjoying this learning style? Be sure to check out some of my Power Apps and Copilot Training classes . Both Live and On-demand courses available. Trim and TrimEnds Functions Whitespace can be a sneaky issue in user inputs, causing mismatches and errors in your app. The Trim function removes all extra spaces from a string, including those between words. TrimEnds , on the other hand, only removes spaces from the beginning and end of the string. These functions are perfect for cleaning up user inputs and ensuring data consistency, particularly when dealing with form fields or imported data. Those people writing Power BI reports from your data will thank you. Example : Use Trim to clean up a user-entered address or TrimEnds to remove accidental trailing spaces in email inputs. Trim(TextInput9.Text) TrimEnds(TextInput9.Text) Replace and Substitute Functions Sometimes, you need to swap out certain text in a string. The Replace and Substitute functions allow you to do just that, but with a key difference: Replace targets a specific position in the string and replaces it with new text. Substitute finds all occurrences of a specific text and replaces them. Example : Replace a specific word in a sentence or substitute all instances of a special character in a text field. Replace(TextInput8.Text,9,4,"really love") Substitute(TextInput8.Text,"like","🥰") Concat Function The Concat function is the opposite of Split we learned earlier. It takes a table of data and combines it into a single string. This is extremely useful when you need to generate lists from selected items, such as creating a list of email addresses from a Combo Box SelectedItems output. Example : Use Concat to combine multiple selected values into a semicolon-separated list for an email field. Concat(ComboBox1.SelectedItems,Value,"; ") String Interpolation Finally, let's talk about string interpolation – the newer, fancier way to concatenate strings in Power Apps. With this method, you use dollar signs ( $ ) and curly braces ( {} ) to embed dynamic content within your strings. While the old-school & (Ampersand) method still works just fine, string interpolation offers a cleaner and more intuitive way to build strings. Though, thanks to muscle memory, I still use the old way. 🤷 Example : Use interpolation to dynamically insert user names, dates, or other variables into your strings with minimal fuss. As you can see, both ways produce the same output, really just a matter of what works best for you. $"The user {User().FullName} typed {TextInput10.Text} in the box." "The user " & User().FullName & " typed " & TextInput10.Text & " in the box." Wrapping up Power Apps Text Functions Text manipulation is a fundamental skill in Power Apps, enabling you to clean, structure, and transform your data with ease. Whether you're working on a simple form or a complex data process, mastering these text functions will make your apps more robust and reliable. I hope this guide helps you tackle your text challenges with confidence! As always, feel free to reach out if you need assistance, whether it’s a quick fix or a more involved project. Need Power Apps String Function Help? If you need help with this or any other Power Platform topic we are here to help. We can do everything from a quick 30-minute fix to a 30-year project. We also have lots of training classes. (I really want to say 30 courses to stick with the 30 theme but I'm not sure that is true. 🤣 I guess I should count them.)
- Automate HR Requests with a Chatbot built using Copilot AI and Actions
A lot of businesses are trying to find ways to pilot AI in their organization and for many of them trying out chat bots seem to be the answer. And of course, in the Microsoft ecosystem that means Copilot Studio, formerly Power Virtual Agents. The reason for the popularity of these tools now is their ability to use Generative AI. So instead of going in and defining 100 Human Resources questions and the answers manually now you can point it at your documentation and let it answer the questions using a large language model (LLM). Since most businesses have things like HR policies and procedures, PTO policies, and the Employee Handbook available to all employees in a SharePoint site today building a Copilot can be done in literally minutes. But the fun doesn’t stop there. The latest iteration of these chatbots can also easily include actions. You add actions for things like submitting a request for time off or requesting a meeting and the AI can take those actions for you. This allows for an interactive and action-oriented conversation, a drastic improvement from the wall of text people are used to getting from HR documents. Is it Copilot or Chatbot? Yes. 😊 To build these things we traditionally called chatbots you use Copilot Studio. In Copilot Studio you build a copilot, which we used to call a chatbot. So for this context Copilot and Chatbot are interchangeable. I use both throughout the article to hopefully drive home they are synonymous. Demo of an HR Copilot with Generative AI Since we receive a lot of requests for this specific use case, I built a demo bot to show off some of the cool. Below I will walk you through the key features with screenshots. If you want to see the Copilot in action, then check out this video demo I did HR Assistant Copilot using Copilot Studio for all of the fun. For this Copilot I built and published the bot as a Teams app. Copilot Studio can be used to publish to many different channels that are both publicly and privately accessible. But in case where you are looking to use internal content, like SharePoint, and you want to have authentication then publishing to Teams is the path of choice. Answering HR questions with Copilot Studio Alright, let's ask this bot something. How about an important question like “Can I bring my dog to the office?” Now in this case we have never trained the bot on this topic but the fine folks in HR have addressed it in our employee handbook. So, when the question is asked the Copilot looks through the handbook, finds our pet policy and responds with the appropriate answer. Notice the blue colored 1s at the end of the response. These are the links to the documents that Copilot referenced to come up with this response. So, if you want to dig in deeper or just validate things before you purchase your pup some business attire you can click the link and you will be taken to the document. Now you can see where the pot belly pig stuff came from, not AI’s imagination but from the actual policy. 🤣 Maybe I shouldn’t be in charge of HR. Fun pigs aside, this is really powerful. By just giving Copilot access to the proper content, it is able to provide accurate answers to random questions and provide attribution so you can validate those responses. And look, all I did to set it up was give the Copilot a link to the SharePoint site and made sure everyone had access. That was it. And while SharePoint seems to be the default in our Microsoft 365 based world, there are a lot of other supported data sources in preview right now. Providing a structured response via Topics Now sometimes you don’t want Generative AI to provide an answer, you want to specify exactly how a conversation goes when they ask about a specific subject. In this case you will provide a topic. When a user asks a question topics to take precedence over generative AI. In this case, if they ask anything about getting a raise, I want to simply redirect them to the manager or HR. With topics you can go anywhere from this simple response to full on multi-step conversation with conditions and actions. You could ask them for additional info, you could trigger a flow or action to get more information or submit a ticket, etc. All of the traditional chat bot activities. Add a new employee with a Power Automate action Okay, so far, we have just gotten information but what if we want to take action. You can add actions and/or Power Automate cloud flows to your copilot. When you add them you give it a description of what the action can do and then Copilot will use AI to determine when to invoke to action and how to get the inputs the action may require. For the example of creating a new employee I wanted to add a record to my SharePoint list. I started by creating a flow that is triggered by Copilot and has 4 inputs. These inputs will be used as dynamic content within the flow. Now we add a SharePoint Create Item action, configure the site and list, and then fill in the fields with the Dynamic content. And finally, we set the flow to respond with a message back to Copilot to let it know you are done. Perfect, the flow is ready. Now you add it as an action to your Copilot. As part of adding it you will then tell it how to get the information for each of the inputs. The default, let Copilot figure it out and prompt the user as needed, works great. If you need more, there is extensive customization options available. Same deal with output. You can configure a message saying “Success” or let AI generate the appropriate response or just not respond with anything if it isn’t necessary. Now that you have configured the action the chatbot will call it as necessary. Here you can see I asked it to create an employee and since I provided no other context Copilot asked for the inputs. If you are enjoying this, then be sure to check out our training classes for both Copilot and Power Platform . We have both on-demand and live classes available to help you learn. But, if I ask it to create a new employee and provide all of the context it needs, then it will just do the action. I think the coolest part of that is it understood that Buddy Young was the full name, and it broke it into First name and Last name properly when it created the record in SharePoint. 😲 Remember, I didn’t write any logic or explain to copilot this was what to do. It understood the context and did it itself. This is the power of generative AI at its finest for me. Conclusion Using Copilot Studio to build a copilot or chatbot from existing content today is a powerful first step into bringing AI to your business. And the flexibility of generative AI, topics, and actions allows you to build so much more than we could before. Even if you are thinking “I am not ready to do this yet” I encourage you to dig into Copilot Studio. I think it will play a big role in our AI futures and those of us who have already embraced low code tools like Power Platform are primed to lead that charge. If you need help with this or anything else Copilot or Power Platform related let us know. Just scroll down and fill out the contact us form below. We have free help, quick help, dedicated resources, or traditional project services, all designed to help you be more awesome!











