Introducing add-in commands

Today we bring you the first in a two-part series of guest blog posts from Andrew Salamatov, a Senior Program Manager with our Outlook team. You can find the second part here. Enjoy!

Back at Build and Ignite, we announced a brand new feature, that we’re very excited about – Outlook add-ins (formerly called apps for Outlook) can now place buttons on the ribbon in Outlook! This simultaneously simplifies interacting with add-ins, as well as makes their presence more visible and engaging.

A new message window in Outlook showing multiple add-in buttons on the ribbon.

In a two-part series, we wanted to share our thinking behind why we invested in commands and how they work, as well as walk through a sample add-in with a command. This is the first post in the series.

What are add-in commands?

The idea behind commands came from your feedback! Users are demanding a fast, simple way to get to the actions they need most. Meanwhile, developers have been trying to make their add-ins stand out and feel native. As we thought about the various scenarios that were being built on the Outlook add-in platform, we arrived at three guiding principles.

First, add-ins must look and feel native to each Outlook client. Mobile Outlook is very different from desktop Outlook and Yet users flow from one to the other throughout the day and expect the power of 3rd party add-ins to support them, wherever they are. On top of this, the clients differ in their UI and user interaction patterns, due to form factor limitations and use cases. The same UI entry point and experience will not work across all these clients. Instead, our platform must enable developers to integrate in a way that meets user expectation on each form factor.

Second, the platform must scale to support many add-ins. Whether a user wants to use 1 add-in or multiple, the entry points must scale. And this must be completely abstracted away from add-ins, so developers don’t have to focus on handling interoperability with other add-ins.

Third, the platform must be write once, run everywhere. It would be very expensive for developers to implement an add-in for desktop Outlook, then re-write it for and mobile. Add-ins would take years to develop and update with new functionality. Instead, the platform should provide developers with generic concepts and APIs, which may result in different UI or positioning across the different environments, but will behave the same way across all Outlook clients.

Applying these principles to scenarios where the user has to take an action on a message or appointment, it became obvious that the best experience would be to let add-ins place commands for users where users expect them. In desktop Outlook, this is of course the ribbon.

Command types

In this first release of commands, we support 3 different types:

A command which executes a function

A compose message window in Outlook with an add-in command button that executes a function, and a success message in the infobar.

This type of command is best suited for tasks which don’t require extra input beyond clicking a button. For example, "save to CRM", "create a new issue in service issue database from this email", "insert tracking pixel", "archive message", etc. It is important to communicate to the user whether or not this action was successful. This can be done via an infobar message, which is described in more detail in part 2 of the blog post.

A command which launches a task pane

The Yelp add-in in Outlook, which is an example of a command that opens a task pane.


The Evernote add-in, which is an example of a command that opens a task pane.

The task pane command is best used when the user needs to enter extra input or interact with UI. The task pane gives your app a place inside Outlook to display your own HTML/JavaScript-based UI.

A command which is a dropdown and shows a list of commands of either of the other two types

The Quick Insert command from the EmojiO sample, which is an example of a command that opens a drop-down menu.

The dropdown command is best suited for when a user needs to make a choice from a set of options. For example, "remind me if no one replies to this email in 1, 2, 3, … days", "assign classification", "archive for X days or months", "quick-order drinks, appetizers or heavy lunch for meeting". This command has an advantage over the task pane, in that the options appear natively and instantly to the user, and the user doesn’t need to wait for the task pane to load, or even move the mouse away. This should be used over a task pane anywhere, where the choice is simple and no additional input is necessary.

Now that you’ve had a taste for commands, stay tuned for our next post, which dives into how to build them!


Comments (17)

Cancel reply

  1. JVimes says:

    The docs say Commands are available for Office 2016 only. On desktop only. On Windows only. Without one-click commands, the whole new platform is a no-go for many add-ins.

    Please implement on all clients and platforms that the rest of the framework supports.

    People can vote on this feature request here:…/9295149-support-add-in-commands-on-all-platforms-and-in

  2. @JVimes: Hear you loud and clear. That's the goal, to get this into Outlook on the web,, other form factors, etc. Desktop Outlook just got it first, and we wanted to get it out there so you could start developing with the new model. As the other clients and platforms light up, your add-in will just switch over from the old to the new. Andrew goes into this a bit in the second part, which should go up later today.

  3. serge luca(MVP) says:

    Hi Jason, will it be supported in Outlook 2013 ?

  4. JVimes says:

    That's great to hear. My group is excited for the rollout 🙂

  5. Henrik Blåfield says:

    While I appreciate your goal of bringing this feature beyond the Desktop Outlook, whatever happened to Mobile First? You probably have better statistics available from Office 365 platform, but my anecdotal experience says more and more people are shifting towards using Mobile and Web clients only.

  6. Andrew Salamatov (MSFT) says:


    As Jason mentioned above, we're definitely focused on getting commands to desktop, web and mobile. These are our highest priorities and we're executing on them.

    This platform works for users of O365, and on-premises. Our user-base is very broad and spans all use cases – from mobile, to desktop and web. And all but the most basic O365 offer provide desktop client downloads. So it wouldn't be accurate to say that majority of people are shifting away from desktop clients.

    Hope that clarifies.

  7. @serge: We don't have anything to share on that yet. 🙂

  8. Folks, if you need help with, please submit feedback from that site using the "Send Feedback" link.

  9. Kat says:

    I used to send my Mom recipes.  I can copy and paste the recipe but can no longer copy and paste a picture, why is that?

  10. mohanad hattab says:

    dear sir,

    I want to know how can I recover my old emails

    its long time I didn't use my email, when I open it today I found all emails not in my email in inbox and sent all the folders are empty. please helpe to get my old emails again

  11. basim says:

    Hi…..Today I received a letter from the Outlook services say that I asked to delete my account and will do that  within 12 hours and I did not ask that from Outlook services!!.. is this letter does not supported from Outlook services?? or it's just a trick-or-what..??


  12. mjb says:

    I hate to ask a dumb question but how does one know which versions of the mailbox api (1.0,1.1,1.2,1.3) are supported on a particular host (office365, exchange 2013, etc)

  13. Chrissy Srayko says:

    ever since you changed outlook I am having trouble opening some emails. Why is this happening

  14. @mjb: Not a dumb question at all! Outlook 2013, Exchange 2013, and Office 365 all support 1.2 and earlier (assuming you have latest patches). Outlook 2016 supports 1.3 and earlier. 1.3 support should come to Office 365 and Outlook 2013 at some point.

  15. juan says:

    this is new for me, I' m studying html5 and css I think have a lot of time for understand this

  16. Amani says:

    I have to Verify my email, but the code country is wrong, for Libya should be +218 not +318

    Please fix it to be able for me to verify


  17. Frida Costa says:


    Eu gostaria de receber alertas em minha área de trabalho de meus e-mails.Mas de um determinado site. Por exemplo, eu vendo produtos em um site,e tenho que estar a todo instante entrando na conta de e-mail. E tendo alertas de determinado site,eu entro só quando recebo e-mails desse site.Seria muito mais cômodo e muito bom para mim,e creio que para muitos usuários.Obrigado!!

Skip to main content