elementExtensions object
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
}
]
}
],
"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}",
"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
}
]
}
]
}
{
"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.
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
Type
Array of extensionContentRuntimeArray
Required
—
Constraints
Minimum array items: 1.
Supported values
getStartedMessages
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
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"
}
}
}
]
}
]
}