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.

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.

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://.

Do not use. For Microsoft internal use only.

Required

Constraints
Minimum array items: 1.

Supported values

contentRuntimes

Required

Constraints
Minimum array items: 1.

Supported values

getStartedMessages

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.

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"
            }
          }
        }
      ]
    }
  ]
}