Skip to content
Draft
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
> [!NOTE]
> Agents provide a more flexible, intelligent, and future‑ready experience which enables richer reasoning, simpler development, and better alignment with the evolving Teams and Microsoft 365 platform. We recommend that you explore and build agents.
>
> For more information, see [build declarative agents](/microsoft-365-copilot/extensibility/overview-declarative-agent) and [build agents in Teams](../../agents-in-teams/overview.md).
>
> You can also [extend bot-based message extension](../../messaging-extensions/build-bot-based-agent.md) as an agent.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ Outlook mobile users on Android and iOS can receive and take actions on cards fr

Teams message extension across Microsoft 365 also supports [link unfurling](../messaging-extensions/how-to/link-unfurling.md) that display cards to launch [Stageview](../tabs/tabs-link-unfurling.md) and dialogs.

[!INCLUDE [bot-based-me-note](../includes/messaging-extensions/bot-based-me-note.md)]

## Prerequisites

To extend your Teams message extension to Outlook, ensure the following:
Expand Down
4 changes: 3 additions & 1 deletion msteams-platform/m365-apps/me-or-outlook-add-in.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Message Extension vs. Outlook Add-in
description: Learn how to decide whether Microsoft 365 app must be message extension or Outlook add-in, and customer relation, security, attachment, and signature management.
ms.date: 01/05/2023
ms.topic: conceptual
ms.topic: article
ms.localizationpriority: medium
ms.subservice: m365apps
---
Expand All @@ -12,6 +12,8 @@ An Outlook add-in and a message extension allow you to create rich and interacti

If your app includes scenarios from Outlook add-in and message extension, then you must create both apps, an Outlook add-in and a message extension. You must host both these apps at the same domain so that they can share files.

[!INCLUDE [bot-based-me-note](../includes/messaging-extensions/bot-based-me-note.md)]

## Guidelines for Outlook add-in and message extension

# [**Outlook add-in**](#tab/outlook-add-in)
Expand Down
2 changes: 2 additions & 0 deletions msteams-platform/messaging-extensions/api-based-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ Message extensions built using API (API-based) use a web service to manage user
* Retrieve real-time information, such as latest news coverage on a product launch.
* Retrieve knowledge-based information, for example, my team’s design files in Figma.

[!INCLUDE [bot-based-me-note](../includes/messaging-extensions/bot-based-me-note.md)]

See the video to learn more about building an API-based message extension using Microsoft 365 Agents Toolkit (previously known as Teams Toolkit):
</br>
</br>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ Microsoft 365 Copilot, powered by an advanced processing and orchestration engin

:::image type="content" source="../assets/images/Copilot/ailib-copilot-diff.png" alt-text="Graphic shows the user interaction flow between the user, Microsoft Teams, and Microsoft 365 Copilot." lightbox="../assets/images/Copilot/ailib-copilot-diff.png":::

[!INCLUDE [bot-based-me-note](../includes/messaging-extensions/bot-based-me-note.md)]

## What is an agent?

An agent allows Microsoft 365 Copilot to interact directly with third-party data, apps, and services, enhance its capabilities, and broaden its range of capabilities. Agents allow Microsoft 365 Copilot to:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Message extensions built using Bot Framework (Bot-based) use a web service as a

Bot-based message extension takes advantage of the Bot Framework's messaging schema and secure communication protocol. The bot is defined in the app manifest for the Teams app and you can also define different types of commands for your message extension, such as action commands or search commands.

[!INCLUDE [bot-based-me-note](../includes/messaging-extensions/bot-based-me-note.md)]

There are two types of message extension commands, action command and search command. The message extension command type defines the UI elements and interaction flows available to your web service. You can use a search command or an action command to interact with your web service through a bot in Teams.

:::image type="content" source="../assets/images/Copilot/bot-based-action-search-command.png" alt-text="Screenshot shows the way for a developer to select between action commands and search commands.":::
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ ms.date: 02/26/2025

API-based message extensions are a Microsoft Teams app capability that integrates external APIs directly into Teams, enhancing your app's usability and offering a seamless user experience. API-based message extensions support search commands and can be used to fetch and display data from external services within Teams, streamlining workflows by reducing the need to switch between applications.

[!INCLUDE [bot-based-me-note](../includes/messaging-extensions/bot-based-me-note.md)]

Before you get started, ensure that you meet the following requirements:

</br>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Development Guidelines for Agents
description: Discover the essential guidelines and best practices to create, upgrade, and optimize agents for Microsoft 365 Copilot.
ms.topic: conceptual
ms.topic: article
author: v-preethah
ms.author: surbhigupta
ms.localizationpriority: high
Expand All @@ -11,6 +11,8 @@ ms.collection: ce-skilling-ai-copilot

# Guidelines to create and upgrade agents

[!INCLUDE [bot-based-me-note](../includes/messaging-extensions/bot-based-me-note.md)]

> [!IMPORTANT]
>
> * Agents for Microsoft 365 Copilot are in preview and work only in Microsoft 365 Copilot.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Modal Dialogs in Message Extensions
author: surbhigupta
description: Learn to create and send dialogs (task modules). Handle the initial invoke action and respond with a dialog (task module) from an action message extension command.
ms.localizationpriority: medium
ms.topic: conceptual
ms.topic: article
ms.author: anclear
ms.owner: ginobuzz
ms.date: 03/11/2025
Expand All @@ -17,6 +17,8 @@ the initial invoke request, payload activity properties when a dialog is invoked
> [!NOTE]
> If you are not populating the dialog with parameters defined in the app manifest, you must create the dialog for users with either an Adaptive Card or an embedded web view.

[!INCLUDE [bot-based-me-note](../../../includes/messaging-extensions/bot-based-me-note.md)]

## The initial invoke request

In the process of the initial invoke request, your service receives an `Activity` object of type `composeExtensions/fetchTask`, and you must respond with a `task` object containing either an Adaptive Card or a URL to the embedded web view. Along with the standard bot activity properties, the initial invoke payload contains the following request metadata:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Create Action Commands for App
author: surbhigupta
description: Learn to define message extension action commands with app manifest in Teams. Sample (.NET, Node.js), create dialog (task module), respond to dialog submit action.
ms.localizationpriority: medium
ms.topic: conceptual
ms.topic: article
ms.author: anclear
ms.owner: ginobuzz
ms.date: 03/11/2025
Expand All @@ -17,6 +17,8 @@ Before creating the action command, you must decide the following factors:
1. [How is the dialog (referred as task module in TeamsJS v1.x) created?](#select-how-to-create-your-dialog)
1. [Is the final message or card sent to the channel from a bot, or is the message or card inserted into the compose message area for the user to submit?](#select-how-the-final-message-is-sent)

[!INCLUDE [bot-based-me-note](../../../includes/messaging-extensions/bot-based-me-note.md)]

## Select action command invoke locations

First, you must decide the location from where your action command must be invoked. When you specify the `context` property in your app manifest (previously called Teams app manifest), your command can be invoked from one or more of the following locations:
Expand Down Expand Up @@ -100,7 +102,7 @@ To create an action-based message extension using Developer Portal for Teams, fo
:::image type="content" source="../../../assets/images/Copilot/bot-based-me-tdp-type.png" alt-text="Screenshot shows API Message extension is already in use disclaimer when a user switches from API to bot message extension type.":::

1. If you don't have an existing bot, select **Existing bot** or if you have a bot ID, select **Enter Bot ID**.

1. If you don't have a bot ID, select **Create a bot**, to create a new bot and enter the bot ID of the new bot that you created.

1. Select the required scopes.
Expand All @@ -110,7 +112,7 @@ To create an action-based message extension using Developer Portal for Teams, fo
A command details page appears.

1. In the Command details page, select **Action** and then select parameter type.

1. Select **Action** as the type of command and update the following fields:
* Command ID
* Command title
Expand Down Expand Up @@ -141,7 +143,7 @@ To create an action-based message extension using Developer Portal for Teams, fo

:::image type="content" source="../../../assets/images/tdp/add-parameter.PNG" alt-text="Screenshot shows how to add additional parameters for your message extension."lightbox="../../../assets/images/tdp/add-a-parameters.PNG":::

1. Select **Save**
1. Select **Save**

A bot-based action message extension is created.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Explore Responses to Action Commands
author: surbhigupta
description: Learn to respond to message extension action commands with Proactive message. Define and respond to search commands and display username on Adaptive Card headers.
ms.localizationpriority: medium
ms.topic: conceptual
ms.topic: article
ms.author: anclear
ms.owner: ginobuzz
ms.date: 03/11/2025
Expand Down Expand Up @@ -32,6 +32,8 @@ If the app doesn't respond within five seconds, the Teams client retries the req
>* The app must defer any long-running actions after the bot replies to the invoke request. The long-running action results can be delivered as a message.
>* Your app has five seconds to respond to the invoke message.

[!INCLUDE [bot-based-me-note](../../../includes/messaging-extensions/bot-based-me-note.md)]

For authentication or configuration, after the user completes the process, the original invoke is resent to your web service. The following table shows which types of responses are available, based on the invoke location `commandContext` of the message extension:

|Response Type | Compose | Command bar | Message |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@
title: Create Search Commands for App
author: surbhigupta
description: Learn about message extension search commands for Teams apps, to create a search command through app manifest and manually.
ms.topic: conceptual
ms.topic: article
ms.author: anclear
ms.date: 09/16/2024
ms.localizationpriority: medium
ms.owner: slamba
---
# Define message extension search commands

[!INCLUDE [bot-based-me-note](../../../includes/messaging-extensions/bot-based-me-note.md)]

The search command is invoked from any one or both of the following locations:

* Compose message area: The buttons at the bottom of the compose message area.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@
title: Respond to Search Command in Teams
author: surbhigupta
description: Learn how to respond to the search command from a message extension in a Microsoft Teams app. Understand how to respond to the user request.
ms.topic: conceptual
ms.topic: article
ms.author: anclear
ms.date: 03/06/2025
ms.localizationpriority: medium
---
# Respond to search command

[!INCLUDE [bot-based-me-note](../../../includes/messaging-extensions/bot-based-me-note.md)]

[!include[v4-to-v3-SDK-pointer](~/includes/v4-to-v3-pointer-me.md)]

After the user submits the search command, your web service receives a `composeExtension/query` invoke message that contains a `value` object with the search parameters. The invoke is triggered by the following conditions:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Universal Actions for Message Extension
author: surbhigupta
description: In this article, learn about Universal Actions and automatic refresh for Adaptive Cards in search based message extensions.
ms.topic: conceptual
ms.topic: article
ms.author: surbhigupta
ms.date: 02/06/2025
ms.localizationpriority: medium
Expand All @@ -11,6 +11,8 @@ ms.owner: slamba

# Universal Actions for search based message extensions

[!INCLUDE [bot-based-me-note](../../../includes/messaging-extensions/bot-based-me-note.md)]

Adaptive Cards in search based message extensions now support Universal Actions. To enable Universal Actions for search based message extensions, the app must conform to the [schema for Universal Actions for Adaptive Cards](../../../task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Work-with-Universal-Actions-for-Adaptive-Cards.md#schema-for-universal-actions-for-adaptive-cards) along with the following requirements:

1. The app must have a [conversational](../../../bots/build-conversational-capability.md) or [notification-only](../../../bots/build-notification-capability.md) bot defined in the app manifest.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ To build a message extension, if you don't already have one, there are two ways:

* **Build message extensions using Bot Framework (Bot-based)**: If you want a one-on-one conversational experience, you can create a new message extension from a bot.

[!INCLUDE [bot-based-me-note](../includes/messaging-extensions/bot-based-me-note.md)]

The following table helps you select a message extension type to get started:

:::row:::
Expand Down