{"id":3903,"date":"2023-06-05T05:47:41","date_gmt":"2023-06-05T05:47:41","guid":{"rendered":"https:\/\/blog.osmosys.co\/?p=3903"},"modified":"2024-02-09T06:01:51","modified_gmt":"2024-02-09T06:01:51","slug":"microsoft-teams-bot-development-a-step-by-step-guide","status":"publish","type":"post","link":"https:\/\/osmosys.co\/uk\/microsoft-teams-bot-development-a-step-by-step-guide\/","title":{"rendered":"Microsoft Teams Bot Development: A step by step guide"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div>\n<p><a href=\"https:\/\/teams.microsoft.com\/edustart\" target=\"_blank\" rel=\"noopener\">Microsoft Teams<\/a> is a popular communication and collaboration platform that allows users to chat, share files, and hold virtual meetings. One of the key features of the platform is its ability to integrate with a wide variety of third-party apps and services, including bots.<\/p>\n\n\n\n<p>Automated programs called bots perform a variety of tasks, such as answering questions, providing information, and helping users navigate the platform. Users can utilize Microsoft Teams bots to automate repetitive tasks, streamline communication, and enhance productivity.<\/p>\n\n\n\n<p>One of the most popular use cases for bots on Microsoft Teams is as a virtual assistant. These bots can help users schedule meetings, manage tasks, and access information quickly and easily. For example, the T-Bot bot that comes pre-installed with Microsoft Teams can help users learn how to use the platform and find answers to common questions.<\/p>\n\n\n\n<p>Another popular use case for bots on Microsoft Teams is as a way to automate workflows and processes. For example, users can employ a bot to create and track support tickets automatically, or to assist them in submitting and approving expenses.<\/p>\n\n\n\n<p>Furthermore, the functionality of other apps and services integrated with Microsoft Teams can be enhanced using bots. For instance, a bot can provide real-time updates on project status or notify users of newly shared content.<\/p>\n\n\n\n<p>Developing a bot for Microsoft Teams is a relatively straightforward process, achievable through the utilization of the Microsoft Bot Framework. This framework offers a range of tools and services that facilitate the construction, testing, and deployment of bots on the platform.<\/p>\n\n\n\n<p>In conclusion, Microsoft Teams bots are a powerful tool for automating tasks, streamlining communication, and improving productivity. Whether you&#8217;re looking to create a virtual assistant, automate workflows, or enhance the functionality of other apps and services, bots on Microsoft Teams can help you achieve your goals.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<p>To develop a bot for Microsoft Teams, you will need a basic understanding of programming and a working knowledge of the Microsoft Bot Framework.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Programming Skills<\/strong>: To develop a bot for Microsoft Teams, you will need a basic understanding of programming concepts such as variables, loops, and functions. Proficiency in a programming language like C# or JavaScript is essential since the Microsoft Bot Framework employs these languages for bot development.<\/li>\n\n\n\n<li>Knowledge of the <strong>Microsoft Bot Framework<\/strong>: The Microsoft Bot Framework is a comprehensive collection of tools and services specifically designed for constructing, testing, and deploying bots on the Microsoft Teams platform. Familiarity with the framework, including its components and APIs, is essential for developing a bot for Microsoft Teams.<\/li>\n\n\n\n<li>Understanding of<strong> RESTful API<\/strong>: To create bots for Microsoft Teams, developers utilize the RESTful API, which serves as a communication method between various systems. Understanding the basics of RESTful API will help you to understand how the bot interacts with Microsoft Teams, and how to send and receive messages.<\/li>\n\n\n\n<li>Familiarity with <strong>Azure<\/strong>: Azure is Microsoft&#8217;s cloud computing platform and is used to deploy and run bots. Familiarity with Azure and its services such as Azure App Service and Azure Cognitive Services will be helpful while building bots.<\/li>\n\n\n\n<li>Understanding of <strong>Bot Development concepts<\/strong>: Understanding concepts such as natural language processing, conversational flow, and machine learning will help you in building bots that can understand and respond to user inputs.<\/li>\n\n\n\n<li>Familiarity with<strong> Git and CI\/CD<\/strong>: Familiarity with Git and Continuous Integration and Deployment (CI\/CD) is helpful in version controlling the code, and deploying the bot to Microsoft Teams.<\/li>\n<\/ol>\n\n\n\n<p>In summary, to develop a bot for Microsoft Teams, you will need a basic understanding of programming, knowledge of the Microsoft Bot Framework and RESTful API, familiarity with Azure, and understanding of bot development concepts and Git and CI\/CD.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Environment Setup<\/h2>\n\n\n\n<p>To set up your development environment for building a bot for Microsoft Teams, you will need to install the following:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Visual Studio Code (or your preferred development environment)<\/li>\n\n\n\n<li>Node.js: To run the bot locally, you will need to have Node.js installed on your development machine.<\/li>\n\n\n\n<li>Bot Framework Emulator: This is a desktop application that allows you to test your bot locally without having to deploy it to Microsoft Teams.<\/li>\n\n\n\n<li>Azure Functions Core Tools: These tools allow you to create, test and debug Azure Functions locally.<\/li>\n\n\n\n<li>Microsoft Teams App Studio: This tool allows you to create and manage apps for Microsoft Teams, including bots.<\/li>\n\n\n\n<li>Git: Git is a version control system that lets you keep track of code changes and collaborate with other developers.<\/li>\n\n\n\n<li>ngrok: Ngrok is a tool that creates a secure public URL for your local webhook endpoints, which allows you to test your bot in Microsoft Teams.<\/li>\n<\/ol>\n\n\n\n<p>Once you have installed all the above, you will also need to set up an Azure account, create a new Azure Function and configure it to work with the bot.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1251\" height=\"375\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/toolkit-2.png\" alt=\"\" class=\"wp-image-235064 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/toolkit-2.png 1251w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/toolkit-2-980x294.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/toolkit-2-480x144.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1251px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1251px; --smush-placeholder-aspect-ratio: 1251\/375;\" \/><\/figure>\n\n\n\n<p><strong>Teams Toolkit Extension<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"942\" height=\"403\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/Azure-2.png\" alt=\"\" class=\"wp-image-235065 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/Azure-2.png 942w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/Azure-2-480x205.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 942px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 942px; --smush-placeholder-aspect-ratio: 942\/403;\" \/><\/figure>\n\n\n\n<p><strong><strong>Azure Account Extension<\/strong><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"948\" height=\"329\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/Error-lens-2.png\" alt=\"\" class=\"wp-image-235066 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/Error-lens-2.png 948w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/Error-lens-2-480x167.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 948px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 948px; --smush-placeholder-aspect-ratio: 948\/329;\" \/><\/figure>\n\n\n\n<p><strong><strong><strong>Error Lens Extension<\/strong><\/strong><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1033\" height=\"385\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/gitlens-2.png\" alt=\"\" class=\"wp-image-235067 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/gitlens-2.png 1033w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/gitlens-2-980x365.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/gitlens-2-480x179.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1033px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1033px; --smush-placeholder-aspect-ratio: 1033\/385;\" \/><\/figure>\n\n\n\n<p><strong><strong><strong><strong>GitLens Extension<\/strong><\/strong><\/strong><\/strong><\/p>\n\n\n\n<p>o set up the development environment for creating bots, you will need to install the following components: Visual Studio Code, Node.js, Bot Framework Emulator, Azure Functions Core Tools, Microsoft Teams App Studio, Git, and ngrok. These installations will provide the necessary tools and resources for a smooth development process.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Starting with the hello world app<\/h2>\n\n\n\n<p>Navigate to your home screen after installing all the packages or you will be having an icon for the teams tool kit on the left side of vs code. On navigating to the teams toolkit you can find the attached screen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1300\" height=\"781\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s1-1300x781.png\" alt=\"\" class=\"wp-image-235068 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s1-1300x781.png 1300w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s1-1280x599.png 1280w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s1-980x459.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s1-480x225.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1300px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1300px; --smush-placeholder-aspect-ratio: 1300\/781;\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>View of teams toolkit.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"606\" height=\"492\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s2.png\" alt=\"\" class=\"wp-image-235069 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s2.png 606w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s2-480x390.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 606px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 606px; --smush-placeholder-aspect-ratio: 606\/492;\" \/><\/figure>\n\n\n\n<p>2. Starting creation of the Application.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1010\" height=\"555\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s3.png\" alt=\"\" class=\"wp-image-235070 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s3.png 1010w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s3-980x539.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s3-480x264.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1010px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1010px; --smush-placeholder-aspect-ratio: 1010\/555;\" \/><\/figure>\n\n\n\n<p>3. Select a fresh start or use a ready-made template.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1162\" height=\"556\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s4.png\" alt=\"\" class=\"wp-image-235071 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s4.png 1162w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s4-980x469.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s4-480x230.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1162px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1162px; --smush-placeholder-aspect-ratio: 1162\/556;\" \/><\/figure>\n\n\n\n<p>4. Different options and capabilities.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1300\" height=\"867\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s5-1300x867.png\" alt=\"\" class=\"wp-image-235072 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s5-1300x867.png 1300w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s5-1280x754.png 1280w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s5-980x577.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s5-480x283.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1300px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1300px; --smush-placeholder-aspect-ratio: 1300\/867;\" \/><\/figure>\n\n\n\n<p>5. Complete tutorial can be seen on the right side (Scrollable).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1300\" height=\"867\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s6-1300x867.png\" alt=\"\" class=\"wp-image-235073 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s6-1300x867.png 1300w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s6-1280x667.png 1280w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s6-980x511.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s6-480x250.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1300px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1300px; --smush-placeholder-aspect-ratio: 1300\/867;\" \/><\/figure>\n\n\n\n<p>6. Microsoft Developers Portal. Create your account for free.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1300\" height=\"867\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s7-1300x867.png\" alt=\"\" class=\"wp-image-235074 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s7-1300x867.png 1300w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s7-1280x700.png 1280w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s7-980x536.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s7-480x263.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1300px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1300px; --smush-placeholder-aspect-ratio: 1300\/867;\" \/><\/figure>\n\n\n\n<p>7. Final step in project creation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1300\" height=\"867\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s8-1300x867.png\" alt=\"\" class=\"wp-image-235075 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s8-1300x867.png 1300w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s8-1280x700.png 1280w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s8-980x536.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s8-480x263.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1300px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1300px; --smush-placeholder-aspect-ratio: 1300\/867;\" \/><\/figure>\n\n\n\n<p>8. View after the project is created.<\/p>\n\n\n\n<p>Navigate to your home screen after installing all the packages or you will be having an icon for the teams tool kit on the left side of vs code. On navigating to the team&#8217;s toolkit you can find the attached screen. Here all the steps and clarifications will be generated to your readme file as per the latest version and instructions.<\/p>\n\n\n\n<p>On the left sidebar, you can find options for account, environment, development, and deployment. <\/p>\n\n\n\n<p>You will require a Microsoft 365 developer account and as your account with your subscription that allows you to create a boat this is a free subscription and you will get an option to create during the creation of a Microsoft 365 testing tenant.<\/p>\n\n\n\n<p>After signing in when you proceed to test your application, the team&#8217;s tool kit will automatically import your credentials and required resources from Azure and populate them in the environment file.<\/p>\n\n\n\n<p>You can explore these options based on your requirement.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Testing your Teams app<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code><code data-enlighter-language=\"bash\" class=\"EnlighterJSRAW\">npm start \n   or\nctrl + F5<\/code><\/code><\/pre>\n\n\n\n<p>This command will start the development server and launch your Teams app in a new browser window. You can test your bot and tabs feature locally by interacting with your app in the Teams web client or desktop app.<\/p>\n\n\n\n<p>To test your Teams app, you will need to install the app in a Teams environment. Follow these steps to install your app in Teams:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to the &#8220;App Studio&#8221; app in Teams and click on the &#8220;Manifest editor&#8221; tab.<\/li>\n\n\n\n<li>Click on the &#8220;Import an existing app&#8221; button and select the <code>manifest.json<\/code> file from your <code>teams-app<\/code> directory.<\/li>\n\n\n\n<li>Follow the prompts to install your app in Teams.<\/li>\n\n\n\n<li>Once your app is installed, you can test your bot and tabs features by interacting with your app in a Teams channel or chat.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1300\" height=\"867\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s10-1300x867.png\" alt=\"\" class=\"wp-image-235077 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s10-1300x867.png 1300w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s10-1280x700.png 1280w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s10-980x536.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s10-480x263.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1300px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1300px; --smush-placeholder-aspect-ratio: 1300\/867;\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1300\" height=\"867\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s11-1300x867.png\" alt=\"\" class=\"wp-image-235079 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s11-1300x867.png 1300w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s11-1280x700.png 1280w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s11-980x536.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s11-480x263.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1300px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1300px; --smush-placeholder-aspect-ratio: 1300\/867;\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1300\" height=\"867\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s12-1300x867.png\" alt=\"\" class=\"wp-image-235080 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s12-1300x867.png 1300w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s12-1280x720.png 1280w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s12-980x551.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s12-480x270.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1300px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1300px; --smush-placeholder-aspect-ratio: 1300\/867;\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1300\" height=\"867\" data-src=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s13-1300x867.png\" alt=\"\" class=\"wp-image-235081 lazyload\" data-srcset=\"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s13-1300x867.png 1300w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s13-1280x700.png 1280w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s13-980x536.png 980w, https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2024\/02\/s13-480x263.png 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1300px, 100vw\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1300px; --smush-placeholder-aspect-ratio: 1300\/867;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Deployment<\/h2>\n\n\n\n<p>The steps to deploy your Teams app with bot and tabs features:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Building your app<\/h3>\n\n\n\n<p>Before deploying your app, you will need to build it to generate the necessary files. Use the following command to build your app:<\/p>\n\n\n\n<p>This command will create a <code>dist<\/code> folder in your project directory containing the necessary files for deployment.<\/p>\n\n\n\n<p><code data-enlighter-language=\"bash\" class=\"EnlighterJSRAW\"><code>npm run build<\/code><\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Creating a new Azure resource group<\/h3>\n\n\n\n<p>To deploy your app, you must create a new Azure resource group. Follow these steps to create a new resource group:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to the Azure portal and sign in with your credentials.<\/li>\n\n\n\n<li>Click on &#8220;Resource groups&#8221; in the left-hand menu.<\/li>\n\n\n\n<li>Click on the &#8220;+ Add&#8221; button to create a new resource group.<\/li>\n\n\n\n<li>Provide a name and select a region for your resource group.<\/li>\n\n\n\n<li>Click on the &#8220;Review + Create&#8221; button to create your resource group.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Creating an Azure bot registration<\/h3>\n\n\n\n<p>To deploy your bot, you will need to create an Azure bot registration. Follow these steps to create a new bot registration:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to the Azure portal and sign in with your credentials.<\/li>\n\n\n\n<li>Click on &#8220;Bot Services&#8221; in the left-hand menu.<\/li>\n\n\n\n<li>Click on the &#8220;+ Add&#8221; button to create a new bot registration.<\/li>\n\n\n\n<li>Provide a name and select your resource group.<\/li>\n\n\n\n<li>Choose the appropriate pricing tier and location for your bot.<\/li>\n\n\n\n<li>Select &#8220;App Service plan\/Container&#8221; as the hosting option and choose a plan.<\/li>\n\n\n\n<li>Click on the &#8220;Create&#8221; button to create your bot registration.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Creating an Azure Web App<\/h3>\n\n\n\n<p>To deploy your Teams app with tabs, you will need to create an Azure Web App. Follow these steps to create a new Web App:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to the Azure portal and sign in with your credentials.<\/li>\n\n\n\n<li>Click on &#8220;App Services&#8221; in the left-hand menu.<\/li>\n\n\n\n<li>Click on the &#8220;+ Add&#8221; button to create a new Web App.<\/li>\n\n\n\n<li>Provide a name and select your resource group.<\/li>\n\n\n\n<li>Choose the appropriate runtime stack (Node.js) and version for your app.<\/li>\n\n\n\n<li>Select &#8220;Windows&#8221; as the operating system and choose a region.<\/li>\n\n\n\n<li>Click on the &#8220;Review + Create&#8221; button to create your Web App.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Deploying your app to Azure<\/h3>\n\n\n\n<p>To deploy your Teams app with bot and tabs features to Azure, follow these steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to the &#8220;Deployment Center&#8221; tab in your Web App&#8217;s settings in the Azure portal.<\/li>\n\n\n\n<li>Select &#8220;Local Git&#8221; as the deployment method and click the &#8220;Continue&#8221; button.<\/li>\n\n\n\n<li>Follow the prompts to create a new deployment user and configure your Git repository.<\/li>\n\n\n\n<li>Once you have configured your Git repository, use the following commands to push your app to Azure:<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>These are the steps that are required to create your own hello world app. From here onwards you can write your own logic to handle the messages sent by the user. You can either process and return a value or send it to the server and handle the processed communication. An AI chatbot can also be added to teams and various other associated channels like Slack, Telegram, Microsoft 365, and many more using this Bot Framework. So if you want to create one this can be a good start.<br>That&#8217;s all for this one. See you in the next one. Do reach out to <a href=\"https:\/\/in.linkedin.com\/in\/iam5k\" target=\"_blank\" rel=\"noreferrer noopener\">me<\/a> if you need any clarifications.  This blog will help you with Bot Framework v4, you may expect changes in version 5 and things may not align exactly. But it will be similar so you can try finding a way out. Thanks for your time and attention. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft Teams is a popular communication and collaboration platform that allows users to chat, share files, and hold virtual meetings. One of the key features of the platform is its ability to integrate with a wide variety of third-party apps and services, including bots. Automated programs called bots perform a variety of tasks, such as [&hellip;]<\/p>\n","protected":false},"author":25,"featured_media":235062,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_lmt_disableupdate":"","_lmt_disable":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[98,106],"tags":[99,100,101],"class_list":["post-3903","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-app-development","category-technology","tag-app-development","tag-bots","tag-microsoft-teams"],"modified_by":null,"jetpack_featured_media_url":"https:\/\/osmosys.co\/uk\/wp-content\/uploads\/sites\/6\/2023\/06\/s10-e1684249805404.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/posts\/3903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/comments?post=3903"}],"version-history":[{"count":4,"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/posts\/3903\/revisions"}],"predecessor-version":[{"id":235083,"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/posts\/3903\/revisions\/235083"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/media\/235062"}],"wp:attachment":[{"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/media?parent=3903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/categories?post=3903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/osmosys.co\/uk\/wp-json\/wp\/v2\/tags?post=3903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}