root.staticTabs object
A set of tabs that may be 'pinned' by default, without the user adding them manually. Static tabs declared in personal scope are always pinned to the app's personal experience. Static tabs do not currently support the 'teams' scope.
Properties that reference this object type:
Syntax
{
"entityId": "{string}",
"name": "{string}",
"contentUrl": "{string}",
"contentBotId": "{string}",
"websiteUrl": "{string}",
"searchUrl": "{string}",
"scopes": [
"team | personal | groupChat"
],
"context": [
"personalTab | channelTab | privateChatTab | meetingChatTab | meetingDetailsTab | meetingSidePanel | meetingStage | teamLevelApp"
],
"supportedPlatform": [
"desktop | mobile | teamsMeetingDevices"
],
"requirementSet": {
"hostMustSupportFunctionalities": [
{
hostFunctionality object
}
]
}
}
{
"entityId": "{string}",
"name": "{string}",
"contentUrl": "{string}",
"contentBotId": "{string}",
"websiteUrl": "{string}",
"searchUrl": "{string}",
"scopes": [
"team | personal | groupChat"
],
"context": [
"personalTab | channelTab | privateChatTab | meetingChatTab | meetingDetailsTab | meetingSidePanel | meetingStage | teamLevelApp"
]
}
Properties
entityId
A unique identifier for the entity which the tab displays.
Type
string
Required
✅
Constraints
Maximum string length: 64.
Supported values
name
The display name of the tab.
Type
string
Required
—
Constraints
Maximum string length: 128.
Supported values
contentUrl
The url which points to the entity UI to be displayed in the Teams canvas.
Type
string
Required
—
Constraints
Maximum string length: 2048.
Supported values
The string must start with https://
.
contentBotId
The Microsoft App ID specified for the bot in the Bot Framework portal (https://dev.botframework.com/bots).
Type
string
Required
—
Constraints
Supported values
The string value must be a guid.
websiteUrl
The url to point at if a user opts to view in a browser.
Type
string
Required
—
Constraints
Maximum string length: 2048.
Supported values
The string must start with https://
.
searchUrl
The url to direct a user's search queries.
Type
string
Required
—
Constraints
Maximum string length: 2048.
Supported values
The string must start with https://
.
scopes
Specifies whether the tab offers an experience in the context of a channel in a team, or an experience scoped to an individual user alone or a group chat. These options are non-exclusive. Currently static tabs are only supported in the personal
scope.
Type
Array of enum
Required
✅
Constraints
Maximum array items: 3.
Supported values
Allowed values: team
, personal
, groupChat
.
context
The set of contextItem
scopes to which a tab belongs.
Type
Array of enum
Required
—
Constraints
Maximum array items: 8.
Supported values
Allowed values: personalTab
, channelTab
, privateChatTab
, meetingChatTab
, meetingDetailsTab
, meetingSidePanel
, meetingStage
, teamLevelApp
.
supportedPlatform
The set of supportedPlatform
scopes to which a tab belongs.
Type
Array of enum
Required
—
Constraints
Maximum array items: 3.
Supported values
Allowed values: desktop
, mobile
, teamsMeetingDevices
.
requirementSet
Runtime requirements for the tab to function properly in the Microsoft 365 host application. If one or more of the requirements aren't supported by the runtime host, the host won't load the tab.
Required
—
Constraints
Supported values
Remarks
Defines a set of tabs that can be pinned by default, without the user adding them manually. Static tabs declared in personal
scope are always pinned to the app's personal experience. However, the pinned tabs can be reordered by adding the details of the tab in the same desired order. For more information, see reorder static personal tabs.
This property also enables you to set the default landing capability for an app supporting both tab and bot capabilities in personal scope. For more information, see configure default landing capability.
This item is an array (maximum of 16 elements) with all elements of the type object
. This block is required only for apps that provide one or more static tabs.
Render tabs with Adaptive Cards by specifying contentBotId
instead of contentUrl
in the staticTabs block.
Note
- The
groupChat
andteam
scopes are supported only in public developer preview. - The
teamLevelApp
context is dedicated only for Education tenants. - The
searchUrl
feature is not available for the third-party developers. - If your tabs require context-dependent information to display relevant content or for initiating an authentication flow, For more information, see Get context for your Microsoft Teams tab.
Examples
{
"staticTabs": [
{
"entityId": "unique Id for the page entity",
"scopes": [
"personal"
],
"context": [
"personalTab",
"channelTab"
],
"name": "Display name of tab",
"contentUrl": "https://contoso.com/content (displayed in Teams canvas)",
"websiteUrl": "https://contoso.com/content (displayed in web browser)",
"searchUrl": "https://contoso.com/content (displayed in web browser)"
}
],
}
{
"staticTabs": [
{
"entityId": "idForPage",
"name": "Display name of tab",
"contentUrl": "https://contoso.com/content?host=msteams",
"contentBotId": "Specifies to the app that tab is an Adaptive Card Tab. You can either provide the contentBotId or contentUrl.",
"websiteUrl": "https://contoso.com/content",
"scopes": [
"personal"
],
"requirementSet": {
"hostMustSupportFunctionalities": [
{"name": "dialogUrl"},
{"name": "dialogUrlBot"}
]
}
}
],
}