Using this handout
Every blue-accented block below is a copy-paste prompt or instruction used during the class. Click Copy on any block to drop it into Copilot Studio, Power Automate, Outlook, or Teams. The blocks are sequenced in the exact order they're used in class — follow top-to-bottom for a clean run.
The three demos:
- Easy Contoso Concierge — declarative agent, grounded knowledge, published to Teams.
- Intermediate Contoso Service Hero — custom topic + Power Automate action that files a real ticket.
- Wow Contoso Deal Desk — autonomous agent with generative orchestration, triggered by email, posts to Teams.
Pre-class prereqs (stage the day before)
Accounts & licenses
- Microsoft 365 tenant with Copilot Studio license on the demo account.
- Power Automate premium (for the Demo 2 action).
- Permission to publish agents to Teams in the demo tenant.
Content to stage in the tenant
- Contoso Employee Handbook (PDF, 10–40 pages) — fictional or anonymized.
- Contoso HQ SharePoint site with the handbook uploaded.
- Contoso Orbit Product FAQ (DOCX or PDF).
- Contoso Rate Card Excel file on SharePoint — columns: Product, List Price, Floor Price.
- deals@contoso.com (or any test mailbox you control) for Demo 3's trigger.
- A Teams channel named Contoso – Deal Desk.
- A Power Automate flow named Create Contoso Ticket (see Demo 2).
Demo 1 · Contoso Concierge Declarative agent
"Contoso just rolled out a new employee handbook, and HR is drowning in 'where do I find the PTO policy' emails. Let's build them a concierge."
Step-by-step
- Go to https://copilotstudio.microsoft.com → Create → New agent.
- Switch to the Describe tab and paste the agent description below.
- Let Copilot Studio auto-generate name, description, and instructions.
- Go to Knowledge → Add knowledge → Files. Upload the Employee Handbook PDF.
- Add knowledge again → SharePoint → paste the Contoso HQ site URL.
- Go to Starter prompts and replace defaults with the four below.
- Click Test in the right pane. Run the live test prompts in order. Point out the citations.
- Publish → Channels → Microsoft Teams. Install and open live.
Copy-paste prompts
Build me an internal employee assistant for Contoso called "Contoso Concierge". Its personality is warm, concise, and never corporate. It helps Contoso employees with HR policies, benefits, time off, IT basics, and finding the right person to talk to. It always cites the policy page it's quoting from. If it doesn't know the answer, it offers to open a ticket with HR and never guesses.
How much PTO do I get as a new Contoso employee? What's Contoso's policy on remote work? Who do I contact about parental leave? Summarize the Contoso code of conduct in 5 bullets.
How much PTO do I get as a new Contoso employee? What about after 5 years? Who do I contact about parental leave? What if I still need help?
"Notice what just happened: no training data, no prompt engineering degree, no code. I described what I wanted in plain English, dropped in a PDF, and 90 seconds later Contoso has a concierge that cites its own handbook. This is what Microsoft means by low-code AI."
Demo 2 · Contoso Service Hero Topics + Action
"Concierge is great for 'what's the policy' questions, but the real business magic is when the agent does something. Contoso's support team gets 400 tickets a week — let's teach Service Hero to take the ticket itself."
- A Power Automate flow Create Contoso Ticket with inputs
customerName,productName,severity,description→ creates a row in a SharePoint list or Dataverse table and returns a ticket number. - A SharePoint list Contoso Tickets (Title, Customer, Product, Severity, Description, Status).
- The Contoso Orbit Product FAQ file ready to upload.
Step-by-step
- From Copilot Studio home → Create → New agent. Paste the agent description.
- Add three knowledge sources: Contoso Orbit Product FAQ (file), Contoso support website (URL), Contoso HQ SharePoint site.
- Go to Topics → + Add a topic → Create from description with Copilot. Paste the topic generation prompt.
- Review the auto-generated topic canvas. Point out trigger phrases, Question nodes, and the action placeholder.
- Click the action placeholder → Add an action → Choose an existing Power Automate flow → pick Create Contoso Ticket. Map topic variables to flow inputs.
- Back in Overview → update the agent Instructions with the text below.
- Open the Test pane. Run the three live test prompts in order. The third triggers the topic and files a live ticket.
- Open the SharePoint list live to show the row the agent just created.
- Publish → Channels → enable Microsoft Teams and Demo website. Drop the web chat URL in the class chat.
Copy-paste prompts
Build me a customer support agent for Contoso called "Contoso Service Hero". It helps customers troubleshoot the Contoso Orbit product line and, when it can't solve the issue in chat, creates a support ticket on their behalf. It is patient, asks one question at a time, always confirms before filing anything, and always returns a ticket number the customer can reference.
Create a topic called "File a Support Ticket" that triggers when a customer says they want to open a ticket, log an issue, report a problem, escalate, or talk to a human. The topic should collect the customer's name, the product name (default to Contoso Orbit), the severity (Low, Medium, High, Critical), and a description of the issue. Confirm the details back to the customer, then call the action "Create Contoso Ticket" to file it. Return the ticket number in the confirmation message and offer to email the customer a copy.
You are Contoso Service Hero, a friendly product support specialist. Always try to solve the issue in chat first using your knowledge sources. If the customer explicitly asks to open a ticket, or you've tried two approaches and haven't resolved it, use the File a Support Ticket topic. Never make up a ticket number — always use the one returned by the action. When you file a ticket, restate the ticket number clearly and give the customer a realistic expectation of response time based on severity (Critical: 1 hour, High: 4 hours, Medium: next business day, Low: 3 business days).
My Contoso Orbit won't connect to Wi-Fi after the latest firmware update. I tried that. It still won't connect. I need someone to help me. Yes, please open a ticket. My name is Priya Desai, the severity is High, and the issue is: Orbit unit #A47 will not associate with the corporate SSID after firmware 4.2.
"Pause on this for a second. A business user just built, in twelve minutes, an agent that understands a product catalog, troubleshoots in natural language, collects structured data, calls a business system, and returns a real ticket number. No C# developer was harmed in the making of this demo. This is what Copilot Studio unlocks that Agent Builder can't."
Demo 3 · Contoso Deal Desk Autonomous
"Contoso reps get deal requests emailed to deals@contoso.com. Today, a human spends 15 minutes on each — summarizing, pricing, posting to Teams, flagging for approval. Watch what happens when we hand that off."
- A mailbox deals@contoso.com (or any test mailbox you own) as the trigger.
- A Contoso Rate Card Excel file on SharePoint (Product, List Price, Floor Price).
- A Teams channel Contoso – Deal Desk.
- A second mailbox (Gmail or a separate tenant user) to send the live trigger email.
- Pre-build the skeleton — only finish the last few steps live. This is a showcase demo, not a from-scratch build.
Step-by-step
- In Copilot Studio, Create a new agent. Switch orchestration to Generative (use generative AI to orchestrate).
- Paste the agent description below.
- Add the tools listed below — show the class these are tools, not topics. The agent will pick which to call.
- Set the trigger: When a new email arrives in deals@contoso.com.
- Paste the agent instructions into the Instructions field.
- From a second mailbox, send the trigger email below.
- Switch to Teams and wait for the Adaptive Card to post in the Deal Desk channel.
Copy-paste prompts
Build an autonomous agent for Contoso called "Contoso Deal Desk". Its job is to process incoming sales deal requests end-to-end without a human in the loop, until approval is required. When a new deal-request email arrives at deals@contoso.com, it reads the email, extracts the customer name, the requested products, quantities, and any discount asks. It looks up list and floor pricing from the Contoso Rate Card. It drafts a deal summary. It posts an Adaptive Card to the "Contoso – Deal Desk" Teams channel with the summary and an Approve/Reject button. If the deal value is over $50,000 or the discount is deeper than the floor, it flags the card as Requires Approval. It never quotes below floor. It is precise, neutral, and short — sales leaders don't want fluff.
- Get a new email from the deals@contoso.com mailbox (Outlook connector) - Read an Excel file on SharePoint — Contoso Rate Card (Excel connector) - Post an Adaptive Card to a Teams channel (Teams connector) - Create an approval (Approvals connector, optional)
When a new email arrives at deals@contoso.com: 1. Read the email body and extract: customer name, requested products (as a list), quantities, and any discount asks. 2. For each requested product, look up List Price and Floor Price from the Contoso Rate Card. 3. Compute: subtotal at list, subtotal at requested price, and total discount %. 4. Draft a 4-line deal summary: customer, products, total value, discount %. 5. Post an Adaptive Card to the "Contoso – Deal Desk" Teams channel with the summary, a Details expander containing the line items, and an Approve/Reject action. 6. If total value > $50,000 OR any line is below Floor Price, tag the card "Requires Approval" and @mention the Deal Desk Lead. 7. Never quote below Floor Price. If asked to, post the card with "Blocked — below floor" and stop. 8. Reply to the original email with "Your request is with our deal desk, reference:".
To: deals@contoso.com Subject: Deal request — Northwind Traders Hi Contoso team, Northwind Traders would like to purchase the following: - 250 × Contoso Orbit Pro units - 250 × Contoso Orbit Care — 3-year support They're asking for a 22% discount off list across the bundle. Need to close by end of quarter. Thanks, Alex
"I never told it to read an email first, then look up the rate card, then post to Teams. I gave it a goal and a toolbox. The agent decided the sequence. That is generative orchestration — and that is something you cannot do in Agent Builder."
Closing & the ask
Before you leave this session, write down the name of ONE workflow at Contoso where people spend 15 minutes on something that should take 15 seconds. That's your first agent. Ping me on Teams this week and I'll help you scope it.
Resources to drop in the class chat
- Copilot Studio home: https://copilotstudio.microsoft.com
- Microsoft Learn — Copilot Studio learning path
- Power Automate connectors reference
- This handout (send the file)