Introduction
In our previous post, we created a meeting scheduler using Microsoft’s Copilot Studio. Today, we’ll go beyond the basics and look at three more powerful autonomous agents that interact with external APIs, reason across multi-step workflows, and manage user preferences through memory and conditions.
⚡ Agent 1: IT Helpdesk Troubleshooter
🛠 Purpose:
Diagnoses basic IT issues, suggests fixes, and raises a support ticket if needed.
🧩 Key Features:
- Dynamic decision trees
- Self-healing logic
- Integration with ServiceNow or Jira via plugin
🧠 Flow Overview:
- Ask for issue description
- Diagnose the category via a simple classifier
- Offer fixes for known issues
- If unresolved, create a support ticket
🧬 Example Power Fx Logic:
Step 1: Classify the Issue
Set(issueCategory,
Switch(true,
Contains(UserInput, "wifi"), "Network",
Contains(UserInput, "printer"), "Printer",
Contains(UserInput, "blue screen"), "OS",
"Other"
)
)
Step 2: Troubleshooting Branch
If(issueCategory = "Network",
"Try restarting your router. Did this help?",
"Let me connect you with support."
)
Step 3: Raise Ticket (via Plugin)
If(UserInput = "No",
CallPlugin("CreateSupportTicket", {description: UserInput, category: issueCategory})
)
💳 Agent 2: Expense Approval Bot
💼 Purpose:
Streamlines expense requests, verifies policy compliance, and routes for approval.
🔍 Key Features:
- Validation against company rules
- Manager lookup
- Adaptive approval logic
🧬 Flow Logic
Step 1: Ask for Amount and Description
Please enter your expense amount and what it was for.
Step 2: Validate Amount
If(Value(UserInput) > 500,
"Since this exceeds $500, I’ll route it to your manager for approval.",
"This is within policy and auto-approved.")
Step 3: Lookup Manager (via Plugin)
Set(managerEmail, CallPlugin("LookupManager", {employeeEmail: userEmail}).manager)
Step 4: Send Approval
CallPlugin("SendApprovalRequest", {
to: managerEmail,
subject: "Expense Approval Needed",
body: "Please approve the expense of $" & expenseAmount
})
🏥 Agent 3: Health Symptom Checker
❤️ Purpose:
Guides users through symptom checking, provides potential causes, and recommends next steps.
🧠 Features:
- Symptom flow with branching
- Rule-based diagnosis
- Local clinic finder
🧬 Flow Logic
Step 1: Ask for Main Symptom
Tell me your main symptom.
Classify Symptom:
Set(symptomType,
Switch(true,
Contains(UserInput, "cough"), "Respiratory",
Contains(UserInput, "fever"), "Infection",
Contains(UserInput, "rash"), "Dermatology",
"General"
)
)
Step 2: Additional Questions
How long have you had this symptom?
Do you also experience fatigue?
Step 3: Evaluate Based on Rules
If(symptomType = "Respiratory" && Contains(UserInput, "7 days"),
"This could be a viral infection. If you have breathing issues, visit a clinic.")
Step 4: Clinic Finder Plugin
Set(nearbyClinics, CallPlugin("FindClinicsNearMe", {zipcode: userZip}))
✅ Summary
| Agent | Skills Used | External Integration |
|---|---|---|
| IT Helpdesk Bot | Classification, self-healing, fallback logic | Jira / ServiceNow plugins |
| Expense Approval Bot | Conditional logic, policy enforcement | Outlook, Azure AD, Power Automate |
| Health Checker Bot | Symptom classification, logic trees | Maps API, Local health database |
🧠 What We Learned:
- Power Fx enables dynamic decisions without complex code
- Plugins let agents call real-time APIs (Graph, Jira, internal)
- Branching logic makes agents responsive and user-friendly
- Memory and personalization make agents context-aware
Views: 11
🤖 Advanced Autonomous Agents with Copilot Studio: 3 Real-World Examples
