{"id":8220,"date":"2021-11-02T08:52:01","date_gmt":"2021-11-02T15:52:01","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=8220"},"modified":"2022-05-25T16:21:50","modified_gmt":"2022-05-25T23:21:50","slug":"whats-new-for-office-add-ins-at-ignite-2021","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/whats-new-for-office-add-ins-at-ignite-2021\/","title":{"rendered":"What&#8217;s new in Office Add-ins at Ignite 2021"},"content":{"rendered":"<p>Welcome to Ignite 2021! We\u2019re excited to share the latest Office Add-ins announcements with our developer community. These new features will help you create solutions to increase productivity in today\u2019s modern hybrid environment.<\/p>\n<h2>Office JavaScript API updates<\/h2>\n<p>At Ignite 2021, we announced the general availability of Mailbox 1.11 as well as the beta release of Smart Alerts. We prepared the following video with more details.<\/p>\n<p><iframe title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/mM1JK-wmrLo\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<h3>Mailbox 1.11 is generally available for Win32 and Outlook on the web<\/h3>\n<p>We\u2019ve been sharing with our community how event-based add-ins can help you integrate your solution seamlessly into the Outlook experience. At Build 2021, we <a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/whats-new-in-office-platform-at-build-2021\/\">announced<\/a> support for the OnCompose event for mails and attachments. Now Mailbox 1.11 is rolling out to production. You can now start using the following events in your Outlook add-ins:<\/p>\n<ul>\n<li>OnRecipientsChanged<\/li>\n<li>OnAttachmentsChanged<\/li>\n<li>OnAppointmentTimeChanged<\/li>\n<li>OnAppointmentRecurrenceChanged<\/li>\n<li>OnInfoBarDismiss<\/li>\n<\/ul>\n<p><span class=\"TextRun SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW108154944 BCX0\">In addition to\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">these events<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">, we<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">\u2019<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">re also including\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">a\u00a0<\/span><\/span><a class=\"Hyperlink SCXW108154944 BCX0\" href=\"https:\/\/docs.microsoft.com\/en-us\/javascript\/api\/outlook\/office.messagecompose?view=outlook-js-preview#sessionData\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW108154944 BCX0\" data-ccp-charstyle=\"Hyperlink\">session data object<\/span><\/span><\/a><span class=\"TextRun Underlined SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW108154944 BCX0\" data-ccp-charstyle=\"Hyperlink\">\u00a0API<\/span><\/span><span class=\"TextRun SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">that\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">you can use to store<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0metadata across different event instances.\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">T<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">he<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0<\/span><\/span><a class=\"Hyperlink SCXW108154944 BCX0\" href=\"https:\/\/github.com\/OfficeDev\/PnP-OfficeAddins\/tree\/main\/Samples\/outlook-tag-external\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW108154944 BCX0\" data-ccp-charstyle=\"Hyperlink\">tag external\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\" data-ccp-charstyle=\"Hyperlink\">recipients<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\" data-ccp-charstyle=\"Hyperlink\">\u00a0sample<\/span><\/span><\/a><span class=\"TextRun SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">shows you\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">how to use the events and the\u00a0<\/span><span class=\"NormalTextRun SpellingErrorV2 SCXW108154944 BCX0\">sessionData<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0APIs.<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\"> We also have\u00a0<\/span><\/span><a class=\"Hyperlink SCXW108154944 BCX0\" href=\"https:\/\/aka.ms\/EventBasedPnP\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW108154944 BCX0\" data-ccp-charstyle=\"Hyperlink\">Patterns and Practices<\/span><\/span><\/a><span class=\"TextRun SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">that\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">you&#8217;ll find <\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">helpful<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">.\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">Finally,<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">our partners are <\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">showcasing how to use\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">these APIs\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">in their latest\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">a<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">dd-in updates. So, <\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">check out\u00a0<\/span><span class=\"NormalTextRun CommentStart SCXW108154944 BCX0\">how\u00a0<\/span><\/span><a class=\"Hyperlink SCXW108154944 BCX0\" href=\"https:\/\/www.letsignit.io\/blog\/inside\/microsoft-outlook-api-internal-communication\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW108154944 BCX0\" data-ccp-charstyle=\"Hyperlink\">LetSignIt<\/span><\/span><\/a><span class=\"TextRun SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0and\u00a0<\/span><\/span><a class=\"Hyperlink SCXW108154944 BCX0\" href=\"https:\/\/www.codetwo.com\/blog\/outlook-add-in-new-features-ignite-2021\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW108154944 BCX0\" data-ccp-charstyle=\"Hyperlink\">CodeTwo<\/span><\/span><\/a><span class=\"TextRun SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0are using\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">them\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">today<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">!\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">For\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">more details about\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">event-based<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">add-ins<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">, see<\/span><span class=\"NormalTextRun SCXW108154944 BCX0\">\u00a0<\/span><\/span><a class=\"Hyperlink SCXW108154944 BCX0\" href=\"https:\/\/aka.ms\/LearnEventBasedAddIns\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW108154944 BCX0\" data-ccp-charstyle=\"Hyperlink\">Configure your Outlook add-in for event-based activation<\/span><\/span><\/a><span class=\"TextRun SCXW108154944 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW108154944 BCX0\">.\u00a0<\/span><\/span><span class=\"EOP SCXW108154944 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p>Smart Alerts improve your customers\u2019 email experience. The Smart Alerts feature analyzes email content after the user clicks <strong>Send<\/strong> and enables you to potentially pause sending to provide recommendations or mandatory updates to the email text. The feature will hit preview by mid-November 2021, so be sure to install the latest beta and give it a try! To learn more about Smart Alerts, see <a href=\"https:\/\/aka.ms\/SmartAlertsPreview\" target=\"_blank\" rel=\"noopener\">Use Smart Alerts and the OnMessageSend event in your Outlook add-in (preview)<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/Office-addins-Ignite_Smart-Alerts.png\"><img decoding=\"async\" class=\"aligncenter wp-image-8235\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/Office-addins-Ignite_Smart-Alerts.png\" alt=\"Image of Smart Alerts OnMessageSend event in Outlook add-in\" width=\"900\" height=\"498\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/Office-addins-Ignite_Smart-Alerts.png 1330w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/Office-addins-Ignite_Smart-Alerts-300x166.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/Office-addins-Ignite_Smart-Alerts-1024x567.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/Office-addins-Ignite_Smart-Alerts-768x425.png 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<h3>Looking forward<\/h3>\n<p>There is a preview release of a new version of the Microsoft Teams SDK, from Teams apps, like tabs and message extensions, within Outlook. We\u2019re excited to light up these new capabilities along with deeper integrations with mail and calendar enabled by Outlook add-ins.<\/p>\n<p>Over the coming months, we&#8217;ll continue to bring these capabilities closer together, enabling you to build deeper and more powerful solutions across all of Microsoft 365. Evolving and enhancing add-ins is a core part of our developer offering, and the work we\u2019re announcing today is our next step toward that ensuring you have all the tools you need to fully integrate with Outlook mail and calendar<\/p>\n<h2>Excel add-ins updates<\/h2>\n<p>In addition to the announcements about new Outlook add-ins functionality, we have some news to share about Excel add-ins updates and enhancements.<\/p>\n<h3>Excel add-ins and custom data types API public preview<\/h3>\n<p>This month, we&#8217;re giving you a <a href=\"https:\/\/aka.ms\/ExcelDataTypesApi\" target=\"_blank\" rel=\"noopener\">new JavaScript API<\/a> in Excel. This new API allows developers to create their own custom data types (images, entities, formatted number values) backed by their own custom data sources. This is in addition to allowing for the creation of custom functions, which can make use of these new Excel data types. Customers will be able to create their own add-ins or extend existing ones to utilize the power of data types. This results in a more integrated and next- generation experience within Excel. Share the power of data types across your entire organization, and create add-ins or solutions that can connect data types to your own service or data.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/Office-addins-Ignite_Bloomberg.gif\"><img decoding=\"async\" class=\"aligncenter wp-image-8236\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/Office-addins-Ignite_Bloomberg.gif\" alt=\"Bloomberg example of Excel add-in and custom data type API\" width=\"1001\" height=\"563\" \/><\/a><\/p>\n<h3>Excel API 1.14 is now generally available<\/h3>\n<p>In Excel API 1.14, we\u2019re releasing several sets of APIs to support deeper-level management in Excel:<\/p>\n<ul>\n<li>Chart APIs to control appearance, formatting, and visibility of data tables on charts.<\/li>\n<li>getPrecedents() API to get all the precedent cells of a formula, giving you clear information about a formula\u2019s dependency.<\/li>\n<li>Queries APIs to get Power Query with attributes like name, refresh data, and query count.<\/li>\n<li>Worksheet protection events to track changes to the protection state of a worksheet and the source of those changes.<\/li>\n<\/ul>\n<p>Find more information about Excel API 1.14 in <a href=\"https:\/\/docs.microsoft.com\/en-us\/office\/dev\/add-ins\/reference\/requirement-sets\/excel-api-1-14-requirement-set\">What\u2019s new in Excel JS API 1.14<\/a>.<\/p>\n<h3>Excel UI enhancements<\/h3>\n<p>Excel add-ins can now define <a href=\"https:\/\/docs.microsoft.com\/en-us\/office\/dev\/add-ins\/design\/keyboard-shortcuts\">keyboard shortcuts<\/a> for key commands, allowing their users to work more efficiently. We&#8217;ve also made the ribbon more customizable and dynamic. First by enabling developers to define <a href=\"https:\/\/docs.microsoft.com\/en-us\/office\/dev\/add-ins\/design\/contextual-tabs\">contextual tabs<\/a>, which appear and disappear depending on the user&#8217;s context, as well as providing controls to programmatically <a href=\"https:\/\/docs.microsoft.com\/en-us\/office\/dev\/add-ins\/design\/disable-add-in-commands\">enable and disable<\/a> buttons.<\/p>\n<h2>Other Office JS API updates<\/h2>\n<h3>Word add-in updates<\/h3>\n<p>A number of new <a href=\"https:\/\/docs.microsoft.com\/en-us\/office\/dev\/add-ins\/reference\/requirement-sets\/word-preview-apis#web-only-api-list\">Word APIs are in preview<\/a> in Word on the web, adding support for comments, footnotes, endnotes, and bookmarks. These new APIs streamline important scenarios within Word, with much better performance than is available when accessing the same features using the OOXML APIs.<\/p>\n<h3>PowerPoint add-in updates<\/h3>\n<p>We recently shipped <a href=\"https:\/\/docs.microsoft.com\/en-us\/office\/dev\/add-ins\/reference\/requirement-sets\/powerpoint-api-1-2-requirement-set\">PowerPoint API 1.2,<\/a> with support for inserting and deleting slides, and started a <a href=\"https:\/\/docs.microsoft.com\/en-us\/office\/dev\/add-ins\/reference\/requirement-sets\/powerpoint-preview-apis\">preview of new APIs<\/a> for shapes and slide layout. We also added the ability to add <a href=\"https:\/\/docs.microsoft.com\/en-us\/office\/dev\/add-ins\/design\/built-in-button-integration\">built-in Office commands to your custom ribbons<\/a> in PowerPoint. For more information, see the <a href=\"https:\/\/developer.microsoft.com\/powerpoint\">PowerPoint Dev Center<\/a>.<\/p>\n<h3>Office Add-in tools updates<\/h3>\n<h5>Semantic code assistant and unit testing for Office Add-ins<\/h5>\n<p>We\u2019re excited to release enhancements for Office Add-ins developers that make developing and testing Office Add-ins easier.\u00a0 First, a new linter extension for Visual Studio Code that provides suggestions and corrections for developers as they create Office Add-ins, to help avoid issues that can s affect performance or other common errors. For information about how to install and use the linter, see <a href=\"https:\/\/docs.microsoft.com\/en-us\/office\/dev\/add-ins\/overview\/set-up-your-dev-environment\">Set up your development environment<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/office-add-ins-ignite-code.png\"><img decoding=\"async\" class=\"aligncenter wp-image-8328 size-large\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/office-add-ins-ignite-code-1024x235.png\" alt=\"Image of Office Add-ins ignite code\" width=\"640\" height=\"147\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/office-add-ins-ignite-code-1024x235.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/office-add-ins-ignite-code-300x69.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/office-add-ins-ignite-code-768x176.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2021\/11\/office-add-ins-ignite-code.png 1430w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Also, unit testing Office Add-ins is now easier with our new mocking package. This package enables mocking the objects that are used in the add-in without requiring you to fully mock all the properties, as well as removing the requirements to preserve function order for functions such as load or sync in the Office,js API. It works with major unit testing frameworks such as Jest and Mocha and is <a href=\"https:\/\/www.npmjs.com\/package\/office-addin-mock\">available now via NPM<\/a>.<\/p>\n<h3>Announcing Microsoft Access Dataverse Connector with Power Platform<\/h3>\n<p>Join the public beta and learn how to unlock new capabilities in Access. Keep the value and ease of use of Access together with the value of cloud-based storage. Learn how to take your Access data mobile and connect Access with Dataverse for Microsoft Teams. For more information, see the updated <a href=\"https:\/\/developer.microsoft.com\/access\">Access developer portal<\/a>.<\/p>\n<h4>Resources<\/h4>\n<p><a href=\"https:\/\/developer.microsoft.com\/office\">Office Developer Center<\/a><\/p>\n<p>Happy coding!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to Ignite 2021! We\u2019re excited to share the latest Office Add-ins announcements with our developer community. These new features will help you create solutions to increase productivity in today\u2019s modern hybrid environment. <\/p>\n","protected":false},"author":69076,"featured_media":8312,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[11,20],"tags":[125,18,12,46,47],"class_list":["post-8220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-office-add-ins","category-power-platform","tag-dataverse","tag-excel","tag-outlook","tag-powerpoint","tag-word"],"acf":[],"blog_post_summary":"<p>Welcome to Ignite 2021! We\u2019re excited to share the latest Office Add-ins announcements with our developer community. These new features will help you create solutions to increase productivity in today\u2019s modern hybrid environment. <\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/8220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69076"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=8220"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/8220\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/8312"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=8220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=8220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=8220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}