Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The extensions
property specifies Outlook Add-ins within an app manifest and simplifies the distribution and acquisition across the Microsoft 365 ecosystem. Each app supports only one extension. For more information, see Office Add-ins manifest for Microsoft 365.
Properties that reference this object type:
Syntax
{
"requirements": {
"capabilities": [
{
capabilities object
}
],
"scopes": [
"mail | workbook | document | presentation"
],
"formFactors": [
"desktop | mobile"
]
},
"runtimes": [
{
"requirements": {
requirementsExtensionElement object
},
"id": "{string}",
"type": "general",
"code": {
extensionRuntimeCode object
},
"lifetime": "short | long",
"actions": [
{
extensionRuntimesActionsItem object
}
],
"customFunctions": {
extensionCustomFunctions object
}
}
],
"ribbons": [
{
"requirements": {
requirementsExtensionElement object
},
"contexts": [
"mailRead | mailCompose | meetingDetailsOrganizer | meetingDetailsAttendee | onlineMeetingDetailsOrganizer | logEventMeetingDetailsAttendee | default | spamReportingOverride"
],
"tabs": [
{
extensionRibbonsArrayTabsItem object
}
],
"fixedControls": [
{
extensionRibbonsArrayFixedControlItem object
}
],
"spamPreProcessingDialog": {
extensionRibbonsSpamPreProcessingDialog object
}
}
],
"autoRunEvents": [
{
"requirements": {
requirementsExtensionElement object
},
"events": [
{
events object
}
]
}
],
"alternates": [
{
"requirements": {
requirementsExtensionElement object
},
"prefer": {
prefer object
},
"hide": {
hide object
},
"alternateIcons": {
alternateIcons object
},
"xllCustomFunctions": {
extensionXllCustomFunctions object
}
}
],
"audienceClaimUrl": "{string}",
"appDeeplinks": [
{
"requirements": {
requirementsExtensionElement object
},
"contexts": [
"mailRead | mailCompose | meetingDetailsOrganizer | meetingDetailsAttendee | onlineMeetingDetailsOrganizer | logEventMeetingDetailsAttendee | default | spamReportingOverride"
],
"actionId": "{string}",
"label": "{string}",
"semanticDescription": "{string}"
}
],
"contentRuntimes": [
{
"requirements": {
requirementsExtensionElement object
},
"id": "{string}",
"code": {
extensionRuntimeCode object
},
"requestedHeight": {number},
"requestedWidth": {number},
"disableSnapshot": {boolean}
}
],
"getStartedMessages": [
{
"requirements": {
requirementsExtensionElement object
},
"title": "{string}",
"description": "{string}",
"learnMoreUrl": "{string}"
}
],
"contextMenus": [
{
"requirements": {
requirementsExtensionElement object
},
"menus": [
{
extensionMenuItem object
}
]
}
],
"keyboardShortcuts": [
{
"requirements": {
requirementsExtensionElement object
},
"shortcuts": [
{
extensionShortcut object
}
]
}
]
}
{
"requirements": {
"capabilities": [
{
capabilities object
}
],
"scopes": [
"mail | workbook | document | presentation"
],
"formFactors": [
"desktop | mobile"
]
},
"runtimes": [
{
"requirements": {
requirementsExtensionElement object
},
"id": "{string}",
"type": "general",
"code": {
extensionRuntimeCode object
},
"lifetime": "short | long",
"actions": [
{
extensionRuntimesActionsItem object
}
]
}
],
"ribbons": [
{
"requirements": {
requirementsExtensionElement object
},
"contexts": [
"mailRead | mailCompose | meetingDetailsOrganizer | meetingDetailsAttendee | onlineMeetingDetailsOrganizer | logEventMeetingDetailsAttendee | default | spamReportingOverride"
],
"tabs": [
{
extensionRibbonsArrayTabsItem object
}
],
"fixedControls": [
{
extensionRibbonsArrayFixedControlItem object
}
],
"spamPreProcessingDialog": {
extensionRibbonsSpamPreProcessingDialog object
}
}
],
"autoRunEvents": [
{
"requirements": {
requirementsExtensionElement object
},
"events": [
{
events object
}
]
}
],
"alternates": [
{
"requirements": {
requirementsExtensionElement object
},
"prefer": {
prefer object
},
"hide": {
hide object
},
"alternateIcons": {
alternateIcons object
}
}
],
"audienceClaimUrl": "{string}"
}
{
"requirements": {
"capabilities": [
{
capabilities object
}
],
"scopes": [
"mail | workbook | document | presentation"
],
"formFactors": [
"desktop | mobile"
]
},
"runtimes": [
{
"requirements": {
requirementsExtensionElement object
},
"id": "{string}",
"type": "general",
"code": {
extensionRuntimeCode object
},
"lifetime": "short | long",
"actions": [
{
extensionRuntimesActionsItem object
}
]
}
],
"ribbons": [
{
"requirements": {
requirementsExtensionElement object
},
"contexts": [
"mailRead | mailCompose | meetingDetailsOrganizer | meetingDetailsAttendee | onlineMeetingDetailsOrganizer | logEventMeetingDetailsAttendee | default"
],
"tabs": [
{
extensionRibbonsArrayTabsItem object
}
]
}
],
"autoRunEvents": [
{
"requirements": {
requirementsExtensionElement object
},
"events": [
{
events object
}
]
}
],
"alternates": [
{
"requirements": {
requirementsExtensionElement object
},
"prefer": {
prefer object
},
"hide": {
hide object
},
"alternateIcons": {
alternateIcons object
}
}
],
"audienceClaimUrl": "{string}"
}
Properties
requirements
Specifies the set of client or host requirements for the extension.
Required
—
Constraints
Supported values
runtimes
Configures the set of runtimes and actions that can be used by each extension point. For more information, see runtimes in Office Add-ins.
Type
Array of extensionRuntimesArray
Required
—
Constraints
Minimum array items: 1. Maximum array items: 20.
Supported values
ribbons
Defines the ribbons extension point.
Type
Array of extensionRibbonsArray
Required
—
Constraints
Minimum array items: 1. Maximum array items: 20.
Supported values
autoRunEvents
Defines the event-based activation extension point.
Type
Array of extensionAutoRunEventsArray
Required
—
Constraints
Minimum array items: 1. Maximum array items: 10.
Supported values
alternates
Specifies the relationship to alternate existing Microsoft 365 solutions. It's used to hide or prioritize add-ins from the same publisher with overlapping functionality.
Type
Array of extensionAlternateVersionsArray
Required
—
Constraints
Minimum array items: 1. Maximum array items: 10.
Supported values
audienceClaimUrl
Specifies the URL for your extension and is used to validate Exchange user identity tokens. For more information, see inside the Exchange identity token.
This property is localizable. For more information, see the localization schema.
Type
string
Required
—
Constraints
Maximum string length: 2048.
Supported values
The string must start with https://
.
appDeeplinks
Do not use. For Microsoft internal use only.
Type
Array of extensionAppDeeplinksArray
Required
—
Constraints
Minimum array items: 1.
Supported values
contentRuntimes
Configures a page of content that is embedded in an Excel or PowerPoint document.
Type
Array of extensionContentRuntimeArray
Required
—
Constraints
Minimum array items: 1.
Supported values
getStartedMessages
Provides information used by the callout that appears when the add-in is installed.
Type
Array of extensionGetStartedMessageArray
Required
—
Constraints
Minimum array items: 1. Maximum array items: 3.
Supported values
contextMenus
Specifies the context menus for your extension. A context menu is a shortcut menu that appears when a user right-clicks (selects and holds) in the Office UI. Min size 1.
Type
Array of extensionContextMenuArray
Required
—
Constraints
Minimum array items: 1.
Supported values
keyboardShortcuts
Keyboard shortcuts, also known as key combinations, enable your add-in's users to work more efficiently. Keyboard shortcuts also improve the add-in's accessibility for users with disabilities by providing an alternative to the mouse.
Type
Array of extensionKeyboardShortcut
Required
—
Constraints
Minimum array items: 1. Maximum array items: 10.
Supported values
Examples
{
"extensions": [
{
"requirements": {
"scopes": [ "mail" ],
"capabilities": [
{
"name": "Mailbox", "minVersion": "1.1"
}
]
},
"runtimes": [
{
"requirements": {
"capabilities": [
{
"name": "MailBox",
"minVersion": "1.10"
}
]
},
"id": "eventsRuntime",
"type": "general",
"code": {
"page": "https://contoso.com/events.html",
"script": "https://contoso.com/events.js"
},
"lifetime": "short",
"actions": [
{
"id": "onMessageSending",
"type": "executeFunction"
},
{
"id": "onNewMessageComposeCreated",
"type": "executeFunction"
}
]
},
{
"requirements": {
"capabilities": [
{
"name": "MailBox", "minVersion": "1.1"
}
]
},
"id": "commandsRuntime",
"type": "general",
"code": {
"page": "https://contoso.com/commands.html",
"script": "https://contoso.com/commands.js"
},
"lifetime": "short",
"actions": [
{
"id": "action1",
"type": "executeFunction"
},
{
"id": "action2",
"type": "executeFunction"
},
{
"id": "action3",
"type": "executeFunction"
}
]
}
],
"ribbons": [
{
"contexts": [
"mailCompose"
],
"tabs": [
{
"builtInTabId": "TabDefault",
"groups": [
{
"id": "dashboard",
"label": "Controls",
"controls": [
{
"id": "control1",
"type": "button",
"label": "Action 1",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 1 Title",
"description": "Action 1 Description"
},
"actionId": "action1"
},
{
"id": "menu1",
"type": "menu",
"label": "My Menu",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "My Menu",
"description": "Menu with 2 actions"
},
"items": [
{
"id": "menuItem1",
"type": "menuItem",
"label": "Action 2",
"supertip": {
"title": "Action 2 Title",
"description": "Action 2 Description"
},
"actionId": "action2"
},
{
"id": "menuItem2",
"type": "menuItem",
"label": "Action 3",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 3 Title",
"description": "Action 3 Description"
},
"actionId": "action3"
}
]
}
]
}
],
}
]
},
{
"contexts": [ "mailRead" ],
"tabs": [
{
"builtInTabId": "TabDefault",
"groups": [
{
"id": "dashboard",
"label": "Controls",
"controls": [
{
"id": "control1",
"type": "button",
"label": "Action 1",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 1 Title",
"description": "Action 1 Description"
},
"actionId": "action1"
}
]
}
],
"customMobileRibbonGroups" [
{
"id": "myMobileGroup",
"label": "Contoso Actions",
"controls": [
{
"id": "msgReadFunctionButton",
"type": "mobileButton",
"label": "Action 1",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 1 Title",
"description": "Action 1 Description"
},
"actionId": "action1"
}
]
}
]
"customMobileRibbonGroups": [
{
"id": "mobileDashboard",
"label": "Controls",
"controls": [
{
"id": "control1",
"type": "mobileButton",
"label": "Action 1",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 1 Title",
"description": "Action 1 Description"
},
"actionId": "action1"
}
]
}
]
}
]
}
],
"autoRunEvents": [
{
"requirements": {
"capabilities": [
{
"name": "MailBox", "minVersion": "1.10"
}
]
},
"events": [
{
"type": "newMessageComposeCreated",
"actionId": "onNewMessageComposeCreated"
},
{
"type": "messageSending",
"actionId": "onMessageSending",
"options": {
"sendMode": "promptUser"
}
}
]
}
],
"alternates": [
{
"requirements": {
"scopes": [ "mail" ]
},
"prefer": {
"comAddin": {
"progId": "ContosoExtension"
}
},
"hide": {
"storeOfficeAddin": {
"officeAddinId": "00000000-0000-0000-0000-000000000000",
"assetId": "WA000000000"
}
},
"alternateIcons": {
"icon": {
"size": 64,
"url": "https://contoso.com/assets/icon64x64.jpg"
},
"highResolutionIcon": {
"size": 64,
"url": "https://contoso.com/assets/icon128x128.jpg"
}
}
}
]
}
]
}