Microsoft Power Virtual Agent was born out of the need for a low-code solution to create AI-powered chatbots. When I joined the incubation team 'Customer Care Intelligence, AI & Ethics' in late 2018, the product was in early stage incubation. From there, I helped take it to GA to now, where we have over 5 million monthly users.
Design Manager/Product Lead (Interim), Sr Designer, Lead Visual Designer
Let's be honest-
Communication AI is just chatbots... But it's also so much more...🤖🧠✨
I joined the CCI AI+Ethics team when their conversational AI tools were still in incubation. I went straight to work with a focus on putting together a product made up of all the desired capabilities for a private preview release later in 2019. The main target shifted from customer care to broadly create conversational AI. For the GA product, we had built out channels, established a great partnership with MS Flow (a.k.a. Power Automate today), with pre-built skills. We successfully onboarded customers and were ready to go. Then MS Flow and Virtual Agent were merged with Power Bi and Power Apps to form Power Platform.
As a result, we shifted our focus on integrating into the new family, and today, you can easily add a bot in Power Apps. In 2020, PVA fully integrated into Microsoft Teams after a full year of preparation. Over the last 12+ months, I have been focused on integrating voice, and advanced authoring and management with PVA's integration of Bot Framework Composer. As I write this, we have over 5 million active users of PVA bots.
I led several core features including Home, Onboarding, Language, Skills, Variables, Deploy, Topic Suggestions, and Channels. I was a strong contributor to the interactive design and UX for Authoring. If you are interested in understanding how we approached that work, it's beautifully described by Roman Pohorecki in his case study of PVA... read more.
One of many whiteboard sessions figuring out the core authoring system with Roman Pohorecki.
System and Process
When I joined in 2019 there was no thought-out process, system, or master/design system file; holding all the components, marketing. I took it upon myself to create some organization, look at the holistic system of the product, and proposed solution recommendations for existing gaps. This work ultimately became the first Masterfile, Journey Map, and design-led sprint.
Your 10k feet view of the product
I get asked all the time why I think it's important to spend time building out a design system. As a big history advocate who loves transition design, I always loved looking into why things are, the intent of a user, the technology, and what can happen if you pair the two. Anyhow what you do is collect historical artifacts that can inform you and serve as data points when solving new problems. At a big company like Microsoft and with a new product right out of incubation there are some high-level benefits from building a design system;
1. Great for organization, component library, and source of truth for Design, Content, and Marketing.
2. Source of the truth for custom UI elements, icons, and illustrations (specifically when sitting on top of MS Design system (Microsoft Fabric/Fluent)
3. Makes onboarding easier and more effective.
4. A document for anyone in the organization to understand how design works and how it influences/inspires the rest of the product.
5. Saves time > Money
Masterfile vs. Design System
I think both a Masterfile and Design System has their place, but if you are in an organization like Microsoft where you today already are using a UI/IxD Design System like Fabric/Fluent, then I would prioritize a well-kept Masterfile over a Design System. However, if you find yourself in my position in 2019, where you are working in incubation, going to market without design principles, UI/iXD components, accessibility guidelines... and we were 10 designers from Business Apps trying to help the Fabric team figure out the Fluent design system.
Clean house, Clean mind right?
Whatever you decide to create, it's important to allocate time, prioritize, link, and update the components in a design system, otherwise, the only use it has is as a checkpoint or stamp in history.
Above is a summary page view of the design system for Power Virtual Agents. Something I started to build out when I started and still adding to.
From Customer Service to Power Platform
In November 2019 at Microsoft's yearly Ignite conference Virtual Agent was announced joining Power Apps in Preview. Now we had 28 days before the big announcement of Power Virtual Agents becoming generally availible, and we needed to fit in with the rest of Power Platform, Microsoft Business Apps and re-brand the marketing page. The Virtual Agent logo was yellow and did not work well in the Power Platform family, neither was yellow an easy color to work with in terms of accessibility. I put together a presentation (see some of the slides below) explaining the impact of the current color and my proposal for how we should use another color altogether. I then proceeded to colaborate with the Alchemy team (who made the logos+icons) to finilize the color and icon (see the result on the final slide).
Core feature breakdown:
Entities & variables; Bot data - feeding AI, ML and Data viz
You can argue that variables and entities are the most important feature of Power Virtual Agent. Without variables, there is no "smart" AI/ML product learning and directing users to find what they need and showing data connected to what their users are looking for.
Power Virtual Agents uses entities to understand and identify a specific type of information from a user's responses. When saving the user response to a variable, a variable type will be associated with it. The variable type is analogous to the entity.
Each entity or variable type maps to a base type ex. Age(number), Boolean (boolean) to Address(string)...The entity helps to categorize the information to make it easier for you, and your bot (AI+ML) to refill information and learn about your user. This when paired with NLP (Natural Language Processing) +Artificial Intelligence+Machine Learning turns ...Since the aim of Power Virtual Agents is to let anyone understand, design, and publish a chatbot I will try to explain as simple as I can how I tackled this when designing it.
NLP paired with variables+entities creates a "smart" conversational AI. Pair it with ML+DL, and you got a chatbot that learns and improves through conversation.
Alignment, Refinement ∞
When building out core features you need to have checkpoints and alignment scheduled so everyone knows what to expect and can work together to create the best experience possible. I like to whiteboard solutions, build prototypes together with subject matter experts. When working out how variables would work in PVA I partnered closely with a product manager, data scientist, several developer leads (UX, platform, engine, architecture), content designer, and researcher. Below are some of the many whiteboarding sessions trying to figure out the best way of creating an easy-to-understand solution for anyone unfamiliar with variables, entities, machine learning, and NLP.
Finalizing -> PP -> GA...
When building out a core feature you are never done. You implement the best solution at the time, with a goal and understanding of what to tackle and build next. Personally, I like the analogy of "fleshing out" coming from clay and pottery. You are always adding and refining the feature.
Read more about variables in PVA
So how do you take an idea from incubation to 6 million users, in 24 months? And where do you go from here to continue the growth?
With joining forces with Bot Framework composer, Power Virtual Agents is in a pool position to become a market leader and shape the next generation of conversational AI. What we will see next is a product that not only caters to people who want to create a chatbot but conversational workflow and learning. paired with visual AI and speech this product and area will just continue to grow.
...and I can proudly say that I was a part of making that happen.
Power Virtual Agents2018-2021
Magic Leap One / LuminOS2017-2018