Introduction to Adaptive Cards for Teams using Power Automate - Reza Dorrani

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
the session for today is introduction to adaptive cards leveraging the new actions in Microsoft teams and of course through power automate so firstly before we begin the session sharepoint conference next year has been rebranded as the m' 365 conference and this is going to be held in las vegas nevada next year from march 23rd to 25th 2021 this year we could not hold it due to comment also thank you goes out to all the sponsors for the virtual conference or please a big shout out to all our sponsors a bit of introduction about myself my name is reza durrani and based out of Houston Texas currently in quarantine in San Diego I'm a principal consultant for catapult systems I am of is absent vp i am a power platform community super user born in india and now a citizen of the united states i'm also an avid youtuber i blog a lot about or veel all about power platform on my youtube channel so if never if you've never checked out my youtube channel highly recommend you to do so so let's begin with our topic today the topic is an introduction to adaptive cards by leveraging power automate and force Microsoft teams and in this session once again just like my session yesterday is going to be a demo heavy session so we're going to cover as much as we can in the stipulated amount of time let's get started with session on adaptive cards the agenda for the session today is pretty simple we will look at what our adaptive cards what is this we will look at the structure of an adaptive card how can we leverage power automate with the new team's actions for adaptive cards demos and then some learning resources for you to have which will help you get started with adaptive cards so first things first what our adaptive cards adaptive cards our platform agnostic snippets of UI authored in June so on that absent services can openly exchange portable that is the textbook definition of an apt of cards the key aspects that I want you guys to focus on is number one platform-agnostic json-based and portable at the same time then this JSON is delivered to the specific application this adaptive card natively adapts and that's why the word is adaptive it adapts to its surroundings so if you look at the screenshots on the right if I was to plug the adaptive card JSON if I was to post it to Outlook it will actually adapt itself to the output frame same goes for teams or web shop web chat or cortana or windows timeline or many other services that support adaptive cards these cards are fully extensible they are open sourced extremely low cost very easy to design and very easy to consume them and the best part is they are automatically styled depending upon the UX and brand guidelines of the host application they are decorative that means no coding is allowed and honestly no coding is needed and we will be looking at this in the session now we spoke about adaptive cards being these JSON based cards obviously if it is based on JSON there has to be a structure associated with this card and this is how a typical adaptive card JSON structure looks like these cards have a type attribute and the type has to be adaptive card of course that defines the type of the JSON and these adaptive cards have multiple versions depending upon the progress adaptive cards has made over the course of the last year with the JSON route for adaptive card we have the body tag and in the body tag you can start defining your building blocks and these building blocks are known as elements now in the in the example that I've showcased on the right hand side if you look at the body tag we have two elements that I have defined within the body which is an array I have a text block which is where I can plug in sample text just like a label and then I have a type of image wherein I can plug in the URL of an image to showcase an image so this is where you will plug in your elements in the body tag and you can define as many elements as you want same goes for the actions tab and as the name itself suggests actions is typically where the action bar which is at the bottom of the adaptive card gets rendered and you can take specific actions like submitting the data on the card or maybe opening a particular URL as defined right here in the JSON now that sorry now that we have looked at the structure of the JSON the key question that everyone should be asking including me when I started looking into adaptive causes why should I learn JSON now and a new schema definition language literally it is there any help available for me to go out and build these adaptive cards and the answer is yes and that answer is adaptive cause dot IO if you have never checked out adaptive cause dot IO I will highly recommend you to do so now let's go ahead and actually fire up adaptive cost dot io in the web browser this basically leads you to the adaptive cards website that has been set up this will walk you through how you can get started with adaptive cost the different services that support adaptive cards how you can extend adaptive cards as a product and all the other news and announcements around an apt of cause everything in a one-stop shop that is adaptive cards store IO at the same time right here on the website is a link to dog store Microsoft comm that takes you to all the documentation around an apt of that you need to be sure to check it out at the same time we also have a schema Explorer that's available as well as part of the documentation and out here every property that is available as part of the adaptive cards definition is available right here so you don't have to be an expert in order for you to go ahead and plug and play now I'm looking at the chat window someone asked a question can the image will be a part of my SharePoint document library also currently no it has to be an anonymously accessible image also at continuing with the discussion on the adaptive card schema so here's the schema for a typical adaptive card so if you would like to know what elements you can add as part of the adaptive card we have the card elements diagram right here if you would like to know what actions you would like to take right here they are categorized very neatly out here in the schema Explorer so I will highly recommend you to check this out at the same time we have something known as the adaptive cards designer and this is exactly where you would be required to go to to plug or get the JSON structure so you don't have to be a JSON expert to start building your JSON in the designer once you log in the first thing I want you want to focus on which is very very important is the version which is on the top right hand corner right here we have the version to find for my adaptive card it's very important to know which service supports which version of the adaptive cards today we are purely talking about Microsoft teams along with power automate which is close for that reason the target version that is supported currently by Microsoft teams is version 1.0 and that's the reason why I am switching my target version to 1.0 however in the adaptive card designer you can switch over to various versions and as these versions progress you get new features new aspects that you can add to your cards now in this scenario I have a very simple card that's laid out if you head over to new card there are a wide variety of templates that are available for free that you and utilize for example if I like the weather template just click on this it will plug the weather template and here is the json available for me to leverage right here you can customize these existing templates so let's say i want to add an additional text block I just drag draw place it here and that's a new text mode that was common to my template and as I made the changes or all shades you can get this directly from you still start from a blank slate so you don't have to start from if you look at this select host app often right here currently showing me what framework so this is how the app would if I was plot if I was to plug in this adaptive cart in the pod framework if I want to look at this in an Outlook email format this is it wouldn't look like if I was to look at it in teams light mode or teams Garko ordered notice how the adaptive command is transforming itself so you can look at how the card would look in your host application right here with a very very important and for copying the JSON just click on the copy card JSON and you can take the card with you now that we've looked at this let's say I want to build a brand new card all you have to do is go to new card and let's take pick a blank card now in - scenario I'm going to use the team's light experience and right here I get this empty card schema remember tea leaves only support schema 1.0 so the first thing is going to change your schema to 1.0 that's exactly what I've done I have an empty card and if you focus on the JSON that's available right here at the bottom this is my card payload editor that has been generated for me now if I would like to add elements on this card just select your element drag and drop them and place them once you have the element drop notice on the right hand side you have the card structure plus when you select an element the contextual properties associated with the element come alive now in my scenario I have just added a very very simple text block right here so if I go to the text block I have an option which says text and maybe I want to call this adaptive cards right but changes the text to adapt of cards there are all the settings like style like I can change the font size I can change the weight I can even change the color there are many things that I can modify or customized depending upon the properties that the element exposes typically for the color property I tend to stick to the default because if you keep it default as and when your host application changes will automatically be handled for you as against if I pick a color for example if I picked a warning color which is orange it might not look great on a white background whereas it may look nice on a dark background so you need to be sure as to for which service are you designing this adaptive card for but if you are not sure the ideal way is just stick to default and you can change the font size weight and other attributes so I decided a very simple message called an apt of course now let's say I want to include an image once again just pick the image drop it right here and the image has a property known as image URL if I would like to plug in the URL I will just go in and look at the property on the right and just plug in the URL and that's my image that shows up right here very simple and active card right I have adaptive cards I have an image and let's say I want to create an action I want the user to also take an action I can add something known as an action set once I add the action set I can add an action and there are four types of actions you can take you can open any specific URL you can submit the card and you can toggle the visibility or show the card in my scenario just to keep it really simple I'm going to add the open URL action and notice as and when there are any validation errors in my card immediately at the bottom it clearly highlights that the action that I just added or the bottom element that I just added has a property that is missing and the property that is missing is the URL property so let's say in my case I want this to open an apt of cost dot io so all I need to do is plug in the URL right here and maybe change this to adapter cards and my card is ready to use and here is the JSON associated with my card of course please notice the version again changed I need to be very careful that I am on version 1.0 and once you have all that set you are good to go with the JSON so please go ahead and explore the designer you can be really creative out here you can do a lot of cool stuff with adaptive cards specifically in the designer itself before you take the JSON to your service remember this session is not about learning adaptive pass it is about how can we use these cards in teams using flow and that's where I'm heading to next now that we've explored the different features that are available as part of the adaptive card designer now let's understand what is available as part of teams and adaptive cards along with power automate now power automate contains adaptive card actions which enable you to post adaptive cards as forms and not just that you can even post cards and wait for a response from the user so that you can dynamically get the response and continue your actions and flow if you look at the screen shot on the right now as part of the team's actions you have these new actions that are related to adaptive cards please note they are in preview currently supposed to go into general availability soon but there are these four actions that you can leverage at the same time this truly opens up a wide variety of scenarios for you now because you can actually post relevant information to teams either to your team members or directly to the channels and not just that but even request for responses from your team members now teams is one service flow is a service adaptive cards I or designer as another service now wouldn't it be great if all of these would be intertwined together and I can directly start building adaptive cards or within flow itself and have that same designer experience baton to my flow and guess what that feature is actually available today but as an experimental feature so let's go and look at first of all what are these actions and how can I get these actions on my flow and then of course we will look at demos as well so the first thing is I will head over to flow and in my scenario the first piece of my demo is just to explore these actions we are not going to execute the action we just want to look at what the actions are so in this case I am just creating a really simple button flow that gets triggered whenever a button is clicked and this will start launching my flow and right here if I search for themes if I pick Microsoft teams this will list out all the actions that are available as part of teams now right here if you search for the word adaptive notice there are four actions that are available as part of the adaptive cards experience for teams within Flo and the four actions are post your own adaptive card as the flow board to a user post your own adaptive card as the flow pod to a channel so you can post a card to a user or you can push the bot to a channel at the same time you can also post an adaptive card to a channel or to a user and even wait for a response so the card will be executed in teams and Flo will wait until the user gives the response so you can actually have an interactive experience as well with your users by going through all these four experiences now let's look at certain scenarios where we can leverage this I will first show you a couple of scenarios that of course I have pre-built as part of this demo and then one use case we will go and build the entire experience from scratch this is a live demo so I'm hoping the demo gods are with me when I will try and execute the live demo but for the two demos that have pre created let's just walk through those scenarios scenario number one is I have a flow that I have created that sends out that sends out of both day card that is an adaptive card to the member of my team when they have a birthday so in my case I have a team called cat team as part of this team I have if I go to manage team I have a very small team here with me and three other users now of course I've already gone ahead and made sure some of the users have their birthdays today and let's say they sent their bodies up in Active Directory of course and now as part of my team's experience I want to send out a birthday presh to the user or to my team member who has their birthday on the specific date so I'm going to Flo that runs on a schedule so it's a recurrence flow or a schedule flow and within Flo you have the option of querying the group members by just providing the I of your team so in my case my team is called the cat team and once it queries the members of the team I am looping through every member of the three team and then going ahead and cashing their user profile next I get the information of the birthday associated with that users profile and then I check to see if this birthday if the users birthday is today if it is I go ahead and fetch the user's profile photo and then I'm leveraging that action that I showcased earlier post your own adaptive card as the flow bot to a channel and I am posting this to my team in the general channel and this is the adaptive card that I am posting now of course did I build this adaptive card from scratch no all I did was went to the designer picked an empty card and built my card and as you can see as part of this card these are all the struck this is the structure of my card I have this image which is a chip that is actually showing out the blowing candles right here I've given a message have a good day happy birthday I have a space here for storing the user's image and I also have a space here for giving out the user's name once I built out my simple structure and JSON using adaptive card designer I literally just copied this I went back to power automate just posted that here and then started dynamically plugging in the properties that I want to provide from my flow for example the username whose birthday yesterday the user's profile image which I am fetching from me from thee from the users profile now someone asked me a question can this URL be can I have this - URL coming from SharePoint yes you can but in that case it has to be in you have to actually have the entire base64 attribute of that image so in my case as you can see the user's profile image is not an anonymous image but I convert that into base64 using this function and/or using this expression and flow called base64 and I am transforming this and once I complete this part and let's say my flow was to run right now I have a user who actually has a birthday as part of the steam so this flow is going to run it's going to all the team members and it's gonna check to see if anyone's birthday yesterday and if it is the case then notice if I go to my general channel the user James has the birthday today so it's gone ahead and specified that hey James happy birthday have a good good day and here's the adaptive card that is actually coming from teams and it's leveraging the flow bots to post it to my team's channel and I was testing this yesterday as well so I probably have more birthdays and here as you can see that's scenario number one scenario number two is whenever a new team member joins my team so let's say I go ahead and I add a new team member maybe I want to welcome that team member or maybe I want to go ahead and provide some resources to that team member so that they get more so that they understand what this team is about and maybe it's a it's a new hire and I have a team for new hires and as they join my company they need to go through and look at all the new hire learning resources now rather than doing that in an email maybe we have a team and as soon as the user joins the team I can have a float record in that scenario as well and in that scenario I already have a flow once again pre created and this flow gets triggered whenever a new team member is added this is again a trigger that is currently available in preview that you can leverage so whenever a new member comes to my team once again I get the users profile information get the users picture and then go ahead and post an adaptive card to my team once again if I run this and if I test this this will go ahead and post a welcome message to a new team member who just joined my team so here is my new team member yes the user's profile image from ad years the users designation and also the user's bio which is it is fetching from Active Directory as well so you can do a lot of these interactive based operations with adaptive cards where you can actually post messages in nice-looking UI fashion using the adaptive cards now both of these scenarios that I covered right now is just posting or message to teams and I can do the same thing to a user as well you can either post it directly to our users you can target a specific user or you can target a channel in teams now let's go ahead and cover a more complex scenario wherein I have a process and within that process I need I need an adaptive car to go out to a team's channel and I want the users to respond or to perform some action in my card and then maybe my process needs to move ahead now to cover a scenario like this let's go ahead and look at my use case so I have a very simple use case my use cases I have a list in SharePoint called tickets when it uses come in and create new requests to IT based on issues what they are facing so if I go and create a new ticket all I have to do is give my title give the description pick my category and maybe add an attachment and that's about it the moment this request goes in maybe my requirement is I have a team and in that team I have a channel whoever is part of that channel I want them to validate every request that comes in whether that request is valid or not if it is valid they can mark it as valid and then the process can move ahead if not the ticket is invalidated right then and there now of course I can go ahead and use approvals in flow and there are many other things that I could leverage but what if I can leverage an adaptive card to do the same thing because my users are in teams and I can go directly to them and not just that post a nice-looking adaptive card and gather the response from my users in order for me to do or in order for me to execute something like this what I would need to do is take the following steps so let's go ahead and execute this one by one I will head over to flow and I will go and create a brand new flow and my flow will get triggered whenever an item is created in my SharePoint list as simple as that the next step is before we even create the flow the most important thing is in order for you to use some of these features remember I mentioned you need to have the experimental feature turned on for that you need to ensure you go to settings power automate settings and you turn this feature on if this feature is turned off some of the settings will not be available for you this is on a per user basis so if you turn on the setting it doesn't mean your entire tenant has this setting this is just for your account so in my case I already have this feature turned on so you go to settings power automate search settings turn this on and save that's all you gotta do now coming back to my use case I want an adaptive card to be posted to my team whenever a new item is created in my tickets list so I've used the trigger which is when an item is created in a SharePoint list I will pick my SharePoint site and I will go ahead and I will pick my tickets list once I have done this much now I will go ahead and once again go to Microsoft teams as my connector and search for adaptive now in this case I want to post and adaptive card to a team's channel and wait for a response so I want anyone in that team's channel to respond and that's the action that I have picked now very very important to note the mode effect this action notice how it is asking me for certain properties let's learn what these properties are property number one is which team are you targeting this adaptive card for so I'm targeting this for my cat team which channel are you targeting this adaptive card for I am targeting this to my general channel of course if there were multiple channels they will all last out here now before I click on this create adaptive card okay one very important thing to note is when you are designing your adaptive card you can also send values in to the adaptive card and wait for the user to respond so you can do both any values that you want to send to the adaptive card you can put them right here as key value pairs so what do I mean my values when I am posting this adaptive card to my team maybe I want to provide some information like what is the title of the ticket what is the category of the ticket and what is the URL of the ticket so what I can do right here is I can go and generate those key value pairs so I can call this ticket title right and right here I can use dynamic content and this is the new experimental feature so this may be a little clunky and as you can see it's not plugging in the dynamic content for me that's because it's experimental and there may be some issues here so the trick around this for now until this fix comes in is use an action known as compose and compose all compose does is it literally generates an object on the fly in flow for you so in this case when I go to compose I have the same dynamic content action and notice out here for some reason it just lists out so I will go ahead and pick out the title of my ticket because I want to pass that to my adaptive card I want to pick the category of my ticket so I will go and pick the category value and I will also go ahead and pick the link to my ticket and all of these are properties that are coming from my trigger all right so if you have a flow if you have various scenarios or actions that you've defined all those properties are available to you so you can send them over to whatever adaptive call you design now in my scenario right here I want to pass the ticket title so that's my key what's my value my value is going to be the title so I'm going to place the scalar I'm going to remove these I'm just going to keep the title next thing I need is the ticket category some once again I'm gonna plug in just the ticket category right here so I have the ticket title and I have my ticket category and next thing that I want to pass is my ticket URL these are all the input parameters that I will leverage in my adaptive card that I will be designing shortly and once again this one will be the link to the item so I've just defined three properties you can define as many properties as you want once I have these properties defined I have this option right here which says create the adaptive card and this basically opens that same adaptive cards designer experience within flow itself so I don't even have to go to this adaptive card designer and start designing I don't even have to do that and once again this comes with that same experience you build a blank card use a card change cards properties everything's right here and the beauty is you don't have to worry about versioning versioning is already handled for you now the next step is maybe let's say I want to leverage this card and I will say okay let's change the text you take it create you ticket has been created maybe I don't need this text box and right here instead of your name which is the text and this text block I want to replace this with the value that I'm passing into this adaptive card so notice right here there's an option called bind it's right here bind if you select your element and click on bind those properties that I passed from flow right before I came here ticket title category URL or whatever additional properties you defined you can pick them right here so I'm going to pick the ticket title so this will post the ticket title here dynamically right here I have another text field I'm going to put it in the ticket category so I've got the ticket title and I've got the ticket category and of course if you want to add more text to this notice on the right hand side it has this symbol associated with and under Colley braces maybe I want to call this ticket category : so it will actually put my text and then define the category and I can do the same thing for ticket title as well into the ticket title : so and so so it will place the ticket title it will place the ticket category right here now not just this I want the user to go ahead and take a decision so this now will be posted as an adaptive car to teens and I want the users of my channel to respond to this to tell me whether this request was valid or not so what I need right now I will go ahead and delete all these elements because I don't want them and what I will do is first I will add something known as a choice set which provides me choices now what are the choices right here on the right-hand side I have a couple of choices I will provide the choice as yes and these are key value pairs as well and I will provide you know so they can either respond with whether this is valid yes or no and my placeholder text is is request valid so they can respond to me and tell me whether the request is valid or not and at the same time I also want them to enter common and put another placeholder for text and I will say enter commands here so they can provide your comments and they can also say whether the request was valid or not now notice the moment I did this when I added the input attributes it gave me a couple of validation errors and the reason for these validation errors is whenever you add and ever you add an input type element on to your adaptive card you have to define a unique ID associated with it best practice because it's an adaptive card always this is again this is just naming standards notice in my case I don't have an ID set I will set an ID I will call this AC request write request valid why because this is the response I'm gonna get so this is just a unique ID that I'm providing to this control and I will do the same thing right here ac comments I have two elements that I have defined AC required valid AC commands notice my errors are gone I already have a submit action right here and what this does is this will submit the card now maybe I want to also provide a link right here so what the user can do in that case in that case is go ahead and maybe open the item and SharePoint so what I can do right here is add an action and click the open URL action once again you see the title says open URL maybe I'll say open item that is the ticket so I can say open ticket and now I need to give it the ticket URL now remember earlier I spoke about bind so you notice bind give me this tag I can actually copy this go to open ticket and in the URL just paste that and I also had a property that I was passing called ticket URL so I can just change this to ticket URL now that property that I'm passing from my flow to my adaptive card will come right here and this will open my ticket URL okay another thing that I would like to add right here is not just that you can also go in and plug in an icon URL as well so I could have an icon URL right here that points to SharePoint so it will actually show the SharePoint icon right here as well but for this demo I'm just going to keep it very simple now that I've built my card I will go ahead and click on save card very important you have to save this card this will now save it right here if you want to make modifications go back make your changes if you add more attributes you can add more attributes go back make the changes now that I have defined my card the next step is once the user submits the card what happens in that case you need to first give the user a message and the message is going to be card submitted or I can say it ticket response received now please note out here you can also go ahead now and add dynamic content so I can say ticket so and so I have received the response so you can be as as open as you want to be right here so I'll say ticket response received for and I will plug in the title of my ticket right here the option says should you update the card and the answer is yes I want the car to be updated that means I want that once the user submits the response I want the car to close display the message that this ticket has been responded to once you reach this point right once you reach this point the next step that I want to take is I want to check to see what responses have the user given as part of the adaptive card right has the user said that the request is valid or not and I want to go ahead and perform certain operations depending upon the response that the user provides now once again I will go ahead and add another compose action in here and right here I want to show you how you can get the data from this adaptive card if you look at the dynamic properties it will not list out any dynamic properties from the adaptive card today the product team is working on this and in future you will have those options open up as of now those options unfortunately are not available right here so how do I get the values out of my card the first step is you see the name of my action is too long so I will just go ahead and rename this and call this card and this will make it very simple so I've called this card and right here if I go to function I can plug in something known as expressions and my expression is going to be body card and you would have to learn this for today question mark okay body card that means whatever is the body in the output of my card there is a node in the output known as date and then you can fetch any property that you defined within your card now remember I defined and I named my property's AC request valid AC commands so I can just plug in those exact names right here so if I check AC request valid I will get that property value right here and I will keep it here so I prove it to you and I will also go back to function and I will call this AC commands so I'm adding both my expressions right here also once I receive the response I want to go ahead and check a condition on my conditioners I would like to check to see if the request valid once again go to expression plug my expression right here is the request valid equal to yes if it is yes I would like to go ahead and update my SharePoint list item so I will go ahead and update my SharePoint list item so once again pick my list right here pick my list pick the ID of my list right here it's got a function speak the ID title was a mandatory field so I'll have to repopulate it so as description is provided with the description no request valid value I know that if it is yes it comes here so I can encode this to yes and the command once again I have the command as an expression right here so I can just copy this expression come right here go to expression and plug it in and I need the same scenario here so I will go ahead and use the copy to clipboard action and flow go right here we list it and let's go ahead and change this to no and once I'm done with this I will give my flow nice name I'm gonna call this adaptive arms teams and I will go ahead and save my flow so all I've done right now is define the flow that whenever an item is created on the SharePoint list it will go ahead and post out this adaptive card dynamically pass attributes that I have defined right here I can leverage those attributes and the adaptive card by using that bind attribute get the response and because in the response currently dynamic content is not supported I had to add little bit of JSON logic a little bit of JSON logic to get the values out and the JSON logic was right here once I'm done with this my flow is ready to go I head back to my SharePoint list and let's say I create a new request in mind ticketing system so let's go ahead and reload my SharePoint all right I will go and click on new and in this case let's say I have an issue with my phone I have a phone issue phone not working and my category is facilities I will save so all I've done right now is I have come to my ticketing list and I have mentioned that I have an issue with my phone I have an issue with my phone here's the description of my issue and it is related to categories now if I head back to the flow and of course the flow will take up to two minutes to run initially because it's the first time that I just created the flow once my flow triggers whenever the item is created and that SharePoint list we will see that the flow will go ahead and fetch all that information and then post the adaptive card to my team and my teams right here and as you can see it just happened my flow got triggered so let's refresh this here is my flow in action you see the flow is running if I select this the flow got triggered and the flow is now at the step card and notice how the flow is waiting it is waiting for the response from the user from the team's channel now if I head back to my channel your is what my card looks like notice it says new ticket created dynamically places the values the phone issue facilities all those properties are dynamically coming in here and at the same time the user can respond so what's my option is the request valid yes or no let's say I say yes the request is valid everything looks good if I can spell everything right anyways at the same time I have the submit option which will submit the card open ticket if I click on this this will actually take me directly to that item why because I was dynamically passing the ticket URL if you remember when I clicked on that button it directly takes me there so I use it and look at the ticket look at the description of everything's good say yes enter the commands and submit and the moment I hit the submit button this will respond back to flow and because of the flow if you remember I went ahead and said that yes I received the ticket response for this particular request this gets long and the flow will move ahead and if I head back to my SharePoint list you will notice that the request valid property has switched to yes and the cat and the comment is also right here and if I go ahead and do the same thing and go through the process and marketers know this will go through the entire process again so you can get extremely creative with this this was just one example of how you can leverage this also for folks who are very heavily into approval scenarios if you actually use the create an approval task right so let's say I create an approval task I just want to prove one point so I'm going to call the sample approval and I'm going to assign this to Lhasa okay one very important thing to note about approvals is one of the outputs of the approval action if you don't know about this is an active card that means even approvals gives you an adaptive card that you can leverage and you can actually actually go ahead and post this adaptive card using the same technique I showed you earlier two teams so you can build your own use cases you can build your own approval scenarios and leverage the power of adaptive cards to truly enhance the experience for your users through teams and power through teams leveraging flow extremely extremely powerful things can be done with this heading back to my slides and we are almost on time and I will look at the the questions as well that was - just give me one moment please the learning resources how do I get started well of course adaptive cards dot IO is the one-stop shop for everything adaptive cards so please go there check it out check Doc's toward microsoft.com as well with respect to adaptive cards look at the adaptive cars design or play with it you can do a lot of things and adapt of course designer but please bear in mind teams only supports adaptive cards 1.0 also there is an community call that goes on every month and this is the adaptive cards community call and this happens every second Thursday of the month the slide deck will be available later on for all of you guys so go ahead and sign up for this adaptive card community call all the latest and greatest enhancements as well as community community driven initiatives are showcased on the adaptive God's core okay moving ahead thank you everyone for taking out the time for this session if you want to connect with me that's my email address I am very active on Twitter that's my twitter handle and of course I am even more active on my youtube channel sharing the latest and greatest information around the power platform so please go ahead and do subscribe to my youtube channel as well and please don't forget that all of these sessions we have feedbacks feedbacks for speakers speed back feedback for the event so please make sure that you provide your valuable feedback to us so that we can enhance your experience and future we are also giving away oculist quest 3 ocular squares every day for every region please go ahead and sign up for the raffle as well I am someone who's very big into VR stuff so I think I will definitely be applying for this and let's not forget our responsibility for helping during the covert crisis we have a couple of really nice initiatives from as part of this platform 10% of whatever you contribute will be provided by our sponsors in addition to what you're contributing yesterday during my session I promised I would contribute to United Way I did that and now today during this session I promise I will contribute to International Medical coughs thank you everyone for joining this and I will keep the feedback slide open so that you guys can go ahead and provide feedback for this session for me and for this entire event and while I keep this slide deck open for the feedback which is right here I will go ahead and look at any questions that you guys have posted all right let's look at the line of questions that were posted for me so I have to go all the way back so we're gonna start right from when the first question was posted can the image that I added in the adaptive current be a part of a SharePoint document library yes and no it cannot be a direct URL to SharePoint but you can use the base64 encoded technique that I showcased and you can plug-in it where can we find out what version is supported for which product this was a question by Jeff so Jeff and the documentation links that I have provided they have clearly highlighted which version is supported for which service as far as teams is concerned if you actually go to the team's connector documentation it clearly highlights which features of an apt of cards are supported when you're leveraging adaptive cards with respect to teams the next question was from Krishna does this need any additional permission on another services in office 365 like Groff because I got that that gave me error when I try this for a client however the same is working smooth and my local 10 now it depends upon where and how you have leveraged this adaptive card feature in my scenario that I just demoed today I was leveraging flow and flow is built on top of Azure Active Directory and I was leveraging teams teams is also built on top of agility adaptive cause is now a native capability so because all the authentication and authorization was handled for me I was not running into any issues if you are planning to leverage the Microsoft graph which is which you want to probably get data from graph and post it to as adaptive cost to teams you need to ensure that under whichever account that flow is running they have the respective permissions to the graph the adaptive card does not require any security it's just JSON the next question is where are you grabbing the birthday information from so if you go to office 365 so let me go to office.com when you go to office 365 if I head over to my author's profile and if you had to delve delve is another service in office 365 every user can go and update their profile and provide their both the information so we saw that James celebrated his birthday so if I go to James and view James profile his birthday is tagged us today and that's why James was bought the information came in and for the list I was leveraged leveraging the office 365 users connector and flow the next question from Krishna again is what is the difference you see when you compare with send a customized message versus adaptive card and flow to teams because I can see I can do everything what I can do with adaptive cards yes you can do everything you want an adaptive cards but sending a customized message option that you saw at the bottom is when the user submits the card when the data is posted you would like to close that card and someone gives you a response you would not want some other channel user to also come and given a response to override that so it's best practice to close the card and when you close the card it will just close the card you would like to give a message as to why you close that card so you can put information like I have closed this card because this user responded with this decision and this decision was taken for this ticket that's the benefit of using that customized message and closing the card experience another question from Krishna in fact Krishna has a lot of questions my question is why should I use an active card if I can achieve everything with the customized message to a channel or user great question when you are using the customized message the adaptive card experience is not there for you I am assuming you're comparing this with the weight feature waiting is different from just posting a message from the waiting experience the flow is actually waiting for the response and you saw that in my demo so how long will the user have to wait for the response that is as long as the flow runs and I believe of flow times out after 30 days if no responses received so technically you have up to 30 days for the user to respond whether I like this as I can see using this with MS forms then Leda for approval and then capture the data in SharePoint absolutely anonymous I'm sorry I don't know your name but that's a great point I can leverage Microsoft forms I can have an anonymous service that folks fill out maybe for I'm a customer representative agency or customers are providing me feedback I receive the feedback in Microsoft forms I can get that feedback and maybe run approval processes on it and respond to my users and maybe even store it to SharePoint great point what other platforms can be exposed and adaptive card other than teams currently it's outlook and themes the connector is natively built-in for output for teams outlook is coming soon follow adaptive cause dot IO and please be a part of the community calls you will know what's coming I am an MVP and I am under NDA non-disclosure agreement with Microsoft so there are certain things that I think that I just cannot share but I can tell you good things are coming and finally I have a very simple and straightforward sample message okay can be sent the updated card as the Delta is changed a great question great great question so what you could do in flow actually is if the data is changed you could write logic to time out that card somehow and maybe send another card and void the previous one great question Ramesh I would have to try that out I would say question mark right that's a great question and thank you so much guys these were all the questions I received some really really fantastic questions as part of the session and thank you for joining me today if you have any other questions you would like to follow up with me once again I will get my a information up on the screen for the next two minutes so you can go and grab this you can connect with me on Twitter or connect with me on YouTube and fire your questions there as well thank you everyone for joining
Info
Channel: Microsoft 365 Virtual Marathon
Views: 10,767
Rating: undefined out of 5
Keywords: PowerAutomate, MicrosoftTeams
Id: fdTAUVwONGA
Channel Id: undefined
Length: 50min 34sec (3034 seconds)
Published: Wed Jun 24 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.