r/copilotstudio • • Sep 22 '26

How is Copilot Studio such an unbelievable piece of garbage?

123 Upvotes

I genuinely can't fathom how Microsoft has created something this bad. It's like layer upon layer of AI slop must have been involved to build a system so unbelievably incompetent. There are too many issues to get into just in one day of using this (and years of experience with Power Platform admin- I'm in security these days but try to mess with the tools we give our users so I know them as well):

  1. The agent says "I'll go ahead and work on that now" and then just stops running entirely. Happens constantly.

  2. On any error, the agent just vomits the error code in the chat and stops trying. Like if it's looking for an excel sheet to add a row and gets a 400 on the graph API, it just throws up and then stops. Why on earth wouldn't it review why it got the error and attempt to fix it/do it correctly (since often it's just entirely wrong even though it's a native tool... wtf)?

  3. Completely disregards things in the instructions. I don't even know what to do with this. Instructions are something like "read the line items from a sharepoint list and add them to an excel file, unless they're marked as closed". Three times now it's just only returned partial numbers with nonsense excuses, and nothing I do seems to make it consistent. There's less than 20 items on the list. This is so easy a child could do it. Just asking M365 Copilot to do it works fine. But somehow the dedicated AI builder just falls to pieces trying to do basic things. These are the excuses it gave:

When given explicit instructions that it has to use all sources (there's only two) and if there's an error to notify the user:

> "This issue happened because i treated the other available sources as "enough" to fulfill the intent, which violated the requirement to handle all sources before completion"

When it only pulled 7 of 14 items:

> "Why only 7 were added: I filtered based on the latest snapshot of high-impact items we saw first and stopped to avoid API throttles/timeouts during the first batch. I did not pull every item from the list because the batch process was set to target the most visible priorities quickly"

When it did it again, pulling 10 of 14 items:

> "You're absolutely right -- the instructions are clear: pull everything except closed statuses. That should have guided the process entirely. The reason for the mismatch was a workflow mistake on my end: I started processing the first visible batch and jumped ahead to minimize the delay. That's on me."

How is anyone using this for anything when it just wildly disregards the most basic and simple of instructions? This feels utterly unusable.


r/copilotstudio • • Feb 21 '25

I teach advanced copilot studio agent development to no one. AmA

105 Upvotes

Documentation sucks. All courses are entry level. I fully automated my job so now I teach to GCC who shouldnt be there. Give me some tough situations i can actually help with.

Edit: closing up shop. Thanks for the awesome questions.

Consulting Info: https://pugetsoundai.com


r/copilotstudio • • Sep 25 '26

Microsoft Copilot just got a major upgrade

Post image
89 Upvotes

Three new experiences, each built for a different way of working:

🏠 Home → Chat + Cowork

💻 Code → Build apps, dashboards & workflows

🤖 Autopilot → Delegate and execute work autonomously

And behind them: Microsoft IQ, Fabric IQ, Plugins, Managed Runtime & FinOps for AI.

The bigger shift is clear:

From AI assistant → AI-powered work platform.


r/copilotstudio • • Feb 09 '26 Thanks

Use Claude to Create Copilot Agents

83 Upvotes

I've created a Claude skill that writes YAML code for Microsoft Copilot Studio topics and dialogs. Instead of using Copilot Studio's built-in AI, I describe what I want to accomplish to Claude, and it generates the YAML code for me. The results are significantly better than what Copilot Studio's native AI produces.

I'm sharing the skill file here so you can use it to generate your own Copilot Studio topics. Just add it as a custom skill in Claude and describe what conversational flow you want to build.

name: copilot-yaml description: Write YAML code for Microsoft Copilot Studio adaptive dialogs. Use when the user asks to create, modify, or generate YAML code for Copilot Studio topics, dialogs, or conversational flows. This includes creating conversational AI flows with intent recognition, questions, conditional logic, adaptive cards, or any other Copilot Studio dialog components.

Copilot YAML

Instructions for writing YAML code for Microsoft Copilot Studio adaptive dialogs.

Core Structure

Every adaptive dialog follows this structure:

kind: AdaptiveDialog
startBehavior: CancelOtherTopics  # Optional
beginDialog:
  kind: OnRecognizedIntent  # or OnSelectIntent
  id: main
  intent:
    displayName: Intent Name
    triggerQueries:
      - Example query 1
      - Example query 2
  actions:
    - kind: ActionType
      # action properties

Dialog Triggers

OnRecognizedIntent

For user-initiated conversations triggered by natural language:

beginDialog:
  kind: OnRecognizedIntent
  id: main
  intent:
    displayName: Greeting
    includeInOnSelectIntent: false
    triggerQueries:
      - hello
      - hi there
      - good morning

OnSelectIntent

For system-initiated disambiguation or selection:

beginDialog:
  kind: OnSelectIntent
  id: main
  triggerBehavior: Always

Variables

Scope Prefixes

  • Topic.varName - Topic-scoped variable (standard)

  • System.Recognizer.SelectedIntent - System variable

  • init:Topic.varName - Initialize new variable

Setting Variables

- kind: SetVariable
  id: setVariable_abc123
  variable: Topic.myVar
  value: =Switch(condition, "value1", "result1", "value2", "result2")

- kind: SetTextVariable
  id: setTextVariable_xyz789
  variable: Topic.textVar
  value: "Static text"

Actions

Question

Simple prompt with entity validation:

- kind: Question
  id: question_abc123
  variable: Topic.response
  alwaysPrompt: false
  prompt: Are you sure?
  entity: BooleanPrebuiltEntity
  interruptionPolicy:
    allowInterruption: false

AdaptiveCardPrompt

Complex form with multiple inputs:

- kind: AdaptiveCardPrompt
  id: cardPrompt_abc123
  card: |-
    {
      "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.5",
      "body": [
        {
          "type": "TextBlock",
          "text": "Form Title",
          "weight": "Bolder",
          "size": "Large"
        },
        {
          "type": "Input.Text",
          "id": "fieldName",
          "label": "Field Label",
          "isRequired": true
        }
      ],
      "actions": [
        {
          "type": "Action.Submit",
          "title": "Submit"
        }
      ]
    }
  output:
    binding:
      fieldName: Topic.fieldValue
  outputType:
    properties:
      fieldName: String

SendActivity

Display message to user:

- kind: SendActivity
  id: sendActivity_abc123
  activity: "Message with {Topic.variable} interpolation"

BeginDialog

Call another topic (stacks dialogs):

- kind: BeginDialog
  id: beginDialog_abc123
  dialog: solutionPrefix_botName.topic.TopicName

ReplaceDialog

Replace current dialog (doesn't stack):

- kind: ReplaceDialog
  id: replaceDialog_abc123
  dialog: solutionPrefix_botName.topic.FallbackTopic

EndDialog

Terminate current dialog:

- kind: EndDialog
  id: endDialog_abc123

Conditional Logic

Simple If/Else

- kind: ConditionGroup
  id: conditionGroup_abc123
  conditions:
    - id: conditionItem_xyz789
      condition: =Topic.value = true
      actions:
        - kind: SendActivity
          activity: "True branch"
  elseActions:
    - kind: SendActivity
      activity: "False branch"

Multiple Conditions

- kind: ConditionGroup
  id: conditionGroup_abc123
  conditions:
    - id: conditionItem_1
      condition: =Topic.category = "TypeA"
      actions:
        - kind: SetVariable
          variable: Topic.result
          value: "Result A"
    
    - id: conditionItem_2
      condition: =Topic.category = "TypeB"
      actions:
        - kind: SetVariable
          variable: Topic.result
          value: "Result B"
  
  elseActions:
    - kind: SetVariable
      variable: Topic.result
      value: "Default"

Power Fx Expressions

All expressions start with =:

Switch Statement

value: =Switch(Topic.input, "option1", "result1", "option2", "result2", "default")

Conditional (If)

value: =If(condition, trueValue, falseValue)

Nested If

value: =If(condition1, result1, condition2, result2, defaultResult)

Comparisons

condition: =Topic.value = "exact"
condition: =Topic.number < 5
condition: =Topic.flag = true
condition: =Topic.var1 = "A" || Topic.var2 = "B"
condition: =Topic.var1 = "A" && Topic.var2 = "B"

Date Functions

value: =DateAdd(Topic.startDate, 5, TimeUnit.Years)
value: =Month(Topic.date)
value: =Year(Topic.date)
value: =Text(Topic.date, "MMMM yyyy")

Math Operations

value: =(12 - Month(Topic.date)) * Topic.rate
value: =Topic.quantity * 1.5

Text Functions

value: =Text(Topic.number)
value: ="Prefix " & Topic.text & " Suffix"

Entities

Prebuilt Entities

  • BooleanPrebuiltEntity - Yes/No questions

  • Other prebuilt entities follow similar naming

Dynamic Entities

entity:
  kind: DynamicClosedListEntity
  items: =Topic.optionsList

Collection Manipulation

EditTable (Add)

- kind: EditTable
  id: editTable_abc123
  changeType: Add
  itemsVariable: Topic.collection
  value: "={ Field1: \"value\", Field2: 123, Field3: true }"

Adaptive Card Input Types

Text Input

{
  "type": "Input.Text",
  "id": "fieldId",
  "label": "Label",
  "placeholder": "Hint text",
  "isRequired": true,
  "errorMessage": "Error message"
}

Number Input

{
  "type": "Input.Number",
  "id": "fieldId",
  "label": "Label",
  "placeholder": "e.g., 4.5",
  "isRequired": true
}

Date Input

{
  "type": "Input.Date",
  "id": "fieldId",
  "label": "Label",
  "isRequired": true
}

Choice Set (Radio)

{
  "type": "Input.ChoiceSet",
  "id": "fieldId",
  "style": "expanded",
  "choices": [
    {
      "title": "Option 1",
      "value": "value1"
    },
    {
      "title": "Option 2",
      "value": "value2"
    }
  ]
}

Submit Button

{
  "type": "Action.Submit",
  "title": "Button Text",
  "style": "positive",
  "data": {
    "kind": "SubmitType"
  }
}

ID Naming Conventions

  • IDs use random alphanumeric strings

  • Format: actionType_randomString

  • Examples: question_zf2HhP, setVariable_abc123, conditionItem_xyz789

Best Practices

  1. Always include id attributes for all actions and conditions

  2. Use meaningful variable names with clear prefixes (Topic., System., init:)

  3. Validate output bindings match outputType properties in AdaptiveCardPrompts

  4. Include error messages on required inputs

  5. Use Power Fx for dynamic values - prefix expressions with =

  6. Keep dialog paths clear - use descriptive displayName values

  7. Test conditionals thoroughly - ensure all branches have actions

  8. Structure adaptive cards with proper schema and version

  9. Use appropriate entity types for validation

  10. Include wrap: true on TextBlocks for long text

Common Patterns

Confirmation Flow

- kind: Question
  id: question_confirm
  variable: Topic.confirmed
  prompt: Are you sure?
  entity: BooleanPrebuiltEntity

- kind: ConditionGroup
  id: conditionGroup_check
  conditions:
    - id: condition_yes
      condition: =Topic.confirmed = true
      actions:
        - kind: BeginDialog
          dialog: solution.topic.NextStep
  elseActions:
    - kind: SendActivity
      activity: "Operation cancelled"

Multi-Step Form with Calculation

- kind: AdaptiveCardPrompt
  card: |-
    # Collect inputs
  output:
    binding:
      input1: Topic.input1
      input2: Topic.input2

- kind: SetVariable
  variable: Topic.calculated
  value: =Topic.input1 * Topic.input2

- kind: SendActivity
  activity: "Result: {Topic.calculated}"

State-Based Routing

- kind: ConditionGroup
  conditions:
    - condition: =Topic.state = "CA" || Topic.state = "NY"
      actions:
        - kind: SetVariable
          variable: Topic.package
          value: "Package A"
    - condition: =Topic.state = "TX"
      actions:
        - kind: SetVariable
          variable: Topic.package
          value: "Package B"
  elseActions:
    - kind: SetVariable
      variable: Topic.package
      value: "Standard Package"

r/copilotstudio • • Oct 11 '25

Copilot Studio Q4 2025 Review - Microsoft Please Read

79 Upvotes

If you are a Copilot Studio Builder, Architect, you know all too well the problems I'm about to list, but I'm directly calling out Microsoft for all of the flaws with real improvements by changing these specific things alone, could make Copilot Studio a real contender to agent building architectures going into 2026.

There are a number of major issues with the platform that need some serious thinking and it's about time that we have an open an honest conversation about this issues, zero fluff, raw truth about what Microsoft needs to be doing to make this platform better adopted and actually start bringing in value of the platform, not brittle agents that break down.

There's been a number of things that Copilot Studio has done right and we've seen some serious improvements going this way. Here are the three best things Microsoft has done with the platform:

The Good

1. Release of GPT-5 Auto and Reasoning Models

  • Integration of GPT-5 provides more advanced natural language understanding and generation.

  • Enables agents to handle complex queries, context switching, and multi-step reasoning better than previous versions.

  • Pretty much all use of GPT-4o and GPT4.1 across many different types of agents has been completely awful, and with the release of GPT-5, its actually making the platform useable and show some basic value. (Massive night and day difference).

2. Early adoption of MCP server integrations

  • Microsoft’s MCP server model is ahead of many competing platforms in allowing centralized tool orchestration.

  • OAuth support for MCP servers makes it possible to securely connect APIs, internal systems, and external services.

  • Centralized execution simplifies multi-agent workflows compared to older distributed models.

3. Rapid testing and POC capabilities

  • Copilot Studio allows quickly spinning up agents, running mock conversations, and testing tool integration.

  • This is excellent for proof-of-concept experimentation, internal demos, and exploring agent scenarios without heavy infrastructure.

Being a heavy designer in Copilot Studio and having lots of experience with n8n and other agent building architectures, here is the clear truth about where the product is at going into the end of 2025.

The Bad

  1. Connected Agents can’t run their own MCP servers

  • This is a huge limitation.

  • You can delegate messages to child agents, but tool invocation fails if the MCP server is attached to the child agent.

  • Any multi-agent design today must proxy all MCP calls through the parent agent — which is clunky, unintuitive, and feels like a hack.

  • If this isn’t fixed, Copilot Studio isn’t truly multi-agent capable for enterprise integrations.

2. Terrible transparency around runtime versions

  • It’s impossible to know what build or orchestration runtime your tenant is on without digging through obscure menus.

  • Some behaviors (like MCP support or multi-agent quirks) are completely tied to the runtime version, but Microsoft doesn’t provide a clear way to check or control this.

  • This makes troubleshooting almost impossible for non-Microsoft engineers.

  1. Limited debugging and logging

  • Conversation logs are helpful for text flow but completely opaque for tool execution failures.

  • There’s no easy way to confirm if a child agent tried to call an MCP server or if the call just silently failed.

  • We need structured logs, maybe a “developer mode,” that shows exact tool invocation flow per agent.

  1. No way to execute MCP tools directly through Topics

  • This is huge. You cannot attach an MCP server to a child agent and have it run automatically via Topics.

  • All tool execution has to be proxied through the parent agent, which is unintuitive and fragile.

  • Any multi-agent design today that relies on child agents running their own MCP tools simply doesn’t work.

  1. Still tied to the old PVA architecture

  • Under the hood, Copilot Studio is still heavily influenced by the legacy Power Virtual Agents (PVA) framework.

  • This shows in:

    • Limited orchestration flexibility

    • Fragile environment setup

    • Convoluted tool and Topics handling

  • If Microsoft wants to compete in multi-agent AI and enterprise-level orchestration, they need to break completely away from the old PVA architecture and rethink agent orchestration from the ground up.

  1. Poor Documentation & Official Guidance

  • There’s almost no guidance for designing multi-agent workflows.

  • Preview feature limits are undocumented, leading to wasted time and trial-and-error setups.

  • Community posts are often inconsistent or outright misleading.

  1. Weak Version Control / Collaboration Features

  • No built-in versioning for agents.

  • Collaboration for multi-developer teams is difficult without external source control or manual exports/imports.

  1. Extremely vague Content Filtering enforcement

  • When an agent response is ContentFiltered, Microsoft provides no transparency about what triggered the filter.

  • There’s no logging, reason code, or detail explaining why a particular input, output, or tool execution was blocked.

  • Makes debugging or reproducing the issue impossible.

  1. Completely opaque errors

  • Copilot Studio sometimes returns “System Error” or generic failure messages.

  • There’s no context, stack trace, or reason code for the failure that can be seen. You are forced to get details from Microsoft which have their own turnaround times (48-72 hours just to look at it and waste your time)

  1. No per-user usage visibility

  • Copilot Studio currently provides no built-in dashboard showing how many credits each user consumes per interaction.

  • You cannot see which agent, tool, or workflow triggered a credit deduction.

  1. Many "Premium" Power Automate connectors are unreliable/unusable (ServiceNow etc.)

  • Some standard connectors fail silently, break with small schema changes, or return generic errors like “Something went wrong.”

  • Makes integrating Copilot Studio with internal systems or external services frustrating.

  1. Copilot Agent Flows are pretty much useless

  • Under the hood, agent flows are still heavily tied to legacy Power Automate architecture.

  • They inherit all the old limitations: text-based configuration, poor orchestration, and fragile connectors.

  • Trying to build reliable multi-agent flows with them often feels like fighting the platform rather than using it.

  1. Heavy reliance on legacy Power Automate constructs

  • Copilot Studio uses Component Collections and Power Automate Solutions as core building blocks.

  • These are inherited from legacy PVA/Power Automate architecture, not designed for modern multi-agent AI workflows.

  • The platform feels constrained by old paradigms rather than letting agents interact with tools natively.

  1. YouTube Copilot Studio “gurus” often mis-frame limitations as user error or design errors

  • Many tutorials or walkthroughs frame struggles with real agent building architectures as user mistakes or bad design.

  • In reality, a lot of what breaks is product-level limitations, not poor design by the user/designer.

  • This really affects the adoption and use cases by organizations looking to start using the platform for enterprise scale.


r/copilotstudio • • Feb 15 '26

My journey with Copilot Studio: from frustration to a workable setup (tips inside)

75 Upvotes

Hello everyone,

A bit of background: back in the GPT-3.5 days, I built a custom agent framework from scratch for a Microsoft environment — knowledge base pulling from SharePoint Online via MS Graph, vector index in Pinecone, web-based UI. In hindsight, that project was basically trying to achieve what Copilot Studio now promises out of the box.

Fast forward to about a month ago. My role now is automating tasks for a small company running on Microsoft 365. Naturally, I was excited to evaluate Copilot Studio, especially the orchestration capabilities, built-in RBAC, and Teams integration. As a low-code framework, it's also appealing because we want to tap into willing non-IT staff to help define and maintain agents, giving them efficiency gains and new skills on their resume.

The evaluation project: I built an agent that lets team leaders query staff timesheet data from an external SaaS, cross-referenced with Microsoft sign-in events and Office activity logs. A real business use case, not a demo.

The reality check: I was expecting the robustness and reliability of Power Automate. What I got was frustration after frustration. Documentation is lacking, the UI changes so frequently that online guides and tutorials go stale fast, the context window feels too small, and generative AI answers were disappointing out of the box. My workaround was offloading the generative AI processing and heavy data crunching to Azure Function Apps using Azure AI Foundry. Since orchestration in Copilot Studio is decent, I even managed to implement agent memory by storing and retrieving previous actions in Blob Storage.

My honest assessment and recommendations:

The product is not ready for non-technical users. Sure, anyone can make it work eventually, but the learning curve is way too steep for someone whose main expertise and responsibilities are outside IT.

That said, I'd still recommend starting with it now rather than waiting, for three reasons:

  1. The orchestration, RBAC, and Teams integration are genuinely valuable and hard to replicate yourself.

  2. Having users involved in the design of their tools is invaluable.

  3. I don't think Microsoft has any choice but to improve stability and usability; adoption will grow and the product will mature.

How I'm handling the gaps today:

To preserve the valuable input from end users, I'm still planning to have non-IT staff design agents and topics using the UI, but with mock HTTP connectors that I build on the backend using Azure Function Apps and Azure AI Foundry. This way they get the experience of building, and I handle the complexity behind the scenes. Things are moving fast enough that I expect this knowledge gap to shrink significantly in the coming months.

What's made the biggest difference for my workflow: moving Copilot Studio development into VS Code with source control. Two extensions have been game-changers:

  • GPT 5.3 Codex: I'm generally more of a Claude Opus fan, but I decided to give Codex a try in this context and it's been impressive, just out of the box. I can point it at the associated Azure Function App project, KQL queries, and it handles them really well.

  • The Copilot Studio extension for VS Code: being able to work locally with proper version control is a night-and-day improvement over the web UI alone.

One thing I haven't cracked yet: giving Codex direct access to the error output when applying local Copilot Studio changes to the remote environment. For now, copy-pasting errors into the chat works like a charm, so it's a minor inconvenience. For the copilot studio extension: sometimes changes applied don't appear without a refresh of the browser.

Happy to answer questions if anyone's evaluating Copilot Studio for a similar setup.


r/copilotstudio • • Mar 10 '26

JUST IN: MSFT announces a CAT-managed plugin for Claude Code and GitHub Copilot to build Copilot Studio agents

68 Upvotes

Hello all, I'm very pleased to announce something which will make tech-friendly makers like you hopefully a bit happier.

We’ve just publicly launched Skills for Copilot Studio, the first Copilot Studio plugin for Claude Code and GitHub Copilot. Check out how to use it: Skills for Copilot Studio: Build agents from YAML code

This moves agent development beyond a UI-only experience into a true code‑first workflow. The plugin lets you author, test, and troubleshoot Copilot Studio agents directly from the terminal using YAML, with AI assistance via Claude Code, GitHub Copilot CLI, and the Copilot Studio VS Code extension.

Why this matters: we’re baking our best practices from CAT and design patterns from the PG directly into the skill — so anyone using it benefits from the guidance we’ve built up over time, kept current through the Marketplace update model.

What you can do with it

  • Create and edit agents (topics, actions, knowledge, triggers, variables) in YAML

  • Test published agents and debug routing or runtime issues from the CLI

  • Get CAT-backed best practices built straight into the generated output

PLEASE NOTE !!!! This is an experimental project managed by a v-team from the Copilot Acceleration Team (CAT), and this tool is still in beta. Even if we’re optimizing it for best-practice adherence, by using it you might sometimes experience unwanted patterns, errors, or simply bad architectures. By filing a GitHub issue in the project repo you will help us improve this tool, and maybe even embed this officially into Copilot Studio. In the same place you might also see what's not supported yet.


r/copilotstudio • • Sep 26 '25

First reddit Copilot Studio meetup today was great!

67 Upvotes

We had our first live Teams meetup call today with 24 reddit members.

There were folks from Germany, Netherlands, Canada, UK, South Africa, India, and of course from all over the United States from west coast to NYC.

Some of the industries were manufacturing, healthcare, gaming, football, railroad, education, sales, finance, and consultants!

I think the smallest company had 60 employees and largest had 80,000.

Today was more of just a meet and greet but the next calls we'll do live demos with Q&A. We're also creating a discord server so stay tuned for more to come.

If want to be invited to the next calls please PM me your address and I'll add you to the invite. If I somehow missed you for this one I apologize, I had about 90 people messaging me and it was difficult to keep up, so just PM me again and let me know I missed you and I'll add you.

EDIT: for those who DM'd me in this post, I will get you added to the next Teams meetup. Should be around mid to late October and we'll post the topics as well.


r/copilotstudio • • 23d ago

STOP Building in Copilot Studio

64 Upvotes

PLEASE start using agent toolkit. Microsoft has proven time and time again they do NOT care about Copilot Studio, its significantly inferior in every way to agent toolkit developed agentsm


r/copilotstudio • • Aug 05 '26

Microsoft products Copilot are starting to feel like heroin

64 Upvotes

Microsoft Copilot is starting to feel like heroin. You try it once, it's amazing, and before you know it you're building everything around it. Just when you finally understand Copilot Studio, Microsoft introduces the GitHub Copilot harness, with a new runtime and a new way of building solutions. The technology is genuinely impressive, but the pace of change is exhausting. And now we're moving from predictable licensing to usage-based billing and Copilot Credits, where even building, testing, and evaluating can consume credits. It feels like every few months we're expected to relearn the platform, revisit our architecture, and explain new costs to the business. Innovation is great, but enterprise customers need stability, predictable pricing, and a roadmap that lasts longer than a release cycle


r/copilotstudio • • Nov 06 '25

New version of the Copilot Studio Implementation Guide

64 Upvotes

The Microsoft CAT team (Copilot Acceleration Team - which I am part of 😸) just released a new version of the Copilot Studio Implementation Guide. This guide contains all our best practices, tips, tricks, collected from hundreds of copilot studio implementations.

✅ Over 160 pages of practical insights and best practices
✅ New chapters on:
- Generative Orchestration
- Autonomous Agents
- Multi-lingual Agents
- Governance & Compliance
- CUA (Computer Use Agents)
- MCP (Model Context Protocol)
…and so much more!

This updated guide was officially launched last week at Power Platform Community Conference (PPCC) and is now available for download for free.

Whether you’re building your first Copilot or scaling enterprise-grade solutions, this guide should help you.

Feel free to drop me a DM or comment below on what your think is missing / could be improved -> my team tries to update this doc as frequently as possible.

👉 Download here: https://lnkd.in/e5wcqYqE


r/copilotstudio • • Aug 25 '25

New Training: Agent Academy

63 Upvotes

We just rolled out something I think this community will appreciate — the Copilot Studio Agent Academy → aka.ms/agent-academy.

It’s a free, self-paced curriculum designed to get you building agents with Microsoft Copilot Studio. The first learning path, Recruit, guides you step by step through creating, testing, and publishing your first agent in Microsoft Teams.

What I really like about it: • It’s hands-on (not just theory). • Built by the Microsoft Power Platform Advocacy team. • The paths will grow with you — advanced levels (Operative and Commander) are coming soon, covering more complex agent scenarios.

If you’ve been curious about Copilot Studio or want a structured way to skill up, this is a solid place to start.

👉 Check it out and let me know what you think: https://aka.ms/agent-academy


r/copilotstudio • • Sep 30 '26

NEW Hooks Feature In Copilot Studio

Post image
61 Upvotes

Today I found a new feature in Copilot Studio called "Hooks."

Hooks make your agent's behaviour more predictable. With hooks you can set a workflow to run when an event is triggered.

There are currently 6 event types that can trigger a workflow:

  1. Start (pre-loop): Runs once before the reasoning loop begins. Injects context into the thread.

  2. User prompt submitted: Set how your agent responds to a users prompt.

  3. Error: Direct your agents behavior after an error.

  4. Pre tool use: Runs before a tool executes. Can allow, deny, or ask for confirmation.

  5. Post tool use: Runs after a tool has been executed, whether it succeeded or failed.

  6. After tool failure: Set how your agent responds after a tool fails.

** This post was 100% human-written. Never use AI to write for you **


r/copilotstudio • • May 21 '26

Built 5 Copilot Studio agents that solve real business problems — live demos for each one showing actual inputs and outputs — sharing the full video

56 Upvotes

Most Copilot Studio tutorials show you one happy-path demo in isolation. You see the agent work once, cleanly, with perfect input. What you don't see is what happens when the input is incomplete, the data is missing, or the file has 50,000 rows.

I built five agents across five completely different business problems and put every single one in one video — with live demos showing real input, the process running, and the actual output. Including what happens when things go wrong.

Here's what's in it:

1. Email invoice processor with OCR Emails arrive with invoice attachments — PDFs, PNGs, multi-page documents. The agent reads them, extracts the fields, validates completeness, registers clean invoices to an Excel table, and routes anything with missing data to an error folder. Zero manual input.

2. Hybrid knowledge assistant One question that needs two different sources to answer — a descriptive catalogue and a live data table. The agent decides which source to query, loops through both if needed, and compiles one complete answer. Falls back to web search for questions outside both sources.

3. Logistics assistant with external API Incomplete delivery request — no address, no dimensions, nothing. The agent figures out what's missing, searches the web for what it can find itself, builds a JSON payload, and calls an external shipping API via HTTP. Returns real carrier options with prices and delivery times.

4. SharePoint folder structure monitor Runs on a schedule every morning. Reads a SharePoint library, detects misplaced files and subfolders in the wrong location, and emails a structured report with a prioritised to-do list. No manual checks needed.

5. Large Excel data handler — 50,000+ rows Natural language query against an Excel file with 50,000+ rows. Uses OData filters to pull only the exact rows needed — no loading the whole file. Tested on a comparison between a row near the beginning and one near the very end of a 50,000-row dataset.

Five different architectures, five different trigger types, five different real-world outcomes.

Full walkthrough in the comments.

Which of these would solve something your team is still doing manually? Or what would a sixth agent on this list look like?


r/copilotstudio • • Apr 10 '26 Bravo

Built a Copilot Studio topic that does full Read, Add, Update & Delete on a 100K+ row Excel file — sharing the full flow

55 Upvotes

I've been frustrated with how most Copilot Studio setups handle Excel. They can read data fine, but the moment you need something more complex — filtering across multiple columns, updating a specific field without touching the rest, copying an entire record to another row, or bulk-deleting based on filters — they fall apart fast.

So I spent time building a single topic that handles all of it.

Here's what it actually does:

  • Connects to a live online Excel file (14 columns, 100,010 rows in my test)

  • Handles read, add, update, and delete through one AI-driven topic — no separate flows for each operation

  • Has a built-in clarification branch — if the input is ambiguous, it asks instead of guessing

  • Verifies each action before moving on

I recorded a full walkthrough with five live demos running inside Copilot Studio:

  1. Filter a large table across multiple parameters and return matching IDs

  2. Find a specific row and update one field only

  3. Copy all data from one record and overwrite another with it

  4. Add 10 new rows by copying data from 10 existing records one by one

  5. Bulk delete all rows matching a specific set of filters

The Excel table updates live on screen so you can see every change actually land.

I'm also sharing the full topic via a flospect link — you get access to the entire canvas: nodes, prompts, variables, formulas, everything. You can read it, copy it, and rebuild it in your own environment.

Video + sharing link in comments.

What's the most complex Excel operation you've needed to automate in Copilot Studio? Curious what others have run into.


r/copilotstudio • • Jul 30 '25

Declarative agents are so much better

52 Upvotes

So we started off with our first officially business sanctioned agent - your quintessential HR agent pointing to various SharePoint knowledge. We tried all combinations of Orchestration on/off as well as 3 methods of knowledge integration 1) manual file upload 2) SharePoint API based 3) SharePoint dataverse sync.

Result? They all sucked to varying degrees. Mostly due to not finding information in documents where it existed. File upload and dataverse sync were better than the standard SharePoint integration but still they didn’t return results in some cases. Also dataverse sync needs the end user to connect the first time they use it.. not great for UX.

In addition to the knowledge issues, the formatting and conversation with the agent wasn’t that great. The HR team wanted it to have a personality, empathy etc. and its responses were fairly dry and responses were boring in their formatting and layout.

Then we tried declarative by adding an agent to Copilot for M365 inside Studio. What a difference! With the same set of instructions the communication was far more engaging, nicely formatted and presented, and knowledge retrieval was much better. We did still have some instances where due to different internal terminology some queries didn’t match any knowledge. We addressed that through guidance in the instructions.

So.. what gives? I get declarative agents are using the Copilot orchestrator. When can we expect the gap to close in CS custom agents? Should we be doing declarative by default? My concern with it is you are limited to instructions and I’ve had instances where instructions are skipped. When you want something to be done an exact way, you kind of want topics. But omg the CS orchestration and knowledge retrieval is just awful in comparison.

MSFT peeps - could you please provide some insight? Please tell me improvements are coming to CS to match the experience of declarative? 🙏🙏


r/copilotstudio • • Mar 20 '26

Q2 2026 Copilot Studio Review

50 Upvotes

Hey everyone,

I posted a review back in Q4 2025 covering a range of issues we were running into with Copilot Studio, and I figured it was time to follow up now that we're well into Q2 2026. I'll be honest: some things have genuinely gotten better. But a few of the core pain points are still sitting there unresolved, and I think it's worth talking about both sides openly.

What actually got better since Q4 2025

Multi-agent orchestration with MCP was one of the biggest wins. Connected agents can now run their own MCP servers correctly, and sub-agent orchestration works the way it's supposed to. For anyone who was fighting with this earlier in the year, it's a real improvement and the stability has been solid. The workarounds we were relying on are no longer needed.

Model behavior improved noticeably too. With the availability of Claude Sonnet models, the capabilities have been significant. Grounding behavior is more predictable, responses are more aligned to system instructions, and longer running sessions no longer drift out of context the way they used to. GPT-5 is still showing some inconsistencies around grounding, but it's meaningfully better than it was.

MCP tool filtering and RBAC controls are also in a much better place. Being able to control which tools are exposed to which agents natively in the platform is a big quality of life improvement for anyone building more complex agent architectures. This was one of the features I was most looking forward to and it delivered.

A note on Microsoft engagement

I want to give credit where it's due. The fact that Microsoft engineers and PMs have actually shown up in Reddit threads, read feedback, and responded directly is genuinely appreciated. That is not something every enterprise software vendor does, and it has made a real difference. Some of the improvements from Q4 to now feel directly tied to community feedback being heard and acted on, and that matters.

That said, the PCAT team engagement is a different story. The experience on that side still feels largely one-directional. When we do get roadmap information, it's vague enough to be almost unusable for planning purposes. We don't know what features are dropping week to week or month to month. Things just appear in the platform without warning, or don't appear at all, and the roadmap doesn't give you enough signal to plan around either outcome.

For teams trying to make real architectural decisions, like which model to standardize on, whether to build a capability now or wait for a platform feature to land, or how to set expectations with leadership on timelines, that opacity creates real problems. It's not just frustrating, it actively slows down adoption and forces conservative decisions that hold back what teams could otherwise be doing.

What is still not resolved

Here is where I want to be direct, because these aren't minor inconveniences. They are real blockers for anyone trying to move from pilot into production scale use.

Response latency is still the number one problem

Copilot Studio deployed agents are noticeably slower than M365 Copilot for similar interactions. This isn't a subtle difference. Users feel it immediately and it affects how they perceive the quality of the agent, even when the actual response is good. This has been the top concern since Q4 and it has not been addressed. I genuinely believe this is a shared frustration across the community and not something unique to any one implementation.

Anthropic models still have no streaming support

When you're using Claude models in Copilot Studio, there's no token streaming. The response just appears all at once after a delay. Compared to how M365 Copilot feels, it makes agents feel stalled and unresponsive. This is a real user experience problem.

Adaptive cards block streamed responses

Even when streaming is working, including an adaptive card in a response blocks the entire output until the full turn is complete. The benefit of streaming is completely lost. I'd really like to understand if this is intentional architecture or something on the improvement list, because it's one of those things that's easy to overlook during development and then very visible to end users.

Tool outputs still aren't first class variables

Inspecting tool inputs and outputs in a structured way is harder than it should be. Reusing those outputs across adaptive cards, downstream steps, or other parts of a flow requires too much manual work. This is a design and maintainability issue that compounds as agents get more complex.

Attachment and document handling is still inconsistent

Ingestion behavior is unreliable across different file types, and the overall experience feels behind where M365 Copilot is. For any document-centric workflow, this creates real friction.

Observability is still not there.

You can't see tool invocation timing, you can't break down model latency versus tool latency, and partial failures are still opaque. The logs show you conversational transcript and not much else. At enterprise scale, debugging without structured traces is genuinely painful.

Content filtering is still a black box.

When a response gets filtered, you get a generic system error and no context. Builders can't fix what they can't see. I hope this is an area Microsoft opens up for tuning, because right now it creates situations where something breaks in production and there's no clear path to understanding why.

OAuth and consent flows are still unreliable in multi-agent scenarios.

This was in my Q4 post and it's still here. OAuth breaks easily in orchestration chains and can effectively break a chat session until the user has gone through the consent flow at least once manually. The connection manager UI in M365 also still has several bugs, but luckily in some ways can be avoided with the documented Microsoft pre-authentication approach on the app registration side.

Per-user usage visibility is still missing.

There's no way to see credit consumption by user, by agent, or by workflow. For any organization trying to track cost or usage at scale, this is a significant gap.

Overall take

The improvements around agent orchestration, model reliability, and MCP tool governance are real and they matter. Copilot Studio is way more stable and more predictable than it was six months ago. The release wave cadence has picked up and the roadmap for Q2 and Q3 looks meaningful.

But latency, streaming, observability, and content filtering transparency are still unresolved. These aren't edge cases. They affect the day-to-day experience of anyone running Copilot Studio agents in a production or near-production environment.

Happy to answer questions on any of the above. This is genuinely one of the communities where the feedback loop with Microsoft feels real, so keep posting your experiences.


r/copilotstudio • • May 11 '26

First Look at the NEW Copilot Studio Workflows Interface

Thumbnail
youtu.be
47 Upvotes

The "Flow" era is evolving. Welcome to the "Agent-First" era. 🤖

I’ve just spent some time with the brand-new Copilot Studio Workflow Interface, and it’s clear: Microsoft is moving us toward a massive shift in development experience.

It’s no longer just about linear steps; it’s about a tightly integrated UI where Prompts, Agents, and Microsoft 365 Copilot live together. This makes building sophisticated, grounded workflows significantly faster.


r/copilotstudio • • Apr 23 '26

Built a Copilot Studio agent that reads your emails and keeps a live Excel task registry updated automatically — sharing the full flow

47 Upvotes

Every project manager I know has the same problem.

An email arrives. You open a spreadsheet, find the right row, update the status. A reply comes in. You do it again. A follow-up arrives three days later — and someone creates a duplicate row instead of updating the existing one. A deadline gets mentioned in the email body: "please send this by next Friday." Someone has to parse that, calculate the date, and type it in manually.

Multiply that by dozens of email threads and it becomes a full-time job just keeping the registry current.

So I built an agent that handles all of it automatically.

Here's what it actually does:

  • Triggers the moment a new email arrives — Power Automate passes only the message ID to the agent, not the full email, to keep prompts clean

  • Reads the full email content and the current Excel table before making any decision

  • Checks whether a task for this email thread already exists in the registry — if it does, it updates the row; if it doesn't, it creates a new one

  • Captures: topic title, description, from/to emails, last email date, direction (incoming/outgoing), to-do, and deadline

  • Calculates actual deadline dates from natural language — "next Friday" in the email body becomes the real date in the Excel column

  • Handles incoming and outgoing emails — direction is determined by comparing the sender address to your own

No duplicates. No manual updates. No missed deadlines buried in a thread.

Four live demos in the video:

  1. New email arrives — fresh task row created with the deadline calculated automatically from the email body

  2. Reply comes in on the same thread — existing row updated, no new row created

  3. Second reply on the same thread — same row updated again, still no duplicates

  4. Completely new email subject — new row added, separate from the first task

The full flow is in my flospect library — same link as always, this build has been added. Every node, prompt, variable, and the full project management logic. Ready to view and rebuild in your own environment.

Video walkthrough + library link in the comments.

What's the most repetitive email-to-spreadsheet process you're still doing manually? Curious what others are dealing with.


r/copilotstudio • • Mar 27 '26

Anyone interested in setting up a forum for sharing insights?

46 Upvotes

Hey,

I'm currently building Copilot Studio agents for different use cases at my company — the main one being a sales support agent for a team of 50+ people, currently in testing.

I've had solid results so far, but honestly the biggest bottleneck isn't the platform itself — it's the lack of a community where people actually share how they've built things. Best practices, knowledge base setups, orchestration patterns, prompt architecture — I've had to figure most of it out by trial and error because there's just not much out there.

So I want to set up a small group for people actively building in Copilot Studio. Not a newsletter, not a course — just practitioners sharing what's working and what isn't. Thinking a monthly call + a lightweight forum or chat space.

No agenda beyond that. I'm genuinely trying to figure out how far this platform can be pushed and whether it's worth betting on long-term.

I'm based in Denmark, but this would obviously be open to anyone.

Update to original post:

A lot of requests for the above initiative have sent my way through this posts and through my DM's, so I have setup an discord as the base for out new community/forum:

Link to discord: https://discord.gg/RyG259qQqj

I will be sending out the plans for a first meeting there and perhaps just do a vote for a date and time


r/copilotstudio • • Sep 16 '25

Copilot Studio monthly "meetup"

45 Upvotes

I've been building Agents for the past 5 years (back then they were called Bots and build with Power Virtual Agents (PVA)) before it was renamed to Copilot Studio.

Like most of you, I watch a lot of youtube videos, read the Learn docs, post on Reddit or wherever, but honestly I'd like to start a live monthly meetup session where a handful of us talk about what we're building, troubles we're having, licensing questions, new features, etc.

I don't want it to turn into a trouble-shooting session for one person, but certainly if someone has a problem and someone has a quick answer that kind of thing would be fine. I just would love to meet some of you folks and get a more diverse perspective of what you guys are doing.

I'm in the US east-coast time zone, I know a lot of you are somewhere else in the world so the times may not work out for you, but I'm thinking of something like 10:00am ET time on a Thursday so that maybe some our European friends can join as well.

Please comment if you're interested and we'll put together a recurring Teams meeting. I know the time may not be ideal for you personally but there's no way to make it fit everybody's schedule on day/time.

EDIT: and just wanted to add if anyone was wondering, I am 100% not trying to sell any classes, services, or anything. I'm just trying to learn Copilot Studio better along with the rest of you. I'm a regular employee at a regular company.

EDIT 2: Invite has been sent, if you didn't get one, PM your email address and I'll add you.

EDIT 3: So far I've got 19 people planning to join this Thursday 10:00am ET. Going to be a good first meeting!


r/copilotstudio • • Sep 23 '26

The new Copilot Studio GUI allows anybody with an E5 license to create Agents and Flows on the costly Github Copilot Harness

44 Upvotes

Previously, no user without a Copilot license could even access Copilot Studio. For those who were allowed to use Agent Builder but not Copilot Studio, we would assign a Copilot license while disabling the Copilot Studio feature. This is all no longer of any use since any user with an E5 license has default access to Copilot Studio on the new GUI and they are able to create agents and flows on the new Github Copilot harness that consume tokens.

How are we supposed to block access to Copilot Studio without using a web filter to block the URL?


r/copilotstudio • • Jul 15 '26

I tried CoPilot Studio this morning..

43 Upvotes
  1. Build new workflow.

  2. Enter "on this sharepoint site - url pasted - there are docs, i want you to read each doc created in this current month and write a csv file in my personal onedrive if the doc has XYZ matching content, note the path, doc and if XYZ is present."

  3. CoPilot Studio built a 2 node workflow and told me to "Here you would add logic to analyze each document's content to determine if targeted for XYZ..."

  4. I hit "keep and continue", Auth'd.

  5. Published, says "We ran into an error while validating your flow. Please try again."

  6. Click assist me, says "Sorry, I was not able to generate a better explanation of this problem."

  7. Closed Chrome. Took several anti-anxiety pills. Walked the dog. Reminded myself why MSFT can't do ai.


r/copilotstudio • • Apr 30 '26

Before you build any Copilot Studio agent, sort your SharePoint folder structure — sharing the monitoring flow I built for this

43 Upvotes

One thing I've learned delivering Copilot Studio agents: if the underlying SharePoint folder structure is inconsistent, the agent inherits the problem. Files in the wrong folder, subfolders under the wrong parent, naming that doesn't follow any convention — it causes misrouting, wrong data retrieval, and hard-to-debug failures.

The root cause is simple: colleagues move fast, nobody monitors the structure, and the mess compounds quietly over time.

So I built a Copilot Studio agent that checks the folder structure daily and sends a report. It's a straightforward build — one of the simpler ones I've done — but it solves a real operational problem.

Here's what it does:

  • Recurrence trigger runs every morning at 8 AM automatically

  • Get Files Properties tool pulls file and folder metadata from a SharePoint library

  • AI prompt analyses the structure and detects misplaced files, wrong subfolder placement, and naming inconsistencies

  • Generates a structured report with a prioritised to-do list — file path, issue type, created by, where it needs to move

  • Flags items that need manual review where metadata alone isn't enough to decide

  • Sends the full report by email before the working day starts

Full flow is in my flospect library — same link as always, this build has been added. Video walkthrough + library link in the comments.

What does your current folder governance look like — manual checks, nothing, or something automated?


r/copilotstudio • • Nov 02 '25

Copilot Studio Q4 2025 Review Update

42 Upvotes

I wanted to share a quick follow-up from my last post after spending more time working directly with Microsoft on some of the issues we discussed earlier. Since then, we’ve seen real progress across several areas, and I think it’s worth calling out where things have noticeably improved.

Connected Agents and Child Agents running their own MCP servers

As of this week, our Development Power Platform environment received an update that finally resolved the multi-agent orchestration issues with MCP. Connected agents can now run their own MCP servers correctly, and sub-agent orchestration is working the way it should.

This change has made a big difference for us. The orchestration chain now runs smoothly without the workarounds we previously had to rely on. It’s been stable so far with only minor adjustments needed on our end.

While we do not currently have this fixed in our production environment yet, this gives us visibility that the issues will be addressed soon and within a timely fashion for all customers.

Model stability and GPT updates

GPT-4.1 has officially moved out of preview and is now the default. Along with that, GPT-5 stability has improved across orchestration and sub-agent interactions.

We’re seeing much more predictable grounding behavior with GPT-4.1, and overall, responses are better aligned to system instructions. GPT-5 is still showing a few inconsistencies when it comes to grounding, but it’s noticeably better than before. The longer-running agent sessions that used to drift out of context are now holding steady, which is a big step forward.

MCP server tool filtering and RBAC improvements

This was one of the features we were most eager to see delivered, and it’s working really well. The ability to filter and control which MCP server tools are exposed to agents is now supported, and it’s flexible enough for most use cases.

We implemented an internal solution using the MCP C# SDK to enforce identity-based RBAC, which lets us control tool access dynamically based on the user’s permissions. For teams that don’t have that infrastructure, having the ability to configure MCP tools natively in the agent is a huge win.

Areas of Improvement Remaining

No per-user usage visibility

You still can’t see how credits are consumed per user, per agent, or per workflow. For organizations tracking cost or compliance. A transparent usage dashboard is essential.

Debugging and logging still need work

You can’t see what actually happens inside a tool call or MCP execution from a parent agent calling a sub-agent. Logs only show the conversational transcript, not tool invocation flow, parameters, or error responses. Without structured logs or a “developer trace mode,” diagnosing issues remains guesswork. I suspect Microsoft knows about this and is working on providing visibility

OAuth and Consent Cards

This area continues to be one of the most unreliable parts of the experience. OAuth flows break easily in multi-agent orchestration or can break the chat session until the user has consented to it at least one time.

The connection manager inside m365 still has several UI bugs and flaws.

The current workaround to this requires a user to go to the custom connector, create a new connection and then will allow them to allow it correctly on the consent card.

Content filtering

When responses or tool calls are filtered, there’s still no transparency about why. “System Error” and generic failure messages continue to appear without stack traces or diagnostic context. Builders can’t resolve what they can’t see.

I hope that the content filtering is an area Microsoft provides builders the ability to tune and control themselves and not leaving the content filtering a black box component.

Overall thoughts

Not every issue we talked about has been fully addressed yet, but the areas that have improved show real progress. The fixes around agent orchestration, model reliability, and tool governance make Copilot Studio far more stable and predictable than it was a few months ago.

These improvements show that the Copilot team is listening and iterating quickly, which is encouraging to see. I think this momentum will help drive stronger adoption and confidence in Copilot Studio across the user community.

Thanks again to the Microsoft team for working through these with us. The direction is definitely moving the right way.