Accelerating Microsoft Teams Messaging Extensions with Power Automate & Adaptive Cards

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone this is raza from the r d show hey everyone this is daniel christian i'm also on the r d show good morning good afternoon and good evening hello hello thank you everyone for joining us as usual today on the show we have something very interesting to talk about a very very important topic in terms of microsoft teams in terms of power automate and in terms of adaptive card 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 i'll keep the floor open for dan yeah so i mean you know you've seen us tweet all about that we have uh the one the only audrey joining us and audrey and i we go back long ways i mean right right at the beginning early you know times are power platform so we're almost four four and a half five years ago um she and i synced uh easily and we both come from sharepoint backgrounds we both come from sharepoint forms info platforms um but two two most important things about audrey it's a chain reaction 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 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 dataverse through a data flow and now you can use just one connection for everything um going to sorry one question i had though is when that flow is running yeah it's running under whose contact so let's say context or the person who runs the flow it's uh under the creators context okay latest context but there are options for that i'm going to make sure you have links to how you want to view that you know kind of how do you how do you want to think about that um because you can do a lot of things because these are instant flows and so yeah okay so let me go back to the deck for a minute and tell you about the the next one and this next one is about um this is also as example from my real life world it's another search messaging extension we go out we do customer presentations and we have pitch decks for each product i'm sure most sales people in the audience would would recognize that we all need kind of like a standard deck we take it we customize it to a customer and then we present it to them so i wanted to make it easy for people to find the pitch deck for each of our products so let's go back and i want to first show you that i have a sharepoint site that has uh marketing materials and it has each pitch deck for each of the products but i also added a product column and in the product column is the filter i'm going to use in power automate which will help me find the right pitch deck for the right product okay so now let's look at how this works first so i'm going to go to teams and let's go to say let's go to general again and you can see that some of them are in there let's see i'm just going to put a test this is a test and i believe this is uh demo4 so let's check and see let's look at demo 4 first make sure it's on oh it's get pitch deck so get pitch deck is on because i pre-built it for us and i'll walk through it as well so let's say i know uh that this let's say this message said uh instead of this is a test it said um let's do please visit uh please visit there's someone here there's one right here that we could use so basically they have to go to this customer and present power virtual agents so i'm a field person or i'm the speaker i need to get that deck so i'm going to go to more actions and see more and choose get pitch deck okay now i made a little simple card this is where you'll learn how to do choice lists with the adaptive card and it has the the different air um elements in there from the from the library and i can just pick the one that i want and press submit and now the flow will go and look for that file and it will pop in this adaptive card that says you know here's the the file here's where it is if you want to look at it just click view file and that will open it up in sharepoint so it's a quick way to help people find key documents and and i'm doing a very simple use case here but this could be quite complex there could be if then statements and stuff based on what they choose in the messaging extension so let's look at how this was built audrey i'm thinking of a scenario where in your demo 2 and this demo mixed together when the adaptive card gives me an option to put a search query and then it queries my system of record and then brings the respective document types in this case it was a pitch deck but it can't be anything yes exactly you could combine this to being give me customer information and give me the pitch deck you know what i mean it's it's all in the power of your imagination right and you can see here that i've just done some similar to what i did in the other one i just took everything out of that little sample adaptive card and put only what i need when it comes to choice sets you just drag and drop them onto the surface and then after you drag and drop them i don't need that one i'm going to show you that you just these are element properties you just go all the way to the bottom and enter the choices now i do want to tell you the difference between the left side and the right side the left side is what the user will see the right side is what our dynamic contact will pick up so you can have a different display value than you have an internal value and that's beneficial in some cases in this case it doesn't apply so they're both the same the other thing i made sure i do it did was give this an id so anytime the user is going to be inputting data any one of these input fields make sure you have an id because that's how it's going to show up in your flow okay you mean dynamic in dynamic content in dynamic context exactly and already i'm noticing that you're following a naming standard there i really like that ac meaning adaptive card and then the intent of that specific control so i like that naming convention that you're following right there yeah i always started with ac so but i know that that dynamic content is about adaptive cards it makes it also easy to search the dynamic content if there's a lot um so yeah just just keeping things tidy you know the next thing i did was get the file in the file now i don't need the actual file content i only need the properties because what i want is the link to it that's all i really want right so i can give it to them so i search the library and then i just make sure i put that filter query product equals that ac deck choice so that will show up in your dynamic content under the um first trigger as exactly what you type so whatever you type this is your chance to code flow whatever you type is gonna show up in our dynamic content right and so then that's gonna give you one file but again because it's get files it's gonna be plural you could top it to one but it's i'm sure it's going to be one because we we made sure now fyi for those of you that are sharepoint users that don't know this to avoid duplicates where you don't want duplicates in your libraries just turn on enforce unique values and people will not be able to duplicate so that is right here then nobody will ever be able to put two products in this list that are the same and that will prevent this power automate flow from failing i mean not from failing but from giving you too many responses so now for each one and there's only one it's going to go get that file and then all it's looking for is the linked item so the reason why i got file properties is because i want the link to the item and you'll see that here i have the adaptive card in a chat or channel i'm posting as a user so i'm posting as myself i'm posting in a channel and i'm i'm looking at whatever channel and team they hovered over to three dots so this one is very friendly it will go wherever they hovered and then here is where i plugged in those dynamic tags from the sharepoint get properties which includes the link and so if i just do a search you'll see link to item down here in the get file properties so you need from get file properties the file name the full path and the linked item now you might be wondering back to daniel's comment how did i write this how did i write this code here for this for this adaptive card one i've shared a lot of adaptive card code in docs.microsoft.com but you can also go to adaptivecars.io and get a bunch of samples but i'm gonna tell you how i cheated here i actually cheated on this one i ran the flow there's a there's a flow called um notify team when a file has been posted so this is a really neat neat uh template here notified team of new sharepoint files when you do this it creates an adaptive card that gives them a link back to the new file in the library every time one is added so i stole that adaptive card code so basically all i did was make that flow then i opened it up and stole the json from it and here here's that flow right here and i just went in here hopefully edit yep good and i went in here and i stole this is power automate that wrote this template right i didn't do it i just copied and pasted this code and used it in my adaptive card so you can copy and paste from one adaptive card to another steal from these templates because you know that they're accurate as well so play around with templates it's something i always encourage people to do you learn a lot from templates um so that's to get check um make sense absolutely and again think big you know anything you think people need to be searching for that you can predict where it is this is a good opportunity for that and to a certain degree you could actually do drop downs that could give them options on um different categories so just remember the one thing that we don't have yet and i'll just be transparent is the idea of those drop downs being dynamic right that's something that's on the roadmap for adaptive cards as well as power automate but it's not there today so um this is why you have to pre-configure your drop downs okay so here's a fun one send message to customer timeline so this is for people who are using dynamics or those of you that are building model driven apps um and you want to send a message to the customer timeline so let me just quickly take a minute and show you what i'm talking about when i'm talking about a customer timeline we're going to go to powerapps and we're going to open up this record here i'm not even going to make an app i'm just going to show you the record and this is the default form for the record you'll notice in the center of the screen that there is a timeline this is really important when you're managing opportunities to keep track of what the heck is going on with this customer to get it from opportunity to purchase or from purchase to live right you need to keep track of everything that's going on in your management of that account and so what i noticed that some people you know have you know they're busy they're on the run and maybe they like to use the desktop app for dynamics and maybe they haven't started using the mobile app or perhaps they just want to do it directly from teams because somebody posted a message that's relevant to their customer right so in this case imagine here i am in i don't know maybe partner feedback and it says we we power in city like we like a feature to track new employees i need to add that to my dynamic scenario i'd love to have an adaptive card here that actually goes ahead and sucks up whatever's in this message and makes it a note in dynamics so i will say the key to this one is all about understanding your database right knowing what's available in your database and so i like to just look at the table i'm referencing and looking at the data and kind of get to know what's there one of the tables that may you may not know about is the table called notes it doesn't show up in default table but it is show it does show up if you go into all and i think i can search for it as opposed to because it all has a lot um there it is this note table is where all of those things actually end up when they're notes now there's also phone calls and there's events in this case you can see that there's donations but we're going to add a note today and in the deck i'm going to give you a whole bunch of links and maybe we'll post them in the in the in the description with all the activities that's possible because this one has a lot of great possibilities um and so i'm going to go back here and i'm going to do a new flow and basically this is a really easy flow it looks like you probably think this is going to be hard but it's super easy it's just about knowing what to do i think sent to crm and then i'm going to use that same thing we're always going to use that if we want it to show up in those messaging extensions and then for the crm i'm going to need two things and so i'm going to get rid of all this other stuff here just delete i'm going to name this title because i want the note title so this is ac note title i'm sorry this is that's the text sorry this is the note title just i'm keeping track of this is a text this is not an input field this is the input field okay and i've got it zoomed and that's why i have to keep opening and closing this this one is going to have to be ac note title and then the placeholder text is enter a title okay and then that's all we need to do there and then um the other thing that we need is the account so that we know again which account to update and so i'm just going to use this phone number field as the account telephone feel and then i'm going to take that my telephone and change it not to a telephone style but to a text style and i'm gonna say last seven digits okay i like the pre-built styles that are provided as well yeah yeah and i i i should take i should come back and show you all of the styles and stuff but i will give you where you go to study the styles ac uh this is the account telephone number okay so um there when you go to adaptive college dot dot dot io you actually have a full documentation on the styles on the text formatting on everything and you can actually play around and play with the examples um so now i have two places for them to enter and they each have a name so i'm done with the card okay that's probably the hardest part because the next thing i'm going to do is what i did before and and i'm going to use listrose again um and i'm going to list the rows in the account table and why am i getting in the account table because i want to make sure that i can find the id of the account i need the the unique identifier of the account and i need to do the same thing i did before telephone one equals in single quotes that ac telephone number that i okay so this will help me and it'll turn back just one because i know all these telephone numbers are unique um and now i'm going to do one more and i'm going to now post the answer to the question i mean post the note so i need um i need the same dataverse connector and i'm going to add a new row and i'm going to add it as i explained to notes again there are several tables related to activities and i will give you a link on how you can learn all of them because you can even have sales people record their telephone conversations this way as well so notes and now what it needs is a title and i'm going to use the title that they typed in the adaptive card which is ac note title and then i'm going to in the description of this put the content of the of the message so i remember i hovered over a particular message i want that content hold up second description okay message content okay and then is document you can actually use this for documents as well um but this one is just text and i'm going to scroll down to the bottom of all these fields and oh i'm sorry i'm going to use the legacy just because it's a little bit simpler and i'll show you what i mean um so i'm going to go into dataverse and just use the legacy one just because it's a little bit simpler for this demo and i'm going to add a new row we're going to do the same thing repetition for emphasis oh but we can't get our list so audrey just to read for a selected message yeah we're taking the input as the telephone number so you can first look up the account yeah but this would be anything that could be the account id if there's a unique id per account it could be the account name it depends on how you want to open up that adaptive card for your users and teams yes once you get the account then you are going to grab that internal id of that account and relate it to the table which is notes because you can add a note associated with that account yes that's right that's 100 right and and basically the only thing you have to remember i'm going to show you right now in the one that i pre-built here is that you have to put in two values at the bottom of the note table so in here when you add a new row i'm just having a little bit of latency and i don't know if it's me or or the service that's almost yeah you think it's okay so it's just being a little slow but basically what this will say and i'll add screenshots to the deck is there's two fields at the bottom one is called regarding and one is recalled regarding type that regarding field is the guide for the account so in that regarding field i'm going to put the account from the list rose which is the guide for that account and there we go it's down here okay so we'll just yep there you go you see how regarding this wants to know what is this note about what is it related to right so it's related to this account and what type of of regarding is this it's the accounts regarding and again you have several options here mailboxes phone calls calendars and so but you this is easy you just stick to account because we're we're adding it to the account all right so now we can save this and uh i did turn it on so let's see if it comes up in our um refresh your browser yes let's refresh i do work in the client most of the time and i forget that the browser does require a little bit of refresh okay and then we're gonna go in here and more actions let's see more and it's not here quite yet um so we'll just we'll you'll just you'll just give me a minute but what'll happen is as soon as it shows up we'll give it a minute let me see what can i talk about while we wait another minute for that to show up in it and it feels like a long time because we're in a demo let me go through a couple things and i'll come back to that okay so just to finish the this and we'll come right back to that so i can launch it and make it happen um this one i do want to tell you that the next one i already did it as well but the point of this next one is just that you can use any api that you can find on the internet as part of your messaging extension so remember that we are rest api based so if you can find a uri and uh an anna and a way to connect to that to that api then you can use it now it is a challenge sometime to find free apis but they are there i found one that gives you bad doggies i know the powercat team tends to favor kitties but we wanted to let everybody know we love doggies too so that's why i did that one and i'll show you secret sauce to everything i said though is the creation of the adaptive card so you make sure that you get to know this trigger well play around with the dragging and dropping and the the binding of data to the adaptive card and then there's a whole bunch of links that i'm going to share with you as well so that we're all done with the deck let's see if we can do the last two demos so again i'll refresh and maybe hold down the control key to clear cache see what happens okay and uh i'm going to go back here [Music] we're and show this you know that's probably what i should check let's go to contoso general and let's put a new data for customer and then in here let's see if we see it get more we still don't see it so let me just check one more thing and then we'll do the doggy if i don't see it and this this does occasionally take some time and so is your flow team based maybe it's it is 100 team based um but i'm checking to see which team it's associated none so it can be played on any one right demo four yeah so it's just being a little slow and and i do notice this sometime but again this slowness is really not critical in real life because you don't need to see something in seconds you know it's just you'll publish it and after you publish it'll be there right i'm sorry about this delay in seeing this up here but in the meantime i'll show you the doggy smile so you can see that basically the get doggy smile is just going to go to that api and this time i wanted to show you that you can also create an adaptive card that only pops up on a an okay message right so you just okay you don't have to input anything and because i said okay it popped that photo where i told it to pop it and there's the um photo so there's a random photo and if you if you come back with me to power audi mate for a minute and we look at that get doggy flow i like the name well you know i want to show that we love doggies you'll notice i have a comment in here and i can export these for anyone that's interested in any of this but it has the address to where this api lives and what i love about this is i tend to be pro uh parsing even though you could do outputs and then dot at the end thing i like to parse because it brings it out in my dynamic content so this one only has two responses the message and the status and the message is all i need for the picture in teams so basically this gives me also my parse json data so i don't have to run it and then go copy that i can just copy it from here this is the uri so if you look here in my http request it's a get there's the uri and then um i parse the json using that sample that was right there on that screen as opposed to waiting to run it and then i um chose an adaptive card and chatter channel as we've been doing all along and i just used a single image adaptive card and what it needed for this doggie picture was the url and that came from the message so it was really easy to do this and you would think api would be very hard the hardest part about working with apis is understanding what you need you always need a url to go to and you always need to understand how the response comes back and then those that's all you really need to use sometimes with apis you have to pay for a key and such but that's really all that's important um so i'm just gonna check one more time and then i'll call it up to demo god failure if we see this um and we do not so i won't worry about it but i'll make sure i'll post a video on my youtube channel with its beginning to end um and that way you can see it in operation the demo number four i know it didn't show up but it's actually given me an idea for something that we do within my organization we do something like sales support that happens in dynamics or perspective technical leads one of them is me gets assigned a task in dynamics and many a times it creates a team where we have conversations so many times i want those conversations to actually go in as notes within uh within that specific uh in our case so i think that really fits in perfectly it's a it's a perfect use case for a for a real world example at least in my scenario that i can think about yes and and again you saw the three or four actions it takes it's really easy to do and i apologize for it to not show up i kind of should have um put in an instant button so you could see it work but i just noticed that delay on the on the on the uh on the on the menu can occur but it definitely does work i guarantee you if anybody wants to reach out to me and get the flow details i can document it step by step an audrey on the api one i think what i what i like there again is yes you can call apis but the key is when you get the response what to do with it i think many people get confused there and that pass json little snippet that you showed i think that is gold right that action is right there just put it in there and dynamic content will give you everything so you don't have to worry about what the json gives and what's the structure flow can break it out for you so i think that was a very good nugget right there yes you got it spot on okay so i'm so glad uh you you picked up on all of the value here because these are only five examples but the world is your oyster you know whatever you can think of you can do leverage the the stuff in the adaptive cards remember to visit adaptivecards.io to get more samples um back to you know something that daniel said earlier as far as how do i adaptive cards with an s how do i uh do the styles and what styles are available you can find them all here there's schema explorer i love this particular page the steamer explorer because it helps you explore all the options for each of those uh card types and then the samples i'm going to turn off templates just for now and you can see that if you just click on a sample it'll show you the card but not only will it show you the card but you can just click try it yourself and get the json for it that you can paste into power automate so really awesome stuff these are the kind of things that make life fun and and it makes it enables you to actually do more for your team so i'm open to questions these last few minutes and i hope that wasn't too long reza no i was spot on i think you you covered a lot you did a lot of real world demos live demos i i think that i think the audience was really appreciating that so thank you and yeah we'll open the floor up for questions i'll dan has a lot saved so let's go through here um let's let's actually tackle with some good ones which are you know some which everybody will ask so okay um let's just start with the licensing question is there a way creating the flows without them being premium service so um so okay i'm gonna answer this question it's two parts hey rachel so two parts one if you don't use any premium connectors you will not be charged for any premium services so those of you that are sticking in microsoft 365 you're using sharepoint using planner you're using teams connectors there's no extra cost now where i went in there and started talking about crm updating right now you have to have possibly a dynamics license um or a powerapps dataverse license right so that you can use those connectors so it's more about the connectors than the features i showed you so as long as you're not using premium connectors you're good to go but as soon as you start using premium connectors which there is premium value associated with premium connectors then you'll have to have that additional cost covered so the situation is still the same it's not the adaptive cards that's expensive it's where you're getting the data from or how you're getting the data so that hasn't changed then all right awesome cool um so oh yeah let's uh hey phil by the way thanks for joining phil has a question which version of adaptive cards is in teams power automated supporting now for this i believe it's 1.2 i know it was planned to release 1.5 soon but i'm not sure if it's out so phil let me double check but i'm but i'm uh ninety percent sure it's one point two so for the for the action that audrey was demoing today for a selected uh message that is 1.2 yeah but the standard uh options and themes post an adaptive card that supports up to 1.4 there you go there you go yeah so but for selected message is 1.2 yeah one point only yeah i hope it moves thank you reza for that clarification yeah because we're thinking about adaptive cards we're going to think big not just for selected message whenever we want to use adaptive cards good point reza all right so i posted the next one and uh you can read it but um you know chandra sheikh and chikran has that question i'll read it anyway is it is it required to create flow only from teams to have this in a messaging extensions will it be possible to create outside teams to be available in messaging sessions extensions basically he's asking in teams outside teams is both the options available the key to it working is the trigger that's it's not where you're creating the flow it's the trigger however i suggest you create from teams to make sure that you're working in an environment that is that's associated with teams right so it's kind of like if you're in an environment that's outside of teams and you do force like the message i'm not sure if it will consistently work but i've run into some surprises so i find it more comfortable to just use the one in teams but the key is not where you're building it's what that trigger is gotcha um let's pick the one by geet the flows created using microsoft teams will show up in my flow section of one's powerapps automate account as well so basically person is asking that if you're the one who creates the flows does it show up in power automate under my flows or because it's in a team does it already show up in the group side that's actually a good question i didn't even think about that so i know for a fact and i'm just looking actually i'm i'm i could share a screen and and let's do a quick test of this but um this particular user has no uh cloud flows but i went to power automate and um there it is so yes they are all there it should be under my floors my flows yeah yeah i think wait the way it works then is you are the owner of the flow the creator of the phone so you own it yeah however these kind of flows have an extra option on the settings page i believe it's called run only users yes that's what defines who can run these flows and that's where because you don't want to give ownership of this flow to someone else you want others to run it yes and that's where you specify your users that can be a team that can be a group so that's the magic sauce there and then which environment will it be under the same one tied to that team yes okay so it does generate one okay okay interesting all right uh we got two more here we go uh ravi shankar has asked one hi everyone is there any way that we can embed bind external chat inside powerapp i think my power automate and then chat from there so that the end user doesn't have to hop from one window another to chat ravi i'm glad you asked that question um however my uh my spidey sense is tingled because you're talking about things that are secret so so i'll just say they're on the road map and uh until then uh there are some ways daniel did a chat app once if i remember correctly didn't you do a chat i did an app yeah a full app i built it here yeah but as far as teams chat binding inside of a power up on the radar not there today all right and we have we got it's 12 o'clock let's get the last one done then we can end all right so the last one 0 82 can you query other database environments from within a team-based flow or is it limited to personal productivity which is the default environment right no now 90 of the messaging extensions that i make are not in the default environment because the dataverse we don't use the default environment for any um any of our so our customer management is outside of the default so yes you can you can still make the flow from teams that is connecting to another environment you would use the legacy database the dataverse connector that i use today um you just make sure you don't use the standard one you use the legacy can you query and i'm just making sure team base flow or is it limited i don't see the option to change environments in power automating teams you change it through the legacy dataverse connector that's what data was but for the creation of the flow if you want to go across environments i believe you could always go to the full flow experience and yes yeah and just a little note that i learned recently i'm telling you i learned because the product is moving so fast when you're building in power apps you automatically get the data uh verse instances from the current environment if you want to change right next to add tables or add data there's three dots click it and you can change to the different environment not so obvious but definitely enables you to switch environments even from within powerapps which automatically gives you that connection because the connection is is automatic with powerapps it's not the same as other apis it's the direct connection gotcha yeah well we are at the top of the hour so we will definitely you know and um not for every i know uh to the folks who have attended our session thank you um thanks for putting it in everything in the chat it will not be ignored and reza myself will come and look at it as well so we'll definitely do our best you're welcome yeah i mean seriously audrey from the bottom of our hearts thank you so much for coming over here as you can see the comments that are coming in we love the demo thank you so much it was fantastic so you know it was awesome thank you all right take care greetings from the power cat team thank you thank you so much bye-bye hi have a nice weekend you too
Info
Channel: Reza Dorrani
Views: 9,919
Rating: undefined out of 5
Keywords: microsoft teams, messaging extension teams, microsoft teams messaging extension, power automate, power automate teams, power automate teams message, power automate teams adaptive card, power automate send teams message, adaptive cards, adaptive cards microsoft teams, adaptive cards power automate, adaptive card teams, adaptive cards tutorial, flow teams, flow teams connector, flow teams integration, for a selected message, how to, teams messaging extensions, teams, microsoft
Id: iHtY3TjvYck
Channel Id: undefined
Length: 62min 43sec (3763 seconds)
Published: Sat Apr 09 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.