top of page
hero-bg-1.png

Search Content

Search this site

196 results found with an empty search

  • Stop Using Power Platform Plugins One at a Time: Let GitHub Copilot Orchestrate the Whole Solution

    TL;DR The real value of the Power Platform plugins is not using each one by itself. GitHub Copilot, or another capable coding assistant, can combine the Power Apps, Dataverse, and Power Automate plugins with one prompt to build an end-to-end solution. In my test, it created a document submission app, its data model, the cloud flow, and most of the connections in about 32 minutes of real time for roughly 1,200 credits, or about $12 in the environment I was using. That is kind of crazy! Most plugin demos are intentionally small. You ask the Power Apps plugin to build a screen. You ask the Dataverse plugin to create a table. You ask the Power Automate plugin to build a flow. That is useful when you are learning what each tool can do, but it is not how real business solutions work. Real solutions cross boundaries. The app needs data. The data needs automation. Files might belong in SharePoint while their metadata belongs in Dataverse. The user should not care which service is doing which part. They just need the whole thing to work. That was the goal of this test: give GitHub Copilot App one business outcome, make the right Power Platform plugins available, and see whether it could assemble the pieces into a working solution. Spoiler alert, it did. If you would rather watch the complete build and all the messy parts that came with it, check out the video here: One Prompt Built My Power App, Dataverse Table AND Cloud Flow The Big Idea: Plugins Are Building Blocks, Not Separate Destinations The Power Apps, Dataverse, and Power Automate plugins are impressive on their own, but thinking about them individually puts an artificial limit on what you can ask an AI coding tool to accomplish. The better question is not, “What can this plugin build?” It is, “Can the coding assistant choose and combine the right plugins to solve my problem?” In this example, GitHub Copilot acted as the orchestrator. It interpreted the request, divided the work across the available plugins, asked a few useful questions, generated the components, and then brought those components together. The individual plugins did specialized work, while Copilot kept the overall solution in view. The One Prompt That Defined the Whole Solution I started with a single prompt that described the business outcome and the important constraints. Cleaned up slightly for readability, it looked something like this: Build me a Power Apps canvas app for uploading files. Use the blank app I already created. The app should let a user enter a document title, category, notes, and upload a file. Create a Dataverse table called Doc Submission to store the information. Create a Power Automate flow that saves the file in the SharePoint document library I already built. Save the SharePoint file URL with the submission information in Dataverse. Show recent submissions in the app. Build and connect everything needed to make it work, but if you need anything done through the browser, ask me to do it. Do not use Playwright. The prompt names the user experience: a canvas app for document submissions. It defines the fields the user needs to enter. It says where the file should go: an existing SharePoint document library. It says where the submission metadata should go: a new Dataverse table. It explains that the SharePoint URL must be stored with the Dataverse record. It asks for recent submissions to appear in the app. It gives Copilot permission to build and connect the necessary pieces. It establishes a collaboration boundary by asking Copilot to hand browser-only steps back to me. That last instruction mattered. GitHub Copilot can use browser automation for some tasks, but it can be slower, more expensive, and more fragile than simply asking a human to make a connection in Power Apps Studio. The goal was not to prove that AI could click every button. The goal was to finish the solution efficiently! How Copilot Divided the Work Across the Plugins Once the objective was clear, Copilot worked through the solution in layers. Each plugin handled the part of the problem it was designed for, but the output of one plugin became the input for the next. 1. The Dataverse Plugin Built the Data Foundation The document submission process needed structured data, so Copilot used the Dataverse capabilities to create a Doc Submission table and its columns. That table became the source of truth for the document title, category, notes, SharePoint file URL, and other submission details. This is an important distinction. The uploaded file itself went to SharePoint, but the business record went to Dataverse. That split is common in real solutions. SharePoint is a natural place for documents, while Dataverse gives the app a structured data layer for filtering, relationships, security, and future expansion. About six minutes into the run, the Dataverse table was created and the existing SharePoint document library had been confirmed. Copilot also accounted for the 10 MB file-size choice it had asked about earlier. 2. The Power Automate Plugin Built the Integration Layer The app needed more than a Patch operation. It needed to accept a file from Power Apps, create that file in SharePoint, retrieve the resulting file information, create the matching Dataverse record, and report back to the app. That is where the Power Automate plugin came in. The generated cloud flow followed the basic pattern you would expect: Power Apps triggers the flow and sends the submission fields and file. The flow creates the file in the existing SharePoint document library. It gets the newly created file properties so it can capture the file URL. It creates the Dataverse row with the submission details and SharePoint link. It responds to Power Apps when processing is complete. When I inspected the flow, it was a little more complicated than I might have built by hand. I also questioned whether the success and failure responses were returning enough useful information. That did not invalidate the result, but it reinforced the same rule I use with any AI-generated solution: trust, but verify. 3. The Power Apps Plugin Built the User Experience With the table and flow available, Copilot moved on to the canvas app. It planned a document submission screen with a soft, approachable style, a warm cream background, fields for the submission details, an upload experience, and a list of the newest submissions. Copilot asked me to approve the screen plan before it built the interface. That checkpoint was useful because it let me validate the intended experience without watching every control get created. After approval, the canvas app work took the largest chunk of the run. One build step alone took a little over eight minutes. The finished app accepted a document title, category, notes, and file. Submitting the form called the cloud flow. The uploaded file appeared in SharePoint, the Dataverse row appeared with the submitted information, and the new submission showed up in the app gallery. The Connections Were the Hand-Off Points The most important parts of the build were not the isolated components. They were the hand-offs between them: The canvas app had to know about the Dataverse table. The canvas app had to call the generated Power Automate flow. The flow had to understand the payload coming from Power Apps. The flow had to connect the SharePoint file with the Dataverse record. The app had to refresh and display the resulting record. Copilot asked me to add the Dataverse table and flow to the existing app in Power Apps Studio. I initially questioned the instructions, then realized they were correct. I added both connections manually in roughly 30 seconds to a minute, even with a few wrong clicks along the way. This was way faster and cheaper than letting GitHub Copilot App use browser control via Playwright to do it for its self. That manual step was not a failure. It was efficient collaboration. In an earlier approach, browser automation spent seven or eight minutes trying to do work I could complete almost immediately. If your goal is a working solution, the best process may be AI-generated components plus a few quick human hand-offs. Testing the Complete Solution A multi-plugin build is only valuable if the complete chain works. Copilot asked permission to run an end-to-end backend test using a clearly labeled test file and an invalid submission. I appreciated that it asked before leaving test data behind. In an earlier run with a different model, the test data was created without the same warning. The backend test passed. I then tested the app in preview mode by entering a title, category, and notes, choosing a file, and submitting it. The resulting record appeared in the recent submissions gallery, and the file could be opened from the application. I also verified the individual systems: The Power Automate run completed successfully. The uploaded file existed in the SharePoint document library. The Dataverse table contained the matching submission record. The canvas app displayed the new submission and could open the file. That is the real proof of orchestration. Three plugins did not merely create three disconnected artifacts. Together, they produced one working business process. What Went Wrong, and Why It Matters The build was not perfectly smooth, and that is worth talking about because the rough edges are part of the real story. Browser Automation Was Not Always the Best Choice Some Power Apps Studio tasks are still awkward to perform programmatically. Letting browser automation do everything can consume more time, tokens, and credits. For known, simple steps, it can be smarter to have Copilot pause and let you complete the action. The Generated Flow Deserved Inspection The flow worked, but parts of it felt more complicated than necessary, and the response handling deserved another look before production use. AI can get you to a working first version quickly, but “it ran once” is not the same as “it is production ready.” Keep in mind, you can ask GitHub Copilot to help or tell it your concerns, you don' have to edit by hand BUT if editing by hand is easy or quicker then step away from the agent and do it yourself. Saving the App Blew Up at the Finish Line After the solution was working, Power Apps Studio returned a network error during save and told me to refresh. When the browser came back, the app appeared blank. Yikes. Fortunately, Copilot still had a local copy of the generated YAML. I re-added the Dataverse source and flow, explained the save failure, and asked it to rescue the app. It verified the blank state and pushed the app content back. The controls reappeared, the second save succeeded, and I was able to publish the application. That recovery was one of the strongest moments in the demo. The AI was not only useful for initial generation. It could also use its local working files to recover from a platform failure. How Long Did It Take and What Did It Cost? The complete run took about 32 minutes of real time, excluding the extra time spent reacting to the save failure. That was faster than the approximately 45 to 55 minutes I had seen with an earlier approach. The run used about 1,200 credits, which was roughly $12 in the environment I was using. An earlier test showed around 1,900 credits, although that run included additional work, so it was not a clean comparison. I tested this run with the higher-end Astra 6 model. The earlier working example had been created with Sonnet 5, so the expensive model was not required. My result suggested that a stronger model might complete the work faster and with fewer detours, but that is anecdotal. Do not make a model or budget decision from one run. Also, do not spend the whole run staring at the screen. Copilot can notify you when it needs a decision. The productivity gain comes from letting it work while you do something else, then stepping in at the checkpoints that actually require your judgment. How to Write Better Multi-Plugin Prompts You do not need to tell Copilot which plugin to call at every moment, but you do need to describe the outcome clearly. A strong orchestration prompt usually includes: The business problem and the person who will use the solution. The required user inputs and outputs. Where different types of data or files should be stored. The automation that should happen after the user acts. What should be visible in the finished app. Existing assets that should be reused instead of recreated. Constraints such as file size, naming, or browser automation preferences. The situations where Copilot should stop and ask you to take over. The prompt should describe the finished system, not merely the first component. If you ask only for a form, you may get a form. If you describe the complete document submission process, Copilot can reason across the app, data, automation, and file storage layers. What This Means for Power Platform Development The lesson is bigger than this one document submission app. As plugin ecosystems improve, the unit of work changes. You are no longer limited to asking AI for a control, a formula, a table, or a flow. You can ask for a business capability and let the coding assistant assemble the necessary services. That does not remove the need for Power Platform expertise. In fact, experience becomes more valuable in different ways. You need to recognize good architecture, spot unnecessary complexity, validate security and error handling, understand where the AI is likely to struggle, and decide when a 30-second manual step is better than eight minutes of automation. This is why I think of Copilot as a teammate. It can do a lot of the building, but you still provide direction, judgment, testing, and the occasional rescue mission. When that partnership works, complete solutions become faster and less expensive to prototype. FAQ Can GitHub Copilot use more than one Power Platform plugin in the same request? Yes. In this test, one prompt led GitHub Copilot to use Power Apps, Dataverse, and Power Automate capabilities to build different parts of the same solution. What did each plugin do? The Dataverse plugin created the data foundation, the Power Automate plugin created the file and record-processing flow, and the Power Apps plugin built the canvas app experience. Copilot coordinated the work between them. Did Copilot build everything without human help? No. I manually added the Dataverse table and generated flow to the existing canvas app, adjusted display settings, tested the app, and completed save and publish steps. Those interventions were faster than forcing browser automation to do everything. Did the generated solution work? Yes. The app uploaded a file, the flow stored it in SharePoint, Dataverse received the submission record and file URL, and the new record appeared in the app. The components were also checked individually. Is an AI-generated solution ready for production? Not automatically. You still need to inspect the app, flow, data model, responses, error handling, security, connections, and test data. The generated flow in this example worked, but parts of its structure and response handling deserved further review. Do I have to let Copilot control the browser? No. For simple browser-only steps, asking Copilot to pause can be faster and cheaper. Use browser automation where it adds value, not merely to prove that it can click the buttons. Key Takeaways The biggest opportunity is not using Power Platform plugins individually. It is letting a coding assistant orchestrate them around a complete business outcome. One prompt produced a canvas app, Dataverse table, Power Automate flow, SharePoint integration, and recent-submissions experience. The hand-offs between Power Apps, Dataverse, Power Automate, and SharePoint were more important than any one generated component. Human intervention was valuable when a browser-only connection could be completed faster manually. The complete run took about 32 minutes and used roughly 1,200 credits in the tested environment. The save failure demonstrated that local generated files can also help recover work after a platform problem. AI-generated solutions still require inspection, testing, and production hardening. Trust, but verify. Final Thoughts Stop asking what each plugin can do by itself, they don't have to exist in a vacuum. Start asking what problem GitHub Copilot can solve when those plugins work together. The Power Apps plugin can build the experience. The Dataverse plugin can create the data model or security roles or even a model-driven app. The Power Automate plugin can connect the process. Copilot can keep the full outcome in view and coordinate the work. That is where these tools become much more interesting than a collection of isolated demos. If you want help building solutions like this, training your team to work with AI-assisted Power Platform development, or figuring out where this approach fits in your organization, the team at PowerApps911 can help. Whether you need training, mentoring, or someone to build it with you, reach out and let’s build something awesome together. Click the Contact button and tell us how to help!

  • Copilot Studio Efficiency: Stop Paying Your Agent to Rediscover What You Already Know

    TL;DR Copilot Studio can discover SharePoint sites, lists, and columns on its own, but every discovery step takes time and consumes tokens. Give the agent stable values such as the Site ID, List ID, and internal column names so it can go straight to the work that matters. You know the old saying: time is money. With Copilot Studio, that is not just a motivational poster. Time, reasoning, tool calls, and tokens are all connected. Copilot Studio does an awesome job figuring things out. Point it toward SharePoint through the SharePoint MCP server and it can find the right site, inspect the available lists, identify the list you meant, and retrieve the data. That is genuinely useful. But here is the question: if the agent found the same SharePoint site yesterday, and that Site ID is not going to change today or ever, why are we paying it to find the site again? That is the big lesson from this post, your agent should not have to solve the same mystery every time a user asks a question. By simply fixing that, you can make everything faster and that means cheaper. If you would rather watch the full walkthrough, check out the video here: Make Copilot Studio Faster and Cheaper It has more details, a deeper look at filtering, and my face. How could you go wrong? The Agent Setup I built a new Copilot Studio agent using the new harness, gave it the SharePoint MCP server, one instruction on what SharePoint Site to use, and started asking questions. Then I could ask it "When is the next payroll?" and it would give the right answer. What could possibly be wrong? The Hidden Cost of Letting Copilot Figure Out Everything The agent in my test answered a basic payroll question correctly. The answer was not the problem. The route it took to get there was the problem. To answer the question, the agent had to: Find the SharePoint site. List the lists available on that site. Identify the payroll list. Retrieve the list items. Read the results and produce the answer. That is impressive the first time. It is wasteful the 50th time. Every extra tool call introduces more processing, more reasoning, and more opportunities for latency. It can also increase consumption. The agent is being smart, but it is doing work that your solution already knows how to avoid. Which costs you credits! Side note: I hope you see the irony that I named the agent Speed. Probably should have named it Turtle. 🤣 Anyway. Three Steps, Then Two, Then One I started with instructions telling the agent to use the Box Checked HR site and the SharePoint MCP tool for payroll questions. That guidance helped it choose the general direction, but it still had to find the exact site. So to see if I could help, I expanded listLists to see what it was passing and found my first fix. The agent was using findSite to get the siteId of the HR Site. That Id will NEVER change, so why make it work so hard. We can copy that info in green and turn it into an instruction. Also, if we expand out listListItems, we can see the listID. Let's grab that info also and go update the instructions. Better Instructions With the siteID and listID in hand, lets update the instructions to: No more guessing! Now when we ask the same question, look at how much cleaner it is. One call, not three. Saving you time and money while still getting the exact right answer. Time Is Money, and So Are Tokens This is not only a speed optimization. It is an economics lesson for agent design. When an agent performs unnecessary discovery, you potentially pay twice: Users wait longer for the response. The agent consumes additional processing and tokens to rediscover information your solution already knows. That makes stable identifiers valuable configuration. If a SharePoint Site ID, List ID, or internal column name is known and unlikely to change, give it to the agent. Do not turn a constant into a scavenger hunt. The smartest agent is not the one that performs the most steps. It is the one that performs the fewest steps necessary to produce a trustworthy answer. Give the Agent Stable Facts, Not Every Possible Answer There is an important balance here. I am not suggesting that you hard-code every possible path or remove the agent’s ability to reason. In the test, adding payroll-specific details did not break the broader SharePoint experience. When I asked about December holidays, the agent still explored the available data, found the holidays list, and returned the answer. That is exactly what you want. Give the agent shortcuts for the routes you know, while preserving its ability to navigate when the request is new. Good candidates for stable guidance include: SharePoint Site or List IDs Dataverse Environments and Tables Internal SharePoint column names Known tool routing for common business questions Also, while in the video I used the SharePoint MCP this same guidance could be applied to any tool or MCP where it is having to do a lot of discover. Dataverse MCP and SharePoint Get Items are prime examples. The goal is not to make the agent rigid. The goal is to stop charging it rent for information it already learned. Filtering the Data Saves Even More Work The holiday example exposed another efficiency problem. The agent retrieved the entire holidays list, including dates from other months, and then reasoned through all of those rows to answer a question about December. It worked, but working is not the same as working efficiently. I will skip this part here but if you want to see the filter portion then jump over to the video. https://youtu.be/0FfQoM8iHNA Do Not Dump Detailed Execution Logic into Global Instructions There is one architectural warning worth calling out. All of this ID config most likely should NOT be in your instructions, they should be a skill. Global instructions should contain the things the agent should always know, plus clear routing guidance, like what skill or tool to use when. Detailed execution behavior that only applies to a specific scenario belongs in a skill. A cleaner pattern looks like this: Instructions: If the user asks about payroll, use the payroll skill. Payroll skill: Use the known Site ID, List ID, and any other payroll specific logic to get the answer. That keeps the base agent focused while still giving each scenario the precision it needs. It also prevents a giant wall of instructions from becoming its own source of confusion and wasted reasoning. I need to make a video and post about turning complicated instructions into skills, but that is for another day. A Practical Optimization Checklist When an agent feels slow or consumes more credits than expected, inspect the activity map and ask these questions: Is the agent repeatedly searching for the same site or data source? Is it listing resources just to find an ID that never changes? Is it retrieving an entire list when a filter could return only the relevant records? Does it know the internal column names required to create that filter? Are unused MCP tools enabled and adding noise to the available toolset? Does scenario-specific execution logic belong in a skill instead of the global instructions? You do not need to optimize everything on day one. Start with high-volume requests and obvious repeated discovery. Those are the places where a small amount of guidance can create a meaningful cumulative return. Trust, but Verify One test run is not a scientific benchmark. Network conditions vary, service response times vary, and in my final one-step test the elapsed time was not automatically lower than every previous run. It was raining, so obviously we can blame the weather. That is how networking works, right? The important result was the path, not one stopwatch reading. The agent went from three tool calls to two and then to one while producing the same answer. Fewer required operations give you a better foundation for consistent performance and lower consumption, even when individual response times bounce around. Test each change several times, inspect the activity map, and verify that your shortcut does not prevent the agent from handling related questions. Trust, but verify. FAQ Why should I provide a SharePoint Site ID to Copilot Studio? Providing a known Site ID lets the agent skip the find-site operation. That can reduce tool calls, reasoning, response time, and consumption for repeated requests. Should I also provide the SharePoint List ID? Yes, when the agent consistently uses the same list. A known List ID can let it skip enumerating every list on the site and go directly to the target data. Will hard-coding IDs stop the agent from answering other SharePoint questions? Not necessarily. In this test, payroll-specific guidance did not prevent the agent from finding and using a separate holidays list. Keep the guidance scoped to the relevant request. Why provide internal SharePoint column names? Internal column names help the agent create precise filters without first inspecting list metadata. That can reduce both metadata calls and the amount of list data returned. Should all of this information go into the agent instructions? No. Global instructions should hold always-relevant knowledge and routing guidance. Detailed scenario-specific execution logic is better placed in a skill. Does fewer tool calls always mean a faster response? Not on every individual run because network and service latency vary. Fewer required steps still remove avoidable work and provide a better path toward faster, more efficient responses at scale. Key Takeaways Copilot Studio can discover SharePoint resources, but repeated discovery of stable resources wastes time and tokens. Providing the known Site ID reduced the demonstrated path from three tool calls to two and cut one observed run from about 15 seconds to about 7 seconds. Providing both the Site ID and List ID allowed the agent to jump directly to retrieving the list items. Scenario-specific execution details should move into skills, while global instructions should focus on always-relevant knowledge and routing. Optimize the agent’s path, then verify the result across multiple runs instead of trusting a single timing measurement. Build Agents That Value Everyone’s Time Copilot Studio is good at figuring things out. Let it use that intelligence on the parts of the problem that actually require intelligence. If you already know the Site ID, give it the Site ID. If you already know the List ID, give it the List ID. If the agent needs a particular internal column name every time it builds a filter, give it that too. Stop paying the agent to rediscover facts that are never going to change. Your users get a faster experience, and you build a solution that uses its resources more responsibly. Time is money, especially when tokens are involved. If you want help optimizing your Copilot Studio agents, designing reusable skills, or getting your team comfortable building agents this way, PowerApps911 can help. Whether you need training, mentoring, or someone to build it with you, reach out and let’s build something awesome together.

  • The Power Automate Plugin Explained: An AI Agent That Builds, Fixes, and Documents Your Flows

    TL;DR: Microsoft ships a free Power Automate plugin that connects GitHub Copilot CLI or Claude Code to your real Power Automate environments. Once it is installed, you can ask an AI agent in plain English to list your flows, build new ones, make surgical edits to existing ones, diagnose failed runs, and clean up the stuff you never got around to, all without opening the flow designer. You know that flow. The one that runs in production, that everybody depends on, and that has exactly zero error handling in it. You have been meaning to fix it for about eight months. Adding proper try and catch scopes, failure notifications, and a bit of documentation is not hard, it is just tedious, and tedious work always loses to the next urgent request. That is the gap the Power Automate plugin fills. It is an official Microsoft plugin that plugs an AI coding agent directly into the Power Automate service, so the agent can read your flows, change them, publish them, and troubleshoot their run history. You describe what you want in a sentence, and it goes and does the work against your actual environment. In this post you will learn what the plugin is, what it can genuinely do, why it is worth your time, how to install it, what it costs to run, and the gotchas worth knowing before you point it at a production environment. If you would rather watch the whole thing in action, the full walkthrough is here: https://youtu.be/6OlQ3ioxoNA What Is the Power Automate Plugin? The Power Automate plugin is a Microsoft-published package that lets you build, edit, run, and debug Power Automate cloud flows from a Claude Code or GitHub Copilot CLI session. It lives in the microsoft/power-platform-skills repository on GitHub, alongside the canvas app and model driven app plugins you may have already installed. Under the hood it is powered by something called the FlowAgent MCP server. MCP stands for Model Context Protocol, and the short version is that MCP is the plumbing that lets an AI agent call real systems instead of just talking about them. The plugin bundles that server as a self-contained engine with more than fifty tools inside it, so the agent has a proper API surface for Power Automate rather than a guess. Two practical nerd notes from the documentation. First, it runs offline: there is no npm install and no remote host to stand up, it just needs Node.js 18 or newer. Second, authentication uses your local Azure CLI login, so the agent acts as you, with your permissions, in your environments. It cannot see anything you could not already see. Why Would You Use It Instead of the Flow Designer? The designer is great when you know exactly what you want and you are building one thing. The plugin shines somewhere else entirely: the work that is conceptually simple but painfully repetitive, and the work that requires expertise you have not built yet. Retrofitting Error Handling You Never Got Around To This is the headline use case, and it is the one the senior architects and developers already using it keep coming back to. Point the agent at an existing flow URL, tell it to add error handling and a failure notification, and it reads the flow, works out what could break, wraps the risky actions in scopes with run-after conditions, and publishes the result. In the video that took about five and a half minutes of agent time from a single sentence prompt. Think about how many flows in your tenant have no error handling at all. Now think about how long it would take you to add it by hand to every one of them. Building a Working Flow From a Description You can describe the flow you want in a sentence or two and let the agent build it. A daily reminder that checks Planner for tasks due today and emails you a list is the kind of request it handles end to end, including asking you a clarifying question like which time zone the recurrence should use. It built the trigger, the filter, the condition, the HTML table, and the email, and the flow worked on the first test run. This is not the same thing as the simple natural language flow builder you may have tried before. The agent iterates. It reads documentation, tries an approach, checks the result, and corrects itself, which is why it can get through genuinely complicated flows instead of only the demo-friendly ones. Troubleshooting Runs That Failed at 2am This is the capability people underrate. The plugin can pull run history, open a specific run, inspect the individual actions, and even drill down into a single loop iteration to find the one record that blew up. It can resubmit a run, cancel a run, cancel all running instances, and do an autonomous deep diagnosis of a failure. If you have ever scrolled through a two hundred iteration Apply to each looking for the bad row, you already know why that matters. Documenting the Flows Nobody Documented Descriptions and notes are one of those things everybody agrees are important and nobody writes. They matter more than ever now, because Dataverse table and column descriptions are exactly what your agents read when they try to understand your data. The same logic applies to flow action names and notes. Let the agent write the first draft, then go read it. Reviewing words on a screen and saying yes that is right, or no let me adjust that, is a hugely easier job than staring at a blank description box. Fair warning from the video: a notes-only edit was the one request that did not work cleanly, so be specific about what you want changed. What Can the Power Automate Plugin Actually Do? The documentation groups the capabilities into a handful of areas. Here is the honest inventory, because the scope is wider than most people expect. Area What you get Flows List, get, create, edit with surgical action-level changes, copy within or across environments, update, publish or disable, and delete Runs Run history, run details, action details, loop iteration drill-down, cancel, cancel all, resubmit, and diagnose Connections Full lifecycle create, read, update, delete and fix, plus auto-discovery and dynamic value resolution Authoring Templates and scaffolding, batch deploy, preflight checks and validation, and expression help Beyond cloud flows Desktop flow support for your RPA work, plus environment routing Which Skills Come With the Plugin? A plugin is more than a pile of tools. It also ships skills, which are the instructions that teach the agent how to use those tools properly for a specific job. You do not have to call them by name, the agent picks the right one, but knowing they exist tells you what the plugin was designed to be good at. Skill What it is for setup First-time prerequisite setup. Run this one first if anything feels off browse-flows Browse environments and flows interactively create-flow Guided flow creation where it asks you questions along the way build-flow Autonomously generate a complete flow from a description debug-flow Interactive debug of a failed run diagnose-flow Autonomous deep diagnosis of a failed run manage-flows Lifecycle work: publish, test, batch operations, inventory manage-desktop-flows List and run desktop RPA flows route-environments Environment resolution and routing when it lands in the wrong place How Do You Install It? Easier than you are expecting. The official route is two commands inside a Claude Code or GitHub Copilot CLI session: add the marketplace with /plugin marketplace add microsoft/power-platform-skills Then install with /plugin install power-automate@power-platform-skills There is an even lazier route that works surprisingly well. Copy the documentation page and ask the agent to install the Power Automate plugin for you using that documentation. It reads the instructions, runs the pieces, and reports back. In the video that took about a minute. You also need Node.js 18 or newer and an Azure CLI login, since the plugin authenticates with az login plus MSAL for the connectivity endpoints. If you have already installed the canvas app or model driven app plugins from the same repository, most of that groundwork is already done. What Does It Cost to Run? The plugin itself is free and open on GitHub. What you spend is agent time in whatever tool you are driving it from. In the video, a full working session that listed flows, reviewed a flow, edited a flow, created a brand new flow from scratch, and attempted a documentation pass came to 191 GitHub Copilot credits. That is roughly two dollars for a chunk of work that would have eaten a good part of an afternoon by hand. Model choice is yours, and it does affect both speed and cost. Any current frontier model will do the job. If you are not sure, leaving it on auto is a reasonable default. What Should You Watch Out For? A few practical things, learned the way these things are usually learned. Pick a small environment to start. A default environment with 600 flows in it can take a very long time to enumerate. Point the agent at a smaller environment while you are kicking the tires, and use the route-environments skill if it keeps landing in the wrong one. Trust but verify, every single time. The agent publishes real changes to real flows. Refresh the designer and look at what it did. In the video the edits held up, but checking takes ten seconds and it is the difference between a tool you can rely on and a tool you are nervous about. Be specific with your prompts. The one request that stumbled in the video was a vague ask to add documentation to every action, which the agent could not handle as a notes-only edit. Tell it exactly what you want changed and it does much better. Expect to wait, and be okay with that. Real work takes real time. Four to six minutes of agent runtime for a full flow build or a serious edit is normal. Go get a coffee. It is still faster than doing it yourself. Run setup first if things feel wrong. The setup skill handles prerequisites, and skipping it is the most likely reason a first session misbehaves. Who Gets the Most Out of This? If you are new to Power Automate, this is the closest thing to having an architect sitting next to you. You can ask the questions you feel silly asking, like why this expression works, what this filter query is actually doing, or how error handling is supposed to be structured, and get a real answer against your own flow instead of a generic article. If you are experienced, the value is leverage. The flows you would have built anyway get built while you work on something else, and the maintenance backlog you keep deferring becomes a prompt instead of a project. Teams already using it in production lean on it hardest for retrofitting error handling and chasing down failed runs. And this is still early. There are sibling plugins for canvas apps and model driven apps in the same repository, which means the interesting future is pointing several of them at one problem and letting an agent build the app and the flow together as a single solution. Frequently Asked Questions What is the Power Automate plugin? The Power Automate plugin is a Microsoft-published package in the microsoft/power-platform-skills GitHub repository that lets you build, edit, run, and debug Power Automate cloud flows from a Claude Code or GitHub Copilot CLI session. It is powered by the FlowAgent MCP server, which bundles more than fifty tools for working with flows, runs, and connections. Do I need to know how to code to use it? No. You talk to it in plain English. Requests like review this flow and add error handling, or create a flow that emails me my Planner tasks every morning at 8am, are the actual level of detail required. The only technical prerequisites are Node.js 18 or newer and an Azure CLI login, and the agent can walk you through installing the plugin itself. Can it edit flows that already exist, or only create new ones? It edits existing flows, and that is arguably its best trick. The documentation calls these surgical action-level edits, meaning it changes the specific action you asked about rather than rewriting the whole flow. Give it a flow URL or a flow name, describe the change, and it makes the edit and publishes it. It can also copy flows within an environment or across environments. Is it safe to point at a production environment? It authenticates as you, through your own Azure CLI login, so it can only touch what you could already touch. That said, it makes real changes to real flows, so treat it like any other change to production: start in a development or personal environment, review what it did in the designer before you rely on it, and test the flow afterward. How is this different from Copilot inside the Power Automate designer? The in-product Copilot helps you inside one flow you already have open. The plugin gives an agent tool-level access to the Power Automate service itself, so it can work across environments, iterate on its own, read run history, drill into loop iterations, manage connections, and take multiple minutes to reason through a hard problem before acting. It is a different class of task, not a different button. Does it work with desktop flows too? Partly. The plugin includes a manage-desktop-flows skill for listing and running desktop RPA flows. The deep authoring and debugging capability is aimed at cloud flows, so treat desktop flow support as useful but lighter. Key Takeaways The Power Automate plugin is a free, Microsoft-published plugin that connects GitHub Copilot CLI or Claude Code to your real Power Automate environments through the FlowAgent MCP server. It does far more than create flows: it lists, edits, copies, publishes, disables, and deletes them, and it manages connections, run history, and desktop flows. Retrofitting error handling into existing flows is the single highest value use case, and it takes one sentence and a few minutes instead of an afternoon. Loop iteration drill-down, run diagnosis, resubmit, and cancel all make troubleshooting failed runs dramatically less painful than scrolling run history by hand. Installation is two commands, or you can simply hand the agent the documentation link and ask it to install the plugin for you. It runs offline with no npm install or remote host, needs only Node.js 18 or newer, and authenticates with your own Azure CLI login, so it operates with your permissions. A full working session of listing, reviewing, editing, and building flows cost about 191 GitHub Copilot credits, roughly two dollars, which is excellent value for the work involved. Give It a Try Install the plugin, point it at a test environment, and give it the ugliest flow you own. Ask it to explain what the flow does, then ask it to add error handling. Ten minutes of that will tell you more than any article can, including this one. And if you want help building solutions like this, fixing the flows that keep you up at night, or getting your team enabled to work this way, the team at PowerApps911 can help. Whether it is training, mentoring, or building it for you, reach out and let us build something awesome together. Just click the Contact Us button to get started.

  • Microsoft Planner and Copilot: What You Can Actually Do Today

    TL;DR: Copilot Chat can now look at your Planner tasks, create simple ones, and mark things complete. The built in Planner agent goes further and can create a whole plan for you, including turning a meeting into a full Planner board with buckets, tasks, and dates. Here is what each one does and when to reach for which. Where does Copilot fit into your Planner workflow? You already know your way around Planner. The boards are set up, the buckets make sense, and the tasks are where they belong. The friction is not the tool, it is the upkeep: checking what is due today, closing out what is finished, and building a fresh plan by hand every time a new project kicks off. That is where Copilot earns its keep. Instead of clicking through a board, you can ask questions and give instructions in plain English, and Copilot does the board work for you. There are two ways to do this, and knowing the difference will save you a lot of frustration: the Planner connection inside regular Copilot Chat, and the separate Planner agent. In this post you will learn what each one can do, what neither one can do yet, and the one that saves the most time: turning a meeting into a fully built Planner board. If you would rather watch the full walkthrough, check out the video here: Microsoft Copilot + Planner: What Actually Works? What do you need before you start? You need a Microsoft 365 Copilot license. That is the one that gives you Work IQ, which is the part that lets Copilot see your Microsoft 365 content, including your Planner tasks. You do not need a special Planner license or any extra add on beyond that. If you can already ask Copilot about your email and files, you can ask it about your tasks. What can Copilot Chat do with Planner today? Think of the Planner connection in Copilot Chat as your quick daily check in. It is built for the small stuff you would otherwise click through a board to handle. Three things work really well: Ask what is on your plate. A prompt like "Look at my Planner board, anything I have to get done today?" pulls back the tasks assigned to you, what is due today, what is coming up, and what has quietly slipped past its due date. Mark tasks complete. "Mark the lunch and dinner tasks from last week as completed" cleans both of them up in one go. Copilot is forgiving about wording, so you do not have to phrase it perfectly. Create a simple task. "Add a task for me on Friday for meeting Chewy and Buddy for happy hour" creates the task and sets the due date to Friday for you. That combination covers a surprising amount of daily task management. You get a clear read on your day, you close out what is done, and you capture the new thing before you forget it, all without leaving the chat window. What can Copilot Chat not do with Planner? This is where a few people get tripped up, because the Planner connection in Copilot Chat is deliberately narrow. It is built around create task, update task, and search task. Anything bigger than that gets a polite "sorry, I cannot do that." Right now that includes: Deleting tasks Creating a brand new plan or board Assigning or reassigning a task to another person Microsoft has signaled that more of this is on the way, so it is worth trying again every few weeks. In the meantime, this is not a dead end, because there is a second option that already handles the bigger jobs. What is the Planner agent, and how is it different? The Planner agent is a built-in agent inside Copilot Chat, and it has been available for a while. Plenty of project management teams have never heard of it, which is a shame, because it does the next level work that the basic connection turns down. To find it, click the plus button in Copilot Chat, choose to chat with an agent, and start typing Planner. Pick the Planner agent and you are in. Same chat window, same plain English prompts, more capability. Give the agent a prompt like "Create a new plan named Copilot Training Class in Planner" and instead of declining, it proposes the plan, waits for you to save it, and then gives you a link straight into Planner. That one difference, being able to create the plan itself, opens the door to the good stuff. Can Copilot turn a meeting into a Planner board? Yes, and this is the part worth telling your team about. You have the meeting, you talk through who is doing what, and then somebody has to sit down afterward and turn all of that into a plan. The Planner agent can do that step for you. In the agent chat, type your prompt and use a forward slash to point at the meeting you want, then ask for what you need. For example: "Review my meeting /Webinar Planning and create a Planner board from that meeting. Create the tasks and assign them to the proper person." From there the agent reads the meeting, pulls out what was discussed and decided, and proposes a board. In the webinar planning example from the video, one conversation between two people turned into a plan with four buckets, three goals, and seven tasks, organized into delivery, content, promotion, and setup, with workback dates already filled in. You hit save, and the agent creates the board and hands you a link to open it. The value here is not that it saves clicks. It is that all the rich context from the conversation, the things people casually agreed to do, makes it onto the board instead of evaporating the moment the meeting ends. To see the whole thing happen start to finish, watch the walkthrough in the video. What still needs a human touch? Two things, and both are easy to plan around. First, the Planner connection cannot assign people. The agent works around it nicely by writing the recommended owner into the notes field of each task, so you still have to open each task and set the real assignment. Annoying, but it is a couple of minutes of clicking rather than an hour of planning. Second, the dates are assumptions. The agent builds a sensible workback schedule, but it is guessing at your timeline. Trust but verify is the rule here. Copilot is a very fast assistant, not the person in charge, so have someone walk the board once and confirm the dates and the scope line up with reality. Which one should you use? Use regular Copilot Chat for the quick one hitters during your day: what is due, mark it done, add a task. Use the Planner agent when you are actually building something: a new plan, a project board, or anything that starts from a meeting. Most people will end up using both, and it costs nothing to try the agent since it is already sitting in your Copilot Chat. Frequently Asked Questions Do I need a special license to use Planner with Copilot? You need a Microsoft 365 Copilot license, which includes Work IQ and gives Copilot access to your Planner tasks. No extra Planner license or add on is required. Can Copilot Chat create a new Planner plan? Not in regular Copilot Chat, which is limited to creating, updating, and searching tasks. The built in Planner agent can create a new plan, propose its structure, and give you a link to open it in Planner. Can Copilot assign Planner tasks to other people? No. Neither Copilot Chat nor the Planner agent can set or change assignments today. The Planner agent puts the recommended owner in each task's notes field so you can apply the assignments yourself in a few clicks. How do I find the Planner agent in Copilot Chat? Click the plus button in Copilot Chat, choose to chat with an agent, type Planner, and select the Planner agent. It is a built in agent, so there is nothing to install. Can Copilot build a Planner board from a meeting? Yes, using the Planner agent. Point it at a meeting with a forward slash and ask it to create a Planner board from that meeting. It reviews the meeting, proposes buckets, goals, tasks, and workback dates, and creates the board once you approve it. Can Copilot delete Planner tasks? No. Deleting is not supported today, so you will need to remove tasks in Planner yourself. Copilot can mark them complete, which handles most cleanup situations. Key Takeaways A Microsoft 365 Copilot license is all you need to use Planner with Copilot, because it includes the Work IQ access that connects Copilot to your tasks. Regular Copilot Chat handles day to day Planner work: reading your tasks, creating simple ones, and marking things complete. Copilot Chat cannot delete tasks, create new plans, or assign work to other people, and Microsoft has said more capability is coming. The built in Planner agent, found under the plus button in Copilot Chat, can create full plans and boards that regular chat cannot. The Planner agent can turn a meeting into a complete board, with buckets, goals, tasks, and workback dates pulled from what was actually discussed. Assignments still have to be applied by a person, and the agent helps by writing the recommended owner into each task's notes field. Always review the dates and scope a Copilot generated board proposes, because the timeline is an educated guess, not a decision. Need a Hand? If all the Copilot news feels like a lot to keep up with, you are not alone, and you do not have to figure it out by yourself. The team at PowerApps911 does training, consulting, and mentoring, including private sessions built to get an entire internal team excited and productive with tools like this. Reach out at by clicking the Contact Us button and let's build something awesome together.

  • The AI Expense Receipt App: How a Simple Power App Kills Expense Report Busywork

    TL;DR: Turning in travel receipts is a small, annoying task that quietly eats hours and frustrates your accounting team. This post walks through a simple Power Apps solution that lets you snap a photo of a receipt, uses an AI prompt to extract the vendor, date, amount, and category, and then sends accounting one clean, organized email per trip. Nobody has ever returned from a business trip excited to tackle their expense report. You come home with a wad of crumpled receipts stuffed in a laptop bag, a Chick-fil-A napkin with a total scribbled on it, and a very patient person in accounting who will email you three times before you finally deal with it. That is exactly the pain that led to this app. After joining TMC Global and getting a corporate credit card, receipts suddenly became a real requirement. So, on the flight out to see Microsoft, we built a small, focused Power App that captures receipts on the phone, uses AI to read them, and provides accounting with exactly what they need. In this post, you will learn what the app does, how AI takes the data entry out of the equation, why keeping a human in the loop matters, and how a tiny internal app like this can pay for itself almost immediately. If you’d rather watch the full walkthrough, check out the video here: https://youtu.be/rHBWxmqXnFg What Problem Does This AI Expense Report App Actually Solve? The real issue isn't "I cannot store a receipt." Phones already do that. The problem lies in everything surrounding it: Receipts pile up loose in a bag, an inbox, or a camera roll, and some never make it back. Someone has to type the vendor, date, amount, and category into a form or a spreadsheet, usually days later. Accounting receives a dump of files named IMG_4821.jpg and has to guess which Uber ride corresponds to which charge. The whole process gets delayed, which in turn delays reimbursement, closing the books, and makes everyone a little grumpy. This app tackles the friction at the exact moment it happens: when you are standing there holding the receipt. Capture it right then, let AI read it, and move on with your day. How Does the App Work from the User Side? The entire experience consists of three screens, and it is deliberately simple. The flow looks like this: 1. Create the Trip Before (or during) a trip, you add a trip with a name and a date. This serves as the container for everything else, ensuring a receipt is never floating without context. When you return to the app later, trips are sorted by date, because the oldest unsubmitted trip is usually the one accounting is asking about. 2. Snap the Receipt When you receive a receipt, you open the app and add a picture. On a phone, this means the camera opens right there at the table, allowing you to capture the receipt before it has a chance to get lost. You can also select a photo you took earlier if you are catching up later. 3. Let AI Read It Press scan, and an AI prompt reads the receipt image and extracts the four key pieces of information: the vendor, the date, the total amount, and a category. No typing is required. The fields come back filled in and ready for review. 4. Review, Tag, and Save The extracted values are added to the correct input fields. These fields are editable, so if you need to make any changes while reviewing the details, just click the field and type. If everything looks good, hit Save. That’s the entire effort per receipt: a photo, a glance, and a tap. 5. Send the Whole Trip to Accounting in One Click When the trip is complete, one button generates a single email to accounting with a clean table of every receipt from that trip, plus all the receipt images attached and automatically named so each attachment corresponds to the correct row. No more "which Uber receipt is this?" emails. Just one message that contains everything they need. Why Use AI for Reading the Receipts Instead of Typing Them In? Because reading a receipt is precisely the kind of boring, structured, high-volume task that AI excels at, while humans struggle to perform consistently. The app uses an AI prompt that analyzes the receipt photo and returns the fields in a consistent, structured format every time. That consistency is crucial. It means the data flows straight into the app and into the email without anyone having to massage it. The prompt is also designed to be honest about uncertainty. If it cannot confidently read a text field, it states so instead of making something up. If it cannot confidently read the amount, it does not guess a number. An AI that admits it is unsure is far more useful than one that confidently fabricates information on a document your finance team will rely on. Does the AI Cost a Fortune to Run? It does not, and that is a lesson worth learning. Extracting four fields from a receipt is a basic task, so a small, inexpensive model handles it perfectly well. Swapping in a top-tier premium model for the same job produced essentially the same answer, took roughly four times longer, and cost around 100 times more in credits. The takeaway: pick the smallest, cheapest model that does the job consistently. Save the expensive models for problems that genuinely need them. On a task you run dozens of times per trip, that decision is the difference between a scalable solution and one your finance team quietly kills. Should AI Be Trusted to Submit Expenses on Its Own? No, and the app is intentionally built so that it does not. Every field the AI extracts lands in an editable input, not a locked label. Before you save, you get a two-second sanity check: does nine dollars for that Chick-fil-A run sound right? Yes? Move on. If the receipt was smudged, faded, or covered in barbecue sauce, you can fix it right there. That is the human-in-the-loop principle, and it matters most in this scenario. When those numbers reach accounting, you are the one who is accountable, not the AI. Good AI solutions do not remove the human from decisions that carry responsibility; they remove the typing. What Is the Business Case for an App This Small? It is tempting to look at a three-screen receipt app and think it is too small to matter. But let’s do the math the other way. Say handling receipts manually costs you 30 minutes per trip in typing, hunting for files, and back-and-forth with accounting. Ten trips a year equals five hours. Multiply that across a team of travelers, and it becomes real money, plus faster closes, cleaner records, and fewer awkward reminders from finance. The bigger win is behavioral. The app makes the right thing the easy thing. Because capturing a receipt takes seconds and happens at the table, receipts stop going missing, which is where most expense pain actually originates. Where Else Does This Pattern Apply? Snap a photo, let AI extract structured data, keep a human review step, then push a clean summary to whoever needs it. This pattern shows up everywhere: Field service technicians capturing parts, serial numbers, or equipment nameplates Warehouse teams pulling data off packing slips and delivery paperwork Sales teams capturing business cards and event badges into the CRM Facilities teams logging inspection forms and safety checklists Accounts payable processing vendor invoices that show up as PDFs and photos If your team currently retypes something a camera and AI could read, this pattern probably fits. Why Should You Build Apps for Yourself, Not Just for Other People? Here’s the part that often gets overlooked. Most makers build apps for other departments and never turn that skill on their own daily annoyances. This app is not glamorous. It has no edit screen and no fancy reporting because those weren’t needed. It was built to solve one specific irritation for one specific person, and it does that perfectly. That is a completely legitimate reason to build something. The best internal apps are usually small, ugly, and used every single week. Look at your own workflow, find the thing you grumble about every month, and build the two-screen version of the fix. You will use it more than anything else you have created. And if everyone shows up jealous, then you could enhance this app. If Accounting shows up and asks, you could add all kinds of quick updates that take this from a Shane-only app to one that serves the entire company. That is the life of a Power Apps app—quick iterations to be exactly what your business needs. Frequently Asked Questions What Does the AI Receipt Scanning App Do? It is a Power Apps solution that allows you to photograph a travel receipt with your phone, uses an AI prompt to automatically extract the vendor, date, total amount, and expense category from the image, stores the receipt against a specific trip, and then generates a single email to accounting containing a summary table of all receipts for that trip with the images attached and clearly named. Can AI Accurately Read Receipts from a Photo? Yes, for standard printed receipts, it is very reliable because extracting a few structured fields from a document is a well-established AI task. Accuracy still depends on image quality, so a faded, torn, or stained receipt can produce an incorrect value. That is why the app presents every extracted field as an editable input for a quick human review before saving. Also, it doesn't have to be printed; I have tested it on handwritten receipts with great results as well. Do You Need an Expensive AI Model to Extract Receipt Data? No. A small, low-cost model handles receipt extraction accurately. In testing, a premium high-end model returned essentially the same result while taking about four times longer and consuming roughly 100 times more credits. Always choose the smallest model that does the job consistently and reserve premium models for genuinely complex reasoning tasks. Why Keep a Human Review Step if AI Does the Extraction? Because accountability stays with the person submitting the expense. AI removes the data entry, not the responsibility. A quick human glance at the extracted amount and vendor catches the rare misread before it reaches finance, and it costs about two seconds per receipt. Does the App Work on a Phone? Yes, and the phone is where it matters most. The picture control behaves differently on mobile than on a desktop: on a phone, it offers to open the camera and take a new photo, so you can capture a receipt the moment you get it instead of dealing with a pile of paper days later. Can I Get a Copy of This App? Yes. The app was packaged as a solution, and subscribers to any PowerApps911 training plan at training.powerapps911.com get access to the YouTube library, which includes this app plus a long list of other downloadable apps built on the channel over the years. Key Takeaways Expense reporting pain isn’t about storing receipts; it’s about the data entry, the naming, and the back-and-forth with accounting, which is exactly what this app removes. An AI prompt reads the receipt photo and extracts the vendor, date, total, and category automatically, so the maker never types receipt data again. Capturing the receipt on your phone at the moment you receive it is what actually prevents receipts from going missing. One button sends accounting a single email per trip with a summary table and clearly named attachments, so nobody has to match images to line items. Choose the smallest AI model that does the job consistently: a premium model produced the same receipt result for roughly 100 times the cost. Keep a human in the loop on anything you are accountable for by leaving AI-extracted values in editable fields for a quick review. The photo, extract, review, send pattern transfers directly to invoices, packing slips, inspection forms, business cards, and equipment tags. Small internal apps that fix your own daily annoyances are often the highest value apps you will ever build. Ready to Put AI to Work on Your Own Busywork? If you want help building solutions like this or taking your Power Platform skills to the next level, the team at PowerApps911 can help. We do consulting, coaching, and training for organizations that want to stop doing things the slow way. Reach out and let us build something awesome together. Just click that Contact button and tell us how we can help.

  • The New Copilot Studio: What Changed, and Why Your Agents Suddenly Got a Lot Smarter

    TL;DR: Copilot Studio has a brand-new build experience running on a new agent harness. One simplified screen, better models, reusable skills, memory, and an orchestrator with real tenacity. It is powerful enough that a working inventory management agent can be built with one sentence of instructions and one MCP tool. Here is what is different, what to watch out for on billing, and how to get results fast. If you have built agents in Copilot Studio before, you know the drill. Lots of tabs. Lots of screens. Topics, nodes, triggers, and a whole lot of clicking to get from idea to working agent. And then, after all that work, you ask your agent to do something slightly ambitious and it shrugs at you and says it could not do it. That is over. Microsoft has shipped a completely new way to build in Copilot Studio, and it is not a coat of paint. It is a different engine under the hood. In this post you will learn what the new experience actually changes, how skills and tools and memory fit together, what the billing change means for your budget, and then you will see a real example where one sentence of instructions produced a working inventory agent. If you would rather watch the full walkthrough, check out the video here: The New Copilot Studio walkthrough Or, if you want to see a fully functional agent built in 60 seconds check out this video: Build a Working Inventory Agent in 60 Seconds with Dataverse MCP What is the new Copilot Studio experience? It is a rebuild of the agent building experience at copilotstudio.microsoft.com. When you land on the familiar home page, you get a Try now option. Click it, the page reloads, and everything looks different. That is the new experience, and it runs on what Microsoft calls a new harness, which is their fancy way of saying this thing is fundamentally different under the hood, not just visually. The good news for the nervous among you: it is a toggle, not a one way door. There is a new experience badge in the corner, and if you need to go back to work on one of your older agents, you click it, tell it why you are leaving, hit submit, and you are back in the classic builder. For now, you make a conscious choice about which side you are working on. Why does the new build screen look so empty? Because it is one screen. That is the whole build studio. In the old experience you had screens and tabs and places to jump around. Now you name the agent, set the icon (it is hiding behind the image itself, so click it, you are welcome), and everything else lives in one panel: model, skills, tools, knowledge, connected agents, memory, and instructions. Here is the important part. Simpler does not mean it does less. It actually does more. The complexity moved from you to the orchestrator. How is the new harness different from the old one? Model choice is now yours The first thing you will notice on the right is a model picker, and the list is different from the old agent tooling. You will see frontier class models in there. Opus 5 is the default at the moment. Your list may differ depending on the date and what your company has enabled, which is completely normal. Choose deliberately, because the bigger the model, the more credits it burns. The most capable reasoning models are also the most expensive ones to run. The orchestrator finally has tenacity This is the real story. If you have used Copilot and then used Cowork, you have felt the difference. You ask Copilot to do something hard it tries hard and if it fails it says sorry, I could not. You ask Cowork and it just goes like a dog with a bone. That tenacity is what Microsoft brought to the new Copilot Studio harness. Practically, that means your agents keep working the problem instead of giving up and asking you to try a different question. The old builder had a habit of saying I tried, it did not work, ask me something else. These new agents are far more robust than that. Can you reuse your Cowork skills inside Copilot Studio? Yes, and this might be the biggest quality of life win in the whole release. Skills are now first class citizens in Copilot Studio. If skills are new to you, think of a skill as a recipe. It is a set of steps you want to be repeatable. Say every time you build a PowerPoint deck you want your brand colors, your fonts, your logos, and your standard intro slide applied. Instead of typing that into a prompt every single time, you package it once as a skill and call it forever. Skills can get far more complicated than that, but that is the right mental model to start with. The reason this matters so much: skills use the skill.md format, which has become a universal standard. The same skill works in Cowork, in Copilot, and in other AI tools. Build it once, use it everywhere. Sidenote: Skills are worth investing in. Lots of AI stuff comes and go but they seem to be core to a lot of platforms, learning them better is a good use of your time. The packaging gotcha nobody warns you about In Cowork you can find your skills under Customize. Open one and you will see the instructions plus any supporting files, like logo images. If you use the ellipses and click download, you only get the skill.md recipe file. Your logos and supporting files do not come along. So package it yourself. Go to your OneDrive, into Documents, then Cowork, then Skills, and open the skill folder. Select everything in there, including skill.md and every supporting file, right click, and compress to a zip. Name it something sensible like brand-guide.zip. Then in Copilot Studio, go to skills, click upload (the upload button, not the tempting area next to it), pick your zip, and a few seconds later the skill is live in your agent. No skill yet? Hit plus and create from blank. You give it a name, a description of when to use it, and the instructions. Pro tip: do not hand write the instructions. A real skill can run hundreds of lines. Ask an AI tool to build it for you. Tell it what you are trying to accomplish, let it interview you about your colors, fonts, and standards, and let it write the file. You can absolutely write it yourself, but why would you. Do tools work the same way as before? Mostly yes, with a slightly different interface. Hit plus on tools and you will find the same connectors you have been using in Power Apps and Power Automate for years, plus MCP servers like the SharePoint MCP server. Add a tool, click into it, and configure it. The part people get wrong: name and description are not decoration, they are how the orchestrator decides when to call the tool. Do not leave a tool named Get items. Rename it to something obvious like Get inventory data. When your agent is misbehaving and not calling the tool you expected, nine times out of ten your name and description are the problem. The rest is familiar. You choose whether the tool authenticates as the person using the agent or as the maker who built it. Inputs can be hardcoded values or left to AI, though the UI now makes you click into the field and choose New before the dropdown appears. If you leave an input set to AI, write a solid description of what you want generated, otherwise the agent will just ask the user for it at runtime. Outputs default to returning everything, and different tools expose different options, so poke around. One more thing worth knowing: for something like sending email you often have a choice between a prescriptive connector action and an MCP server that just knows how to send email. Both work. Which one you want depends on how much control you need. What changed with knowledge? By default your new agent can search the whole web through Bing. A lot of the time that is not what you want, so turn it off. Then add the knowledge you actually trust: specific public websites, SharePoint, OneDrive for Business, or a file uploaded directly to the agent. Here is the security detail to burn into your brain. If you upload a file directly to the agent, security is not honored. Anyone with access to the agent has access to that document. If you point at SharePoint or OneDrive instead, the agent uses the credentials of the person asking, so users only get results from data they already have rights to see. That difference will save you an awkward conversation someday. What are connected agents and agent memory? Connected agents let you bring other agents in as helpers. Your main agent can hand work to a child agent when it needs that specialty. This is how you build bigger solutions without cramming everything into one giant agent. Memory is genuinely new here, and it is still in preview. The idea is your agent develops a sense of what you have done with it before, and that memory is tied to that specific agent. Imagine a reporting agent that asks what region you are in the first time and never has to ask again. If you have used memory in Copilot or ChatGPT, the concept is familiar. Early testing works well, but it is preview, so do not bet the business on it just yet. What goes in the instructions? Instructions are where you tell the agent its purpose in life. Your job is building PowerPoint decks or helping to manage inventory. When you get asked for a deck, call the brand guide skill. That kind of thing. It is also where personality lives, so if you want every response to include a dog joke, this is your moment. (I love a good dog joke or pun) Aim for clear guidance rather than hyper specific micromanagement of every possible path. Tell it what it does, which tools and skills to use for what, and how to behave. How do you test, evaluate, and ship it? Preview lets you use the agent while you build. There is a great toggle up top that flips between the maker view, full of nerdy detail about which tool got called and what it was thinking, and end user preview, which shows what your users will actually see without the technical noise. Use the first one to debug and the second one to sanity check the experience. Evaluate lets you set up test sets and run standardized tests against your agent. It is in preview, but it is there today. Monitor shows sessions, billing, and what is actually happening in production. And do not forget to hit save. There is no autosave. Then use the publish dropdown to push to a demo website, embed in a web app, or (most likely) publish to Teams and Microsoft 365. Publishing takes a minute or two, then your channels light up and your agent shows up right inside M365 Copilot where your users already live. What does this change about billing? This one deserves your full attention. The new harness runs on Copilot credits, all the time. Building and previewing now costs credits. The old builder did not bill you while you were testing during the build phase. This one does. Every time the agent runs and thinks, that is credits. Your M365 Copilot license does not cover it. In the old model, depending on your licensing and scenario, some usage could be covered. On the new harness it is credits all the time. Model choice is a budget decision. The most capable reasoning models cost the most to run. Match the model to the job. None of that is a reason to avoid the new experience. It is a reason to plan for it and to be intentional about which agents get the expensive model. How much can it really do with so little? A one minute inventory agent Here is the demo that makes the point better than any feature list. The goal was an agent to manage order items and vendors sitting in Dataverse. The build took about a minute, start to finish. The entire build was two steps: One sentence of instructions: "You are an agent for managing order items and vendors for the Aug301 project using the Dataverse MCP tool." One tool: the Microsoft Dataverse MCP server. Connect, click add, done. That is it. Ask it for the list of vendors and it comes back with the right four vendors: Amazon, Costco, Dell, and Target. Ask it to update Amazon to be valid through the end of 2027 and it writes the change back, because the Dataverse MCP reads and writes. Ask it to add a new webcam to the items table and it goes and finds the right table, pulls the schema, asks you for the cost and the vendor, and creates the record. The kicker: the vendor column is a lookup. Nobody told the agent that it was a relational lookup or how to connect it. It figured that out on its own. Should you ship a one sentence agent to production? Please do not. It makes a spectacular demo, and it genuinely works, but one sentence leaves a lot to chance. Some things it will figure out. Some things it will not, and you will not know which until a user finds the weird path. The production version of that same inventory agent took about five minutes. The difference was the instructions. Instead of one sentence, it listed the five specific tables the agent is allowed to touch (with the word only, so it never wanders into one of those other vendor tables), what to consider when creating orders, what to do when deleting orders, how to handle the status choice column, and general behavior rules. Golden rule of agent building: you want the agent to think as little as possible. The more prescriptive you are, the less it improvises, and the less you have to worry. Frequently Asked Questions What is the new Copilot Studio harness? The harness is the new engine underneath Copilot Studio agents. It replaces the old orchestration model with one that picks from newer frontier models, keeps working a problem instead of giving up, and supports skills, connected agents, and memory. You opt into it with the Try now button at copilotstudio.microsoft.com, and you can switch back to the classic builder at any time. Does the new Copilot Studio cost more? It changes how you are billed. Everything on the new harness runs on Copilot credits, including the time you spend building and previewing your agent, which the old builder did not charge for. M365 Copilot license coverage does not apply the way it sometimes did before. Bigger models consume more credits, so model choice is a budget decision. Can I use my Cowork skills in Copilot Studio? Yes. Skills use the universal skill.md format, so the same skill works across Cowork, Copilot, and Copilot Studio. To move one over, open the skill folder in your OneDrive under Documents, Cowork, Skills, zip the entire folder contents, and upload the zip in Copilot Studio. Downloading a skill from Cowork only gives you the skill.md file, so supporting files like logos have to be packaged manually. Why does my agent ignore a tool I added? Almost always because the tool name and description are too generic. The orchestrator reads the name and description to decide when a tool is relevant, so a tool called Get items tells it nothing. Rename it to something specific like Get inventory data and write a description that states exactly when to use it. Is it safe to upload files directly as agent knowledge? Only if everyone with access to the agent should also have access to that file, because directly uploaded files do not honor per-user security. If you point the agent at SharePoint or OneDrive for Business instead, it uses the credentials of the person asking, so each user only sees results from data they already have permission to view. Key Takeaways The new Copilot Studio experience is opt-in through the Try now button, and you can switch back to the classic builder whenever you need to. The entire agent builder is now one screen, but it does more than the old multi-tab experience, not less. The new harness brings Cowork style tenacity, so agents keep working the problem instead of giving up and asking you to rephrase. Everything on the new harness is billed in Copilot credits, including build and preview time, and bigger models cost more. Skills built for Cowork work in Copilot Studio, but you have to zip the full skill folder yourself because downloading only gets you the skill.md file. Tool names and descriptions drive orchestration, so a vague tool name is the most common reason an agent ignores a tool. A working Dataverse agent can be built in about one minute with one sentence of instructions and one MCP tool, but a production agent needs prescriptive instructions and a human review. Filling in Dataverse and SharePoint description fields is the single highest value prep work you can do today for the agentic era. Need a Hand? Everything above comes out of real client work, whether that is training teams to build this stuff, building it for them, or co-building it alongside them. If you want help building agents like these, sorting out the difference between Copilot, Cowork, the old Copilot Studio, the new Copilot Studio, and Foundry, or just getting your team up to speed, the team at PowerApps911 can help. Reach out by clicking the Contact button or check out the upcoming live Copilot Studio class over at training.powerapps911.com. Let's build something awesome together.

  • PowerApps911 Has a Bigger Family

    POWERAPPS911 · A TMC GLOBAL COMPANY Same team, same Power Platform expertise, a much bigger family behind us. Here is what is changing, and everything that is not. TL;DR PowerApps911 is now part of TMC Global, a unified family that brings together PowerApps911, Technology Management Concepts (TMC), and The TM Group (TMG). We are still the same Power Platform team you know for consulting, mentoring, projects, training, and real-world expertise. What is new is how far we can take you beyond the Power Platform, with a larger team supporting Dynamics 365, Business Central, Microsoft 365, Azure, data, and AI, all through the partner you already trust. In This Article → What TMC Global means for PowerApps911 customers → Why Power Platform is still at the center of what we do → What you can now access beyond PowerApps911 → Where this leaves you and us → Quick answers about what is changing If you have been around PowerApps911 for a while, you know what we are about: helping people actually get things done with the Microsoft Power Platform. Sometimes that means teaching you to build it yourself. Sometimes it means working alongside you when you are stuck. And sometimes it means building the whole thing for you. That is not changing. What is changing is the size of the team behind us and how far we can now go with you. Earlier this year, PowerApps911 joined Technology Management Concepts, bringing our Power Platform and AI expertise into a larger Microsoft organization. Today, we are introducing the unified brand for that growing family: TMC Global. TMC Global brings together PowerApps911, TMC, and The TM Group under one connected organization, combining decades of Microsoft experience across business applications, cloud, data, AI, and the Power Platform. We are now PowerApps911, a TMC Global company, and everything you love about us is still right here. What Does TMC Global Mean for PowerApps911 Customers? For most of you, the first thing to know is simple: PowerApps911 is not going anywhere. You will still find the training, mentoring, projects, and Power Platform consulting you come to us for. You will still work with the experts you know across Power Apps, Power Automate, Power BI, Power Pages, Copilot Studio, Dataverse, Fabric, and the rest of the stack we live in every day. But now, when your needs reach beyond the Power Platform, the conversation does not have to end there. Maybe the app you are building needs to connect more deeply with Dynamics 365. Perhaps you have outgrown your current ERP and need to look at Business Central. Maybe your organization is trying to make sense of Microsoft 365 licensing, Azure, or its broader AI strategy. Those needs used to mean bringing another partner into the room. Now they are part of the same one. So what does that bigger team actually bring to the table? Real depth, earned over decades. TMC has spent nearly forty years on Dynamics ERP and CRM, with more than 3,000 implementations and a 98% client retention rate. The TM Group adds serious migration muscle, the kind that moves organizations off aging systems onto the modern Microsoft stack without breaking what already works. Put that next to our Power Platform, Copilot, and AI expertise, and you have coverage across just about every layer of a Microsoft environment you are likely to touch. It also opens doors you could not reach through a Power Platform practice alone, like AI at the Core, TMC’s approach to building AI readiness into a solution from the first design decision instead of bolting it on at the end. "I have spent almost forty years building toward one idea: a partner you can bring your entire Microsoft world to, and never outgrow. TMC Global is that idea, finally whole. PowerApps911 is a big part of why it works, because they have always believed what we believe, that the best partner makes you smarter, not more dependent." — Jennifer Harris, Founder and CEO, TMC Global One partner. Every product. No gaps. Power Platform Is Still Our Thing We should probably make this part especially clear. Joining a larger Microsoft organization does not turn PowerApps911 into a generalist. Our team stays focused on the thing that made PowerApps911 what it is: helping people build better solutions and become better makers. We have trained more than 15,000 students worldwide and worked one-on-one with hundreds of organizations. Our education runs through Power Platform University, a world-class program with students across six continents, alongside live and on-demand training, mentoring, quick consulting, and full solution builds. Here is something we are quietly proud of. Microsoft itself brings us in to help train its own people on its own products. When the company that builds the platform trusts you to teach it, that is not a credential you pick up by accident, and it is not going anywhere. That expertise does not get diluted by TMC Global. It gets connected to more expertise around it. Your Power App Doesn’t Live on an Island This is where we get especially excited about what comes next. The solutions we help you build rarely live by themselves. A Power App connects to Dataverse, automates a process through Power Automate, pulls data from another business system, and eventually becomes part of a much larger technology strategy. As those solutions grow, so do the questions. How does this connect to our ERP? What about our CRM? Where should our data live? How do we govern all of it? Where does Copilot fit? Do we have the right Microsoft licensing? Those are bigger questions than any single practice can answer alone. Through TMC Global, PowerApps911 customers now have access to deep expertise across Dynamics 365, Business Central, Microsoft 365, Azure, data, and AI, right alongside the Power Platform capabilities you already know us for. Take Microsoft licensing, one of the quietest places organizations lose money. As a TMC Global company, we can now handle your Microsoft 365, Dynamics, and Azure licensing directly, as your trusted Microsoft partner. That means the people who understand your solutions are the same people right-sizing what you pay for, trimming the licenses you are not using, and giving you a single source of truth for everything Microsoft, instead of piecing it together from a stack of renewal emails. Less time, less spend, one place to go. You do not have to outgrow PowerApps911 when your technology needs are outgrowing the Power Platform. Now we are growing with you. The Microsoft Partner You’ll Never Outgrow PowerApps911 has always been about meeting people where they are. If you want to learn, we will teach you. If you want help building, we will build with you. If you want us to take the project and run with it, we can do that too. TMC Global takes that same philosophy and extends it across the whole Microsoft ecosystem. For our customers and community, that means you can still come to PowerApps911 for exactly what you have always expected from us, with a much larger team standing behind us the moment you need something more. We are still PowerApps911. We just have a lot more people to call when things get complicated. And honestly, we think that (in Shane’s words) “It is pretty awesome”. Welcome to TMC Global. The Microsoft partner you’ll never outgrow. Common Questions, Answered Is the PowerApps911 name going away? No. PowerApps911 continues as a TMC Global company, serving customers with the same Power Platform consulting, mentoring, and training you know us for. Will I still work with the PowerApps911 team? Yes. Your existing relationships with the PowerApps911 team stay exactly as they are. Is Power Platform University changing? No. Power Platform University keeps running, with the same teaching-first approach and the same instructors. The only difference is the depth of expertise now standing behind it. Can I still buy PowerApps911 training and mentoring? Yes. We continue to offer live and self-paced training, Power Platform University, mentoring, and consulting. What new services can I access? Through the broader TMC Global organization, you can now tap expertise across Dynamics 365, Business Central, Microsoft 365, Azure, data, AI, and licensing. Can TMC Global help with our Microsoft licensing? Yes. As a TMC Global company, we can now manage and optimize your Microsoft 365, Dynamics, and Azure licensing directly, which often means real savings and one trusted source for everything Microsoft. Who should I contact if I need help? Keep reaching out to your existing PowerApps911 contacts. If your needs extend into another part of the Microsoft ecosystem, we will connect you with the right experts inside TMC Global. Have questions about what this means for you? PowerApps911 is still here, and we’re still the same team you know. If you’re curious about the bigger TMC Global family, or you want to talk through your next Microsoft project, we’d love to hear from you.

  • What Is Copilot Cowork and Why Does GA Matter?

    Copilot Cowork is Officially Generally Available: What You Need to Know And honestly? We're excited! We love us some Cowork. We've been using Cowork daily since it first appeared in the Frontier program. It has quietly transformed how we work. Not because it gives better answers than chat, but because it actually does the work. That's always been the magic of Cowork. Traditional AI chat is great at helping us think through problems. Cowork excels at taking a goal and executing a series of steps to achieve it. Instead of asking AI for advice, we’re increasingly asking AI to complete tasks and deliver finished results. Microsoft describes it as handling long-running, multi-step work, and that aligns perfectly with our real-world experiences. More of a visual learner? We have a complete video walkthrough with demos of what's new here: What is new with Copilot Cowork. What Changed When Cowork Moved from Frontier to GA? Frontier was Microsoft's way of saying, "This is the future, but we're still figuring some things out." The technology was evolving quickly. The user experience was changing rapidly. And the licensing story was still being developed. GA marks Microsoft planting a flag in the ground. Cowork is now a real product with a solid licensing model, governance controls, and a clear path forward. How Much Does Copilot Cowork Cost? The biggest surprise for many will be that Cowork is no longer simply "included." You now need a Microsoft 365 Copilot license, and Cowork usage consumes Copilot Credits. That's a tougher answer than many of us were hoping for, but it isn't surprising. Long-running agentic tasks consume a lot of tokens, call many services, and can run for extended periods. Someone has to pay for that compute. And there is significant value generated from all that compute. The good news is Microsoft is providing organizations with controls around usage, spending limits, and administration. Cowork is off by default, and admins can decide who gets access and how much can be consumed. We poked around for a bit, and the policies look pretty good and flexible. We need to explore more, though. Do we wish it was an all-you-can-eat buffet? Absolutely. Do we understand why it isn't? Also, yes. Microsoft's own testing indicates Cowork can execute similar work at roughly 30 to 40% lower cost than comparable Claude Cowork with M365 scenarios, which helps soften the impact a bit. What New Features Did Copilot Cowork GA Introduce? GA is bringing some genuinely interesting updates: More model choices, including GPT 5.5, with Microsoft's upcoming Cowork 1 model arriving soon. Model flexibility continues to be one of the strongest reasons to build on Microsoft's AI platform. (This is our big bet on why Microsoft wins in the end.) Improved plugin and skill management, making it easier to extend what Cowork can do. Browser Use, allowing Cowork to interact with websites through a local Edge browser. (Still waiting for this one to light up in our tenant.) A refined user experience that is rolling out across tenants. (Also not showing up for us quite yet but shows up for our coworkers—very rude!) Is Copilot Cowork Worth the Cost? At the end of the day, we would have loved for Cowork to be unlimited. But if the tradeoff is getting a sustainable platform that Microsoft can continue investing heavily in, then the pricing model is reasonable. More importantly, the product is genuinely good. We use it. We like it. We rely on it. Now that it's GA, we expect a lot more organizations to start taking it seriously. If you're trying to figure out licensing, governance, adoption, training, or how Cowork fits into your broader Microsoft AI strategy, we're here to help. We spend a lot of time helping organizations make sense of Copilot, Cowork, Copilot Studio, and the rapidly growing Microsoft AI ecosystem. Just click the Contact button. Now excuse us while we keep trying to get Browser Use to show up in our tenant. 😁 Key Takeaways Copilot Cowork is now Generally Available, having graduated from Microsoft's Frontier preview program. Cowork is built for long-running, multi-step agentic tasks—it completes work and returns a result, rather than just offering advice. A Microsoft 365 Copilot license is required, and usage is metered through Copilot Credits. Cowork is off by default; admins control access and can set spending limits at the organizational level. Microsoft's own testing shows Cowork completes similar tasks at roughly 30–40% lower cost than comparable Claude Cowork scenarios. GA introduces additional model choices (including GPT 5.5), improved skill management, Browser Use via Edge, and a refreshed UI. Organizations building a Microsoft AI strategy should plan for Cowork alongside Copilot Studio and Microsoft 365 Copilot. If you have any questions or need assistance with Copilot Cowork, just click the button below and let us know how we can assist. FAQ Q: What is Copilot Cowork? A: Copilot Cowork is Microsoft's agentic AI assistant designed to handle long-running, multi-step tasks. Rather than answering questions, it executes a series of steps to complete a goal and returns a finished result. Q: Is Copilot Cowork included in Microsoft 365? A: No. Cowork requires a Microsoft 365 Copilot license, and usage consumes Copilot Credits. It is not included in base Microsoft 365 plans. Q: What is the difference between Microsoft Copilot chat and Copilot Cowork? A: Copilot chat helps you think through problems and provides answers. Cowork takes a goal, runs a multi-step process autonomously, and brings back a completed result. Q: What are Copilot Credits and how do they work? A: Copilot Credits are the consumption-based currency that powers Cowork tasks. More complex, longer-running tasks consume more credits. Organizations can set spending limits through the admin center. Q: Can IT admins control who uses Copilot Cowork? A: Yes. Cowork is off by default, and Microsoft 365 admins can control which users have access and how many Copilot Credits can be consumed through policies. Q: What new features came with the Copilot Cowork GA release? A: The GA release added model options including GPT 5.5, an upcoming Cowork 1 model, improved plugin and skill management, Browser Use (Cowork interacting with websites through Edge), and a refined user experience. Q: What is Browser Use in Copilot Cowork? A: Browser Use lets Cowork interact with websites directly through a local Edge browser, enabling tasks that require navigating or interacting with web-based content. Q: How does Copilot Cowork pricing compare to other AI tools? A: Microsoft's own testing indicates Cowork completes similar work at roughly 30 to 40% lower cost than comparable Claude Cowork scenarios.

  • Getting Started with Power Apps MCP Server for Canvas Apps

    Are you looking to get started with the awesome new Power Apps MCP Server for Canvas apps but don’t have a clue how to install everything? If so, you’re in the right place! Below, we’ll provide clear instructions for those of us who aren’t ninjas when it comes to all this VS Code stuff. We’ll walk you through step-by-step on how to install everything—VS Code, all the random weird things, and how to test it all. I’ve done this process a dozen times to simplify the instructions you’ve come to expect. Keep in mind that the more unique configurations your PC has, the more your journey may vary. Every machine I’ve worked on has had slight differences. But don’t worry; you’ll get through this! Also, remember that while the Power Apps Canvas MCP is free, you’ll need a GitHub Copilot license to use it in this scenario. You can also use the MCP server with Claude Code, Codex, or a dozen other services. But one way or another, you’ll need an LLM coding companion to utilize this. These instructions focus on what you need to set up to use the MCP server on Windows via VS Code and GitHub Copilot. There are other ways to use this MCP, but this guide is just about the essentials to get rolling with your Canvas Apps. Enjoy! PS - For a visual guide, check out the video walkthrough of these instructions here: Install and Configure Power Apps MCP. Install VS Code via Download Go to this site and download Visual Studio Code (VS Code): Download Visual Studio Code - Mac, Linux, Windows. For most people, the defaults will work well. So, just follow the good old Next, Next, Finish method. Open VS Code from the Start menu if it isn't already open. Click on Use AI Features. Click Continue with GitHub to authenticate. Sign in or create an account (remember, you’ll need a paid account for this). Click the button to Authorize VS Code. Now, click on the icon in the bottom right corner to confirm you have GitHub Copilot running. Close VS Code for now; we’ll be back later. Install NodeJS Visit the Node.js website: Node.js — Download Node.js®. Download the Windows Installer MSI and run it. Again, use the Next, Next, Finish method. There are many questions and optional components, but I didn’t need them for this to work. Install Git for Windows Go to this website: Git for Windows. Click the big Download button and run it. Use the Next, Next, Finish method. Honestly, I have no clue what most of those settings are, but the defaults worked, so I went with them. 😊 Feel free to adjust anything; it’s your computer after all. Install .NET 10 SDK Visit the .NET download page: Download .NET 10.0 (Linux, macOS, and Windows) | .NET. Download the Windows SDK and run it. Click Install. There’s nothing to choose, but it can be a slow install. Install PowerShell 7 Go to this website: https://aka.ms/PSWindows. Click the Get PowerShell 7 button. Click Install PowerShell on Windows. Download the MSI Package and run it. You guessed it—click Next, Next, Finish. Install GitHub Copilot CLI Open VS Code. From the toolbar, click Terminal > New Terminal. At the prompt, type: `Copilot`. Install GitHub Copilot CLI when prompted. Choose Yes when asked if you trust the folder (assuming you do). Type `/login` at the prompt. Choose your account type. Press the Enter key; this opens a browser. Walk through the authorization steps. Switch back to VS Code. Finally, Install the Power Apps MCP Still in the Terminal, type: ``` /plugin marketplace add microsoft/power-platform-skills ``` After you see Added Successfully, type: ``` /plugin install canvas-apps@power-platform-skills ``` Type Exit to close Copilot. Type Copilot to open it back up. Test Your Hard Work Open a browser and go to make.PowerApps.com to create a blank canvas app. Save it. Navigate to Settings > Enable Coauthoring. This will automatically save and refresh the app. Refresh the browser again to make Coauthoring happier. Copy the URL for your App. Return to VS Code. Still in Copilot, in the Terminal, type: ``` Configure Canvas MCP ``` Choose Configure Globally when prompted. Paste your canvas app URL when asked. 10. Type Exit to close Copilot. 11. Type Copilot to open it back up. 12. Type Create a Green welcome screen with a blue button. 13. After a while, if you see a green screen in your Power Apps canvas app with a blue button, then you have SUCCESS! Microsoft’s Documentation If you want their official info on installing and such, it’s here: Microsoft Documentation. Also, their GitHub repository for this MCP server is here: GitHub Repository. While you may not need it, sometimes the official documentation is good to check out. Next Steps Now you’re ready to start playing with GitHub Copilot! You can use it to create apps, edit apps, audit apps, and probably more. While creating apps, especially with data sources (even SharePoint), is interesting, the real value lies in review. Having the agent look for bugs and make recommendations in your existing apps is invaluable. A second set of eyes can’t be overappreciated. If you want to see the Power Apps Canvas MCP server in action for creating and auditing apps, check out this video: Build Canvas Apps in VS Code with AI (NEW Power Apps Tool). If you’re looking for help with what you should and shouldn’t be doing with AI and Power Apps, we’re here to assist. Just hit the Contact button and let us know. We’re happy to help with anything from a quick call to taking on your full project.

  • Send meeting Notes and Invites using Power Apps and Power Automate

    Every week as part of Power Platform University I have to do follow-up after our live sessions. I send notes on what we covered, links to recordings, and information about the next meeting. To create a better student experience, I wanted to also include an Outlook Calendar Invite with a link to the Teams meeting. This way there would be no confusion or reasons to miss. The challenge is each student needs their own invite. So not 1 invite with 50 people but 50 invites with 1 person. 🤯 Power Apps app for Input So I decided to use Power Apps and Power Automate to solve my challenge. Power Apps for me to provide all of the inputs like date and time, mentor recipients, and then the HTML body for the invites. Easy peazy for Power Apps Canvas Apps. Two challenges with the App. 1 - Saving the previous week's Message to SharePoint so each week I pick up where I left off. 2 - Setting the DefaultSelectedItems for the Combobox of mentors. I ended up making up a new technique for this. Both challenges and how to overcome them are detailed in the video. Power Automate cloud flow the work The Power Automate cloud flow was a bit trickier. The list of University students is only available via an API to ThinkIfIc, the 3rd party provider of our training platform. So the first thing the flow has to do is get the current students from the API. Then we use Parse JSON action to turn the JSON into dynamic content we can use in the flow. In this section we also talked about inputs that could be Null and how to avoid them crashing your flow. Now because the Table of students includes internal and external people, I wanted to filter out the PowerApps911 email addresses. I did this with a Filter Array action. Now we have the table of the people we want to send to we use Apply to each action to loop through the results. This allows us to create one invite per student and send it to them. Here you can see we used the inputs passed in from Power Apps and a hard coded Teams online meeting link. Perfect. Finally, we send an email with the meeting details to the internal mentors just so they know the invites went out. Boom! This App and Flow saves me about an hour a week of work and makes for a better experience for the students. If you want the gritty details of how we built the flow and app then check out this video. Meeting Follow Ups and Invites with Power Apps and Automate

  • Mastering API Calls in Power Apps: A Comprehensive Guide

    APIs can seem daunting at first, especially for those new to Power Apps. But don't worry! The core concept is straightforward. An API returns data in a structured format called JSON. The Power Platform equips you with the tools to fetch that data and transform it into something usable. This guide will walk you through every step using a free public API, ensuring you can follow along without any setup, accounts, or authentication. In this walkthrough, we will learn how to call a real public API from Power Apps using a Power Automate flow. We'll parse the JSON response with the ParseJSON function in Power Apps, handle various data types (text, numbers, images, and nested arrays), reshape the data into a clean Power Apps collection, and finally make the call dynamic with query parameters and a dropdown. No authentication is required for the example API used in this post, so anyone with a Power Apps premium license can recreate the demo end-to-end. Prefer the video walkthrough? Watch the full tutorial here: https://youtu.be/pwZoUsuLBMQ Why Do APIs Seem Challenging? An API can be as simple as a URL that returns text. Most public APIs return data in JSON, which is plain text wrapped in curly brackets and square brackets. The reason APIs feel hard is that the first time you look at a raw response, you are staring at a wall of unformatted text with no obvious starting point. Once you understand the two simple shapes JSON uses—records and tables—the format becomes readable and usable. If you have ever written a record in Power Apps using curly brackets (for example, { Name: "Shane", Role: "CAIO" }), you have already used the same syntax JSON employs. The only new piece is square brackets, which represent a table of those records. What is the Easiest Free API for Practicing in Power Apps? DummyJSON (*https://dummyjson.com) is a free, no-authentication public API that returns realistic test data for products, users, recipes, and more. It is ideal for learning Power Apps and Power Automate API techniques without risk.* DummyJSON is the recommended sandbox for this tutorial because every endpoint returns predictable JSON, and no signup or API key is required. The walkthrough below uses the recipes endpoint at https://dummyjson.com/recipes, which returns 30 recipes by default. Each recipe includes a name, image, rating, cuisine, a tags array, and other relevant fields. How Do You Preview an API Response Without Writing Any Code? You can easily preview an API response by pasting the API URL directly into a web browser. For any GET request, the browser will display the raw JSON response on screen. This is the fastest way to confirm that the API works, see the field names, and understand the response shape before building anything in Power Automate. This same trick works for SharePoint REST and Microsoft Graph endpoints when you are signed in. How Do You Read API Documentation Efficiently? Every API has documentation, and every set of documentation answers the same three questions: which URL to call, which method to use (GET or POST), and which parameters are supported. If the documentation is dense or written for a different programming language, paste it into Copilot, ChatGPT, or another AI assistant and ask for a Power Platform-friendly explanation. That is a legitimate and effective shortcut. How Do You Call a REST API from Power Apps? Power Apps cannot call REST APIs directly. You must build a Power Automate flow that uses the HTTP action to call the API, then return the response to Power Apps. Licensing note: the HTTP action in Power Automate is a premium connector. Custom connectors are also premium. Any solution that calls an external API from Power Apps therefore requires premium Power Apps or premium Power Automate licensing for every user who runs the app. Steps to Create the Flow In your Power App, click the ellipses menu, then Power Automate, then Add flow, then Create new flow, and finally Create from blank. Name the flow clearly, for example, "Video Recipes," so you can find it later. Click New step, search for HTTP, and select the HTTP action (the one labeled Premium). How Do You Configure the HTTP Action? The HTTP action requires three pieces of information: a method, a URI, and (optionally) headers, queries, or a body. For the recipes example, the configuration is straightforward: Method: GET (used to retrieve data from an API). URI: https://dummyjson.com/recipes Headers, Queries, Body: leave empty. The Dummy JSON recipes endpoint requires no additional parameters. Two HTTP methods cover most Power Platform API scenarios: GET retrieves data, and POST sends data. The API documentation always specifies which method to use for each endpoint. How Do You Return JSON from Power Automate to Power Apps? Add a "Respond to a Power App or flow" action at the end of the flow, create a Text output, and set its value to the Body of the HTTP action. The "Respond to a Power App or flow" action is what makes the flow callable from Power Apps and allows the flow to return data. To pass the JSON response back, click "Add an output," choose Text, name the output "myJSON," and set its value to the Body output of the HTTP action. (Click "See more" if the Body field is not visible immediately.) This approach passes the entire raw JSON response back to Power Apps as a single string. While JSON parsing could be done inside the flow, parsing inside Power Apps is the focus of this tutorial because it is more flexible and gives you the full original response to work with. How Do You Call the Flow from Power Apps? Add a button to the Power Apps screen and set its OnSelect property to call the flow and capture the result in a variable. After saving the flow, Power Apps will automatically register it. Add a new screen, drop a button onto the screen, and set the button's OnSelect property to the formula below. This formula calls the flow and stores the JSON response in a variable named varMyJSON. To inspect the response, add a label, set its Text property to varMyJSON, and set the Overflow property to Scroll. Pressing the button (Alt-click in design mode) will populate the label with the full raw JSON response. How Do You Read JSON? Records vs. Tables In JSON, curly brackets { } enclose a record (a single row with named fields), and square brackets [ ] enclose a table (a list of records). Understanding this two-shape model is the most important step in working with API data in Power Apps. The recipes response from Dummy JSON is shaped like this: the outer container is a record with a field called "recipes," and that field holds a table of recipe records. Every recipe record contains its own fields: name, image, rating, cuisine, a tags array, and much more. When a JSON field has square brackets immediately after its colon, that field is itself an array. The "tags" field on each recipe is one such nested table. So let's translate what you see above: { } on lines 1 and 14. Those outer wrappers indicate that this response is a record. "recipes":[ ] on lines 2 and 13. That indicates your main record has a field named recipes, and the data inside of it is in an array. {} on lines 3 and 7. That is the first record in the recipes table. {} on lines 8 and 12 is the second record in the recipes table. "name" and "image" are two text fields in that image. "tags" is an array in that record. It is a single-column table, the column name is Value, and it contains three records: "Italian," "Vegetarian," and "Main Course." How Do You Use ParseJSON in Power Apps? ParseJSON is a Power Apps function that converts a JSON string into an untyped object. To use the result in a control, navigate to the field you want and wrap it in a type function such as Table(), Text(), Value(), or Boolean(). Add a Gallery to the screen. The Gallery requires a table for its Items property. Because the recipe table lives inside the JSON response, the Items formula must parse the JSON, navigate to the recipes field, and explicitly cast the result as a table: Each part of the formula has a specific purpose. ParseJSON(varMyJSON) converts the raw JSON string into a navigable untyped object. The .recipes drills into the field that holds the recipe list. The Table() wrapper tells Power Apps the result should be treated as a table so the Gallery accepts it. After applying the formula, the Gallery rows render, but the field dropdown shows generic "value" entries. The reason is that ParseJSON returns untyped data—Power Apps does not yet know whether each field is text, a number, or something else. The next section covers how to apply types correctly. How Do You Handle Different JSON Data Types? Wrap each ThisItem.Value reference in the appropriate type function: Text() for strings, Value() for numbers, and Table() with Concat() for nested arrays. Image controls require Text() explicitly. Plain Text Fields In a Gallery template, a label can display a JSON text field directly. The recommended formula uses Text() to make the type explicit and avoid runtime surprises: JSON field names are case-sensitive. In the Dummy JSON recipes response, the field is "name" with a lowercase n. Writing "Name" with a capital N will return blank. Numbers Numbers in JSON are not surrounded by double quotes. That is how you can tell them apart from text fields. The recipe rating field, for example, is returned as 4.6 with no quotes. To use the value in calculations or numeric controls, wrap it in the Value function: Why Does the Image Control Fail with Untyped Data? The Image control in Power Apps does not infer types from untyped data the way a Label does. Setting the Image property directly to ThisItem.Value.image returns an error because the control cannot interpret an untyped object as a URL. The fix is to wrap the reference in Text(), which forces the value into a string: Nested Arrays such as Tags When a JSON field contains square brackets, like the recipe tags field, which holds an array of strings like ["Pizza", "Italian"], then the field is itself a table. To display the array as a comma-separated string in a label, wrap the reference in Table() and pass it through Concat(): The same pattern works for any JSON array: ingredients, instructions, or any other field that returns multiple values per record. How Do You Convert API Data into a Reusable Power Apps Collection? Use ClearCollect with ForAll to walk the parsed table once, casting each field to its correct type, and store the result as a typed collection. Bind controls to the collection instead of the raw ParseJSON result. Repeating ParseJSON and ThisItem.Value.fieldname formulas across every control adds maintenance overhead and makes the app harder to read. The recommended pattern is to parse the JSON once when the data arrives, build a clean collection, and then reference that collection everywhere else. Add a button and set its OnSelect property to the formula below. This formula calls ForAll on the parsed table, aliases each row as "JUNK," and produces a record with three properly typed fields per row. The collection colRecipes now behaves like any other Power Apps collection. Setting a Gallery Items property to colRecipes allows fields to be referenced as ThisItem.Name, ThisItem.Image, and ThisItem.Rating, with no further parsing required. How Do You Make an API Call Dynamic with Query Parameters? Append parameters to the API URL using one ? for the first parameter and & for every subsequent parameter. To drive parameters from Power Apps, add inputs to the flow and reference them in the URI using triggerBody() expressions. Most public APIs support query parameters that filter, sort, or paginate the response. Dummy JSON supports five common parameters that appear in many APIs: limit: maximum number of records to return. skip: number of records to skip from the start, used for paging. select: comma-separated list of fields to include in the response. sortBy and order: field name and direction (asc or desc) for sorting. q: keyword search across the dataset. How Are URL Parameters Joined Together? The first parameter in a URL is preceded by a single question mark. Every parameter after the first is joined with an ampersand. A URL with three parameters looks like the example below. Common mistake: pasting a second example URL directly into the URI field, which produces two question marks. Only one question mark is allowed per URL. After that, every additional parameter must use an ampersand. How Do You Pass a Parameter from Power Apps into the Flow? To accept input from Power Apps, edit the flow, click the trigger ("PowerApps (V2)" or "Respond to a PowerApp" depending on configuration), and add a Text input named "MyTag." Inside the HTTP action, reference the input in the URI using a triggerBody() expression so the value is substituted at runtime. After saving the flow, the Power Apps formula must pass the new value when calling the flow. The Run function accepts inputs in the order they were declared. How Do You Drive the API Call from a Dropdown? To let users pick a value instead of typing one, use the API itself to populate a Power Apps Dropdown. Dummy JSON exposes an endpoint that returns the full list of available recipe tags as a JSON array. Open that URL in a browser, copy the array including the square brackets, and paste it directly into the Items property of a Dropdown control. Power Apps interprets a square-bracketed list as a one-column table named Value automatically. Then update the button OnSelect to pass the dropdown selection to the flow: The result is a fully dynamic, user-driven API call: the user picks a tag, the flow builds the URL, and the gallery refreshes with matching recipes. Common Power Apps API Mistakes to Avoid Case sensitivity: JSON field names must match exactly. The field "name" is not the same as "Name." Untyped data in strict controls: always wrap values with Text(), Value(), Boolean(), or Table() before binding to controls that require a known type. Image controls: always wrap the source URL in Text(). The Image control will not infer the type from untyped data. Nested arrays: wrap with Table() and use Concat() to display them as text in a label. Premium licensing: the HTTP connector requires premium licensing for every user of the app. Plan licensing before building. Question marks in URLs: one ? per URL, maximum. Every parameter after the first must use &. Frequently Asked Questions Can Power Apps Call a REST API Directly? No. Power Apps cannot call external REST APIs directly. The supported pattern is to build a Power Automate flow that uses the HTTP action to call the API, then return the response to Power Apps using the "Respond to a Power App or flow" action. Custom connectors are an alternative, but they also require premium licensing. Do You Need a Premium License to Call an API from Power Apps? Yes. The HTTP action in Power Automate and custom connectors are both premium connectors. Every user who runs an app that calls an external API requires a premium Power Apps or premium Power Automate license. What Does the ParseJSON Function Return in Power Apps? ParseJSON returns an untyped object that can be navigated using dot notation. The function does not assign data types to the values it returns, so each value must be wrapped in a type function like Text(), Value(), Boolean(), DateValue(), or Table() before being used in a control or formula that requires a specific type. Why Does My Image Control Show an Error When I Bind It to ParseJSON Data? The Image control does not infer types from untyped data the way a Label does. Wrapping the reference in Text() (for example, Text(ThisItem.Value.image)) forces the value to a string and resolves the error. Conclusion Calling an API from Power Apps comes down to a five-step pattern: build a Power Automate flow with the HTTP action, return the JSON to Power Apps, parse the JSON with ParseJSON, cast the values with type functions, and reshape the result into a typed collection for clean reuse. Once the pattern is in place, the same approach works for almost every public or internal REST API. The next two topics worth learning are authentication (API keys, OAuth, and bearer tokens) and writing data back to APIs using POST requests. Both build directly on the foundation in this tutorial. Need a Hand? If you want help building solutions like this or you want to take your Power Platform skills to the next level, the team at PowerApps911 has your back. We offer everything from quick 30-minute consulting sessions to long-term partnerships building enterprise apps. Click the Contact button on this page to start a conversation.

  • 6 Real Ways I Used Microsoft Copilot and Cowork This Week (Real Work, No Canned Demos)

    TL;DR: Forget the perfect demos. Here are six real tasks I knocked out this week with Microsoft Copilot and Copilot Cowork. Replying to meeting emails from my real calendar, turning 74 survey responses into boss-ready talking points, tracking down a lost slide deck, dropping a screenshot of my kids’ soccer schedule straight onto my calendar, learning a brand-new feature that had no docs, and co-authoring a statement of work, plus the one habit (validate everything) that keeps it all safe. Most AI demos are a little too perfect, aren’t they? Clean data, an idealistic scenario, and everything works on the first click. That’s not what real work feels like and sure as heck isn't how my day goes. So this time I’m doing the opposite, no staged demos, just 6 actual things I did for myself this week with Microsoft Copilot and Copilot Cowork, and the productivity I got out of each. You’ll get the exact prompts I used, where these tools genuinely shine, where they still trip up, and the simple guardrail I put on every single one. Some are big team wins, some are small personal time-savers but all of them are things you can copy tomorrow. Prefer to watch the full walkthrough? Check out the video here: https://youtu.be/AnqsiqKs8sw Reply to this email with the times I am actually available to meet This is the one my whole team got most excited about, and it probably has the widest impact. I get a lot of emails from people who want to meet, and most of them (customers, folks outside the company) don’t have access to my calendar. Bookings tools exist, but I like a reply that feels a bit more personal. So in Outlook I hit Reply, clicked the Copilot icon, and give it a prompt like: “Help me reply to this email by checking my calendar and listing the times I’m available next Friday. In the response, include the time zone.” Copilot opens M365 Copilot, reads my actual calendar, and drafts a reply with real open times. Awesome! The gotcha: the magic words are “check my calendar.” Once I started including that part of the prompt, it stopped guessing and it’s been 100% accurate on my availability since. One boundary I hit: I couldn’t get it to reliably pull a second person’s calendar into the same reply. I tried “check my calendar and a coworker’s calendar” on an email that involved both of us, and it never quite nailed the other person’s availability. And even now, I still validate the times before I send. For the first ten or so replies I checked every one. It’s earned my trust, but I keep verifying. Since I found this, I am using it multiple times a day. 😎 Turns out lots of people like to meet with me. How do you turn a pile of survey results into talking points for your boss? As we work to get our arms around how AI is being used across the company, I built a survey in Microsoft Forms and collected 74 responses so far. What tools people are excited about, where AI is helping on client projects, and where they want to learn more. The moment I shared it, our CEO asked for some talking points tied to the survey for an event she was speaking at. She needed them fast. Reading all 74 responses one by one (which I did) is overwhelming when someone needs an answer right now. So I downloaded the responses as an Excel file, opened Copilot in Excel, and prompted something like: “My boss needs me to review these survey results and give her the key themes, specific quotes of where AI is helping us win, any key stats, and other helpful info she can use in a presentation she’s giving.” Boom! It surfaced themes, pull quotes, and statistics even including a standout where one team said AI was saving them about 50% on part of their work. Seriously, it did way better than what my analysis was "They are using AI well". 🤣 Here’s the important part: I did not copy, paste, and send. I went in and curated the strongest quotes and the most useful stats, and I still crunched the deeper numbers myself. Copilot didn’t do the thinking for me; it got me the pull quotes and the quick look in minutes so I could hand my boss exactly what she needed. I added the human touch, knowing the stuff she likes and doesn't, the discernment is often overlooked. Can you use Copilot as a smart search tool to find your files? This is the least flashy one and the one a lot of people use themost. I was prepping a few slides for a Dynamics user group event and wanted a single image off one specific slide. Problem: I couldn’t find the deck. So I asked Copilot: “I’ve done a session where I talk about sprinkling AI into Power Apps and Power Automate to get started. I don’t remember if I have a PowerPoint deck for that. Can you look for me?” What makes this better than regular search: it doesn’t just match on the title or the file’s metadata, it looks inside the slides. It pointed me straight to the most likely deck and listed a few other candidates too. Not bad. If “just using AI for search” is where you start, don’t let anyone talk you out of it. It’s a fantastic on-ramp, and even years in, I still reach for it constantly. Nobody enjoys playing hiding go seek with their data, let Copilot do that. How do you turn a screenshot into calendar events with Cowork? My favorite, even if not exactly work. 🤫 This one crosses over into Copilot Cowork, and it’s a perfect example of killing tedious work. My kids’ fall soccer schedule dropped, and I wanted every game on my calendar. In past years I added them one game at a time. This year I took a screenshot with the dates, times, and locations and handed it to Cowork with a rambling-but-detailed prompt: put every game on my calendar, mark them busy, start at the earliest time listed, end two hours after the last time listed, set the subject to Away or Home plus the opponent’s name, and drop both game times in the body (the first is JV, the second is varsity). A couple of minutes later, done. Then I asked it to add another family member as an invitee across all of their calendars, and it worked through every one. Their time was blocked too. What did that cost? If you’re curious, type /cost in Cowork and it tells you. Mine used 283 credits. Which is about $2.83 at the pay-as-you-go rate to save me 15 to 20 minutes of manual entry. Easy trade. And yes, I validated every event afterward. Trust, but verify. The work tie-in is real, too: I travel a lot and work late, and I’m not going to schedule over my kids’ games. Having those blocks on my calendar helps everyone make better decisions when booking my time. AKA back off people! How do you learn a brand-new AI feature when there’s no documentation? Cowork just started supporting triggers and there are no docs yet. So instead of hunting around, I asked the tool itself: “I understand you now support triggers. When someone messages me in Teams, for example can you give me a list of the different triggers you support?” It told me it could trigger on email, on Teams messages, and even on a webhook. Then I asked it to explain how the webhook trigger works, and it broke that down for me. A couple of minutes and I was up to speed. The bigger lesson: use AI to learn AI. Stuck building a skill? Ask it, “How do I build a skill. What should that look like?” About to set up an AI prompt in Power Apps? Ask it what to do. Don’t be afraid to have the tool teach you how to use the tool. How do you co-author a statement of work and beat the blank-screen problem? I’m part of a statement of work where I own the AI enablement piece. I am in chagre of delivering AI training for the whole company and for their power users, and keeping them in the loop on what’s happening in the AI space with the tools they use. The trouble: sales and delivery drafted “Shane’s section” with way too much detail, committing me to things I didn’t want to be committed to, and making this slacker work too hard. 🤣 I tried to just rewrite their version, but it was structured in a way my brain couldn’t untangle. So I took their text over to Copilot, gave it a big run-on paragraph of everything I didn’t like about it, then a second paragraph describing how I’d shape it, and told it to keep their context so it morphed what was already in the SOW instead of starting from scratch. About fifteen to thirty seconds later, I had a new AI enablement section. No image for this one, SOWs seem dicey to share. Then the part that matters: I didn’t just ship what it wrote. I massaged it into my own voice. I even dumbed some of it down so it sounded like me and not an AI. That’s co-authoring, not outsourcing. The real win is that it got me off the blank screen and into a structure I could actually sculpt. (I went deeper on this idea of AI slop vs. AI dribble vs. AI boost in last week’s video, if you’re fighting the blank-page problem with content.) Frequently asked questions What’s the one prompt trick that makes Copilot’s calendar replies accurate? Tell it to “check my calendar.” Without that instruction, Copilot may suggest meeting times without reading your real availability. Adding it forces Copilot to pull your actual open slots and it’s worth including your time zone in the prompt as well. Can Microsoft Copilot check someone else’s calendar in the same reply? In my testing, not reliably. Even with access to a coworker’s calendar, Copilot handled my own calendar perfectly but wouldn’t consistently pull a second person’s availability into one reply. Verify anything that depends on more than one calendar. How much does a task in Copilot Cowork cost, and how do I check? Type /cost in Cowork and it shows the credits used for what you just did. What triggers does Copilot Cowork support? Based on what Cowork told me directly, it can trigger on email, on Teams messages, and on a webhook. Because these features are changing quickly, the best move is to ask Cowork for the current list rather than relying on a static answer. Should I just copy and paste whatever Copilot writes? No. Every single time, I rewrite the output by picking the best quotes, cutting overcommitments, or putting it in my own voice. AI gets you a strong first draft fast; you’re the one who makes it correct and makes it sound like you. Key takeaways Add “check my calendar” to any Copilot email-reply prompt so it uses your real availability instead of inventing times and include your time zone. Copilot can turn dozens of survey responses into themes, pull quotes, and stats in seconds, but you should always curate before sharing. Copilot search looks inside file content, like slide text, which makes it far better than title-only search for finding a lost deck. Copilot Cowork can read a screenshot and create calendar events from it. When a feature has no documentation, ask the AI tool to explain its own capabilities. That’s how I learned Cowork’s email, Teams, and webhook triggers. Beat the blank-screen problem on documents like SOWs by having AI reshape existing text, then rewrite the draft in your own voice. But, be sure to co-author, don’t copy-paste. Always validate AI output. Trust, but verify. Need help making sense of the AI story? If figuring out your AI story feels like a lot right now, you’re not alone. I’m having this exact conversation every week with CTOs, VPs of IT, and AI leaders, helping them make sense of the Microsoft side of AI. If you’d like help with your AI enablement the team at PowerApps911 can help. Reach out by clicking the Contact button and let’s figure it out together.

bottom of page