Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Expert guidance for Microsoft Copilot Studio development including custom copilots, topic design, trigger phrases, actions, knowledge sources, generative AI answers, and channel publishing. Use when building conversational agents, designing topic flows, connecting knowledge bases, or publishing copilots to Teams and websites.
.claude/skills/majiayu000-copilot-studio/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 109% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 197% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 112% | 0% |
| case-20 | ✓→✓ | = Same ✓ | 68% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 97% | 0% |
Expert guidance for building custom copilots with Microsoft Copilot Studio, including topics, actions, knowledge sources, and channel publishing.
Use this skill when you see:
┌─────────────────────────────────────────────────┐
│ Custom Copilot │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Topics │ │ Knowledge │ │ Actions │ │
│ │ (Dialog │ │ Sources │ │ (Power │ │
│ │ flows) │ │ (Gen AI) │ │ Automate) │ │
│ └───────────┘ └───────────┘ └───────────┘ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Entities │ │ Variables │ │ Channels │ │
│ │ (Slot │ │ (Global/ │ │ (Teams, │ │
│ │ filling) │ │ Topic) │ │ Web, etc.)│ │
│ └───────────┘ └───────────┘ └───────────┘ │
└─────────────────────────────────────────────────┘Topics are the building blocks of a copilot conversation. Each topic handles a specific user intent.
Trigger Phrases:
- "Where is my order?"
- "Check order status"
- "Track my delivery"
- "Order tracking"
- "When will my order arrive?"
Flow:
1. Question: "What is your order number?" -> Save to Topic.OrderNumber
- Entity: Custom regex pattern [A-Z]{2}\d{6}
- Reprompt: "Please enter a valid order number (e.g., AB123456)"
2. Action: Call Power Automate flow "Get Order Status"
- Input: Topic.OrderNumber
- Output: Topic.OrderStatus, Topic.EstimatedDelivery
3. Condition: Topic.OrderStatus
- "Shipped" ->
Message: "Your order {Topic.OrderNumber} has shipped!
Estimated delivery: {Topic.EstimatedDelivery}"
- "Processing" ->
Message: "Your order {Topic.OrderNumber} is being processed.
You'll receive a tracking number once it ships."
- "Delivered" ->
Message: "Your order {Topic.OrderNumber} was delivered on {Topic.EstimatedDelivery}."
- Else ->
Message: "I couldn't find order {Topic.OrderNumber}. Let me connect you with support."
Redirect: Escalate topicKnowledge sources enable generative AI answers from your organizational content.
Knowledge Source Setup:
1. Navigate to copilot > Knowledge
2. Add source type (SharePoint, Website, Files)
3. Configure:
- SharePoint: Enter site URL(s), select libraries
- Website: Enter root URL, set crawl depth (1-4)
- Files: Upload documents (max 3MB each, 100MB total)
4. Set description for AI to understand when to use this source
5. Test with sample questions in Test Copilot paneActions extend copilot capabilities by connecting to external systems.
Action Setup:
1. Create a Power Automate cloud flow
2. Trigger: "When Power Virtual Agents calls a flow" (now "Run a flow from Copilot")
3. Define input parameters (from copilot variables)
4. Add flow logic (Dataverse, HTTP, connectors)
5. Return output parameters (back to copilot variables)
6. In Copilot Studio: Add Action node > select the flow1. In topic, add Action node > "Call a connector action"
2. Select connector (e.g., Outlook, SharePoint, Dataverse)
3. Map input parameters from topic variables
4. Map output to topic variables for use in messages1. Create an AI Builder custom prompt
2. Define prompt template with placeholders
3. In Copilot Studio: Add Action node > "AI Builder prompt"
4. Map topic variables to prompt placeholders
5. Use prompt output in subsequent message nodesCopilots are Dataverse solution components and follow standard Power Platform ALM.
bash# Copilots live inside Dataverse solutions pac solution export --name CopilotSolution --path ./copilot-solution.zip --managed false # Unpack for source control pac solution unpack --zipfile ./copilot-solution.zip --folder ./src/CopilotSolution # Solution includes: # - Chatbot component (copilot definition) # - Chatbot subcomponents (topics, entities, variables) # - Related Power Automate flows # - Knowledge source configurations
1. Go to copilot > Channels > Microsoft Teams
2. Click "Turn on Teams"
3. Options:
- Share link directly with users
- Submit to Teams admin for org-wide deployment
- Add to Teams app catalog
4. Users find copilot in Teams chat or app bar1. Go to copilot > Channels > Custom website
2. Copy the embed snippet (iframe or webchat script)
3. Add to canvas app HTML text control or custom pagehtml<!-- Embed via Direct Line --> <script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script> <script> window.WebChat.renderWebChat({ directLine: window.WebChat.createDirectLine({ token: 'YOUR_DIRECT_LINE_TOKEN' }), userID: 'user123' }, document.getElementById('webchat')); </script> <div id="webchat" role="main" style="height: 600px; width: 400px;"></div>
| Practice | Description | |----------|-------------| | Trigger phrases | Use 5-10 diverse phrases per topic; avoid overlapping triggers | | Fallback topic | Customize the fallback to gracefully handle unrecognized input | | Entity validation | Use entity types and reprompt messages for data quality | | Knowledge scope | Add descriptions to knowledge sources so AI picks the right one | | Testing | Test every conversation path in the Test pane before publishing | | Topic naming | Use descriptive names: "Order Status Lookup" not "Topic 1" | | Variables | Prefer topic-scoped variables; use global only for cross-topic state | | Escalation | Always provide a path to a human agent for complex issues |
Other measured skills in the registry, with their headline benchmark lift.