Welcome to another exciting episode of “Raife Bytes,” where we dive into the tech trenches and emerge with nuggets of wisdom, this time Copilot & Adaptive Cards!
Today, we’re pitting two titans against each other in the ultimate showdown, well not quite as much of a show down as Anthony Joshua vs Daniel Dubois but in the tech world it’s pretty yuge,
I’m talking Adaptive Cards in Copilot Actions vs. Topics! of course…
Oh yes, It’s like watching a boxing match between two great behemoths for the IBF heavyweight title, well kinda. The main premise of me wanting to use an adaptive card was to find a nice way to present a list of clinical “observations” from a healthcare data services instance in Azure. Ok, random I hear you say, there was a reason for this! You can read about the why in my healthtech article series.
I must admit I didn’t plan to write a blog on this topic however as part of the configuration for my upcoming session at #scottishsummit2024 I stumbled across this nuance and thought it worth sharing, which after all is caring!
So humour me as all the best things in life are slightly niche, so let’s dive into the world of Adaptive cards and Copilot Extensibility!

What are these Adaptive Cards you speak of?

Adaptive cards are the Swiss Army knives of the M365 world. They allow you to create rich, interactive content that can be dynamically updated. Think of them as the tech chameleons, blending seamlessly into various applications and services. They are technology agnostic and work across many areas of M365, including Teams, SharePoint, Power Platform (Virtual Agents & Copilot) and others.
Adaptive cards were introduced to provide a consistent way to present and dynamically collect information across different platforms. They are JSON-based snippets that can be rendered natively inside various Microsoft products like Teams, Outlook, and Windows notifications. Their flexibility and adaptability make them a powerful tool for developers and users alike.
You can also develop the card structure using a helpful designer tool, which is worth a look if you are considering using them, in Copilot or otherwise, the tool is available: Designer | Adaptive Cards
They are low code in the sense that they are purely declarative they should therefore slot easily into various products, however they can be abit picky on how they can be used which we will dig into next!
Let’s use Adaptive Cards in Copilot Actions
So what is a Copilot “action” I hear you say? This is a very good question probably a good place to start given all the various Copilot nomenclature, of which even I don’t fully understand.
An Action is essentially capability in Copilot that is wrapped with additional information to describe its purpose, allowing the Copilot orchestrator to use its clever generative AI to generate contextual questions.
These questions are required to fill the inputs needed to perform the action. Therefore, you don’t need to manually author question nodes to gather all inputs needed, such as the inputs required to run of example a Power Automate workflow. Inputs are handled during your action runtime, these are then AI filled using “slot filling”.
Once triggered an action will then generate a contextual response to a user’s query, using the results of the connected workflow. Alternatively, you can explicitly author a response for the action.. Here’s the clever bit; you can use adaptive cards to display a response, the adaptive cards can be populated with the inputs & output variables. The AI magic captures inputs effortlessly, making the user experience smoother than a freshly ironed pilots shirt.

However, this comes with a catch as the output customisation is as limited as a Joshua’s diet in the run up tonight’s title match. For example parsing a Power Automate response into a table, just like I needed for my observations… Forget about it we are a string only world here!
So in summary the AI capabilities of Copilot actions enhance the user experience by providing intelligent suggestions and auto-completions. However, once the data is captured, and a response is generated from a connector the ability to manipulate and present it in a customised manner is restricted. This limitation can be a significant drawback when dealing with complex data structures or when specific formatting is required, other than a simple string response.

Nope let’s try using Adaptive Cards in Copilot Topics

On the flip side, adaptive cards in Topics are like a master chef in a gourmet kitchen. You get a much more granular control over the top variables, workflow and outputs, you can handle complex records and result sets like a pro, being able to iterate through record sets and creating lovely adaptive card based input and output goodness.
But alas, for you to be able to hand craft the workings you then lose the AI-driven flashy question ordering and generative AI goodness that is dynamic slot filling and some of the chat oriented features that make Copilot actions so appealing.
So it’s like trading your smartphone for a vintage typewriter—charming but not as efficient. With Topics you have to be alot more descriptive in how you handle the conversation flow and setup of the variables, but with this additional overhead comes alot more granularity of configuration. In Topics, adaptive cards can be used to capture and present information as part of the inputs and then also for display of outputs from custom actions within a structured conversation flow.
With this approach allowing for more detailed and complex data handling, it makes it ideal for scenarios where precise control over the data is necessary. The trade-off of course is the loss of the AI-driven enhancements that make Copilot actions so intuitive and user-friendly.
The Final Adaptive Card Copilot Showdown: Actions vs. Topics
So now we have the detail, it’s fight night, the AI-powered Actions based wizard in the red corner and in the blue corner, Topics, the meticulous record handler. Who will win? It depends on what you need. If you want quick, AI-driven interactions, Copilot Actions is your champ. But if you need detailed, complex data handling, Topics takes the crown.
Let’s break it down:
- Ease of Use: Copilot Actions wins with its AI-driven input capture and user-friendly interface.
- Customization: Topics takes the lead with its ability to handle complex data and provide detailed responses.
- Integration: Copilot Actions struggles with integrating complex data sources, while Topics excels in this area.
- Flexibility: Topics offers more flexibility in terms of data manipulation and presentation.

Real-World Scenarios!

Scenario 1: Quick Updates
Imagine you’re managing a customer support system. For a quick ticket update, through an intelligent conversation, Copilot Actions is probably your go-to. But for detailed customer history and complex queries, Topics is the likley hero you need. Each has its place, like bacon and eggs— each are excellent choices, but sometimes you need to choose one over the other.
Scenario 2: Detailed Queries
A customer support agent needs to retrieve and update a customer’s detailed order history. Using Topics, the adaptive card can handle the complex data structure, allowing the agent to view, edit, and save the information accurately. The granular control provided by Topics ensures that all necessary details are captured and processed correctly and the displayed in a structured way using a lovely Adaptive Card
Best Practices for Adaptive Card Design
So now you know creating adaptive cards in Copilots is an art and a science. Here are some best practices to ensure your cards are as effective as they are beautiful:
- Be Clear: Use concise and straightforward language. Make sure users understand what is required of them. Clear instructions reduce the likelihood of errors and improve the overall user experience.
- Responsive Design: Ensure your cards look good on all devices. Test them on different screen sizes. A responsive design ensures that your adaptive cards are accessible and functional across various platforms.
- Consistent Layout: Maintain a consistent design language across your cards. This helps users know what to expect. Consistency in design improves usability and creates a cohesive user experience.
- Accessibility: Make sure your cards are accessible to all users, including those with disabilities. Use appropriate contrast and provide text alternatives for images. Accessibility is crucial for ensuring that all users can interact with your adaptive cards effectively.
- Avoid Overloading: Don’t cram too much information into one card. If necessary, break it down into multiple cards. Overloading a card with information can overwhelm users and reduce the effectiveness of the card.

Conclusion

In the end, the choice between adaptive cards in Copilot Actions and Topics boils down to your specific needs. Both have their strengths and quirks, much like your favorite tech blogger (wink, wink). So, choose wisely, and may your adaptive cards always be in your favor!
Stay tuned for more tech adventures on “Raife Bytes,” and don’t forget to share your thoughts in the comments below. Until next time, keep byte-ing into technology!
PS, I will be touching on this topic as part of my session “A Copilot a Day Keeps the Doctor AwaAI” at #scottishsummit2024 on Oct 19th, so if you want to be part of the best technology conference ever, and come to the best session ever, you can get your tickets here:
https://www.scottishsummit.com/tickets/
I mean look at this guy he’s well happy!