If anyone would have seen the title of this video it's long right there are a lot of things going on and uh i feel that this is something that everyone should know about and we have an awesome awesome speaker who has uh who will come on the show and and enlighten us about this wonderful topic so before we start dan what's your take on messaging extensions in in microsoft teams by leveraging adaptive cards so i'll give my honest opinion um and.
And you know mirrors i've always been on the low code no code side um so i kind of stayed a little clear from the adaptive cards because it was pushing the you know the boundaries of code but here's here was the deciding factor for me i use that approval connector a lot the one in teams i use it a lot but it didn't give me the functionality to do a lot of designing um specifically adding images and all those urls that was the deciding factor for me to transition into these adaptive cards.
Um and then couple of things you know we might show is that um the overall code if lack of a better term the code you can do a lot of copy and paste and then just change a few things here and there so that was what helped me to transition um and now i'm just i'm a big fan of it still learning but yeah definitely not as strong as you but that's my my take on this great great um i'll give you my side of the story on this so i recently i think probably two or three weeks ago did a did a video on adaptive cards i i tried to cover a lot.
Of things in there in terms of what microsoft teams has to offer and while studying for that video because i i spend time learning about things as i make my videos so as i was doing that i came across this for a selected message trigger and teams and i was like okay this also opens an adaptive card and this this could be leveraged in a lot of uh cool scenarios um and i i did one wherein you can take a message in teams and post it out as a.
Task for yourself in microsoft to do and it took me like three actions in flow to do this and a very simple adaptive card that that has this nice looking form experience so i haven't spent much time on this specific trigger but uh whatever time i've spent on it i think there's a lot of value here and uh to give us a complete insight into what this is all about we have a very special guest speaker and to introduce her i'll.
Audrey nominated me for an mvp and then i nominated reza so she started this chain reaction this you know uh she lit the fire on us and everything that we're doing is thanks to something that you know she motivated us to do so that was one thing second thing is again almost four years ago um audrey came to charlotte north carolina uh to talk about powerapps and and all the other things and i believe it or not i was her chauffeur for the entire day i drove her around the different places.
And then in the evening she spoke at our user group and it was a blast i mean i hung out with her the entire day we you know had just a fun time talking about powerapps at that time so these are the two most foreign memories i have but you know what enough talking about her let's get her on the show come on reza let's do it absolutely hello everybody how y'all doing thumbs up all right uh hello from seattle to everybody around the world who may be attending i'm on the power cat team and that's why you see my cat ears um.
Uh cat standing for customer advisory team and i'm really excited about that so i've been sharing with everyone that that good fortune i have in my life to be on this wonderful team and we focus on the entire platform for power apps and power automate power virtual agents and power bi we love it all so i'm excited about today and i wanted to get started can i just jump right in absolutely the the floor is all open i'm going to switch over to my powerpoint first and take a minute and kind of define a.
Couple of things you used a lot of interesting words adaptive cards so adaptive cards just for those of you that may not have heard about it they mean what they say they adapt and so they're great for outlook for teams and for other scenarios because wherever they land they adapt as far as look and feel so some people use the dark teams and some people use a light teams layout so wherever whether you're light or dark the adaptive card will adapt and so the maker of the card does not have to worry.
About for the most part no colors or design factors or adjusting it for teams right it just will adapt messaging extension on the other hand is also kind of something that explains itself it's a way of extending what you can do with messaging and developers all over the world are developing messaging extensions for teams if you're a developer and you're interested in using our sdk or our graph api to build these extensions using code.
Posts Related:
Then i suggest that you visit aka dot ms develop for teams
However the good news i want to share today is that anyone can do a lot of this just by using power automate which makes it so much fun and so i'm gonna share some specific uh use cases with you today and you'll notice on this slide there are a few things i highlight where you need to be thinking about messaging extensions and i want to say that the key thing to.Think about is the message so think about when a message might provoke a person to need to take an action then they use an action messaging extension right like maybe that message encourages them to fill out a form that they need to do or maybe that message encourages them to go get to go visit a customer so in the case that it says you need to go visit the customer they might need the customer address so they can do what's called searching using message extensions or queries so anytime you want to get information through a query.
And or take an action create a task or otherwise you can do that using your messaging extension and you and just to remind you you probably use this every day and just never knew what it was called um but it's the three dots above any conversation chat and then you just do more actions the ones you see there when you start are the built-in out-of-the-box messaging extensions that teams gives you check them out because they're all very very useful i have done a lot of demos in the past about adaptive cards because um when.
They came out i was on the power automate team and it was a big priority for me so i went crazy so you'll find a lot of content out there related to adaptive cards authored by yours truly but remember that even though they might be instant buttons or they might be the result of the end of a workflow and so forth you can still leverage them as a messaging extension you would just change the trigger right and reza pointed out earlier that the trigger for this is going to be for selected message and.
We're just going to be falling in love with four selected message so let me get out of slides and go give you uh a few demos on how to do this um my demos are gonna get really interesting in that they're going to go from easier to a little less easier so those of you that are brand new can do this first demo today in three minutes okay three minutes max right okay i'm gonna take a little longer because i'm running my mouth but watch the clicks that i make and you'll sit three.
Minutes so basically the scenario that this works in is that i have this feedback team and in this feedback team maybe i've invited like in real life this was provoked by a real need that i had we have mvps partners and champions who are guests in our teams and i have to keep track of what they're saying to us and some of the things they say i need to to log it somewhere and take take a follow-up on it and what i was using is i was using save message i don't know if you ever noticed this but you can click save.
Message and now that message is saved if you click on your user picture today i'm eric and that's just because it's a demo environment it'll show you all you're saved now this worked until i had 100 saved messages and then it was like oh i don't know how to sort and organize this so i decided to use a onenote and keep all the feedback there right so here's where this power automate template comes in handy you just install the power automate template and you can do that by going to apps and then look for the powers you'll find them all power.
Automate power apps power bi all the power virtual they're all there what you want to do is install them in teams and one thing i want to suggest is when you install it just install it and open it don't install it into a particular team and this will give you an opportunity to create messaging extensions that are for anywhere you are versus messages that are for a particular team all right so in this case if you when you get into the home screen if you have done flows you'll see them now just note that your flows this screen will default to your flows.
Built in teams but you can see all your flows by changing the filter to all flows but here i'm going to choose this template save a message to onenote that's exactly what i want and i'm just going to say i'm going to call this send to onenote make it really easy i would keep your titles very uh brief concise because it's what you're going to see in that menu so you want to make sure you use something that's that's not going to be truncated all right so then i'm going it asks me two questions.
That's it which one note do you want it in and which section of the onenote do you want it in so i'm going to put it in my
Feedback onenote and i'm going to put it in the partner feedback section and i'm going to create the flow now what's really wonderful about this is you get a instant um kind of like feedback from from teams and power automate to let you know it's ready you've got it it's created you'll notice that i got a notification and basically that's the power automate um.Bot talking to me to let me know hey your flow is ready to be run if there was something wrong with your flow you'd get an indicator that there's a problem so that you would know that it's not working before you share it with everyone right but you also need to test it also in power automate when you i have this pinned so i right click and i pick pin um you can also find these messages in the chat of the pinned app okay so now i'm gonna go back to my teams and.
I'm gonna go to partner feedback and notice i have you have a question daniel you're okay did i hear okay i'm gonna keep going okay so it noticed that i have all these questions now it looks like uh city and power light would like to like to have a feature to track new employees i want to store that in my onenote so i'm going to click on more actions and then i'm going to click see more because i might i have a few and there's the new one we just created called send.
To onenote and now it's not going to ask me any questions but it wants to know do you want to put a flag on this so it's automatically going to suck up everything in that conversation where i hovered over but i'm going to mark it as a feature request just by putting that metadata in here now when i go and search my onenote i can search for all my feature requests versus all my incidents versus all my ideas i can search by the flag that i choose to add to the conversation so it gives me a way to categorize um the different uh.
Messages that i suck up but you know these are very short in real life these can get very long okay um and so i really like that it sucks it up no copy and paste needed and notice that the chat bot tells me your message has been saved to onenote and it tells me who the message was from so who the person who wrote the message and i'm going to hit view note and this will open up my onenote and there you are the message and each time i suck up it'll just add a new page with that with the message who's it from and the details and the note that i added and.
This is what i will use for search right so i really like this really easy kind of uh kind of a flow messaging extension that works wonderfully and you see that i made it in just minutes if i wasn't talking it would take less than a minute probably um makes sense absolutely i think that's something that i need to start using i love it and it's so easy you don't have much of an effort right you started with one note so i'm already.
Sold good yeah the show is over people it's one note the show is over you got a lot more keep going keep going i do have a question so it's interesting that when you triggered that flow the flow had the knowledge of the message so what if i have a conversation thread a threaded conversation if i take the main thread and i say save it to onenote will it save the entire conversation that's gone on in that thread or it will just copy that specific message.
It will i believe it copies the specific message but i will write that down and do a double check to make sure i'm right and then also if it's if i'm if i'm not if i am right that it only does the message i'll give the feedback that we'd like to thread as well is that is that what we want to take from that i will show you that because we have conversations on a specific topic back and forth it could be ideating it could be project related i think that would be awesome if we could just pick that and say all right go and.
Put it in my project one note so we can refer to this conversation since it was something worthwhile to save in one word okay perfect i i got that uh it's noted and i will follow up on that thank you for giving me that and please do give me feedback during this presentation i think it's great that i take that back to our team all right the second one i want to show you is a search so the first one was an action because it did something for you now we're going to get it to search for you so you're going to query your data.
And so i like this one a lot for situations where you might have people who don't have access to dynamics and they still need information out of dataverse and so you can have the power automate person create the the flow that will go get the data and it'll run on their credentials and then have them use the messaging extension to get that information so this time i'm just going to create from scratch we might as well do a couple of that right i'm going to create from blank and.
Here's the key what you name this flow um is what it's going to show up as in the in the in the messaging extension list okay so whatever you'd like to do i i don't know whether i want to do git or not i'll just do customer info and this is the secret sauce this selected message card as reza brought out earlier and what what is wonderful about this to something that uh daniel talked about he talked about the the json you know how.
We have to use code to do this but nowadays basically you don't have to use code so much because you have this built-in editor for and you notice that what i'm doing here is just deleting what i don't need from this sample card i'm deleting it and i'm going to change what's there so let's see i might need to zoom out a little bit so that we all can see this and then i'm going to pull this out so this right panel when i.
Click on something i can now do things with that something so i'm going to name this uh telephone number so we're going to get information based on a telephone number you could also use an account number um but i'm using sample data and the only thing that was consistent was the telephone number so i'm gonna i'm sorry not consistent but unique and also in every single sample data there was a phone number uh and we want the last seven digits but you know in hindsight if this was a real application i would definitely use the account number because i know that's unique all right.
Now the last thing i'm going to do is i'm going to give this a name the name i give this is the name that will show up in my dynamic content and that's why it's important to remember to give it an id to anything that is input right and we'll do this a couple of times today so you'll get to see that everything up here is more about logistics and how it looks aesthetics i should say but down here is whenever you want someone to choose something and we're going to do a couple of these today so don't worry i'm going to save card notice i didn't have to look at the json right i built it all.
Right there and now i'm going to uh go and look up that account so i'm going to use the legacy dataverse and the reason is because in most cases your dataverse or your data is not in the same environment as teams so that's why i'm using that but if it is you can just use the the out of the box um connector and then i'm just going to change this to the environment where it is and i think actually sometimes i have a little bit of latency here.
So this is interesting order you created the flow in teams even created your adaptive card within the flow itself which is running within teams so basically you've not what's interesting here is that you haven't left the context of microsoft teams your entire piece right and line yes and and for the most part i will say that that's the hardest thing for you to remember when you're an advanced flow user is to stay in teams you really need to stay in teams that make sure it's.
Going to work there as a messaging extension and it's going to be in the right team and so forth so i don't need to ever leave and go to the full out of the box um so i'm not sure why this is not loading but i'll tell you what i have a plan b sometimes we have some latency and it's usually when i'm doing a demo in front of lots of people that we have that so i will show you this already done and you'll see how it was built so i'm just going to edit right here.
I do like the whole concept of adaptive cards because you it's kind of you know one time you build it then you forget about it but you can keep pulling it again and again and these other power automate flows that that was it was a really smart idea to build that adapter card and then i i saw you do it audrey yeah you didn't you didn't do any code on that it was all drag click you know yeah and so i'm gonna just run it and see if we can get it to run uh let me turn it on so also when you notice that these.
Backups that i have i don't always have them turned on if you don't have them turned on they won't show in the list so you can see you can turn them off and you can turn them off this is demo two uh let me just see maybe that will help it okay i got into edit all right so in here i just use the table from the dataverse and then i filtered it by the telephone number that i asked them to enter so in the card remember we had a space for the telephone number and i know for a fact and this is where you you do need to get to know your data and.
How it works and so this is my sample data that i'm using and if you go to the columns you can kind of see what the internal names are for these things so this main phone is telephone one and so i just did equal to what's in the card the hardest thing to remember here for all of you is to remember to put the single quotes around that dynamic tag because it's a string in this case all right then i did a reply with a message in a channel now this will automatically put itself into an apply.
For each but guess what we don't care because there's only one that we know this is a unique identifier so you could use the phone number you could use the account number you could even let them put the customer name in and kind of do a starts with or something i just wanted to save time and then you know you get one back you have to make sure you validate that and then out now i can just plug in the message id so it knows where this is what team i want the answer to go into i could also choose to take that.
Dynamically as well and the reason i want to point this out is that the dynamic uh content for the four selected item gives you quite a bit of very useful stuff like it tells you you can see here this is the action for selected message the message id the sender id the message content the plain text of the message content the subject if there is one the link to the message the team id the channel id so you can make all of this dynamic you don't have.
To choose a team okay you can make it all dynamic um and so now let's save this and let's see uh i turned it on so it should show up in the messaging extension so i can demo it to you so audrey when you pick for a selected trigger yeah i can trigger this flow from a standard chat message a group chat message and from a channel chat message from a channel and as well right i have all these items open yes and i'm going to show you the the the secret sauce to that as well because there is a little.
Bit of a nuance um so it's not showing up yet so we'll give it a minute to show up so while that's given a minute to show up and it does take sometimes 56 7 57 seconds to a minute to show up on the list which isn't big in real life but in a demo it can slow you down um notice that these um each one of these messaging extensions that i've made they're either in a which means they work on any channel any team or they're associated to a team and a.
Channel so you want to keep in mind that you can scope them if you want to or you cannot scope them and that's why i install the app you know broadly i don't install it in any particular team because that gives me the option to do both of these very easily um and so demo two is in contoso general so we're just going here and we'll see if it shows up yet it does take a minute so i might let me try refreshing and see if it'll pop up i think it needs to refresh because you're running on the browser.
It could be i can't use the client because um the team's meeting is in the client so let's see more action there it is see reza's are smarty so that's great okay so now i'm gonna put the last seven digits of the uh phone number and press submit and now what's gonna happen is that flow is going to run and i just want to press see more here so you can see it's going to respond directly to that message because that's what i told it to.
Do that's the action i chose with all the info and in the deck i think i showed you that i've done this before with maps so that not only you get that info but you also get a map in that case you would add the bing map connector to look up the address space to look up the map based on this the um based on the street address right so you can do that as well um but that's pretty cool and think about settings where you want to give people some part of the crm.
Without giving them everything without giving them dynamics maybe you just want to give them access to specific um queries you can make a messaging extension and then that pops into teams if they're using a team's mobile app on the go it looks beautiful they can go see that customer really easy this is interesting very interesting because i can literally query a system of record and i know you're showing crm but this could be any this could be sql will be sharepoint and we can bring in information and and.
Represent it in form of adaptive cards or regular messages yeah the user yeah and and it's such a great thing and i want to uh step that up just one notch it could be still dataverse showing sql and or sharepoint data so dataverse think of it as a container it can also uh mount any kind of data that you have so you might want to build business logic on top of your sql or on top of your sharepoint data bring it into.