April 21st, 2021

Build quality Microsoft Teams apps with these best practices: Part 3 

Erin Bailie
Program Manager

We continue to share best practices for building high quality Microsoft Teams apps that will enable engaging experiences and delight users. In Part 1 and Part 2 of this series, we discussed best practices covering the multiple extensibility points, entry points and experiences within a Teams app that you should consider. Here we share some of the critical considerations that must be thought through before publishing your Teams app into our marketplace. Please note that while the public publishing of your app is relevant to ISVs and others desiring to make generally available – the performance considerations are still very relevant even for enterprise developers.  

Publishing your app in App Source allows the app to be listed in the Teams Store to over 115 million daily Teams users. Customers who deploy the app will seamlessly receive any updates you make, without requiring hands-on deployment models.  

App Listing 

Questions to ask yourself: 

  • Do the screenshots clearly convey the functionality of the app including all capabilities? 
  • Does the app description mention all the scenarios the app enables? 
  • Does the app list the correct categories in Partner Center? 
  • Does the store listing contain a video?  
  • Is there a landing page on my specific to this app? 
  • Am I planning to update my app at least every 6 months?

Prospective users review app listings in Microsoft App Source and the Teams Store when evaluating an app, and the content here can influence a decision to use an app. Ensure your description, images, and categories showcase the value of integrating your app in Teams. Add a video to clearly demonstrate Teams workflows to prospective users. Publish regular, iterative updates to your app to take advantage of the newest Teams Platform capabilities and to appear well-maintained and supported to users.  

More guidance: 

Performance and availability 

Questions to ask yourself: 

  • Do tabs load in a performant way (5 seconds or faster)? Is a skeleton UI or loading indicator shown as the page is loading?  
  • Do bots respond within 3 seconds? If the time exceeds 3 seconds, do bots show a typing indicator?  
  • Has the app had zero service outages in the past 90 days?  

Build user trust through performance and reliable apps – not only will it drive day-to-day engagement by preventing interrupted workflows, but it will influence the overall perception of your app. Showing animations like bot typing indicators or tab loading views will give users assurance that the app is working and their content will be shown soon. 

Security and compliance 

Questions to ask yourself: 

  • Have you completed publisher attestation? 
  • Have you completed Microsoft 365 Certification?  

Microsoft offers a 3-tier compliance program to provide users the confidence they need while using apps in the Microsoft 365 ecosystem. Publisher certification and attestation are simple tasks which take less than an hour and provide customers the assurance that the listed app publisher is authentic. Microsoft 365 Certification gives the highest degree of assurance to customers of the privacy, security, and compliance of the data handling of your app.   

Note that Publisher Attestation and Microsoft 365 Certification can only be completed after your app is published.  

More guidance: 

Checklist 

Use this list to check your app for our best practices guidance  * Required if the corresponding app capability is used  † Commonly-missed quality opportunities 

Scenario Checklist
Collaboration and Scenarios
  • Does the app allow 2 or more users to communicate as they complete a task in Teams?
  • Can all scenarios be completed in the Teams experience, without directing to the browser?
  • Do link targets open elements like tabs or task modules instead of opening a browser window?
Authentication 
  • Is the app enabled for SSO or silent auth?
Mobile Experience 
  • Is the app fully usable on mobile with no issues with responsiveness, usability, or mobile policies?*
Bots 
  • Does the bot provide a first-run experience (FRE) welcome message which highlights the value of the bot and its primary functions?*
  • Does the bot use the Teams tone of voice? Is the bot conversational and engaging?
Adaptive Cards 
  • Does the app make use of adaptive cards instead of plaintext chat?
  • Do the cards show a brief summary view without being overburdened with content?
Task Modules 
  • Does the app make use of task modules instead of plaintext chat?
Tabs 
  • Do tabs use Teams-styled navigation, such as breadcrumb trails or hamburger menus instead of left rails? *
  • Do tabs have fewer than three levels of navigation?
  • Do tabs use multi-window capabilities for complex editing workflows? 
  • Are Help and Settings menus available from the app header? 
  • [Channel tabs] When the tab is added to a channel, does the associated bot post to the team to provide content that is relevant to the tab that’s been added? *
  • [Personal tab] Is there an ability to share content from the personal experience to other team members?
  • [Personal tab] Does the tab show a view that’s unique for the user?
Message Extensions 
  • Does the message extension provide a 0-term query such as “last used” to encourage engagement? * †
Meeting Apps 
  • Do the meeting app tabs have role-based views for the meeting organizer and participants?
Notifications 
  • Does the app provide relevant notifications in the activity feed or via bot message when there has been activity in the app?
App Listing 
  • Do the screenshots clearly convey the functionality of the app including all capabilities? *
  • Does the app description mention all the scenarios the app enables? *
  • Does the app list the correct categories in Partner Center? *
  • Does the store listing contain a video?
  • Is there a landing page on my specific to this app?
  • Am I planning to update my app at least every 6 months?
Perf and Availability 
  • Do tabs load in a performant way (5 seconds or faster)? Is a skeleton UI or loading indicator shown as the page is loading?
  • Do bots respond within 3 seconds? If the time exceeds 3 seconds, do bots show a typing indicator?
  • Has the app had zero service outages in the past 90 days? 
Security and Compliance  
  • Have you completed publisher attestation? * † 
  • Have you completed M365 Certification? † 

Teams app submission overview 

Stage  Resource / Details  All Involved  Estimated Timeline 
Prepare for Submission  Submission Overview 

Submission Checklist 

App Developer  Varies 
Self-Assess and Self-Test  Validation Policies – review these guidelines and ensure your app adheres to them Validation Tool – use this tool to perform automated checks on your manifest file and catch issues early Tips and Tricks – details of common policy failures and examples of successful resolutions  App Developer  Varies 
Create developer account in Partner Center  Creating Partner Center Account 

Can be done concurrently with above steps. 

App Developer  1-2 weeks 
Submit your App in Partner Center  Submit your package in the Partner Center  App Developer  1-2 days 

App Submission Review 

App Submission team will validate your app to ensure it meets guidelines. App validation phases are: 

  1. Run manifest tests (hint: the team uses the same Validation Tool listed above) 
  2. Installation and First Run Experience 
  3. App Design and Value Proposition 
  4. Full run through of test notes 
  5. Functionality and usability tests 
  6. Privacy, security, legal and performance tests 
  7. Metadata tests 
  8. Mobile testing  

After each phase, App Submission team will provide list of validation issues and according policies. 

App validation may take several rounds of addressing discovered issues and resubmitting. See FAQ on next page.  

Time prediction for Submit to Publish  

  • 8 bugs : 15 business days (assuming 3 days for bug fixes) 
  • 10-20 bugs: 30 business days (assuming 3 days for bug fixes)  
App Developer, App Submission Team  3-6 weeks 
Submission Approval and Rollout  Once approved, the following steps remain before all customers will see app in Teams Store: 

  • Validation and approval (1 day) 
  • Partner upload in Partner Center (1 day) 
  • Platform engineering pipeline rollout (1-2 days) 
App Developer, App Submission Team  4 business days 

 

App Submission FAQ 

How long does publishing take?  ​ 

Publishing itself doesn’t take long – it’s just rollout of software. However, there is time between submitting and approval which is used to review your app and address any bugs or non-compliance with submission requirements. 

How long does it take to fix bugs?  ​ 

This is highly dependent on your team and the bug identified. If we assume it takes you ~3 days to respond back and fix the bugs that have been raised: ​ 

  • If your app has less than 8 bugs, it usually takes 3 iterations ==> 3 weeks ​ 
  • If your app has 10 – 20 bugs, it takes around 6 iterations ==> 6 weeks ​ 

​Again, if you can fix the bugs quicker, the time shortens. We recommend you leave 1 – 1.5 months between app submission and desired publish date, to allow time for validation and bug fixing. 

I am under a tight deadline. Can you speed up the process for me?  ​ 

Please note that most of the time estimated is for partners to fix bugs. ​Our submission team has a 24 hour SLA which means they guarantee to finish checking your app and get back to you within 24 hours. If you need more context on a bug, you can meet with them to discuss. ​ 

Our best advice is to ensure your app is high quality (i.e. meets all validation criteria) and has no bugs. To help you better self-check your app, please use the below resources.​ 

Helpful resource for app validation process ​ 

Here are some useful links to help you prepare your first app submission: ​ 

 Thank you and happy coding! 

Author

Erin Bailie
Program Manager