Webinar - Microsoft Teams App Dev Overview - September 13, 2024

e e e e e e e e e e e e e e e e e e e e e e e hello everybody Welcome to our webinar today Microsoft teams app development overview I want to thank everybody for joining me today for this webinar to learn more about what's possible with uh Microsoft teams and application development and what kinds of apps that you can build um before we get started here I want to take a few minutes just to kind of stage and make sure everything is all set up and everything before we get started uh first for just a little bit of housekeeping here um please feel free to ask questions in the chat I'm going to do my best to keep an eye on those during the webinar but I'm probably going to answer most of the questions if not all of them at the very end I've got a bunch of stuff I want to cover uh and I want to make sure that we have plenty of time to cover everything that we're looking for and make sure that uh I have enough time to answer the questions at the very end um I will answer every single question that is posted in the chat but again it'll happen at the very end here while we're listening while you're paying attention to the webinar why you tuned in uh do me a favor if you learn something just post a chat post a one in the chat or just do some sort of a reaction to show me that people are paying attention and show me that you're actually learning something uh from this that's the goal of this whole webinar is to make sure that you all learn something all right so let's start off here who is this for let's make sure we set the stage if you've got any experience with full stack development or web development uh such as experience with JavaScript or typescript this is for you if you got any experence with the SharePoint framework this is also for you if you have any experience with Microsoft 365 development this is for you and if you even have any experience creating power apps as a maker and you haven't written a whole lot of code but you can do some coding or at least you can understand and follow the process this is also for you we're not going to build any apps in this webinar we're not going to go through and build and see like uh lots of code and everything I've got some code that I'll show you in some slides here and there but the main point of this webinar is for you to learn what's possible in build building Microsoft teams apps so that you can then decide is this something that I would want to explore a little bit further instead of really diving into the weeds here but hey while we're doing this I would love to ask you uh everyone to just do uh give me a little bit of context on who's here what kinds of stuff are you doing um what I would ask is you drop something in the chat like I just did here tell me where you are who are you where are you come where are you tuning in from you don't have to put your whole name if you don't want to but it'd be nice to just kind of see where everybody is and then addition I want to ask you another question here share with me what kind of experience you have so I know who we have on the live stream who's here in the webinar so I've got three questions for you and there's really one answer for each one of them so first question is for web stack what kind of experience do you have with web development or full stack development and then the answer is what you see there at the bottom of the slide choose like none or I'm an intermediate person like I've done a little bit more than some development um or you've got a lot of experience so then the second question is what about Microsoft 365 develop that includes SharePoint framework or graph or whatever go ahead and chime in let me know what kinds of stuff that you got experience with and the same thing same question around teams development so if you take a minute just to go through and to post those things in the chat that'll give me a little more context on what kinds of uh people we have in the room uh in here uh oh cool right down the street Orlando I'm in St Augustine or right north of St Augustine so you've been dealing with all the rain that we've been dealing with too uh see there um what is it is it kite K yeah kite Co there we go yes uh so anyway uh let's keep going cool so I see a couple familiar names that people that are tuning in here all right so let's go ahead and let's keep moving here along with the slides let still keep an eye on all that stuff Who Am I who are you tuning into well my name is Andrew Connell um I've been doing uh Microsoft 365 development for a well really before it was Microsoft 365 development I'm go back to Old School SharePoint development back uh from 2003 I think it was um so I've done a lot of stuff on all the different SharePoint Dev platforms uh SharePoint framework uh Microsoft teams development is what I'm doing a lot of these days Microsoft graph I've done a bunch of stuff with SharePoint embedded worked with the team uh before it was a uh made public um and building a bunch of content for them um and then also do a lot of stuff around Microsoft Azure uh Microsoft I'm also a Microsoft MVP actually got my 20th a uh award um well the crystal is sitting right over this over my shoulder here it's just a little bit I don't want to pick it up well you know what the heck so go ahead and pick it up just hope it doesn't fall out of my hands here so way too many of these little like ho hockey pucks here um I don't know it's kind of cool always nice to get that once a year uh we provide it lucky lucky to get that once a year so I appreciate that uh recognition you can learn more about me from the links you see here you can contact me from the links you see here in the email here uh how to find me on socials you didn't come here really though to learn a whole lot about me you came here to learn more about Microsoft teams uh app development so here's what my focus is today we're going to learn more about what's possible in creating Microsoft teams app so I'm going to talk to you a little bit about what are Microsoft teams app creation options we're going to touch on SharePoint framework and power apps we're going to also talk about then the different things that we can build in our Microsoft teams apps things like personal apps Channel apps group chat apps um I'm also going to talk a little bit about um how we can go about uh creating conversational Bots using both the the uh bot framework and uh the um uh the teams AI Library I'm going to explain what message extensions are and where you would use those I'll show you a couple screenshots of some examples of those and then I'll talk a little bit about what we can do about extending co-pilot for Microsoft 365 with some real-time data and how we can take it the reason why that's in a teams app session is you will see that the majority uh of the um coding style or the the the most sensibility stuff that you can do with co-pilot for Microsoft 365 uh all of that stuff that you can do is all grounded inside of a teams app we use the teams app manifest for actually registering all of that in fact the Dirty Little Secret is they're no longer really called teams apps or the teams app package or the teams app manifest now we just call them the app manifest because they're really all the the center of gravity for all extensibility around Microsoft 365 and then finally I'll touch on a little bit of developer tools uh some hosting stuff and some deployment so as I said this is all for you so if you've got a question please post your question to the chat I definitely want to make sure I answer any of your questions if not uh during the the session I want to definitely cover them uh at the uh at the very end so stick around I've got it planned to be about an hour long and then start uh diving into all the questions um now at the end of the webinar I do want to share with you how you can work with me so that you can also learn Microsoft teams app development faster to be the Irreplaceable expert delivering more to your customers Microsoft hired me to teach a bunch of their Enterprise customers teams app development for about nine months um didn't really like the way that they were having me do it uh so they let me try a different approach uh during that process and we found that actually the approach that I have we had a much better success with it but the program finished up very soon after that and that's what really inspired me to create my own way of teaching teams app Dev which has been going uh which has been very successful over the last year or so but don't worry this is not a sales pitch webinar this is a 95% educational so this is going to be a good use of your time I guarantee you you will get a good return on your investment uh to development uh to um the time you spend with me here um I did see a a message in the chat just pop up from De di deandri sorry about that uh you said your team moved away from teams app development due to security I'd love to know why you why that is uh and what what the concern that you had was okay let's start off with my first section here on Microsoft teams app development um options what options do we have available to us so when you want to go create your um when you want to create Microsoft teams apps you have a couple different options that most people are familiar with so the first one I'm going to start with is power apps that's one of the most common ones that I see people uh show interest in now this is a user-friendly Tool uh mainly primarily for makers uh for creating simple data entry apps or management style apps um you've got a built-in data store using the data verse um uh offering from the Power Platform and when you create your power apps in order to use them or with the intention to use them inside of a Microsoft teams experience um you're really intending for them to be built directly within teams and to have your integration uh show up inside of teams um but when you do this your power apps are really limited to just the tab based experience so that's going to show up in one of two places either as a personal app where your app is going to be pinned to the left the rail on the left hand side for the main navigation um it doesn't have to be pinned it can actually be in the little dot dot dot at the bottom it shows up in the dialogue or you can go through and uh pen it to the rail the other option is is that you can show it like it as a tab uh within a channel Within inside of the different teams now one of the challenges that we have with that um well we'll get into some of that stuff as we move on but you're kind of limited in all the extensibility options that I'm going to talk about throughout the rest um of my uh of the webinar today um you're really just stuck with a tab based interface um the other option that a lot of us a lot of us look at as a good option for building apps with for teams is using the SharePoint framework now this is not a bad a good or a bad option it's just another option like power apps um the SharePoint framework is enabling developers to extend and customize SharePoint and Viva connections primarily um now one of the ways that we can leverage the SharePoint framework with in Microsoft teams is that we can create a web part that is going to load in uh Microsoft teams um and be manifested as a tab and as you'll see Tabs are really just iframes and teams so what's happening is is that teams is loading that web part uh from SharePoint online in that iframe so to your in users they have no idea that they're actually using a web part it still looks like a tab the way this happens is that with the SharePoint framework you're going to package up the solution you're going to deploy it to your SharePoint online app catalog and then you're going to sync it to your Microsoft teams App Store that you can see I'm pointing to right here on my slides now the SharePoint framework web part as I said it's going to be surfaced as a tab which means it's going to show up either as a tab inside of a personal app or it's going to show up as a tab inside of a channel app or a group chat app so channel app being just a tab um and as I said the last point you see there they're hosted they're still all hosted in SharePoint online all we're doing in teams is just telling teams hey the implementation of this tab is at that URL and that URL happens to be a special SharePoint online URL now there are some benefits uh to using the using SharePoint online or using SharePoint framework for creating teams apps all of your apps are hosted in SharePoint online so it eliminates the need for additional Cloud resource uh hosting so you don't have to create like a web app or anything like that and know where you're going to store it all of that is kind of already included with SharePoint online also tabs and teams are implemented as a SharePoint framework web part which means they're going to be rendered in that blank SharePoint page within the if frame as I talked about earlier SharePoint framework is also offering us built-in support for calling secure endpoints things like Microsoft graph the SharePoint rest API and any other Microsoft intra secured endpoint they've got apis to do that stuff for us and make it easy so that we don't have to worry too much about the authentication story and then finally the app is going to be deployed to the Microsoft teams App Store and it's going to be done using the SharePoint uh online app catalog there's a button in the app catalog for um uh saying sync to teams or deploying it to teams and what that will do is that will actually add the element or add the the package to teams uh for us it creates the app package and everything for us without us having to do any extra work but there are some limitations to working with with the SharePoint framework um you're limited in the customization options compared to Native teams appd just like in the last example with power apps you are limited to just a tab-based interface you can't Implement things like Bots or message extensions or any of the advance stuff that we have with uh extending co-pilot because all of those require some sort of a serers side component to support it so something like a web service we can build some components for meeting apps I'll touch on that WS the end of our webinar like tabs and um other side panels in the meeting stage but um we can't do everything we can't do things like uh have bots in our in our web service we can't have or bots in our uh meeting app or message extensions can't take advantage of that stuff and in addition the SharePoint framework is limited just to client side Solutions which means it's really limiting any server side stuff that we could do like additional authentication uh advancements or any other Tex Stacks that we wanted to take advantage of of like asp.net or node or whatever else that you your preference is now conversely to those other two options power apps and uh SharePoint framework when we want to build uh teams apps using the native appdev approach now that's just my term I don't have Microsoft doesn't have a a specific term for this but I've seen people refer to as like the SDK approach or an API approach that's what I'm going to focus on for the rest of the webinar this option is going to allow development of featur application uh for teams and services that extend all of the Native teams app capabilities we can create a web app so just like a react application like a spa or angular or whatever else web framework we choose um we can do that for various types of tabs Channel tabs group chat tabs or personal apps we can create web services that are going to power bots for user interactions and event driven actions or message extensions that can be used using the same web service infrastructure um as Bots and it's also going to offer the flexibility for customizations extensions and Integrations into my team's application listening for events and responding to user interactions and then we can also provide some of the best opportunities for creating collaborative experiences for our users so let me start by just saying what is a teams app I see this a lot of people get confused by this a teams app the thing that we're really going to deploy we're developers we want to know what we're going to actually deploy to teams a teams app is just an a uh an app package a zip file that we're going to deploy to Microsoft teams and all it contains are two images which are used as the icon for our app and a Json manifest file and all that Json manifest file does is it simply makes teams aware that this app has these different components in it a tab a personal app a bot a message extension Etc some additional configuration information like maybe if we're leveraging single sign on in teams or something like that it's just going to reference all that stuff of what the app app has and then when it when you need to integrate with some external Cloud resource like in the case of a tab we simply give it the URL of where our stuff is going to be provisioned where it's going to show up all right so where does it go through and load our web app to surface in that iframe it points over to the URL for wherever we choose to host our application that means that we then have Cloud resources that we're going to deploy so this is one of the differences you see from like the SharePoint framework is that now I have to host my application somewhere there's a good and bad side to that the good side is means we have full control over how we Implement our application we can choose any Tech stack we can choose any build tool chain any CI and CD process there's no limitations here it just loads inside of an if frame um however the downside is means we have to host it so in the SharePoint framework case we follow their rules they say it's only client side we have to use their tool chain to go through and to build our apps I mean it works but we just have a little bit of a challenge uh with some of some limitations that we have to go with because of this opinionated development approach but with a teams app you choose whatever Tech you want if you want to use asp.net if you want to use nodejs for your server side stuff if you want to use like me I like to use remix if you like to use PHP first of all I'm sorry if you like to use PHP but that's okay it's okay you can still totally use it if you choose to use it it's totally up to you now let me just give you a little bit of an idea here on like what this is what we're going to create here so in this case here this is a simple example and this is kind of amplifying what we have uh on the last on the last slide I showed so what you see let me get rid of me for a second so you can see you can see the um there we go so you can see the the text there on the side above that black line that's everything that's inside the Microsoft cloud so the orange line is referring to the um uh like a development experience whereas the Blue Line the blue dotted line is referring to what the production experience is and the black line that's every all the time so the thing is you're not deploying anything to Microsoft teams like any code so that's the question I had for one of our attendees earlier which they said they didn't do this because of security I don't really understand the the the point there I'd like to learn more because you're not really deploying any anything that is going to be integrated into teams like worst case if your stuff completely blows up it doesn't affect teams at all right it can't affect teams because teams is simply loading your stuff and if your stuff breaks it just doesn't get loaded it doesn't it doesn't it doesn't break teams or your environment uh in at um in Microsoft 365 teams is going to look at the Manifest file that you deploy to um Microsoft teams for your app and what that's going to end up doing is that's going to tell teams where's your app live so in this case here for a tab maybe it lives in some Azure app service could be a static web app could be a container app or maybe you've deployed it to AWS or Google Cloud platform or some other environment when you're in development well it's going to be running locally on your laptop so the URL that you're going to be pointing to in the Manifest when you're doing development is going to be a little bit different we can also get pretty darn complicated and this is the most complicated experience that I could show you here it doesn't show any like data storage but in this case here this is a meeting app and a meeting app as you'll see later can consist of tabs it can consist of uh web services for Bots and message extensions what you can see here is that the teams is still communicating with all of these different Services it's authenticating with intra ID to make sure we can all connect to stuff we can then go back and talk to like the Azure AI bot service the Azure functions um Azure app service you name it you can get as as creative as you want with this all right um so I saw a question here is this similar to the SharePoint app model kind of a little bit kind of um because everything if you think about it more of like the app model from the provider hosted model yes it's more like that it's not like the SharePoint hosted app model it's more like the provider hosted model but without all the baggage of the app model right so okay so now let's talk about some of the different things that we can build here that's what a teams app is from a high level let's talk now about the different things that we can build and the first one I want to touch on is uh Channel apps or our personal apps and channel apps a personal app as I mentioned earlier this is something that you're going to create and deploy to your team's environment and when you deploy it to your environment here you see here it's going to show up in that left hand rail so you can either my case here mine's called the teams tab uh 01- loc that's the name that you get the- local is what you get when you're doing testing um but it will you change that name right before you go into production and you can you not right before but you know this is just a make it easier to kind of distinguish between what's locally running and what's running uh in production um here we can sit there you we have our our tab experience that leftand picture and you can see when I click on this dot dot dot that's going to give me a list of all my apps and these are the most frequently used apps including the one that I have installed right here um then once I select the app you'll see it's going to show up over here in that leftand rail now I'm in my app and now I just get this tabbed experience now just for a minute here file a way that we've got a personal tab here in a simple list Tab and then we have this about tab you always have the about tab that is always going to be there these other tabs you see here this entire area down here is one giant iframe without any uh border uh on it this is where our is going to load in this area that you see down here I hope you all of you can see my cursor as I'm moving it around so how do I register that with teams well in teams in my app in my teams manifest my manifest.json file that I'm deploying to uh the teams app there's a section in there called Static tabs this is what they were called way way back they were first called Static tabs now they're called per then they were called personal tabs now they're called personal apps the entire teams app is considered a personal app and then all of the static tabs or personal tabs that are defined in the app as you see here my personal tab or my simple list this is going to be pointing to some endpoint where my application resides that's going to get loaded in that iframe in this case here they are scoped at the personal scope now this is the personal scope is the only one that's is allowed when we're working with static tabs you'll see another option in just a minute when we talk about our Channel and our app tabs but from here it's just a web app so whatever is running over here in this case it's a react app that's using the react router and it's loading either my tab component or my symol list component that's a that's a personal app now what about a channel app these things are just like personal apps these things are just like personal apps except that they are configurable and they're going to go only in channels and or group chats so just like a personal app they're they're loaded in an iframe so it's just a web app that's going to load in the if frame now what you're going to do for your app to get some rich rich integration with the team's client you're going to use the teams JavaScript SDK to connect your application to the hosted teams application and with that you can get things like a teams context to understand what team am I in what channel am I in what id stuff like that you're also going to be able to detect what theme the the current uh team's client is in so if I want my app to match the same theme the light default theme or the Dark theme or the high contrast theme that's how it end up going about uh doing um that's how I make sure that my app looks like the rest of uh the team's client um and I'll talk about that more in just a second and then furthermore that's also the SDK you're going to use to implement single sign on where you're going to be able to ask teams for a single sign on token you'll get an access token which is basically an open ID connect token that you can then use for the current user your app can use on behalf of the current user to go obtain an access token uh from your server side code uh from for the user to go talk to things like graph or to talk to uh other endpoints that you want to talk to that are secure with intra ID so that's the SDK you're going to use for this and the tools you're going to use to go build out your client side uh your your application uh to make it look and feel like the rest of the teams you're going to use fluent UI react so fluent UI is a is a uh design is a UI implementation or an implementation of the Microsoft uh design language fluent UI and then the react components is a series of react components that Microsoft uses for implementing Microsoft 365 web properties like SharePoint Outlook uh.com teams uh and they make them available to us so that we can use them in our app so when our users go to our apps they're going to look and feel like the rest of the teams we don't want it to look just like our own custom stuff because then we'd have to train those users and developers we don't like doing that we don't want to talk to users we just want to we just want to go through and build the apps and make sure they look and feel like the rest of the teams client so if someone knows how to use teams they should know how to use our app and hopefully we make it intuitive enough for that case okay so what is this look like well here inside of our channel app this is going to look a little bit different because what we're going to do is instead of pointing to the actual tab that's going to get loaded in the iframe instead what we're going to do we have a section of the Manifest called configurable tabs so configurable tabs they were then renamed to channel tabs now we generally call them Channel apps but they they're synonymous here what I'm doing is I'm pointing to my configuration page and then I'm setting the scope to a team the other option is group so here this would say this is available to be installed in a group chat or a team in this case here it's only available for installation in a team so when a user goes to in to add a tab to a channel and they choose my application they were going to get this little dialogue that pops up and this dialogue is also an iframe from like right about here to down down to right about here this iframe is going to load whatever the URL is in our configuration URL right now once I go through and I I make my changes here and I click save then I'm going to have some code that's going to go add the tab to the channel what does that code look like well I'll show you that in just a minute I think I am yeah I'll show you that in just a minute so here's what the experience kind of looks like here so this is the stuff that I'm going to create on the far right hand side these these these right two um uh swim Lanes in my sec sequence diagram and then I've got Microsoft teams the client and then the user the user is going to say I want to add a channel to a tab and it's going to do that inside teams teams is then going to go to our te our tab settings page it's going to request that page open up a dialogue and load that page and show it to the user the user is going to interact with that dialogue maybe change any settings they want and then hit save that's going to save it back to our settings page which is then going to have some code that I'm going to show you in the next slide that's going to use the JavaScript SDK from teams to add the tab to the page or to the teams uh tab sorry to the teams Channel and then go through uh and and then the user can then browse to the tab and then that's going to load the tab inside from our tab page and displayed inside of that iframe so what does that code look like looks like this so down here on the right hand side this is the initialization like the on a knit for our settings page when we initialize I'm going to say that go to Microsoft using the JavaScript SDK Microsoft teams. pages. config I'm going to register a save Handler and that save Handler is what you see listed up here I'm also going to set the validity state to true that enables the save button on my uh on my on my tab okay oh let's get me up here that's going to enable the save button on that settings page and then I'm going to tell teams all right we're ready to go through and do some work now this is where the save Hunter is going to run and all it's doing is is it it's creating a configuration object that has the name of the tab an ID for the tab some URL the URL of where the tab is going to be loaded from and then it's going to tell teams that everything has been is successful and that will then navigate the user it'll add the tab to the channel and then the user will get navigated to that channel that's all there is to it and so all we're going to build is our web app that's going to load inside that if frame that's it that's all it is pretty simple pretty straightforward with that one so here's what it looks like once I've set my settings page here my simple mouth calculator and I chose that if I want to use a multiplication or add or subtract or whatever really complicated stuff we can go much more complicated don't worry you can basically whatever you can think of and here it's loading my tab uh inside of the iframe okay so that's Channel apps let's talk a little bit Channel apps and group chat apps and personal apps let's talk now about like Bots uh and message extension so I'm going to go through some of these things kind of not quick but I want to just give you an idea of what we can do here so where can we use a bot so what is a bot a bot is a way for us to communicate with a web service to either go do some stuff for us or to get additional data to to to augment a conversation so when a bot is installed inside of a Channel or a group chat it's not listening to all of the communication in the channel it is only going to listen it be sent messages when the bot is at mentioned so it's just like the way we all want to deal with a channel right I don't want to I don't want to pay attention to everything that's going on the channel tell me when I should should pay attention that's what's going to happen now there is a way that it's a little bit beyond the scope of what we're going to cover today but there is a way for the bot to actually get notified when there are when any message gets added but that's a little bit different that's setting up some web Hooks and some additional permissions and having graph notify it when uh things happen um the other way that you can use a bot is in a one-on-one a personal chat and for that you don't have to ad mention it because it's just me and the bot are having a conversation so he gets every single message uh in that case that's great for like a wizard or for like a support uh request or like a QA bot or something like that so how do these work so this is similar to what I was just showing you the previous diagram except all of the communication is going to happen through the Azure AI bot service so teams is going to talk to the azurea bot service our manifest is going to register is going to define the ID of our inra application that is registered as a bot in the bot service and the bot service is going to know where my web service lives either it's living on locally on my machine for development or it's living like say in Azure or some other Cloud resource okay so that's how the configuration the communication happens the reason we use this Azure AI bot service is because it knows how to Marshall the request back and forth so when I when I send a when the request comes into to my web service I have context when I respond it knows to be able to to route that message back to a particular user inside of a Channel or and a particular user in a one-onone chat now there are two different ways we can build Bots we can use the the bot framework SDK or we can use the teams AI Library the bot framework SDK is the way that we've originally did this and this is where we had a much more declarative and specific way of defining our applications we have a very primitive list of commands we had to expect the users to give us an exact command that they wanted to run um it can be a little hard to deduce what the user intent was if they don't give us the exact command um but it allows us to do stuff and it's actually it's a very cheap cheap way to go through and to create a bot but there's a little more code that's involved the new way of doing it is using the teams AI library now one is not better than the other it's just two options Microsoft isn't talking at all about the bot framework SDK anymore but it's still available it's still around um they haven't made many improvements to it because they're focusing on the teams AI library but it it's not going away like if you think that this is dead it's not dead it's not dead at all um what the teams AI Library does is it takes advantage of using large language mod models to take what the user is saying that they want to do and based on the knowledge that the model has been trained on it can deduce the user's intent so like the easy example is that if I say if I have a light bot that knows how to turn lights on and off if I say turn the light on well the AI bot's going to figure that out but if I say something like hey light bot it's dark in here can you help with that the light bot can be like like if it is like right now it's pretty it just got dark in my room but if the if I say it's dark in here can you help with that the light bot can say sure I know I can turn the lights on because that's what you would normally do if it's dark and you need and you want to fix that so would you like me to turn the lights on this is what the team's AI Library can do it can deduce user intent it can map that intent to a specific action and then we can wire up our code what happens on those different actions so it's really cool it makes life a little bit easier and it make it really does give your Bot a better experience for your users um but it's just another way of going through and doing the same thing now how does it end up working here so it works a little bit like this let me slide me over here um in the bot framework you see here that the big change that the big thing all the work is happening over here with the bot framework SDK in our custom code that we are going to be uh creating here the difference is is that what the what the teams AI Library does it still is using the bot framework SDK but it sits on top of it and it intercepts some of the requests based on the code that we're getting and some engineering and configuration stuff that that we're going to uh Define The Prompt engineering and configuration we're going to Define and what it's going to do is use the the teams AI library is going to make calls out to either open aai or Azure open AI to deduce the user intent and to to do like generative content and stuff in our responses to make our lives a little bit easier so some examples of this like for example uh what I can do with this is I've got a bot where I've uh prompted the bot and I said hey I want to go through and I want to view a video you can see here that this bot responded with an adaptive card that has a couple different buttons on it now what this one did is this one's actually triggering a dialogue we call them task modules and teams but it's triggering a dialogue now there's two ways we can Implement these dialogues either as a web page or using an Adaptive card now in my case here what I did when I picked one of these one of the this option here the video selector that took me down here and uh it sent a message back to the bot the bot saw that the message was from an Adaptive card it saw that it was requesting that this button was clicked so what it does is it responds with an addition a new adaptive card um and it tells it that hey I want to launch it as a task module the other option it could do is it could actually respond with a with a new adaptive card and replace the existing one that's here kind of making a message almost like a live application that's running that's kind of cool furthermore over here if I chose one of these other two options what this is doing is responding with a different uh uh task module and this is a webpage implementation because I can't load like a a video from YouTube in an adaptive card so instead I just created an HTML page that used the YouTube embed script and I just passed in the ID of the YouTube video uh that was in that was embedded as part of this button I passed that to the HTML page and this was all done by the communication back and forth to the bot so here the bot is going to be initiated it does its first message back to teams which is an Adaptive card user clicks this button that sends a message to our our web service that responds saying go open an adapt go open a task mod mod with this adaptive card as the source and if I click on one of these other two guys right or these other two buttons right here then instead the message goes back to our bot and says go launch a task module which the bot responds with a new say go launch a task module to teams with this URL which includes on the query stream the ID of my YouTube uh video that I want to display so that's like the the general idea of working with Bots now another thing I want to cover here are message extensions now these are are really really cool what a message extension is this is one of or one of three things that we can set here it allows us to either do link unfurling which is going to watch for a specific URL that matches a specific pattern in this case here a little hard to see it on the screen there but it's a Wikipedia link to the planet Mercury when it sees a URL that matches a pattern that I've defined in my app manifest it will send that URL to my bot to my web service that I can then respond with an adap card or some other text that's going to get added to our message so this is the compose box at the bottom of teams you've seen this if you post in a link anywhere where you get like a rich experience that's going to pop up um for like say using the open graph and using an open graph image um if you seen the GitHub uh app in teams it's really cool if you paste it in and you're not logged into GitHub it will even show you like a the public information about about an issue in GitHub or if you're logged in then it will show you even more Rich information that you can have more interactive kind of um adaptive card that you can work with the other type of a um um of a message extension is an action command and what an action command is is this is allowing you to take certain actions I'm going to show you this one in just a minute um a couple screenshots on that one the third type is a Search Command and this is kind of the this is one of the bases that we have for extending uh Microsoft um oh sorry co-pilot for Microsoft 365 in this case here you've used one of these before if you you might not even know it if you ever used teams and you've added an animated gif and using one of those buttons that you see down there at the bottom of of um I if use this button right here actually where you choose the gift button and it gives you this search this option to choose a couple different options um what that's going to do is it launches this little little search interface that you see here and here what I've done is I've created one where if I type in one of the four NASA Mars rovers uh that's currently active on or that was that's been active on Mars It Will get all the images back from the NASA imagery API and show them in a list here so that when I select one of those images it will add it to a message that I can add to one of my end users that's pretty cool all right so where can you use these different message extensions these are going to show up for you in a couple different places they'll show up either in the command bar at the top that's that's true for the um Action commands um we can use uh we can have it in the messages option which is that little dot dot dot menu that's available for us also for Action commands and then down here we can also create I have message extensions exposed down here now this is work going to work for both search commands and for Action commands uh where we can use these now oh did I just go backwards I did go backwards uh no let me go back there we go so here's one of those Action commands where I've chosen the little dot dot dot options so if I let me jump back real quick so on this one right here if I choose this acronyms explain this is one that we create in my class what this one does is I chose it on this message that's in the background here so you can see I I've used SP 20103 I don't work on Prem I do only do spfx work for SPO using vssc someone new to the company is like what did you just say well you can help them with that with the deconz the decramer is going to look at all these acronyms and look in its database and go ah I think I found something for you so SP 2013 that means this spfx means this so I mean it's a fun little example but that dialogue is going to pop up and from there we have all these choices if I choose unleash the deiz here that could add my uh um uh message to uh the message where someone could then go a new message and someone could then augment add some additional stuff to it and then hit submit or I can just submit it straight to the entire conversation as as the app doing it so I could say unleash to the chromized as a reply right in line so that's kind of cool another thing that we can do we can create meeting apps now these are probably the most complicated things that we can do because this takes all the stuff that we've covered and it puts it all together into one thing so here what you can do is you can create a a customized pre and post experience so if I want to go into a meeting inside of teams and I go to this little plus icon I can add my app to uh this meeting now when I do that that's going to add in a new I can add a tab to my meeting so that's going to give me an option for a pre in a post experience uh or an in in in meeting experience to our app appliation all right so that's kind of cool right so that allows us to go through and maybe collect some information before the meeting or give you a summary after the meeting it's going to allow us to go through and to go and to add a nice little web experience here this is just like a normal tab this is just a tab you're going to create a configurable tab and you're going to say it works inside of the meeting experience and so here this is just one big eye frame inside the meeting but that's not all that we can do oh there we go there's the content there's where our app is going to be loaded now that's not all we can do we also can have access to this entire panel on the right hand side this is called the side panel this is also a tab we can Define whatever we want over here furthermore this entire area that you see in the main part of the page this is the meeting stage the meeting stage is going to allow us to also create our own web interface right here in this case it's just showing a bunch of pictures of people but I could have a whole like single page application that I'm going to load here this is also a tab so this is a tab this is a tab furthermore I can also also prompt a message to a specific user how would I do that this is a message extension that we're going to launch from our teams uh uh meeting app that can prompt someone for some information this is a great way to collect some information from a user in the meeting without spamming everybody else to have a little like side conversation we also can go through and work with Bots inside of a meeting where they can be notified of everything going on in the chat right that's actually how Microsoft does it they use that bot thing so when the meeting is over an event gets published to a um to their bot and that's what triggers it to go save the meeting recording up to Microsoft stream and do the transcription and the the if you have copilot for 365 or the team's premium license it's going through and setting all of that stuff for us uh as well all right let me talk a little bit about what we can do with co-pilot because this is something I'm sure that everyone's interested in so let me just talk about what we can do with this now some of this has nothing to do with teams but the two big ways that we can customize the co-pilot experience is we want to give co-pilot additional data so how do we do that you can do that in one of two ways you can either pre ahead of time give a ton of content or give unstructured content like manuals or transcripts from like uh SharePoint framework courses perhaps wink wink um that uh where what that's going to do is is that allows uh co-pilot then to have grounding uh to set the grounding information uh to some additional content that that you provide um uh co-pilot so when someone asks a question about SharePoint framework you can have your have co-pilot say not only do I know all this stuff from my training from the model training and not only do I have all this information about Microsoft graph I also now have this data from some external system that's been added to graph that has the transcripts to Andrew's SharePoint framework course so I can go now has now the um the co-pilot can have some information on and it be teaching it how to do stuff with um with SharePoint framework the other option that we have is with a plugin now this is a very different option there's a couple ways we can create plugins you can do API plugins you can also do message extension plugins let me just talk a little bit about what this allows you to do here because there's different ways you can build these and I'm I want to talk about it in the context of our um of what we're talking about today an API plugin what this does is that I can take remember that message extension search action command that we defined earlier if I add just the one property to my message extension in the Manifest it's called a semantic description and I give it a really rich prompt basically I'm training co-pilot and saying hey you don't know how to get uh images from the NASA imagery web service that were recently taken uh by the perseverance Rover that's up on Mars right now but this message extension can do that and here's all the properties you need the current day or the Martian day the soul which camera you want to use and what the Rover is if you can extract all that stuff from the user's intent from their message that they prompted co-pilot then what co-pilot can do is not only have access to all the data that it's been trained on as part of its training model but also all of the data that it already knows from Microsoft graph in your own tenant and it can now reach out to your plug-in and get additional data in all three of those data sources when it's sent over to the large language model when it responds it can have a much richer response okay my NASA Mars imagery thing may be a little contrived but think about where this could get really cool really cool what if you had like a live inventory system that was always changing or live data about customers that's not going to live inside of Microsoft 365 like customer orders and inventory and that stuff but you could create a plug-in that you then that knows how to go talk to those backend line of business databases to augment um uh co-pilot so it has information about realtime data in uh based on the user's prompt right that's all done using a message extension or an API plugin and it's all part of Microsoft teams to be a the one that I showed you a little bit earlier that one for um the NASA imagery service it literally takes about two or three minutes to make it all of a sudden work for co-pilot because all I add is a single property called semantic description for the entire message extension and the Manifest and for each one of the different parameters so that now co-pilot has been trained on this plugin can support these things and here are the different parameters that you can extract from the user's prompt and if you feed them to the web service we can give you a bunch of data that you can use in your response pretty cool yeah all right let's keep now I want to talk about developer tooling what you're going to end up using to go through and build out your application um oh I was supposed to get rid of that slide my bad all right so let me show you that the reason why I'm going to get rid of is some stuff is outdated there I don't I don't use that slide anymore okay so what do you end up needing to do I want to build an app what do I what does the story look like the deployment Story the development story what does it look like what you're going to need is a place to go through and host your resources that's going to be like where's your app code going to go what is your code what is your app code going to use like what databases what storage model what large language models stuff like that where is it going to be surfaced well all of this stuff here that you're going to create as part of your app that's got to live somewhere so we call those all of your Cloud resources and and naturally you're going to it's probably going to go inside of azure but it doesn't have to go inside of azure that's just naturally where it's going to go your app is going to be surfaced inside of teams so you're not deploying any code to Microsoft teams or Microsoft 365 as the um as the uh attendee earlier asked is this similar to the SharePoint app model I said yes it's like the provider at model be the provider hosted model because I'm in full control over how I deploy this and the code that I use and the platforms that I use and the tooling that I use it's all and the scaling story that I use it's all up to me on how I go through and I create this stuff all right um but it does mean I'm responsible for that so it doesn't mean I'm also limited to just Azure I could use anything I could use AWS I've got a customer that does a ton of stuff with Bots and their integration and they're an AWS in Java shop that's what they use um now the next thing is you're going to end up us the dev tools what do you need to go through and to build these things well you have to choose your TCH stack but that's true with anything that you're going to end up building so node.js asp.net Java PHP again my sympathies haven't taken your pills yet that's okay um or whatever technology you want to end up using for your server side stack uh you like react you like angular you like uh Vue you like uh spelt doesn't matter whatever you want to do teams doesn't care it just cares it's a web app now the tooling you can use for this Microsoft has provided some tooling to make our lives easier they have this thing called the teams toolkit and it actually is all-encompassing of a lot of of a lot of different things it includes a visual studio code extension and a visual studio extension and what those do is that give us a little bit richer like uh project structure and like a whole idea of like different environments of like local environment Dev test production stuff like that all that teams toolkit does in those production envir in that those environment settings and project settings and stuff what they do is they're actually uh all leveraged or all implemented using the CLI the teams uh the the teams toolkit CLI we used to call this teams FX it's known also as teams app what it is is that when I go to do a build from the visual studio code extension for teams toolkit under the covers what it's doing is it's calling the CLI now what's cool about that is it means that anything that you're doing you could totally do all of this in a CI and CD story you don't have to use this tool right here and in fact I've got a the person that's doing Java stuff they don't like to use um Visual Studio code they like to use the stuff from jet brains so what do they do they just don't use the visual studio code extension they just add in the stuff they need to make it a teams project and then they've gone through and used the CLI on their own just as easy to do it you're also going to need a Microsoft 365 uh developer or you're going to need Microsoft 365 tenant not developer tenant just need a tenant they're all the same the downside is I talk about the instant sandbox here if you haven't seen this right now it's kind of Frozen we're locked out of being able to use this for right now it's only a temporary thing Microsoft is going to open this up again looks like it's going to be late 2024 early 2025 um but if you already have a tenant you're good to go if you don't have a tenant worst case $6 a month you can get the Business Essentials tenant so for for um $6 a month times 12 months for the 12mon engagement you're going to spend $72 a year for uh building teams apps that's not a big ask I mean considering all the other tooling is free it's not a big deal okay now if you liked all of this stuff if you found all of this interesting and you want to learn more I'd love to take a minute just tell you how I can help you learn more about this stuff what I have is this thing called a Microsoft teams appd Dev accelerator it's a cohort-based course and the next one starts next Wednesday on September the 18th it's a cohort based course that helps you learn Microsoft teams app development faster and to be the Irreplaceable expert delivering more to your company and your customers I've done this now three with three previous cohorts I've got another one coming up as I said uh next week um this will be my fourth cohort and of all the students that been through it over 70% of my students are leaving just glowing testimonials like Adam here Adam came uh to the last cohort or the two corts ago I think uh and uh he came because he was primarily had experience in the in power apps but their firm wanted to have more experience around Microsoft 365 apps and so he came to learn learn more about what we could build uh with Microsoft teams app so when a customer said I need a power app they could have somebody at the table that was like I think this might be better as a teams app as a better option there uh to have more flexibility in what they wanted to build or if it was more of a line of business app and performance was more of a concern and governance around the app now this program there's no fluff there's no BS there's no basic stuff here this is I hold nothing back with this I take everything that I've known about Microsoft teams app development and I've packed it into this course but I've delivered it in a very different way so what kinds of things are you going to learn well basically everything that we just covered in in our session today in our webinar today I show you how to build all of this stuff but I do it in a different way but this isn't just an exhaustive list because as you'll see in just a minute this isn't this program is is a multi-week program and So based on the attendees that register for the cohort I can tailor the content based on what everybody wants and sometimes we cover even additional stuff that isn't even part of the agenda uh and if we run out of time I just use one of our office hour sessions for that so let me talk a little bit more about how the structure set up here but first unlike other courses that you sit through other self-paced courses you're not going to learn passively you're going to learn by creating real world projects and you're going to learn real world debugging and troubleshooting with me I see like 30 to 40% of my students have firstr run experience uh problems and debugging issues and getting their environment stood up I walk through all of the things that they're having trouble with and they see how to debug their experience and how to debug their environment to get things up and running to address the LI limitations or the um some of the oversights that we have in the teams toolkit you're also because this is a cohort SP based class you're also going to network build friendships and Partnerships with other developers I've seen some of my previous students they keep interacting with each other well after the class uh and have and and even hiring each other uh for different jobs for those for those the ones that are independent but you probably have some questions about this so before you ask your questions let me go ahead and answer some of those common ones that I end up seeing uh from my students here so this program how is it different from other styles of learning like self-paced learning well with self-paced learning classes you don't get a chance to sit there and interact with the with the uh the instructor of the class necessarily well with this with this model you do get to do that you do get to interact with the instructor uh in a live experience and asynchronously and I'll get to that in just a bit you also get live interaction with your peers you don't normally get to do that in a self-paced course maybe the instructor isn't The all- Knowing one you want opinions from other people you get to do this in a coort style class you also get to up get to up the speed on a curated uh path and on a set schedule whereas if you do self-paced you're the one that's got to hold yourself accountable there's no schedule on when you have to take the class you buy it you don't end up taking the whole thing we saw a lot of people in the self-paced course business uh including myself where you saw a lot of people buying courses around the co time and nobody was finishing them or very few people were finishing them now there's another style of learning the in-person workshop or the class we've all done it we've sat in a workshop at a conference or we've sat in a 5-day class inperson class well unlike those there's no travel required for this it's all virtual the class the accelerator is all done on Microsoft teams and because we don't meet every single day for the whole day there's no mental fatigue there's no burnout with the Extended Learning that you have and instead you're going to show up fresh we're only going to spend two hours a day twice a day twice a week uh to learn learn and to have conversations so you all have conver you have you show up for each one of the sessions nice and fresh in addition you don't uh compromise on the billing utilization that you have in your organization we're all Consultants sometimes we're billable Consultants or internal Consultants or we're independent Consultants billing rates and utilization rates they're important you go to a class for 5 days you're non-billable even worse when a client calls you get to step out of class and now you miss the reason you're in training that stinks right well with this that's not the case at most I say you're only going to spend 15 to 20% of your time a week so you're still going to be 75 to 80% potentially billable for that entire time you also don't have to get be pressured to get all of your questions answered in a short fixed amount of time and then finally for the entire duration of the program even when we're not meeting live you have access to me and your peers for asynchronous coaching that means you can ask me anything I will get back to you within 24 to 48 hours now let me talk about some of these different experiences that some of my students have had uh that you you might find interesting let me talk first about the delivery format this program is an 8-week virtual program so again we meet twice a week for two hours on Wednesdays from 11:00 a.m. to 1: p.m eastern time in the United States so that's a New York time zone um what that is we we do I teach you something so you learn what's possible right we learn about tabs I show you some live demos of of applications that I've built we don't build them live but what we end up doing is is that the second that that session is over you get access to a bunch of self-paced demos and what those videos do is they show you me creating the exact same app that you saw a few minutes ago from the live demo you see me building it from scratch from file new project all the way up to F5 let's see this guy running so what I encourage people to do follow along with the self-paced video and build your own app and if you have problems ask questions or show up the next Monday for office hours same time 11:00 a.m. to 1: p.m and ask your question all your questions will get answered and if you don't want to wait then post your question in the dedicated teams group that we set up for um everyone in this one cohort to be able to ask questions and I promise that I will get back to you within 24 to 48 hours but not only that I mentioned Ellie here uh Ellie from Norway who joined my first cohort about this time last year Ellie had uh their organization had bought another company and they were migrating an app over to a teams app and what they were doing she was having some architectural questions on how would we approach this how we approach that and she constantly throughout the entire course she'd ask questions about just trying to you know throw stuff against the wall and just saying does anybody have an opinion here not only me but we had three other students that were jumping in and offering their thoughts as well on how they would integrate and build out the app as you can see she absolutely loved the experience of everyone learning together um about what they could end up what we can end up doing furthermore I say it's an Extended Learning Experience so you get asynchronous coaching and engagement not only with me your instructor but also your peers one of my uh uh students from my most recent cohort Yano Duncan from uh Utah um he love the fact that he could ask questions and get answers like right away and still he still ask questions uh in my community as well and gets answers to those as well um this was great because a lot of times Not only was was I just giving the answers and coning jono's questions and other people's questions but other people were jumping in as well and we got some differing opinions that showed up which was great because you could evaluate like which one makes more sense in my scenario you also get to learn at your own pace so here Derek cash Peterson from Iceland uh was uh shared his experience when he was in the most recent cohort in cohort 3 um this was all uh self-paced um he loved the self-paced recorded options for this he had some conflicts on the schedule sometimes so all those live sessions they were recorded they're po posted to your course Library so you have access to them to catch up within about an hour or two of finishing the session um he absolutely loved the fact that he could jump in a little bit later so he thought it was well worth his time not only in the time commitment but in the cost as well then another one another one of my students Stefan asked well kind is this for me he's primarily a Power Platform developer um but what he did he joined the group to be able to learn what was possible with teams and said at the very end it was definitely worth every minute of his time because because he absolutely loved the fact that he could learn how to build teams apps he didn't you know some people don't have uh typescript experience or JavaScript experience it's okay because the videos that I provide go step by step by step on what you're going to end up uh creating here or what you're going to end up building and if you have questions along the way just ask them you can ask a beginner typ script question or a beginner react question I'm going to answer those questions you've got my full attention not only that this isn't just for developers Kurt from St Louis and Missouri in the United States Kurt is a Solutions architect right and so what he loved about this class was that he showed up and he wanted to know what was possible building Microsoft teams apps so when he went to his customers to land deals he had more experience on what and could speak more intelligently about what was possible he still went through the homework we had a little bit of trouble with his laptop getting set up from some really old stuff that was configured but we learned a lot got him all set up within about a week or so and then we were Off to the Races and he was being very productive also you Al get uh not only just this accelerator but little bit of SEC little secret here is that I'm working on uh two or three self-paced Microsoft teams app development courses one for Bots one for message extensions and one for personal apps and tabs um among others uh if you register for this accelerator you're going to get automatic access to all of those a complimentary access to those it's part of your registration uh as part of of this accelerator and the other part too is curated learning learning so you get to streamline the Microsoft team's appdev learning experience Microsoft has got a ton of samples some of them outdated some of them current and different buckets from all over the place what you really can do here is what I do here is I bring everything together I make the docks a little bit easier to understand and I show you what real world stuff is and how you can leverage this in your applications without just the Microsoft speak uh that you get nello from um Switzerland or Italy I think he bounced between Switzerland and Italy um he uh he absolutely loved the class uh as well he was in my first cohort uh about this time last year and then finally this one's this one's a this one was a really cool story Paul from Virginia one of the things that we covered in one of our office hours was how to sell your apps and how you publish them to the uh teams app store and what that does is now the Microsoft field sales teams they can also go through and sell your app so you can earn revenue on your apps you read through Paul's entire testimonial here what Paul did he had never built a teams app before but during the during the course he built one or two apps got them published into the teams App Store and within a few months was able to pay for the entire program uh based on the revenue that he got from those apps now I just want to be clear here results May Vary on this I can't guarantee that you're going to have the same success that Paul had it was pretty darn cool of the experience that he had and I loved hearing about it but I can't tell you that everybody has that same experience okay if you're ready to start with your mic Microsoft teams app development faster and to be the Irreplaceable expert in delivering more to your customers the next step is to register for my cohort that starts next Tuesday or sorry next Wednesday on September the 18th the the cohort is capped at 25 students and that mean that I do that so I can ensure that I make sure that everybody gets the personal attention that they deserve this cohort gets my undivided attention for this entire time so I've got stuff I do on the side but I only do that after I've answered everybody's questions every day got a reminder that pops up every morning and every afternoon to make sure that I I didn't miss anybody's questions the cost of the entire cohort is $3500 per student but the first 15 students can get $1,000 off or 30% off uh if they register um so the course for uh the first 15 students is 2500 and there's still a good like 10 plus seats that are available uh for the cohort that starts next Tuesday next Wednesday keep doing that um I also have payment plans that I offer that's all through uh third parties uh afterpay and Clara are two very popular Services um they have different rules and stuff that they set up Clara uh between different geographies uh some are not supported outside the United States uh some payment plans are uh different based on where you live I think Clara does like a a um a credit check uh to make sure uh what kind of interest rate it can offer you but that's all handled through them um I do have a payment plan that I offer as well but um because it's self-hosted and stuff the rates are not as good as what afterpay and Clara do so it is an option uh so you can just contact me if you're interested in that if you're interested in enrolling you can enroll today by going to this link here or by scanning this QR code don't worry I'm going to show it to you again and I'm going to send you all of these slides and the recording when we're done the recording you'll get that next next Monday after the same webinar I'm doing on Monday the slides you'll get in about an hour or so um after we finish so you can go to that link or you can scan that QR code to register today um all the payment plan stuff and everything is there and there's also uh information there where you can read all of these testimonials that I've shared again this is limited to the first 25 students that register it only there are only 25 seats you can you can uh that you can enroll in once the 15th seat gets registered I change the price over to the non- Early Bird price of 3500 enrollment will end at the end of the day next two Tuesday eastern Time or as a little secret it's going to end when I wake up on Wednesday morning when I wake up on Wednesday morning that's when I'm going to I'm going to have to shut off the um the cart and go add everybody and invite everybody to the call uh in the meetings and give make sure that they have access to everything uh for the class that's starting on um on the 18th at 11:00 a.m. so again you can get the uh you can register for this let me get rid of that you can register for this uh using that QR code but that's not all if because you all have joined me in this webinar I'm going to give you an additional 10% off whichever one you end up registering for if you get the early bird you're going to get 10% off so save 250 bucks um if it's uh if you get the the full price one then you end up saving $350 but that 10% off that is embedded inside of that link in that QR code that I'm providing here um so that makes the course either 2250 or 30 I shouldn't do math in my head like this 3150 I think either way okay so now what I want to do is I want to run through and answer any questions that you may have so I haven't seen too many questions pop up but I will answer all of these questions if you do have questions please feel free post them in in the um in the YouTube chat and I'll be more than happy to take a minute to answer all of these questions now and any other questions you have about the uh about the accelerator if you have like a private question about the accelerator if you need like an invoice or something like that send me an email um just Andrew boas.io and I'll be happy to get back in touch with you and if we need to jump on a phone and talk through this and you need to learn more about it that way um I can happy to do that as well just keep in mind this um I've only we only have a couple days until the accelerator starts so if you do want to get in touch and we want to talk about this make sure you act act really quick because uh we did have about 70 or 80 people on the webinar today and the slides and and the offer is going to go out to everybody who registered which is about two or three times more than that plus I'm going to do this again on Monday so I'm sure I'm going to get over my my calendar is going to get overloaded in the next two and a half days um but I'm happy to go through and and to try to try to connect with you if we can okay so let me let me go through let me check and see if we've got any questions here oh and let me know what you thought about this in the chat was this useful to you did you enjoy it did you learn something I know we didn't I didn't show you working apps here but that wasn't the point the point for me to go going to do this was primarily to show you what's possible and explain what's possible in creating teams apps and then we can then if you say like okay I'm interested in learning more that's where we dive in on the code and we start looking at more stuff like that when we have more time but with only an hour for our webinar I didn't want to go you know try and rush through it too too fast um and then not have any time to go through and to cover um uh to cut answer any questions or show you everything that you could end up doing so okay so let's we run through this real quick so we see so who joined here um Lewis could good to see you Lewis Allan uh already talked to kite code uh oh that was Lewis a different Lewis another Lewis for Orlando uh Andreas from Spain I recognize your name Andreas uh ravie good to see you Robi no wait that's a different Ravi that I know oh I know lots of Robie so good to see you Robbie Steve Smith I know like five Steve Smiths too the Steve Smith from the UK you know I actually know like three Steve Smith from UK awesome Aron good to see you again uh let's see San Diego Vestal some ordinary user from Michigan Mike from Michigan uh let's see uh oh I think I know who that Mike is Mike Z uh let's see uh Kenny from Nigeria thanks for joining us Leah from Montana welcome Leah Ravi from India I recognize I recognize another Ravi Rick I recognize Rick from Tennessee seesi good to see you seesi from Australia my goodness man midle of the night thanks for joining us uh let's see uh diadra okay we talk to diadra Andreas tore good to see you John from Philadelphia awesome uh let's see Sabi from Pakistan welcome all right so all right let's see let me go through and answer some questions here so I have one from admin admin interesting name let me guess please tell me you have Global admin on your tenant your question was can we create teams app using Lang chain or hugging face that reads back internally created server build documentation or code reviews for in-house employees do you have any examples okay do I have any examples off hand no are there examples out there I'm sure there are but can I do do this absolutely you can so the teams AI Library if that's what you're asking about the teams AI library is designed to be uh Lang uh llm modular so by out of the box it works with the open AI API and the Azure open AI uh API if there are other models that are available to us that we can can take advantage of through either one of those or any model that's available to us through those you could definitely take advantage of um hugging face and um L and and also being able to take advantage of Lang chain with hugging face the teams AI library is not designed to work with that but there's nothing stopping you from writing your own app that does that be it a web service that's going to that's going to do that uh for like a bot or a message extension or if you're doing it from a tab experience the one thing that is cool about this is that the team's AI Library um it is completely open source so you can see how Microsoft has implemented the teams library and how you can take uh the code from there as inspiration if you couldn't use the teams ey library to connect to hugging face um and um uh and using uh Lang chain uh to be able to do this um you could see how they did it and then you could mimic the same thing in your own code so could you do it absolutely how much work is it going to be it kind of really depends on what you're trying to do here but you could absolutely do this there's nothing blocking you from doing a good way to say it uh another question here from some ordinary user um oh you said uh thank you webinar for any wondering it's worth it oh thank you very much ordinary user I think that's that might be Mike uh so I appreciate what you said here Mike said I'm assuming that's Mike uh I said uh for anyone wondering uh if it's worth it I can say AC style course where you get to know ask help your classmates is invaluable so the way that I teach is great so I appreciate I'm not entirely sure who it is I'm just going to say for some ordinator user I appreciate you saying that in front of everybody uh John coats you'd be interested to to see a perceived move from SharePoint online SharePoint framework to teams so that's interesting so I'm I'm a SharePoint framework guy right I've done it I've been working with the SharePoint framework before anybody else found out about it outside of of uh Microsoft um I saw the original specs back in 2015 or 2016 um before they built it it's the whole reason I came back to SharePoint I left SharePoint in 2013 started doing some work with Google started doing some some work with um uh angular and and uh and got rid of all my like Microsoft stack and just wanted to change up my my uh my career um doing stuff with node and when I saw the SharePoint framework was coming I was like this is going to be like pulling the rug out from SharePoint developers so that's why I in 2017 why I launched my SharePoint framework course was because I saw an opportunity anyway perceive move from SharePoint online SharePoint framework to teams I today I find that I'm defaulting more to building apps for teams than I am to defaulting with a SharePoint framework and the reason why is because I like to have more control over my Tex stack over my build tool chain and how my apps are implemented one of the things I didn't mention in here is that or during our webinar is that one of the things that you can do is you can create your teams app as a um you can create your teams app uh as a um what um uh your tab like the your tab application and if you do it as like a as a configurable tab as a channel app um there's a property where you can say that this can work in SharePoint and the same way a SharePoint framework web part can load in teams a teams tab can be surfaced inside of SharePoint as a um uh as a tab as well so basically it just gets implemented inside of an iframe um so that's how you can like Leverage the same investments in both places I do want to put a cave on on that with the with the deprecation and the pending retirement of isolated web Parts Microsoft hasn't been clear about this but I'm curious to see if we have a um if we're going to lose iframes in uh pages with multiple web Parts on them and if so that's how this is implemented uh because the tab is loaded as an iframe instead of a div um on a on a SharePoint online page that points to our application that lives somewhere else that implements the tab but with that being said uh I do see there I have gone through and I have ported a lot of my stuff over from um uh SharePoint online over to uh teams apps um I just saw your follow-up question oh no I saw a different question there I'll come back to your question just a minute uh kode um let's see here so I I that hope that kind of helps a little bit John I mean that the story is definitely good but if you have more like context there I'm happy to answer that uh sayi thanks for the comments kamesh thank you very much for the comments as well um as a consultant uh Kai code says as a consultant the most difficult thing for me at least has been to bypass it security concerns let's not say bypass let's say like address them um there there is some kind of documentation where we can say hey this is the place you need to go for like teams app development I don't I don't know if I can just say like this is it the thing is I don't think Microsoft does a good job of explaining this stuff that's why I've created this accelerator that's why I'm working on this team that's I taught teams app Dev for Microsoft off for 9 months they hired me to teach a bunch of Enterprise customers and what I found the way that they wanted me to teach it was not it was not resonating so when I taught it more as you just build web apps and you make teams aware of these web apps with these integration points period full stop it's done we saw much better success much improved success from the students in those courses and then Microsoft stopped the program because they said we weren't seeing the progress that they were hoping for well I mean they gave up too quick but we saw of the one when I started teaching it my way compared to the way they asked me to teach it they our our success metrics shot up by four time uh 400% four times 400% whatever um we saw four times the number of success our success metrics were how many people after the class were deploying stuff to their team store inside their own tenants and they weren't um those metrics went up four times and we changed how we were teaching it so I think more it's when you talk about it security the and this I saw another comment from someone earlier in the webinar when they said that they can't they stopped doing it because of security concerns keep in mind number one simply having an app that runs inside of teams if you're there is nothing insecure about this it is it is your web app so if you create a web app and you run a web app in your organization same thing this is just a web app that's going to run inside of teams and when I say run inside of teams teams simply just makes your users aware of how to use it it doesn't do anything special about trying to create the app that is um or hosting it for you you own the entire hosting story you can even configure the app to where it only can load from within teams using content security policies uh and that would say like hey this app will only run inside of a uh an iframe that's hosted where the parent is teams. microsoft.com and that would be that would still work in Mobile uh tablets uh desktop experience and web experience so you can you have control over how that stuff is all secured um the the um the other thing that I see people talk about is like well I just want everything to I'd rather just use Power Platform because everything runs inside of Microsoft or I just want to run SharePoint framework so that everything just runs inside of SharePoint online like I mean that's true but if you host this if you when you build out your own environment here everything is going to work everything is still not build at your own environment when you go through I saw another question come in just me up when you um when you build your teams app and you host it you have full control over how secure you're going to end up creating this if you run it if you host all your app inside of inside of Microsoft Azure that's in the same data centers where Office 365 and teams is already running and if you make it to where your te your app can only run from inside of teams I mean you're that's even more secure there um plus you can also make it to where your app is only going to respond to requests from authenticated users and you and you can do that by getting an a single sign on token from your app either in bot either as you create a bot a message extension a teams app or a tab or a meeting app you can get that single sign on token which that single sign on token you can only get that from Microsoft teams which is getting it from intra ID for the current user then you would include in fact this is what I recommend people to do and this is what the default project templates are set up for then every request you make from your client side app over to any server side component include that single sign on token that access token in the header of the request and then you validate the token saying I know that this is only part of my app that's coming from teams so then I would argue that it was even more secure because you're not even dealing with the authentication in your app you're delegating the authentication and the login and the security to teams in Microsoft 365 and Microsoft intro pretty trustworthy source so hopefully that helps a little bit K code um will you said for me it security is biggest concern is that oh the it security biggest concern is that our micr 365 is a separate tenant than our Azure and see this traffic is going over a public web is there a way to mitigate it with apim on the conditional policies you yeah you could totally do remember you have it's just a web app and okay Azure is is it is a separate tenant I guess in a sense of where it's going to run but you have control over who can access it and you can even lock it down to like an IP range uh using some of the different networking um tools that we have inside of azure to making it to where you'd only expect only allow requests uh coming from your your organization like an IP address range uh if you want to do that um and again as I mentioned earlier you can make sure that even when your stuff is running in different places you know uh like running inside of a different aure region than where your Microsoft 365 tenant is you still can uh uh only go through and support requests to your application if that single sign on token is included in all of the different requests so you can still lock those things down um I I'm not I'm not trying to say that what the your it Security Group is their concerns are invalid it's more that um I think that there are like I think it I think there are things that can always be addressed and a lot of the times that I have this this conversation with people they don't realize what the implications are when you say you want to build a Team Zap let me put it to you this way and I'm going to be a little Cy about how I say this because I can't disclose who my customer was uh for well I can't Dis Let's just say it's somebody in the intelligence Community or sorry in the defense community in the United States uh a very very large defense contractor that builds very big things for the United States military so like10 billion market cap um they were concerned as well they're in GCC high right which is the uh the Azure uh Cloud for the government uh with the high security uh setup on it same thing with their Microsoft 365 and Azure resources as well they had the same concern we just talked about it for about a day and explaining how everything worked and they're like well so we have all those same certifications we the the Azure the GCC High has all the certifications that we need that 365 already has that we already trust so we can have our stuff run there then we're good I'm like yeah you totally could there's nothing stopping you from doing that right it's just a web app it's just a web app you can lock it down as much as you like so but if you want to use like API management if you want to go through and use conditional policies you can do that too you have full control over all of that stuff um because everything is based on intra ID security and you have all the same networking tools and capabilities that we have uh inside of azure to where you can lock things down and make sure they're even even as secure Now cards on the table I don't go into that amount of depth in my course because I focus primarily on what you can build with teams that's more of like an Azure architecture type thing we can talk through it but I don't that's not the demos and stuff that I try and I show on here because this is that gets into like the slippery slope of where the scope is on what we're going to end up covering uh okay so uh kode said do you know why they deprecated the the Microsoft 365 Dev certifications yes um I'm gonna be careful uh okay let me tell you why they did it and then I'll give you my opinion how's that so I'm going to delineate between the two things first of all why did they cancel them they didn't see people taking the certification exam uh at the level that they felt that they needed to see uh in order to validate or in order to validate the expense of maintaining the program that's it my opinion I was heavily involved in this right so there are three separate groups that are involved in the certification process there is the group there I was part of the group that helped Define what is a certification right what is a what is a Microsoft 365 certified developer what does that mean the way the process works is that a bunch of people get in a room some people from the engineering team some people from the product group and some people from the community I was one of the people from the community um there were about 30ish people that were involved in this maybe 50 and we come up we came up with this universe of everything that you should know being a Microsoft 365 developer and if you knew 70% of it then you would be considered a certified developer okay that's how it works so we have this giant Excel sheet that had all this big list of all these things you had to know that spreadsheet is given to three different groups it's given to people who write questions it's given to people who write a instructor like Leed uh classroom based course that was a Microsoft official curriculum and a bunch of self-paced content that they publish on learn. microsoft.com Microsoft uh I was not involved in the questions because those people are firewalled off from everybody else so there's no like cheating and stuff like that with the questions they don't get out I was asked to do the the build the instructor leg course but they was I was only given three weeks to do it before ignite 2018 I think and I was like there's no way it's impossible you can't I can't build this in three weeks the class is going to be three weeks long there's no way I'm going to do this so I declined that one but they did hire me to create all the self-paced content um that's why I had that certification uh uh exam prep or guide uh course that I sold and but I didn't teach you anything in it because say I had already created all the content that Microsoft gave away for free so I was like I can't charge you the same thing that's available for free so instead I'm just going to go show you where to go look so that's why they C so they I gave you the reason why they canceled it my two cents what was the problem with their methodology um they were trying to test people on way too much stuff and telling them that it only took 5 days to get trained up to learn everything so what we saw was the reason they created the certification was because customers were going to Microsoft and saying what is a Microsoft 365 Dev we need a certification that we can look at a resume and say this person is a certified Microsoft 365 developer Microsoft created the certification they then watered it down to where people who got the certification it was easy to study for it in a few days and get the certification but the certification was not an accurate representation of what people knew so customers stopped using it as a way to evaluate people and their resumés and therefore people stopped getting the certification because it didn't mean anything and then they stopped buying it so Microsoft effectively created this Echo chamber in my opinion they created this Echo chamber that was not really valid plus the questions a lot of the questions got out of date really really fast and and they were not keeping things current so it just got to be even more of a laughing stock of like why would you even go through this whole certification uh and why would you take this class so they finally got through and they said we're just going to get rid of it and we're going to replace it with something else and then they ultimately they never did um that's that is my two cents feel free to dismiss that okay I I gave you the reason why they said they they didn't do it that's the real reason because they weren't seeing people signing up for it and they weren't people were not taking the exam and becoming certified um at the level that they wanted to see people do it to justify it the why is my opinion on why it was and that's from my involvement from the very beginning to the very end of helping implement the program and giving my feedback and I watched it when they want they like for example you're so let me get this straight they wanted you to know Microsoft intra development Microsoft graph Office addins Microsoft teams app development and SharePoint framework they wanted you to know all of those things and they expected you to be able to go through a 5-day in-person classroom class to learn all of that those five workloads in one day you're supposed to be an expert at SharePoint framework in one day you're supposed to be an expert at office ad and development in one day you're supposed to be an expert of Microsoft graph that's impossible absolutely impossible especially if you have Labs my quote for the I was like you need a class that's going to be about 3 weeks long worst case maybe 12 days and they're like there's no chance you have 5 days you have you have five days I'm like I'm not going to build it I'm not going to build it number one because the course I can't build a course that fast number two number two is um I I could deliver it but it's not going to be good and it's not going to do it I'm not going to put my name with something like that so I thought that that right there showed me that I was like this isn't going to work this this whole program they're not going to be able they're not going to satisfy the customer request so I mean when you look at the numbers sure I mean I get it it makes sense why they cut it but to me they the their fundamental premise of why they created and how they implemented it was flawed so it's unfortunate uh let's see Steve thanks for the session great introduction the possible what's possible for teams app Dev thank you very much Steve I appreciate that uh John um you agree storytelling for that security use case internet int tenant can be difficult when non M365 expert yep agreed there uh K that was uh you were one of the people that held the certification me too hope you get renewed too hopefully so I hope that helped that answer your question okay I don't have any other questions uh that I see here that I've missed if one of you has a question please feel free to post it uh in the chat here I'd be more than happy to go through and address it but um if not I'm GNA turn everybody loose uh on this I don't want to keep you just to keep you okay again I'd love to have some of you join me for my accelerator program that starts next Wednesday um feel for please you know take a minute go look at the testimonials that are on the site for my students um like I said over 70 people uh that have been through the the accelerator program um have left me some really positive testimonials um more than more than happy to talk to you too about it if you have any questions about it um but it's a great experience I personally as someone who used to teach uh those in-person classes for 5 days in a classroom experience I love this approach it's not exhausting to teach it's not exhausting to learn um and it allows me to have a lot more time to get to know you and to be able to tailor the content uh for each person in the class so if you ask a question on like week one or week two and like going how do we do this I'm like I wasn't going to cover that but are you interested like the last the last um one that we did we had a lot of questions about deployment early on and I'm like our deployment topic was going to take about it was going to cover about like this much what are you guys interested in and they went through all this stuff I'm like okay give me a couple weeks we'll do when we do deployment we're going to totally reformat how the content goes and so now it's totally different uh uh now it's it's totally different so with that I'm going to go ahead and let everybody go I don't want I don't want to keep your time uh uh for just for the sake of it I want to thank all of you for joining me today uh for my uh for this accelerator or for my webinar today I'd love to see you join the accelerator uh love to answer any questions on it and I really would also appreciate any comments that you can leave me about this webinar let me know what you think about it you're going to get a follow-up email in about 30ish minutes um for registering for this please hit reply let me know what you think about it I really really would appreciate it be I really would definitely appreciate it right uh so with that there'll be a spot there'll be a little form in there where you can leave in your leave your testimony in there testimonial in there and I just appreciate it so thank you very much everybody I hope you have a fantastic uh rest of your day rest of this or and the upcoming weekend and I hope to see some of you next Wednesday in my class all right bye everybody

Share your thoughts

Related Transcripts

Microsoft Teams DOWN: Microsoft confirms Office 365 and Azure issues thumbnail
Microsoft Teams DOWN: Microsoft confirms Office 365 and Azure issues

Category: News & Politics

[music] microsoft teams down microsoft confirms office 365 and azure issues microsoft teams is experiencing a major outage today with the windows 10 makers confirming issues with the hugely popular communication tool as well as problems with office 365 and azure services.microsoft teams is experiencing... Read more

Master Microsoft Teams for effective Project Management thumbnail
Master Microsoft Teams for effective Project Management

Category: Science & Technology

Introduction if you need somewhere to store all your files and correspondence in a project microsoft teams is a great place to do that and in this video i'm going to be showing you how to create an amazing project workspace that you can bring your colleagues into that has the ability to track and manage... Read more

How To Use Microsoft Teams Intelligent Meeting Recap thumbnail
How To Use Microsoft Teams Intelligent Meeting Recap

Category: Science & Technology

So in this video we're going to take a look at how to use microsoft teams intelligent meeting recap so let's get straight into it hi i'm gavin jones founder and director at me time limited where we help people save time at work to do more of the things they love i have lots of well-known global brands... Read more

How to Use Microsoft Teams for Beginners Tutorial thumbnail
How to Use Microsoft Teams for Beginners Tutorial

Category: Science & Technology

What is microsoft teams? [music] simon says subscribe and click on the bell icon to receive [music] notifications we've made the accompanying exercise files for this tutorial available for free just click the link below in the video details to get these microsoft teams is a collaboration platform developed... Read more

LIVE: Microsoft Global Outage, Airline Disruptions Worldwide, 911 Down In Several US States thumbnail
LIVE: Microsoft Global Outage, Airline Disruptions Worldwide, 911 Down In Several US States

Category: News & Politics

Sabotage angle in all of this as the locomotive pilot says that he heard a big sound and just before the derailment of the train and uh seeming to suggest there was a blast of some sorts and that's why the railways is now going to be investigating a sabotage angle fair amount of politics as well because... Read more

Decide Wisely: Private Channel vs. Team  #microsoftteams thumbnail
Decide Wisely: Private Channel vs. Team #microsoftteams

Category: Science & Technology

Introduction should you have a private team or a private  channel this is a question i get asked a lot so i   want to share the answers with you now my example  here shows a private team that's called health and   safety that has a number of channels included and  i also have an option of well maybe... Read more

Microsoft Outage - Bug or Cyber Attack ? Bank server hacked, Rs.16 Cr Stolen From Bank thumbnail
Microsoft Outage - Bug or Cyber Attack ? Bank server hacked, Rs.16 Cr Stolen From Bank

Category: Education

दोस्तों amazon-in कंपनियां हमारे जीवन में कितना प्रभाव रखती हैं इसका आकलन तो आज आपको हो ही गया होगा जी हां आज मैं बात करने जा रहा हूं आज का बहुचर्चित टॉपिक जो कि माइक्रोसॉफ्ट आउटरेजेस है तम देशों में विश्व के बड़े-बड़े देशों में इस समय माइक्रोसॉफ्ट आउटरेज को जो है महसूस किया जा रहा है डिस्कस किया जा रहा है लोगों के काम बंद पड़े हैं इमरजेंसी सेवाएं बंद पड़ी हैं और तमाम तरह की दिक्कतों का लोगों को सामना करना पड़ रहा है बहुत सारे लोग जो हैं वो माइक्रोसॉफ्ट... Read more

Microsoft Global Outage: Crowd Strike Down, Users Logged Out | Breaking News | Times Now thumbnail
Microsoft Global Outage: Crowd Strike Down, Users Logged Out | Breaking News | Times Now

Category: News & Politics

Well with that there is more breaking news which is coming in regarding the microsoft global outrage uh outage which has happened the blue screen of death errors window is now coming out and the entire system is currently trying to restart we are still awaiting for more details to appear as to what... Read more

What happened with the Microsoft 365 that caused Outage? thumbnail
What happened with the Microsoft 365 that caused Outage?

Category: News & Politics

Hey tech enthusiasts so you woke up today ready to tackle your to-do list but oh no microsoft 365 decided to take a little nap that's right microsoft 365 is down and it's causing chaos everywhere picture this you're trying to join that crucial teams meeting but instead you're greeted by the dreaded... Read more

#Microsoft में दिक्कत का मिल गया सॉल्यूशन#AirlinesServer #MicrosoftServer #news #shorts #indianarmy thumbnail
#Microsoft में दिक्कत का मिल गया सॉल्यूशन#AirlinesServer #MicrosoftServer #news #shorts #indianarmy

Category: News & Politics

माइक्रोसॉफ्ट की सर्विसेस आउटेज की वजह से यूजर्स कई शिकायतें कर रहे हैं कुछ लोगों के सिस्टम खुद से बंद हो जा रहे हैं तो वहीं कई यूजर्स को ब्लू स्क्रीन नजर आ रही है भारत अमेरिका समेत कई देशों में विमानों की उड़ान पर इस आउटेज का असर पड़ा है लेकिन इसे कैसे ठीक कर सकते हैं आप अगर आप भी इस दिक्कत से प्रभावित हैं तो कंपनी ने इसके रिकवर करने के स्टेप्स को पोस्ट किया है हालांकि इससे आपको सभी सर्विसेस का एक्सेस तो नहीं मिलेगा लेकिन ठीक हो चुकी सर्विसेस को इस्तेमाल... Read more

The new innovative "Notes" tab in Microsoft Teams is now supercharged by the power of OneNote thumbnail
The new innovative "Notes" tab in Microsoft Teams is now supercharged by the power of OneNote

Category: Science & Technology

G'day there everyone daniel anderson here now there is a new note powered by onenote rolling out to microsoft teams and that is the focus of today's video so remembering that we did used to have a wiki tab on new channels that were created in microsoft teams that has since been removed and has been... Read more