The Rockhop logo in the navigation bar
The Rockhop logo in the navigation bar

Microsoft Copilot: Dynamic Chaining and Plugins

February 20, 2024
Jordan and Michael demo common applications of dynamic chaining and plugins for Copilot in this engaging session you won't want to miss.

Dynamic Chaining

When I first learned about Dynamic Chaining, it blew my mind. Originally, if you wanted to link things together and run multiple topics, you had to navigate manually by redirecting based on the conversation. With Dynamic Chaining, Co-pilot analyzes the person’s message or question and creates a flow of conversation, running multiple topics or plugin actions to make the flow as efficient as possible.

This allows the user to get multiple points of data without having to manually ask for each one. It takes a description of the topic — built into the trigger of that topic — and understands if the user wants it. Previously you had to design a bunch of phrases to initiate a topic, but now all you need is a description, and Co-pilot understands the intended flow.

For example, if I say, “I want a list of all the project members,” Co-pilot knows to first run “Get Project ID from Project Name” because it needs the project ID before retrieving project members. Once it has the ID, it makes the call to get the members. You can even see the flow in tracing mode, which logs how everything was chained together.

Plugin Actions

Plugin Actions are another powerful feature that change the way you build topics. Previously, if you wanted to pull information from a data source or platform, you had to build a topic with multiple steps and lots of low-code work. Now, with Plugin Actions, you can use the 1,000+ built-in connectors in Power Platform, or custom connectors you build, to interact with platforms directly.

These actions can act as their own topic or be called from within other topics. They also use generative answers to prompt the user for missing details. For example, if I ask, “What’s today’s forecast?” without specifying a location, Co-pilot generates the question: “What location would you like the forecast for?” After I answer, it formats a response with the relevant information.

In one demo, we added a custom connector for Rudder that returned all project members. By describing what the action does, Co-pilot knew when to call it. This makes topics easier to build and more flexible.

Demo: Rudder Integration

We created a custom connector to Rudder, our timekeeping system. Using Co-pilot, I asked for a list of project members for “Budget Management.” Co-pilot first retrieved the project ID from Rudder, filled it into the connector, then called the plugin action to return project members. Tracing mode showed the full chain of steps automatically.

We also demoed updating timesheets. Co-pilot pulled my user ID from Rudder to ensure only my timesheet was updated. I then asked it to create a time entry for 30 minutes on a project with a note. Co-pilot parsed the details, created the entry, and confirmed. It even formatted the raw JSON returned into a human-readable summary.

This shows how Dynamic Chaining and Plugin Actions together can handle complex flows, passing parameters between steps and interacting seamlessly with external systems.

OpenAI + Co-pilot

Next, we connected Co-pilot to OpenAI. In this demo, we stored benefit documents in Azure Blob Storage, surfaced them as an index in Azure AI Search, and connected through a flow to an OpenAI deployment in Azure AI Studio.

When I asked, “What time period do the new Rockhop benefits cover?” it returned “December 1, 2023 to November 30, 2024.” When I asked for the vision support number, it pulled that directly from the benefits documents. For another dataset, Koso, it retrieved PTO details and 401k match rates.

The flow behind this demo called OpenAI with parameters stored securely, parsed the response, and returned the answer to Co-pilot. Azure AI Studio made it easy to configure the data source, test prompts, and export the code for use in the flow.

Plugins and What’s Next

Finally, a quick note on plugins. There are two main types:

  • Custom plugins for M365 Co-pilot — these can call external APIs or custom solutions specific to your business.
  • Conversational plugins — containerized sets of nodes, like reusable components, that can use actions and be applied across M365 Co-pilot or Co-pilot Studio.

The ecosystem is expanding quickly, and these features will only get more powerful as development continues.

Talk to a Rocker! chevron-down