Skip to content

๐Ÿ” Module 09: Automate Approvals with Workflows โ€‹

Codename: OPERATION CHAIN REACTION
Time: 45 minutes
Scenario: Manager Approval for Software


๐ŸŽฏ Learning Objectives โ€‹

By the end of this module, you will be able to:

  • Create a Workflow from the Tools block using the new workflow designer
  • Define input parameters and a Respond to the agent action (mind the 100-second limit)
  • Build an approval gate: Get manager โ†’ Human review (Request for information) โ†’ If/else
  • Run the human-review step and the "respond to agent" step in parallel
  • Call the workflow from the software-installation-request skill and test a Visio request

๐Ÿงญ Overview โ€‹

Some software on the Contoso list needs manager sign-off. That's a multi-step process โ€” find the manager, request approval, wait, react โ€” and it can take longer than a single chat turn. The new Workflows designer handles it.

You'll build manager_approval_for_software, add it to Bit as a tool, then update the software-installation-request skill (from Module 07) to call it.


๐Ÿ” Workflows, Briefly โ€‹

A Workflow is the new flows format in Copilot Studio, with a revamped visual designer and testing. Attach it to an agent as a tool: the agent calls it, passes inputs, and the workflow can respond back to the agent.

โฑ๏ธ The 100-second rule. When an agent calls a workflow, the workflow must respond within ~100 seconds. A human approval takes longer than that โ€” so we start the approval and immediately respond to Bit ("approval started"), running both in parallel.

๐Ÿง  Workflows include agentic actions too โ€” call other agents, classify info with AI, use M365 Copilot, and more.

โš ๏ธ Hyphens vs. underscores (again). Your skills use hyphens (software-installation-request). This workflow is named manager_approval_for_software with underscores โ€” workflows follow different naming rules. Both are correct.


๐Ÿงฐ Prerequisites โ€‹

  • Bit with the software-installation-request skill from Module 07.
  • The Office 365 Users connector (to look up the manager) and an Outlook / Office 365 connection (the Human review step sends its request by email).
  • A test user whose manager is set in the directory.

๐Ÿซ In the facilitated workshop, the connectors and a test user with a manager are pre-provisioned. If you're at the office, ensure your test account has a manager populated in Microsoft Entra ID.


๐Ÿงช Lab 9.1: Create the Workflow โ€‹

Create the workflow from Bit, so it's wired to be agent-callable from the start:

  1. On Bit's Build page, find the Tools block โ†’ + Add a tool.

  2. In the dialog, click the + Add button (top-right) โ†’ choose Workflow. This opens the new workflow designer.

  3. Name it (click Untitled Workflow, top-left):

    text
    manager_approval_for_software

๐Ÿงท Why create it from Tools (not the standalone Workflows area)? Starting here gives you a workflow that already has the "When an agent calls the flow" trigger and a "Respond to the agent" action โ€” exactly what an agent-called approval needs. (A workflow created from the left-nav Workflows area starts with a generic Manual trigger instead, which is not what we want.)

Workflow designer โ€” the workflow named manager_approval_for_software, the "When an agent calls the flow" trigger (Trigger type: Connector) wired to "Respond to the agent", the applicationName / requesterEmail / businessReason inputs panel, and the Add palette (Agent, Classify, M365 Copilot, Human review, Connector, Function, Variable, If/Else, Loop, Note)


๐Ÿงช Lab 9.2: Define Inputs (What the Agent Passes In) โ€‹

On the When an agent calls the flow trigger, use the Inputs panel โ†’ + Add an input (pick the type, then name it) for each of these:

InputType
applicationNameText
requesterEmailEmail
businessReasonText

๐Ÿ’ก These are the typed inputs the agent passes to the flow โ€” they show up in the trigger's Inputs panel (see the Lab 9.1 screenshot above). Choosing Email for requesterEmail validates the address Bit hands in.


๐Ÿงช Lab 9.3: Get the Manager โ€‹

  1. Add a step using the Office 365 Users connector โ†’ Get manager (V2).
  2. For the input (user/UPN), pass requesterEmail.

๐Ÿงช Lab 9.4: Add the Approval Gate (Human Review) โ€‹

In the new Workflows designer, a human approval is a Human review step โ€” not the classic "Approvals" connector. Add a step โ†’ search Human review โ†’ choose Request for information. (Workflows prompt you to pick a connection the first time โ€” set one up if asked.)

Configure it:

  1. Title: Approval needed for [applicationName]
  2. Message: include requesterEmail, businessReason, and applicationName so the manager has the context to decide.
  3. Assigned to: the manager's Mail from the Get manager step. (First person to respond decides.)
  4. Add an input โ†’ type Yes/No, named Approved. This captures the manager's decision and comes back as a parameter you'll branch on next.

๐Ÿงฉ Why "Request for information"? The new Workflows designer puts human-in-the-loop steps under Human review. Request for information pauses the workflow, emails the assignee via Outlook, and returns their answer โ€” a Yes/No input turns it into a clean approve/reject gate. (The richer multi-stage approval action is currently agent-flow only โ€” see the fallback at the end if you need it.)


๐Ÿงช Lab 9.5: Branch on the Decision โ€‹

After the Request for information step, add an If/else (Condition) on the Approved value it returned:

  • If Approved is true โ†’ your approved path. For the demo, add a Compose action with the static value approved (in production: notify the team / provision the license / write to your system of record).
  • Else (rejected) โ†’ add a Compose with rejected.

๐Ÿงช Lab 9.6: Respond to the Agent โ€” in Parallel โ€‹

The Request for information step waits for the manager (maybe minutes or hours), but Bit needs an answer within ~100 seconds. So run them side by side:

  1. Create a parallel branch alongside the Human review branch.

  2. In the parallel branch, add Respond to the agent with a message like:

    text
    Manager approval process has started. You will be notified once it completes.

So the workflow simultaneously: (a) sends the human-review request and waits for the manager, and (b) tells Bit the process kicked off.


๐Ÿ“ข Lab 9.7: Publish the Workflow โ€‹

Publish the workflow so Bit can call it.

โœ… Checkpoint: manager_approval_for_software is published and available to Bit as a tool.


๐Ÿงช Lab 9.8: Update the Skill to Call the Workflow โ€‹

  1. Skills โ†’ open software-installation-request โ†’ edit instructions. Add:

    markdown
    # If manager sign-off is needed
    If the requested app requires manager sign-off (per the Approved Software List),
    call the manager_approval_for_software workflow, passing the application name,
    the requester's email, and a short business reason. Then tell the user the
    approval request has been sent to their manager.
  2. Save the skill.


๐Ÿงช Lab 9.9: Test the Visio Request โ€‹

  1. Preview โ†’ new chat:

    text
    I need Microsoft Visio installed for a project.
  2. Bit uses software-installation-request, checks the Approved Software List, sees Visio requires manager approval, and calls manager_approval_for_software. He replies that the approval request was sent.

  3. Watch the workflow run: it triggers, gets the manager, and responds back to Bit.

  4. As the manager: open the Request for information email in the manager's mailbox (sent via Outlook), set Approved to Yes or No, and submit. The workflow then continues into your If/else branch.

In production the approved branch would notify the team to provision the license; here the Compose values prove the branch logic works.

โœ… Checkpoint: Bit starts a real, long-running approval and reports status back to the user.


๐Ÿช‚ Fallback: Prefer a Classic Agent Flow? โ€‹

โš ๏ธ Facilitator note. This lab uses the new Workflows designer with a Human review โ†’ Request for information gate. If your tenant doesn't have it (or you want the GA path), build the same logic as a classic agent flow instead: Get manager โ†’ Approvals: Start and wait for an approval โ†’ If/else on the approval Response, with Respond to the agent in a parallel branch. The 100-second constraint applies either way. Confirm which is available before the workshop.


๐Ÿง  Key Takeaways โ€‹

  • Workflows are the new flows format โ€” attach them to Bit as tools
  • The 100-second rule โ€” respond to the agent fast; run long work (approvals) in parallel
  • Get manager โ†’ human review โ†’ if/else โ€” a real, multi-step business process
  • Skills call workflows โ€” software-installation-request triggers the approval; you describe intent, the orchestrator passes the inputs
  • Workflows use underscores; skills use hyphens โ€” different naming rules

๐Ÿ—๏ธ What You've Built โ€‹

Bit can now run a manager-approval process for software that needs sign-off:

  • โœ… A manager_approval_for_software workflow (get manager โ†’ human review โ†’ branch, with a parallel respond)
  • โœ… The software-installation-request skill calls it
  • โœ… Self-service apps install immediately; manager-sign-off apps route to the manager

โญ๏ธ Next Steps โ€‹

In Module 10: Autonomous Event Triggers, you'll make Bit proactive โ€” automatically escalating a high-priority ticket the moment one is created in the Tickets list, with no one having to ask.


Course Navigation: โ† Module 08 | Course Index | Next: Module 10 โ†’