diff --git a/msteams-platform/TOC.yml b/msteams-platform/TOC.yml index 12e83575edf..21eac1734ba 100644 --- a/msteams-platform/TOC.yml +++ b/msteams-platform/TOC.yml @@ -1,1212 +1,112 @@ - name: Microsoft Teams Developer documentation href: mstdd-landing.yml -- name: What's new? - href: whats-new.md - displayName: Teams platform features, latest updates, RSS feed, deprecated, announcement, preview -- name: Glossary - href: get-started/glossary.md - displayName: App tray, terminologies, definitions, welcome, new word, meaning + - name: Overview expanded: false items: - - name: Teams app that fits - href: overview.md + - name: Teams developer platform + href: agents-in-teams/overview/overview-of-teams-developer-platform-outline.md displayName: why build apps with Microsoft Teams platform - - name: From ideas to Teams app - href: overview-story.md + - name: Why build on Teams? + href: agents-in-teams/overview/why-build-on-microsoft-teams-outline.md displayName: Teams app user experience, user scenario - - name: Explore Teams platform features - href: overview-explore.md - - name: The Teams solution - href: overview-solution.md + - name: What's new for developers? + href: whats-new.md + - name: Teams developer glossary + href: get-started/glossary.md displayName: develop Teams app, app development, tools used + - name: Get started expanded: false items: - - name: Build your Teams app - href: get-started/get-started-overview.md - displayName: build Teams app, new Teams app, GitHub Codespaces, tutorials - - name: Build a tab app - href: get-started/build-basic-tab-app.md - displayName: build Teams tab app - - name: Build an interactive notification bot app - href: get-started/build-interactive-notification-bot.md - displayName: build Teams bot app, build interactive bot - - name: Build a message extension app - href: get-started/build-message-extension.md - displayName: search based message extension app - - name: Tool options and code samples - href: get-started/tool-options-and-code-samples.md - displayName: Teams app samples, tools to build Teams app -- name: Plan your app or agent - items: - - name: Overview - href: concepts/app-fundamentals-overview.md - displayName: Teams app features, Government Community Cloud (GCC), Department of Defense (DoD), GCC High (GCCH), Teams operated by 21Vianet - - name: Understand use cases - href: concepts/design/understand-use-cases.md - displayName: user requirements, app functionalities, app scope, capabilities - - name: Map use case to Teams features - href: concepts/design/map-use-cases.md - displayName: user scenarios, Teams app features - - name: Teams app planning checklist - href: concepts/design/planning-checklist.md - displayName: HTTPs, localhost, host your Teams app - - name: Plan responsive tabs for Teams mobile - href: concepts/design/plan-responsive-tabs-for-teams-mobile.md - displayName: tab app in Teams mobile, Teams mobile apps - - name: Plan analytics for your Teams app - items: - - name: Get started with app analytics - href: concepts/design/overview-analytics.md - displayName: data instrumentation, user-specific insights, constructs, conversational, hosted web canvas - - name: Strategize and decide what to measure - href: concepts/design/strategize-measure.md - displayName: measure your products, monitor events, product satisfaction, customer values - - name: Plan code instrumentation using analytics service - href: concepts/design/plan-code-instrumentation.md - displayName: track events, monitor, Azure Applications Insights - - name: Plan to send app notifications - href: concepts/design/design-app-notification.md - displayName: notification framework, activity feed, message, alert, notify - - name: Plan for special clouds - items: - - name: Plan for government clouds - href: concepts/cloud-overview.md - displayName: Government Community Cloud (GCC), GCC High (GCCH), Department of Defense (DoD), Teams for government tenant - - name: Plan for sovereign clouds - href: concepts/sovereign-cloud.md - displayName: Teams operated by 21Vianet, gallatin -- name: Design your app or agent - items: - - name: Overview - href: concepts/design/design-teams-app-overview.md - displayName: Design principles, Figma, UI Kit, Fluent UI React components, Fluent UI - - name: Understand design process - href: concepts/design/design-teams-app-process.md - displayName: design phases, design kit - - name: Design system - items: - - name: App design system fundamentals - href: concepts/design/design-teams-app-fundamentals.md - displayName: design principles - - name: Layout and scaling - href: concepts/design/design-teams-app-layout-scaling.md - displayName: layout, scaling - - name: App icons for Teams Store and app bar - href: concepts/design/design-teams-app-icon-store-appbar.md - displayName: icon design, icon guidelines - - name: App artwork for Teams Store - href: concepts/design/design-teams-app-artwork-store.md - displayName: app artwork, image template - - name: Typography - href: concepts/design/design-teams-app-type.md - displayName: font design, font style - - name: Color - href: concepts/design/design-teams-app-color.md - displayName: app color, themes, primary colors - - name: Shape and elevation - href: concepts/design/design-teams-app-shape-elevation.md - displayName: shape, elevation - - name: App capabilities - items: - - name: Understand app structure - href: concepts/design/app-structure.md - displayName: best practices, customize app structure, wireframes - - name: Personal apps - href: concepts/design/personal-apps.md - displayName: design personal app, manage, logo - - name: Tabs - href: tabs/design/tabs.md - displayName: design, tab - - name: Bots - href: bots/design/bots.md - displayName: add Teams bot, design your bot, manage bot, chat with Teams bot, bot authentication - - name: Message extensions - href: messaging-extensions/design/messaging-extension-design.md - displayName: set up extensions, commands - - name: Meeting extensions - href: apps-in-teams-meetings/design/designing-apps-in-meetings.md - displayName: meeting stage - - name: UI templates - href: concepts/design/design-teams-app-ui-templates.md - displayName: data visualization, UI templates, use cases - - name: UI components - items: - - name: Basic UI components - href: concepts/design/design-teams-app-basic-ui-components.md - displayName: dropdown - - name: Advanced UI components - href: concepts/design/design-teams-app-advanced-ui-components.md - - name: Adaptive Cards - href: task-modules-and-cards/cards/design-effective-cards.md - displayName: Adaptive Cards, Adaptive Card types, anatomy, best practices, Adaptive Card templates, Adaptive Card samples, starter cards - - name: Dialogs - href: task-modules-and-cards/task-modules/design-teams-task-modules.md - displayname: Forms, launch dialogs - - name: Lightbox view - href: concepts/design/design-teams-app-light-box-view.md - displayName: hide page layout - - name: Activity feed notifications - href: concepts/design/activity-feed-notifications.md - displayName: notify, notification -- name: Tools and SDKs - items: - - name: Overview - href: concepts/build-and-test/tool-sdk-overview.md - displayName: Tools and SDKs - - name: Tools - items: - - name: Microsoft 365 Agents Toolkit - href: /microsoft-365/developer/overview-m365-agents-toolkit?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - displayName: ATK, M365, Microsoft 365, Agents Toolkit - - name: Agents Toolkit for VSC - items: - - name: Agents Toolkit overview - href: toolkit/agents-toolkit-fundamentals.md - displayName: TTK, version, Developer Portal, debug, Microsoft 365 Agents Playground, dev tunnel - - name: Install Agents Toolkit - href: toolkit/install-agents-toolkit.md - displayName: download - - name: Explore Agents Toolkit - href: toolkit/explore-agents-toolkit.md - - name: Build apps using Agents Toolkit - href: toolkit/build-environments.md - items: - - name: Prerequisites to create Teams app - href: toolkit/tools-prerequisites.md - displayName: accounts to build your Teams app - - name: Create new Teams app project - href: toolkit/create-new-project.md - - name: Develop your app in VSC - items: - - name: Add and manage environment - href: toolkit/TeamsFx-multi-env.md - displayName: local, prod, and dev environment - - name: How-to guides - href: toolkit/add-how-to-guides-vsc.md - displayName: Multiple capabilities app, add tab capability, add bot capability, add message extension capability - - name: Add cloud resources and API connection - href: toolkit/add-resource.md - displayName: application, endpoint - - name: Add SSO to Teams app - href: toolkit/add-single-sign-on.md - - name: Enable SSO for Teams app - href: toolkit/develop-single-sign-on-experience-in-teams.md - - name: Use Microsoft Entra app in TeamsFx - href: toolkit/use-existing-aad-app.md - - name: Use certificate or MSI for app authentication - href: toolkit/update-bot-me-app-to-use-certificate-or-msi-for-authentication.md - displayName: MSI, certificate, bot, message extension, authentication - - name: Customize app manifest - items: - - name: Customize app manifest - href: toolkit/TeamsFx-preview-and-customize-app-manifest.md - - name: Edit Microsoft Entra manifest - href: toolkit/aad-manifest-customization.md - - name: Debug your Teams app - items: - - name: App debug overview - href: toolkit/debug-overview.md - - name: Debug using Agents Playground - href: toolkit/debug-your-agents-playground.md - displayName: Mock activity, custom activity, predefined activity - - name: Debug message extension app in Agents Playground - href: toolkit/debug-message-extension-app-in-test-tool.md - - name: Debug your app locally - href: toolkit/debug-local.md - - name: Debug in Teams desktop client - href: toolkit/debug-apps-in-teams-desktop-client.md - displayName: debug, desktop client, bots, Copilot agent, Custom engine agent, message extension, Microsoft 365 Agents Toolkit, Visual Studio Code, plugins - - name: Debug background process - href: toolkit/debug-background-process.md - - name: Debug for mobile - href: toolkit/debug-mobile.md - - name: Host your app on Azure - items: - - name: Provision cloud resources - href: toolkit/provision.md - - name: Deploy to cloud using VSC - href: toolkit/deploy.md - - name: Deploy Teams app to container service - href: toolkit/deploy-Teams-app-to-container-service.md - - name: Set up CI/CD pipelines - href: toolkit/use-CICD-template.md - - name: Test your Teams app - items: - - name: Integrate and collaborate - href: toolkit/TeamsFx-collaboration.md - displayName: collaborate on Teams - - name: Test apps in different environment - href: toolkit/test-app-behavior.md - - name: Publish your Teams app - items: - - name: Publish Teams apps using Agents Toolkit - href: toolkit/publish.md - displayName: license - - name: Publish Teams apps using Developer Portal - href: toolkit/publish-your-teams-apps-using-developer-portal.md - - name: FAQ - href: toolkit/faq.md - - name: Agents Toolkit for VS - items: - - name: Overview - href: toolkit/toolkit-v4/agents-toolkit-fundamentals-vs.md - displayName: TTK, version, 17.7 - - name: Install Agents Toolkit - href: toolkit/toolkit-v4/install-agents-toolkit-vs.md - displayName: download - - name: Explore Agents Toolkit - href: toolkit/toolkit-v4/explore-agents-toolkit-vs.md - - name: Prepare to build apps using Agents Toolkit - href: toolkit/toolkit-v4/build-environments-vs.md - items: - - name: Prerequisites to create Teams app - href: toolkit/toolkit-v4/tools-prerequisites-vs.md - displayName: accounts to build your Teams app - - name: Create a new Teams app project - href: toolkit/toolkit-v4/create-new-project-vs.md - - name: Add SSO for Teams app using VS - href: toolkit/toolkit-v4/add-single-sign-on-vs.md - displayName: authentication - - name: Customize Teams app manifest - href: toolkit/toolkit-v4/TeamsFx-preview-and-customize-app-manifest-vs.md - - name: Debug your Teams app - items: - - name: Debug overview - href: toolkit/toolkit-v4/debug-overview-vs.md - - name: Debug with Agents Playground - href: toolkit/toolkit-v4/debug-your-agents-playground-vs.md - - name: Debug Teams app locally - href: toolkit/toolkit-v4/debug-local-vs.md - displayName: DevTunnel - - name: Debug background process - href: toolkit/toolkit-v4/debug-background-process-vs.md - displayName: DevTunnel - - name: Host your app on Azure - items: - - name: Provision cloud resources - href: toolkit/toolkit-v4/provision-vs.md - - name: Deploy to cloud using VS - href: toolkit/toolkit-v4/deploy-vs.md - - name: Migrate project from 17.13 to 17.14+ - href: toolkit/teams-toolkit-migration-guide_1714.md - - name: Migrate project from 17.9 to 17.10+ - href: toolkit/teams-toolkit-migration-guide.md - displayName: migrate Teams toolkit, new project structure, YAML configuration - - name: Microsoft 365 Agents Toolkit CLI - href: toolkit/microsoft-365-agents-toolkit-CLI.md - - name: Teams Toolkit CLI - href: toolkit/teams-toolkit-CLI.md - - name: Developer Portal for Teams - items: - - name: Overview - href: concepts/build-and-test/teams-developer-portal.md - displayName: setup runtime environment, Changelog for Developer Portal, Import an existing app, Import published app - - name: Manage your apps in Developer Portal - href: concepts/build-and-test/manage-your-apps-in-developer-portal.md - displayName: AppID, app validation, validate your app, Microsoft's test cases, add owners to bot - - name: Develop your apps with Agents Toolkit - href: concepts/build-and-test/develop-your-apps-with-toolkit.md - displayName: visual studio code, visual studio, agents toolkit, react web app, publish react app, debug - - name: Analyze app and agent usage in Developer Portal - href: concepts/build-and-test/analyze-your-apps-usage-in-developer-portal.md - displayName: App usage, metrics, usage, analytics, insights, telemetry, Import an existing app, agent usage - - name: Adaptive Card Previewer for VSC - items: - - name: Overview - href: concepts/build-and-test/adaptive-card-previewer.md - displayName: preview, Adaptive Card, ACP - - name: Install Adaptive Card Previewer - href: concepts/build-and-test/install-adaptive-card-previewer.md - displayName: install, Adaptive Card Previewer, ACP - - name: Adaptive Card Previewer for VS - href: concepts/build-and-test/adaptive-card-previewer-vs.md - displayName: ACP - - name: SDKs - items: - - name: Teams AI library v2 (preview) - href: /microsoftteams/platform/teams-ai-library/welcome - - name: TeamsFx SDK - href: toolkit/TeamsFx-SDK.md - displayName: getUserinfo - - name: Teams JavaScript client library - href: tabs/how-to/using-teams-client-library.md - displayName: iFrame, execute URL, getTabInstances - - name: Bot Framework SDK for Node.js - href: https://github.com/Microsoft/botbuilder-js - - name: Bot Framework SDK for .NET - href: https://github.com/Microsoft/botbuilder-dotnet - - name: Microsoft Graph SDKs - href: /graph/sdks/sdks-overview - - name: Legacy SDKs - items: - - name: Bots SDK (v3) - href: resources/bot-v3/bots-overview.md - items: - - name: Conversations - href: resources/bot-v3/bot-conversations/bots-conversations.md - items: - - name: Personal conversations with bots - href: resources/bot-v3/bot-conversations/bots-conv-personal.md - - name: Channel and group chat conversation bot - href: resources/bot-v3/bot-conversations/bots-conv-channel.md - displayName: payload - - name: Starting a conversation - href: resources/bot-v3/bot-conversations/bots-conv-proactive.md - displayName: Caching - - name: Cards and card actions - href: resources/bot-v3/bots-cards.md - - name: Message formatting - href: resources/bot-v3/bots-message-format.md - - name: Bot events - href: resources/bot-v3/bots-notifications.md - displayName: anonymous - - name: Context for bots - href: resources/bot-v3/bots-context.md - displayName: getContext - - name: Send and receive files - href: resources/bot-v3/bots-files.md - - name: Notification-only bots - href: resources/bot-v3/bots-notification-only.md - - name: Bot menus - href: resources/bot-v3/bots-menus.md - - name: Bots with tabs - href: resources/bot-v3/bots-with-tabs.md - - name: Format bot messages - href: resources/bot-v3/bots-text-formats.md - - name: Test a bot - href: resources/bot-v3/bots-test.md - - name: Message extensions SDK (v3) - items: - - name: Message extensions SDK (v3) - href: resources/messaging-extension-v3/messaging-extensions-overview.md - - name: Search extensions - href: resources/messaging-extension-v3/search-extensions.md - displayName: loop - - name: Action extensions - href: resources/messaging-extension-v3/create-extensions.md -- name: Build bots and agents - expand: true - items: - - name: Overview - href: bots/overview.md - displayName: AI bot, bot capability, command bot, workflow bot, custom engine agent, agent, conversational bot, activity handler, bot logic, notification bot - - name: Bots and agents in Teams - href: bots/build-a-bot.md - displayName: Bot samples, Code sample, Teams AI library, Microsoft Bot Framework SDK, build a bot, build AI bot, command bot, workflow bot, custom engine agent, agent, conversational bot, notification bot, tools, platforms, Azure OpenAI, Microsoft 365 Agents Toolkit, Azure AI Foundry - - name: Custom engine agent overview - href: /microsoft-365-copilot/extensibility/overview-custom-engine-agent?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - displayName: AI bot, Teams AI library, custom agent - - name: Teams AI library v2 (preview) - items: - - name: Get started - href: /microsoftteams/platform/teams-ai-library/welcome - - name: Teams AI library v1 - items: - - name: What is Teams AI library? - href: bots/how-to/teams-conversational-ai/teams-conversation-ai-overview.md - displayName: OpenAI, Azure OpenAI, LLM, ChatGPT, prompt, Math tutor, Assistants API, AI bot, custom engine agent, RAG, Intents to actions, AI, Teams AI library, custom engine agent, AI bot, responsible AI, prompts, augmentation, Function calls using AI SDK, AI SDK - - name: Quick start guide - href: bots/how-to/teams-conversational-ai/conversation-ai-quick-start.md - displayName: custom engine agent, AI bot, JavaScript, Python, C#, code sample, Microsoft 365 Agents Toolkit - - name: Build with Teams AI library - href: bots/how-to/teams-conversational-ai/how-conversation-ai-get-started.md - displayName: custom engine agent, AI bot, Teams AI library, prompt manager, Action planner, action handler, feedback loop, custom engine agent, AI library - - name: Understand Teams AI library - href: bots/how-to/teams-conversational-ai/how-conversation-ai-core-capabilities.md - displayName: AI activity handlers, Adaptive Card for AI bot, Teams AI library, AI library, Teams AI library, bot logic, OpenAI, Azure OpenAI, custom engine agent - - name: Build custom engine agent using Microsoft 365 Agents Toolkit - href: bots/how-to/teams-conversational-ai/teams-ai-library-tutorial.md - - name: Bot user experience - items: - - name: Custom engine agent user experience - href: bots/how-to/teams-conversational-ai/ai-ux.md - displayName: AI bot user experience, AI bot UX, custom engine agent, AI label, citation, feedback loop - - name: Stream bot messages - href: bots/streaming-ux.md - displayName: Streaming, response generation, AI library, AI SDK, REST API - - name: Enhance AI-generated bot messages - href: bots/how-to/bot-messages-ai-generated-content.md - displayName: AI label, citations, feedback buttons, sensitivity label, Powered by AI UX Kit - - name: Understand bot concepts - href: bots/bot-concepts.md - displayName: Microsoft Bot Framework SDK, Activity handler, Bot logic, Teams handler - - name: Send and receive messages - items: - - name: Build conversational capability - href: bots/build-conversational-capability.md - displayName: chat, Messages sent between your Microsoft Teams bot and one or more user, Teams channel data, RSC, conversation with RSC - - name: Receive all messages for bots and agents - href: bots/how-to/conversations/channel-messages-for-bots-and-agents.md - - name: Channel and group chat conversations with a bot - href: bots/how-to/conversations/channel-and-group-conversations.md - displayName: Teams conversational bots, mention, tag mention, user mention - - name: Create a commands menu - href: bots/how-to/create-a-bot-commands-menu.md - displayName: compose - - name: Conversation events in your Teams bot - href: bots/how-to/conversations/subscribe-to-conversation-events.md - displayName: conversation bot, activity, Message reaction events, event handling for install and uninstall events, customize bot conversation, bot conversation events, update bot conversation events - - name: Format the bot messages - href: bots/how-to/format-your-bot-messages.md - displayName: cross-platform support - - name: Send and receive files - href: bots/how-to/bots-filesv4.md - displayName: receive files using bot - - name: Send notifications - items: - - name: Build notification capability - href: bots/build-notification-capability.md - displayName: Adapter, notifications - - name: Send proactive messages - href: bots/how-to/conversations/send-proactive-messages.md - displayName: conversationId, send message, bot framework, notification, - - name: Command bot in Teams - href: bots/how-to/conversations/command-bot-in-teams.md - displayName: bot initialization - - name: Create prompt suggestions - href: bots/how-to/conversations/prompt-suggestions.md - displayName: prompt starter, suggested actions - - name: Workflow bot in Teams - href: bots/how-to/conversations/workflow-bot-in-teams.md - displayname: Jira, jira - - name: Get Teams-specific context - href: bots/how-to/get-teams-context.md - displayName: Fetch roster or user profile, get user profile, get roster, get team, get channel, get chat - - name: Configure bot scope - href: bots/how-to/bot-configuration-experience.md - displayName: configuration settings, fetchTask, config/fetch, config/submit - - name: Optimize bots with rate limits - href: bots/how-to/rate-limit.md - displayName: handle rate limit, detect transient exceptions, per thread limit, exponential backoff - - name: Explore advanced bot capabilities - items: - - name: Modify Teams bot API to fetch team or chat members - href: resources/team-chat-member-api-changes.md - displayName: team, chat, member, API, bot, fetch, team or chat members - - name: Calls and meetings bots - items: - - name: Overview - href: bots/calls-and-meetings/calls-meetings-bots-overview.md - - name: Real-time media calls and meetings - href: bots/calls-and-meetings/real-time-media-concepts.md - displayName: active and dominant speakers, SILK and G.722 for audio and H.264 for video, codec - - name: Register calls and meetings bot - href: bots/calls-and-meetings/registering-calling-bot.md - displayName: How Bot can create call, join meeting and transfer call - - name: Incoming call notifications - href: bots/calls-and-meetings/call-notifications.md - displayName: Redirects for region affinity, GeoDNS resolution - - name: Application-hosted media bots - href: bots/calls-and-meetings/requirements-considerations-application-hosted-media-bots.md - displayName: Service Fabric with Virtual Machine Scale Sets, instance-level public -- name: Build tabs - items: - - name: Tabs overview - href: tabs/what-are-tabs.md - displayName: Webpages embedded in Teams, declare custom tab in app manifest, contentUrl, web apps, device permissions for tabs - - name: Prerequisites - href: tabs/how-to/tab-requirements.md - displayName: clickjacking, device permissions for tabs - - name: Create a tab - href: tabs/how-to/create-personal-tab.md - displayName: App generator, Reorder static personal tabs, channel, or group custom tab, offline tab - - name: Get context for your tab - href: tabs/how-to/access-teams-context.md - displayName: getContext, entityId, groupId, User context, authentication flow from Microsoft Entra ID, retrieve context, theme changes - - name: Tab features - items: - - name: Open content in multi-window - href: tabs/open-content-in-stageview.md - displayName: Tab in Stageview, Collaborative Stageview, Stageview Multi-window, Stageview Modal, Teams multiwindow - - name: Create a configurable tab - href: tabs/how-to/create-channel-group-tab.md - displayName: create a channel tab or group tab, create a custom channel or group tab with ASP.NET Core, build app using Blazor - - name: Create a content page - href: tabs/how-to/create-tab-pages/content-page.md - displayName: Loading indicator, showLoadingIndicator, personal-scoped custom tab, channel or group custom tab - - name: Create a configuration page - href: tabs/how-to/create-tab-pages/configuration-page.md - displayName: configurationUrl - - name: Create a removal page - href: tabs/how-to/create-tab-pages/removal-page.md - displayName: Reconfigure tab, register remove handler - - name: Tabs on mobile - href: tabs/design/tabs-mobile.md - displayName: Teams Store apps approved by Microsoft for mobile - - name: Apps for shared channels - href: concepts/build-and-test/shared-channels.md - displayName: Cross-tenant notifications, context for shared channel, apps and permissions in shared channels - - name: Send activity feed notifications - href: /graph/teams-send-activityfeednotifications?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - displayName: activity feed, notification, customize notification - - name: App caching for your tab app - href: tabs/how-to/app-caching.md - displayName: App caching, caching, launch time, cache - - name: Build a dashboard tab app - href: tabs/how-to/Build-a-dashboard-tab-app.md - displayName: Dashboard, widget, Graph API call -- name: Build message extensions - items: - - name: What are message extensions? - href: messaging-extensions/what-are-messaging-extensions.md - displayName: handleTeamsMessagingExtensionFetchTask, commands - - name: Build message extensions using API - expanded: false - items: - - name: API-based message extensions - href: messaging-extensions/api-based-overview.md - displayName: OpenAPI Description, Search, single parameter, search based message extension - - name: Create API-based message extensions - href: messaging-extensions/create-api-message-extension.md - displayName: API-based, Microsoft 365 Agents Toolkit CLI, Developer Portal, Visual Studio Code, Visual Studio - - name: Build message extensions using Bot Framework - items: - - name: Bot-based message extensions - href: messaging-extensions/build-bot-based-message-extension.md - displayName: one-on-one conversation, search command, action command, search based message extension, action based message extension - - name: Action commands - items: - - name: Define action commands - href: messaging-extensions/how-to/action-commands/define-action-command.md - displayName: Command invoke locations, static list of parameters, action command manually - - name: Create and send dialogs - href: messaging-extensions/how-to/action-commands/create-task-module.md - displayName: Initial invoke request, respond to fetchTask, payload activity, handleTeamsMessagingExtensionFetchTask - - name: Respond to the dialog submit action - href: messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md - displayName: Compose, Respond to initial submit action, configure the poll, attribution for bot messages, submit action - - name: Search commands - items: - - name: Define search commands - href: messaging-extensions/how-to/search-commands/define-search-command.md - displayName: bot-based message extensions - - name: Respond to search commands - href: messaging-extensions/how-to/search-commands/respond-to-search.md - displayName: response card types - - name: Universal actions for search based message extensions - href: messaging-extensions/how-to/search-commands/universal-actions-for-search-based-message-extensions.md - displayName: Handle tap actions, Just-in-time install, JIT - - name: Bot-based message extension agent guidelines - href: messaging-extensions/dev-guidelines-agents.md - displayName: criteria, extend message extension, agent, Microsoft 365 Copilot, Copilot agents, plugins - - name: Extend bot-based message extension as agent - href: messaging-extensions/build-bot-based-agent.md - displayName: extend message extension, search based message extension, M365, Microsoft 365 Copilot - - name: Debug an agent for Microsoft 365 Copilot with developer mode - href: /microsoft-365-copilot/extensibility/debugging-copilot-plugin?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - displayName: Copilot, Microsoft 365 Copilot, enabled agents, matched functions, selected functions for execution, function execution details, plugin - - name: Copilot handoff - href: bots/how-to/conversations/bot-copilot-handoff.md - displayName: custom agent, custom engine agent, agent, conversation, Microsoft 365 Copilot, plugins - - name: Add link unfurling - href: messaging-extensions/how-to/link-unfurling.md - displayName: domain listing, wildcards, cache - - name: Micro-capabilities for website links - href: messaging-extensions/how-to/micro-capabilities-for-website-links.md - displayName: App less link unfurling -- name: Build apps for Teams meetings and calls - items: - - name: Apps for meetings and calls - href: apps-in-teams-meetings/teams-apps-in-meetings.md - displayName: apps in meetings, meeting lifecycle, meeting types in Teams, guest user, in-tenant user, federated or external user, anonymous user, scenes for meetings, meeting participants, app caching in Teams meeting - - name: Enable and configure apps for Teams meetings and calls - items: - - name: Build tabs for meeting - href: apps-in-teams-meetings/build-tabs-for-meeting.md - displayName: anonymous - - name: Build tabs for calling - href: apps-in-teams-meetings/build-tabs-for-calling.md - displayName: PSTN, calling extensibility, calls in Teams - - name: Build apps for meeting stage - href: apps-in-teams-meetings/build-apps-for-teams-meeting-stage.md - displayName: apps for meeting, share content, share to stage APIs, in-meeting document signing, meeting side panel, customize share button - - name: Share in meeting - href: concepts/build-and-test/share-in-meeting.md - displayName: generate a deep link - - name: Build in-meeting notifications - href: apps-in-teams-meetings/in-meeting-notification-for-meeting.md - displayName: bubble, targeted meeting, in-meeting, notification - - name: Enable app icon badging for Teams app - href: apps-in-teams-meetings/app-icon-badging-for-your-app.md - displayName: app icon badging - - name: Extensible conversations for meeting chat - href: apps-in-teams-meetings/build-extensible-conversation-for-meeting-chat.md - - name: Build apps for anonymous users - href: apps-in-teams-meetings/build-apps-for-anonymous-user.md - displayName: supportsAnonymousGuestUsers, guest, meetingExtensionDefinition - - name: Meeting apps APIs - href: apps-in-teams-meetings/meeting-apps-apis.md - displayName: OnMessageActivityAsync, payload, recurring, getparticipant, captions, targeted meeting notification, real-time meeting events, meeting start and end events - - name: Get meeting transcripts, recordings, and AI summaries - items: - - name: Meeting transcripts and recordings - href: graph-api/meeting-transcripts/overview-transcripts.md - displayName: get teams meeting transcripts, get teams meeting recordings, teams automatic meeting recording - - name: Get change notifications - href: /graph/teams-changenotifications-callrecording-and-calltranscript?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - - name: Get transcripts - href: /graph/api/resources/calltranscript?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - - name: Get recordings - href: /graph/api/resources/callrecording?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - - name: Get AI-generated meeting summaries - href: graph-api/meeting-transcripts/meeting-insights.md - displayName: get AI insights, get meeting insights, get meeting AI insights, meeting AI insights API - - name: Enhanced collaboration with Live Share - items: - - name: Live Share SDK - href: apps-in-teams-meetings/teams-live-share-overview.md - displayName: Loop, Fluid Framework, Azure Fluid Relay, distributed data structures, web sockets - - name: Getting started - items: - - name: Quick start guide - href: apps-in-teams-meetings/teams-live-share-quick-start.md - - name: Dice Roller tutorial - href: apps-in-teams-meetings/teams-live-share-tutorial.md - - name: Core capabilities - href: apps-in-teams-meetings/teams-live-share-capabilities.md - displayName: Live Share data structures, broadcast - - name: Media synchronization - href: apps-in-teams-meetings/teams-live-share-media-capabilities.md - displayName: Media synchronization, audio ducking - - name: Canvas - href: apps-in-teams-meetings/teams-live-share-canvas.md - displayName: Inking, cursors, live canvas - - name: How-to guides - items: - - name: Agile Poker tutorial - href: sbs-teams-live-share.yml - - name: Custom Azure Fluid Relay service - href: apps-in-teams-meetings/teams-live-share-how-to/how-to-custom-azure-fluid-relay.md - displayName: access token - - name: Live Share FAQ - href: apps-in-teams-meetings/teams-live-share-faq.md - - name: Custom Together Mode scenes in Teams - href: apps-in-teams-meetings/teams-together-mode.md - displayName: Single virtual scene, scene studio - - name: Integrate meetings and calls in external apps - href: get-started/b2c-apps.md - displayName: Teams meeting, Teams call, Teams meeting and call for external apps, external apps -- name: Build webhooks and connectors - items: - - name: Overview - href: webhooks-and-connectors/what-are-webhooks-and-connectors.md - displayName: Webhooks, Connectors, endpoint, message in channel, Teams message - - name: Create Outgoing Webhooks - href: webhooks-and-connectors/how-to/add-outgoing-webhook.md - displayName: HMAC security token, message in channel, Teams message - - name: Create Incoming Webhooks (Deprecated) - href: webhooks-and-connectors/how-to/add-incoming-webhook.md - displayName: share content in Microsoft Teams channels, external applications, message in channel, Teams message, incoming webhook - - name: Create connectors for Microsoft 365 Groups (Deprecated) - href: webhooks-and-connectors/how-to/connectors-creating.md - - name: Create and send messages (Deprecated) - href: webhooks-and-connectors/how-to/connectors-using.md - displayName: MessageCard, Attachments, potentialAction, Send messages using cURL and PowerShell, Rate limiting for connectors, ActionCard, message in channel, Teams message -- name: Build cards and dialogs - items: - - name: What are cards and dialogs? - href: task-modules-and-cards/cards-and-task-modules.md - - name: Build cards - items: - - name: Cards overview - href: task-modules-and-cards/what-are-cards.md - displayName: People picker, type-ahead, people icon - - name: Types of cards - href: task-modules-and-cards/cards/cards-reference.md - displayName: MessageCard, correlationId, Markdown, what-are-webhooks-and-connectors Button, Flexible layout, receipt card, carousel card, Hero card, List card, Card collections, Thumbnail card, Receipt card, Adaptive Card, command bot - - name: Format cards in Teams - href: task-modules-and-cards/cards/cards-format.md - displayName: Information masking, background, extension, notification, HTML, rich text, responsive Adaptive Cards, targetwidth, CodeBlock, borders, rounded corners - - name: Card actions - href: task-modules-and-cards/cards/cards-actions.md - displayName: openUrl, potentialAction, messageBack, imBack, invoke, signin, Adaptive Card, configure cards, bots - - name: Container layouts in Adaptive Cards - href: task-modules-and-cards/container-layouts.md - displayName: container layout, Layout.Stack, Layout.Flow, Layout.AreaGrid, responsive layout, stack elements - - name: Charts in Adaptive Cards - href: task-modules-and-cards/cards/charts-in-adaptive-cards.md - displayName: chart, graph, Adaptive Card, donut chart, gauge chart, vertical bar chart, horizontal bar chart, line chart, pie chart, visual representations - - name: People Picker in Adaptive Cards - href: task-modules-and-cards/cards/people-picker.md - displayName: setting, channel, static typeahead, persona, persona set - - name: Typeahead search in Adaptive Cards - href: task-modules-and-cards/cards/dynamic-search.md - displayName: static and dynamic typeahead search, Input.ChoiceSet, dependent inputs, valueChangedAction, Action.ResetInputs, associatedInputs - - name: Media elements in Adaptive Cards - href: task-modules-and-cards/cards/media-elements-in-adaptive-cards.md - displayName: media elements, media files, Adaptive Card, command bot - - name: Universal Actions for Adaptive Cards - items: - - name: Universal Actions overview - href: task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Overview.md - - name: Build Universal Actions for Adaptive Cards - href: task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Work-with-Universal-Actions-for-Adaptive-Cards.md - displayName: Activity, Sequential Workflows - - name: User Specific Views - href: task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/User-Specific-Views.md - displayName: Poll creator controls, channel, extension - - name: Sequential Workflows - href: task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Sequential-Workflows.md - displayName: Sequential Workflows - - name: Up to date cards - href: task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Up-To-Date-Views.md - - name: Build dialogs - items: - - name: Dialogs overview - href: task-modules-and-cards/what-are-task-modules.md - displayName: Task module, open dialog, command bot, Bot Framework Web Chat, Adaptive Card - - name: Invoke and dismiss dialogs - href: task-modules-and-cards/task-modules/invoking-task-modules.md - displayName: JavaScript dialogs (task modules), keyboard and accessibility guidelines, module sizing, css - - name: Use dialogs in tabs - href: task-modules-and-cards/task-modules/task-modules-tabs.md - displayName: payload - - name: Use dialogs from bots - href: task-modules-and-cards/task-modules/task-modules-bots.md - displayName: create dialogue box -- name: Add authentication - items: - - name: User authentication in Teams - href: concepts/authentication/authentication.md - displayName: Single sign-on, OAuth provider - - name: Enable SSO for tab app using Entra ID - items: - - name: Overview for tab SSO - href: tabs/how-to/authentication/tab-sso-overview.md - - name: Configure tab app in Microsoft Entra ID - href: tabs/how-to/authentication/tab-sso-register-aad.md - - name: Add code to enable SSO for tab - href: tabs/how-to/authentication/tab-sso-code.md - displayName: getAuthToken - - name: Update app manifest and preview tab app - href: tabs/how-to/authentication/tab-sso-manifest.md - displayName: application ID URI - - name: Grant Microsoft Graph permissions and scopes - href: tabs/how-to/authentication/tab-sso-graph-api.md - displayName: Graph permissions - - name: Enable SSO for bot and message extension app using Entra ID - items: - - name: Overview - href: bots/how-to/authentication/bot-sso-overview.md - - name: Configure bot app in Microsoft Entra ID - href: bots/how-to/authentication/bot-sso-register-aad.md - - name: Add code to enable SSO - href: bots/how-to/authentication/bot-sso-code.md - - name: Update app manifest and preview bot app - href: bots/how-to/authentication/bot-sso-manifest.md - - name: Grant Microsoft Graph permissions and scopes - href: bots/how-to/authentication/bot-sso-graph-api.md - - name: Enable SSO for Adaptive Cards using Entra ID - items: - - name: Overview - href: task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/enable-sso-for-your-adaptive-cards-universal-action.md - displayName: Adaptive Cards, universal action, SSO authentication, Action.Execute, SSO - - name: Add code to enable SSO - href: task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/sso-adaptive-cards-universal-action.md - displayName: SSO, Adaptive Cards, OAuth, universal action, SSO authentication, Action.Execute SSO - - name: Troubleshoot SSO authentication - href: tabs/how-to/authentication/tab-sso-troubleshooting.md - displayName: Caching - - name: Use third party IdP authentication - items: - - name: Third party OAuth IdP overview - href: tabs/how-to/authentication/auth-flow-tab.md - displayName: OAuth Identity Providers, authentication using IdP - - name: Add authentication to tab app - href: tabs/how-to/authentication/auth-tab-aad.md - - name: Add authentication to bot app - href: bots/how-to/authentication/add-authentication.md - displayName: Loop, validDomain, valid domain, validdomain - - name: Add authentication to message extension app - href: messaging-extensions/how-to/add-authentication.md - - name: Add authentication to Adaptive Cards - href: task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/authentication-flow-in-universal-action-for-adaptive-cards.md - displayName: Adaptive Cards, universal action, third party Idp authentication, Action.Execute, OAuth, nominal authentication - - name: Enable authentication for API-based message extensions - items: - - name: Overview - href: messaging-extensions/build-api-based-message-extension.md - display name: security, data privacy, secret service - - name: Enable API key authentication - href: messaging-extensions/api-based-secret-service-auth.md - display name: Secret key, API key registration - - name: Enable SSO for API based message extensions - href: messaging-extensions/api-based-microsoft-entra.md - display name: API key, API key registration, access token, register API key, SSO - - name: Enable OAuth for API based message extension - href: messaging-extensions/api-based-oauth.md - displayName: Authorization server, Developer Portal, OAuth authentication, OAuth 2.0, Identity platform - - name: Enable nested app authentication - href: concepts/authentication/nested-authentication.md - displayName: Nested app, authentication, tabs, single page apps, use case scenario, MSAL, SSO - - name: Use external OAuth providers - href: tabs/how-to/authentication/auth-oauth-provider.md -- name: Integrate device capabilities - items: - - name: What are device capabilities? - href: concepts/device-capabilities/device-capabilities-overview.md - displayName: camera, microphone, gallery, QR, barcode scanner, location - - name: Device permissions for Teams app - href: concepts/device-capabilities/native-device-permissions.md - displayName: Teams app permission - - name: Device permissions for the browser - href: concepts/device-capabilities/browser-device-permissions.md - displayName: web apps, browser permission - - name: Integrate media capabilities - href: concepts/device-capabilities/media-capabilities.md - displayName: camera - - name: Integrate QR or barcode scanner capability - href: concepts/device-capabilities/qr-barcode-scanner-capability.md - - name: Integrate location capabilities - href: concepts/device-capabilities/location-capability.md - displayName: attendance -- name: Utilize Teams data with Microsoft Graph - items: - - name: Overview - href: /graph/teams-concept-overview?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - displayName: Permissions, communication, channels, delegated, reports, extensions - - name: Microsoft Graph Toolkit - href: /graph/toolkit/overview?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - displayName: Access, routing - - name: Get started - href: /graph/toolkit/get-started/build-a-microsoft-teams-tab?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - displayName: Access, report, MSAL2 - - name: Teams app permissions - href: graph-api/App-permissions/Teams-app-permissions.md - displayName: RSC permissions - - name: Resource-specific consent - items: - - name: RSC permissions - href: graph-api/rsc/resource-specific-consent.md - displayName: types of RSC, delegated, application - - name: Preapproval of RSC permissions - href: graph-api/rsc/preapproval-instruction-docs.md - displayName: User, team, chat, application, delegated - - name: Grant RSC permission to your app - href: graph-api/rsc/grant-resource-specific-consent.md - displayName: Permissions, delegated, user, team, chat, application - - name: Proactive app installation to send messages - href: graph-api/proactive-bots-and-messages/graph-proactive-bots-and-messages.md - displayName: app installation, proactive message, proactive bot installation, add bot to conversation, bot conversation using graph api - - name: Approvals app APIs - href: /graph/approvals-app-api?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - displayName: Approvals, Approvals API, Get approvals, Track and report requests, Customize approval - - name: Import third-party messages - href: graph-api/import-messages/import-external-messages-to-teams.md - - name: Code samples - href: https://github.com/OfficeDev/microsoft-teams-samples#graph-apis - displayName: graph api samples -- name: Extend your app across Microsoft 365 - items: - - name: Overview - href: m365-apps/overview.md - displayName: Application, Outlook, and Office as application hosts, extend, Outlook Add-ins - - name: Prerequisites - href: m365-apps/prerequisites.md - - name: Plan your app experience across Microsoft 365 hosts - href: m365-apps/specify-runtime-requirements.md - displayName: runtime requirements, requirement set, one-way dependency, mutual dependency - - name: Teams tabs in Microsoft 365 and Outlook - items: - - name: Enable Teams personal tab for Microsoft 365 - href: m365-apps/extend-m365-teams-personal-tab.md - displayName: Microsoft 365, Office 365 - - name: TeamsJS capability across Microsoft 365 - href: m365-apps/teamsjs-support-m365.md - - name: Teams meeting apps in Outlook - href: m365-apps/extend-m365-meeting-app.md - displayName: Microsoft 365, Office 365, meeting app - - name: Teams message extensions in Outlook - items: - - name: Enable Teams message extension for Outlook - href: m365-apps/extend-m365-teams-message-extension.md - displayName: mail, Microsoft 365, Office 365Microsoft 365 - - name: Teams message extension vs. Outlook add-in - href: m365-apps/me-or-outlook-add-in.md - displayName: mail, Microsoft 365, Office 365, Outlook add-in, link unfurling - - name: Adaptive Card-based Loop components - items: - - name: Design your Loop component - href: m365-apps/design-loop-components.md - displayName: loop component - - name: Build your Loop component - href: m365-apps/cards-loop-component.md - displayName: loop component, weburl, metadata - - name: Combine Teams apps and Outlook Add-ins - items: - - name: Overview - href: m365-apps/overview-combining-add-in-and-teams-app.md - displayName: Microsoft 365, Office 365, Outlook add-in, integrate Outlook Add-in to Teams, Teams app Outlook Add-in - - name: Add an Outlook Add-in to a Teams app - href: m365-apps/combine-office-add-in-and-teams-app.md - displayName: Microsoft 365, Office 365, Outlook add-in, integrate Outlook Add-in to Teams, Teams app Outlook Add-in - - name: Actions in Microsoft 365 - items: - - name: What are Actions? - href: m365-apps/actions-in-m365.md - displayName: actions design - - name: Build Actions in Microsoft 365 - href: m365-apps/build-actions-in-m365.md - displayName: build actions, retrieve action - - name: Actions in Microsoft 365 quick start guide - href: m365-apps/actions-in-m365-quick-start-guide.md - displayName: run in Azure - - name: Publish Teams apps for Microsoft 365 - href: m365-apps/publish.md -- name: Teams developer documentation FAQs - href: teams-faq.md -- name: App manifest - items: - - name: App manifest - href: resources/schema/manifest-schema.md - displayName: version, validDomain, valid domain, validdomain, properties, meetingExtensionDefinition - - name: Public developer preview - items: - - name: Overview - href: resources/dev-preview/developer-preview-intro.md - - name: Public developer preview app manifest - href: resources/schema/manifest-schema-dev-preview.md - displayName: properties -- name: Test your app or agent + - name: What are AI-powered agents? + href: agents-in-teams/get-started/what-are-ai-powered-agents-outline.md + - name: Why build on Teams? + href: agents-in-teams/get-started/why-build-agents-on-teams-outline.md + - name: Key agent scenarios and examples + href: agents-in-teams/get-started/key-agent-scenarios-examples-outline.md + - name: Quick-start guide - build your first agent + href: agents-in-teams/get-started/quick-start-build-your-first-agent-outline.md + +- name: Plan your agent + expanded: false items: - - name: Overview - href: concepts/build-and-test/test-app-overview.md - displayName: Prepare your Microsoft 365 tenant, add test data to your Microsoft 365 tenant - - name: Prepare your Microsoft 365 tenant - href: concepts/build-and-test/prepare-your-o365-tenant.md - displayName: Basic, Standard, Enterprise E1, E3, and E5, developer, Education, Education Plus, and Education E5 - - name: Choose a test setup and debug Teams app - href: concepts/build-and-test/debug.md - displayName: Purely hosted, locally hosted, cloud hosted - - name: Add test data to your environment - href: concepts/build-and-test/test-data.md - displayName: Allow users to upload apps - - name: Test your tab - items: - - name: Dev Tools for Microsoft Teams tabs - href: tabs/how-to/developer-tools.md - displayName: DevTools - - name: Test your bot - items: - - name: Test and debug locally with IDE - displayName: Bot Emulator - href: bots/how-to/debug/locally-with-an-ide.md - - name: Debug with inspection middleware - href: /azure/bot-service/bot-service-debug-inspection-middleware - displayName: SDK v4, EchoBot built, create a bot quickstart - - name: Debug calling and meeting bot locally - href: bots/calls-and-meetings/debugging-local-testing-calling-meeting-bots.md - displayName: signaling - - name: Microsoft Graph - items: - - name: Test RSC permissions - href: graph-api/rsc/test-resource-specific-consent.md - displayName: Postman app - - name: JSON test file for team RSC - href: graph-api/rsc/test-team-rsc-json-file.md - - name: JSON test file for chat RSC - href: graph-api/rsc/test-chat-rsc-json-file.md -- name: Publish your app or agent + - name: Choose your agent use-case + href: agents-in-teams/plan/choose-your-agent-use-case-outline.md + - name: Agent types and capabilities + href: agents-in-teams/plan/agent-types-capabilities-outline.md + displayName: agent design, user experience, user interface, user interaction + - name: Design best practices for agents + href: agents-in-teams/plan/design-best-practices-for-agents-outline.md + +- name: Build your agent + expanded: false items: - - name: Overview - href: concepts/deploy-and-publish/apps-publish-overview.md - displayName: configure default install options, GCC, Customize your app - - name: Enable customization for your app - href: concepts/design/enable-app-customization.md - displayName: Customize your app, update app name, branding, hide and unhide app, accent - - name: Configure default options for Teams app - href: concepts/deploy-and-publish/add-default-install-scope.md - displayName: default install scope, default capability for shared scopes, block apps, apps to meetings, app default options, open as tab, open as bot, default landing - - name: Create Teams app package - href: concepts/build-and-test/apps-package.md - displayName: Host your app, HTTPS, cloud server, bot icon, app icons - - name: Upload your app in Teams - href: concepts/deploy-and-publish/apps-upload.md - - name: Publish to your org - href: /microsoftteams/teams-custom-app-policies-and-settings?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - displayName: upload custom apps to organization, Org-wide app settings, Remove a custom app from your organization's store - - name: Publish to the Teams Store - items: - - name: Overview - href: concepts/deploy-and-publish/appsource/publish.md - displayName: AppSource, Rapid app approval, approve, publisher verification, what to expect after you submit your app, SaaS offer, concierge service, must fix, good-to-fix, blocker, test instructions - - name: Teams Store validation guidelines - href: concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md - displayName: validDomain, valid domain, validdomain, logo, Suggested, mandatory, value proposition, advertising, stacked text, whiteboarding apps, message spamming, Avatars, commercial marketplace certification policies, security, general functionality and performance, suitable for workplace consumption, financial information, external domains, sensitive content, privacy policy - - name: Copilot validation guidelines - href: concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines.md - displayName: Criteria, extend message extension, agent, Microsoft 365 Copilot, customize Microsoft 365 Copilot, declarative agent, plugins - - name: Create Partner Center developer account - href: concepts/deploy-and-publish/appsource/prepare/create-partner-center-dev-account.md - displayName: Support issues, account verification status, employee verification process, business verification process, support ticket - - name: Prepare your Teams Store submission - href: concepts/deploy-and-publish/appsource/prepare/submission-checklist.md - displayName: Testing instructions, Teams Store listing, Microsoft Teams app validation tool, compile testing instructions, admin account and non admin account, preconfigured account, premium or upgraded features, tenant configuration, Geo-filtering - - name: Update Apple Developer Program Team ID - href: concepts/deploy-and-publish/appsource/prepare/update-apple-store-team-connect-id.md - displayName: Enable users to install your app on Teams iOS platform, app acquisition on mobile - - name: Submit your app - href: /office/dev/store/add-in-submission-guide?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - - name: Resolve issues if your Teams Store submission fails - href: concepts/deploy-and-publish/appsource/resolve-submission-issues.md - displayName: Resubmit your app, multiple submission failures, Microsoft concierge, teamsubm@microsoft.com - - name: Maintain your published app - href: concepts/deploy-and-publish/appsource/post-publish/overview.md - displayName: Promote your app, stop selling, stop app distribution, analyze app usage, best practices - - name: Teams Store ranking parameters - href: concepts/deploy-and-publish/appsource/post-publish/teams-store-ranking-parameters.md - displayName: Microsoft Publisher Agreement, app update or new release, user engagement data - - name: Common reasons for app validation failure - href: concepts/deploy-and-publish/appsource/common-reasons-for-app-validation-failure.md - displayName: App description, Partner Center, app manifest, Microsoft trademark and brand guidelines, external domains, testability, bot functionality, AI-generated content, mobile experience, app functionality - - name: Drive customer adoption of your app - href: promote-app-adoption.md - displayName: app promotion, awareness, adoption, rollout, admin approval, change management -- name: Monetize your app + - name: Tools and SDKs for building agents + href: agents-in-teams/build/tools-sdk-for-agents-outline.md + - name: App manifest for agents + href: agents-in-teams/build/app-manifest-for-agents-outline.md + - name: Add tabs, message extensions, and cards to your agent + href: agents-in-teams/build/build-bots-message-extensions-tabs-cards-outline.md + +- name: Integrate your agents + expanded: false items: - - name: App monetization - href: concepts/deploy-and-publish/appsource/prepare/monetize-overview.md - displayName: Subscription, In-app purchases, Free trials, Test preview, paid, fee, Pricing model, SaaS offer, private offer - - name: SaaS offer for your Teams app - href: concepts/deploy-and-publish/appsource/prepare/include-saas-offer.md - displayName: transactable SaaS offer, create SaaS offer, UsageRights, configure offer, create plan, submit offer, SaaS Fulfillment API - - name: Test your SaaS offer - href: concepts/deploy-and-publish/appsource/prepare/Test-preview-for-monetized-apps.md - displayName: preview offer ID, configure preview offer, error scenarios - - name: Publish your SaaS app - href: concepts/deploy-and-publish/appsource/prepare/publish-saas-offer-app.md - displayName: go live, configure, SaaS app, SaaS offer, publish, remove offer, post purchase - - name: Configure in-app purchases - href: concepts/deploy-and-publish/appsource/prepare/in-app-purchase-flow.md - displayName: manifest, purchase experience API, purchase - - name: App subscriptions and licenses - href: concepts/deploy-and-publish/appsource/prepare/end-user-purchase-experience.md - displayName: Purchase, Teams apps, License, manage, buy subscriptions, ISVs, Manage, License, third party, SaaS, Partner Center -- name: Grow your app + - name: Authentication and single sign-on + href: agents-in-teams/integrate/authentication-sso-outline.md + - name: Microsoft Graph integration + href: agents-in-teams/integrate/microsoft-graph-integration-outline.md + - name: Extend agents across Microsoft 365 + href: agents-in-teams/integrate/extend-agents-across-microsoft-365-outline.md + +- name: Extend your agent + expanded: false items: - - name: Strategize and execute app growth - href: concepts/deploy-and-publish/appsource/post-publish/app-growth/overview-app-growth.md - displayName: growth, investment, monetize, market - - name: Guide to grow your app - items: - - name: Growth lifecycle for your app - href: concepts/deploy-and-publish/appsource/post-publish/app-growth/app-growth-lifecycle.md - displayName: lifecycle, traction, build, launch, scale, succeed, GTM - - name: Build your collaborative app - href: concepts/deploy-and-publish/appsource/post-publish/app-growth/build-app.md - displayName: Build, collaborative, stage, developer - - name: Launch your collaborative app - href: concepts/deploy-and-publish/appsource/post-publish/app-growth/launch-app.md - displayName: social media, blog post, press release, freemium, marketing, banners - - name: Gain traction for collaborative apps - href: concepts/deploy-and-publish/appsource/post-publish/app-growth/gain-traction.md - displayName: upskill, awareness, marketplace, activation, rollout, monetization - - name: Scale your collaborative app - href: concepts/deploy-and-publish/appsource/post-publish/app-growth/scale-app.md - displayName: CSP, webinar, advertise, pitch, sell - - name: Succeed with your collaborative app - href: concepts/deploy-and-publish/appsource/post-publish/app-growth/succeed.md - displayName: TAM, PQL, metrics, success, ROI -- name: Integrate with Teams + - name: Cross-platform capabilities + href: agents-in-teams/extend/cross-platform-capabilities-outlook-outline.md + - name: Device capabilities + href: agents-in-teams/extend/device-capabilities-outline.md + - name: Notifications and webhooks + href: agents-in-teams/extend/notifications-webhooks-outline.md + +- name: Additional capabilities + expanded: false items: - - name: Web app integration - href: samples/integrate-web-apps-overview.md - displayName: application, Low code platforms - - name: Considerations for Teams Integration - href: samples/integrating-web-apps.md - displayName: Multitenancy, SharePoint - - name: Create Virtual Assistant - href: samples/virtual-assistant.md - displayname: OnMessageActivityAsync, multi-language support - - name: Power Platform apps - items: - - name: Low-code custom apps - href: samples/teams-low-code-solutions.md - displayName: Power BI, Power Platform apps, Project Oakdale - - name: Add Power Virtual Agents chatbot - href: bots/how-to/add-power-virtual-agents-bot-to-teams.md - - name: App templates for Microsoft Teams - href: samples/app-templates.md - displayName: Attendance, Adoption, Champion Management Platform, Company Communicator, FAQ Plus, Icebreaker, Microsoft 365 Learning Pathways, Microsoft Teams Emergency Operations Center (TEOC), Tournaments of Teams - - name: Production-ready Shifts Connectors - href: samples/shifts-wfm-connectors.md - displayName: Teams Shifts Workforce management (WFM) - - name: Moodle LMS - items: - - name: What is Moodle LMS? - href: resources/moodle-overview.md - displayName: Facilitate hybrid remote meetings, Personalize meeting panels, Automate facility, Build Citizen developer apps, moodle lms, mconnect, skooler - - name: Microsoft 365 plugins - href: resources/m365-plugins/m365-plugins-overview.md - displayName: OpenID Connect, Microsoft 365 Repository, Microsoft 365 integration, Teams Meeting, Teams Theme, OneNOte, Microsoft Block, oEmbed Filter - - name: Install Moodle LMS - href: resources/moodleInstructions.md - - name: Moodle FAQ - href: resources/faqs.md - - name: Share to Teams - items: - - name: Share to Teams from web apps - href: concepts/build-and-test/share-to-teams-from-web-apps.md - displayName: share to Teams for Education, share to meeting, side panel content, auto populate content, live meeting, on-going meeting - - name: Share to Teams from personal app or tab - href: concepts/build-and-test/share-to-teams-from-personal-app-or-tab.md - displayName: share to meeting, personal app - - name: Add a Teams tab to SharePoint - href: tabs/how-to/tabs-in-sharepoint.md - - name: Third-party storage app - href: concepts/device-capabilities/third-party-storage-capability.md - displayName: third party storage, drag drop files, cloud storage app - - name: Create deep links - items: - - name: Deep links overview - href: concepts/build-and-test/deep-links.md - displayName: deep link meeting sidepanel, share content in meeting, protocol handlers, chat deep link, app deep link, workflow deep link, navigate within your app, protocol handlers, deep link parameters, deep link URL - - name: Deep link to an application - href: concepts/build-and-test/deep-link-application.md - displayName: custom app deep link, tab deep link, deep link for app install dialog, invoke Stageview, navigate within your app, protocol handlers,create deep link for specific chat, deeplink for new chat, navigate to chat, channel conversation, deep link parameters, deep link URL - - name: Deep link to Teams chat - href: concepts/build-and-test/deep-link-teams.md - displayName: channel conversation - - name: Deep link to a workflow in Teams - href: concepts/build-and-test/deep-link-workflow.md - displayName: deeplink for meeting schedule dialog, audio video call, deep link to join meeting - - name: Execution and handling of deeplinks - href: concepts/build-and-test/deep-links-execution-handling.md - displayName: execute deep link, deeplink API, hyperlink text, raw link text, deep link from tab, deep link parameters, deep link URL - - name: Integrate People Picker - href: concepts/device-capabilities/people-picker-capability.md - - name: Use Fluid with Teams - href: tabs/how-to/using-fluid-msteam.md - displayName: Fluid client, Azure Fluid Relay, Fluid Containers, React component -- name: Resources + - name: Build a conventional Teams app + href: agents-in-teams/classic/build-a-traditional-teams-app-outline.md + - name: Build tabs, bots & message extensions + href: agents-in-teams/classic/tabs-bots-message-extensions-outline.md + - name: Meeting apps and collaborative features + href: agents-in-teams/classic/meeting-apps-collaborative-features-outline.md + +- name: Test your agent + expanded: false items: - - name: Localization - items: - - name: Localize your app - href: concepts/build-and-test/apps-localization.md - displayname: localizationInfo, Marketplace listings, Partner Center, AppSource - - name: Localize JSON schema reference - href: resources/schema/localization-schema.md - displayname: meetingExtensionDefinition - - name: Cookies and local storage - href: resources/samesite-cookie-update.md - displayName: Cookies, third-party cookies, SameSite, Lax, Strict, None, Secure, SameSite=None, SameSite=Lax, SameSite=Strict - - name: Best practices for Teams mobile app - href: resources/teams-mobile-best-practices.md - displayName: Teams mobile app, best practices, service worker, lighthouse, performance audit - - name: Contribute to Teams documentation - href: resources/teams-contributor-reference.md - - name: Troubleshoot your Microsoft Teams app - href: resources/troubleshoot.md - displayName: DevTools, Cache-Control, authentication issues, app uploading error - - name: Know about New Microsoft Teams client - href: resources/teams-updates.md - displayName: Classic Teams, new Teams client, Teams 2.1 - - name: Extend Microsoft 365 Copilot - href: messaging-extensions/how-to-extend-copilot.md - displayName: message extension, plugin, Copilot, Microsoft 365 Copilot -- name: Support and feedback - href: feedback.md - displayName: Developer community help, questions, suggestions, contact, issues + - name: Local testing your agent + href: agents-in-teams/test/local-testing-your-agent-outline.md + - name: Manifest validation workflow + href: agents-in-teams/test/manifest-validation-workflow-outline.md + - name: Troubleshooting tips + href: agents-in-teams/test/troubleshooting-tips-outline.md + +- name: Publish your agent to the Teams Store + href: agents-in-teams/publish/publish-your-agent-to-teams-store-outline.md + +- name: Grow adoption and track usage + href: agents-in-teams/publish/grow-adoption-track-usage-outline.md +- name: Monetize your agent + href: agents-in-teams/publish/monetize-your-agent-outline.md + +- name: Frequently asked questions + href: agents-in-teams/resources/frequently-asked-questions-outline.md +- name: Templates and sample apps + href: agents-in-teams/resources/templates-and-sample-apps-outline.md + +# - name: Reference +# expanded: false +# items: +# - name: SDK & API reference hub +# href: agents-in-teams/reference/sdk-and-api-reference-hub-outline.md + +- name: Support and feedback channels + href: agents-in-teams/resources/support-and-feedback-channels-outline.md diff --git a/msteams-platform/agents-in-teams/build/app-manifest-for-agents-outline.md b/msteams-platform/agents-in-teams/build/app-manifest-for-agents-outline.md new file mode 100644 index 00000000000..b4b23bd0228 --- /dev/null +++ b/msteams-platform/agents-in-teams/build/app-manifest-for-agents-outline.md @@ -0,0 +1,123 @@ +--- +title: App manifest for AI-powered agents +description: Reference guide to the JSON manifest that defines skills, permissions, and runtime requirements for Microsoft Teams agents and Copilot plug-ins. +ms.localizationpriority: medium +ms.topic: reference +ms.date: 07/02/2025 +--- +# App manifest for AI-powered agents + +[Brief intro – ≤ 75 words about the role of the manifest, where it lives, and how it powers both Teams and Copilot surfaces.] + +## Manifest versions and $schema URLs + +| Version | Use-case | $schema URL | Notes | +|---------|----------|-------------|-------| +| `v1.22` | AI agents & Copilot plug-ins (preview) | `https://developer.microsoft.com/json-schemas/teams/v1.22/MicrosoftTeams.schema.json` | Adds `copilotAgents`, `actions`, `elementRelationshipSet`. | +| `v1.16–1.21` | Classic Teams apps | | Still supported; agents require 1.22+. | + +## Minimum file structure + +```json +{ + "$schema": ".../v1.22/MicrosoftTeams.schema.json", + "manifestVersion": "1.22", + "version": "1.0.0", + "id": "", + "developer": { ... }, + "name": { "short": "Contoso Agent" }, + "description": { "short": "..." }, + "icons": { "color": "color.png", "outline": "outline.png" }, + "copilotAgents": { ... }, + "permissions": [ ... ], + "validDomains": [ ... ] +} +``` + +## Key manifest sections for agents + +### `copilotAgents` + +| Property | Type | Required | Description | +|----------|------|----------|-------------| +| `declarativeAgents` | array | Optional | Plug-in style agents powered by OpenAPI + declarative prompts. | +| `customEngineAgents` | array | Optional | Agents that run custom orchestration logic. | + +#### Declarative agent example + +```json +{ + "copilotAgents": { + "declarativeAgents": [ + { + "id": "salesInsights", + "fullName": "Contoso Sales Insights", + "description": "Answer questions about opportunities", + "actions": [ "listDeals", "getDeal" ], + "knowledgeSources": [ "https://contoso.com/kb/sales" ] + } + ] + } +} +``` + +### `actions` + +Defines function-calling surface for Copilot. + +```json +"actions": [ + { + "id": "getDeal", + "parameters": [ + { "name": "dealId", "type": "string", "description": "CRM opportunity ID" } + ], + "description": "Fetches a specific deal" + } +] +``` + +### `elementRelationshipSet` *(cross-host runtime)* + +- `oneWayDependency` – e.g., message extension depends on bot. +- `mutualDependencies` – e.g., tab & agent must deploy together. + +### `authorization.permissions.resourceSpecific` + +Explain how to request RSC scopes so Copilot can call the agent on behalf of the user. + +### `webApplicationInfo` + +Reference to Microsoft Entra app; required for SSO and Graph calls. + +### `validDomains` + +List all service endpoints—including dev tunnels—your agent will call. + +## Tooling tips + +- **Agents Toolkit** auto-generates and updates manifest during scaffold, debug, and deploy. +- **Developer Portal** offers a form-based manifest editor with agent-specific fields. +- Use `atk package` or `atk preview` to validate against the schema and perform static checks. + +## Common validation errors + +| Error message | Fix | +|---------------|-----| +| `manifestVersion must be 1.22` | Upgrade `$schema` and `manifestVersion`. | +| `actions.parameters missing description` | Add `description` to every parameter. | +| `id not unique` | Generate a new GUID for each agent. | + +## Samples + +- **Declarative plug-in manifest:** `teams-samples/agents/declarative-plugin/manifest.json` +- **Custom engine agent manifest:** `teams-samples/agents/custom-engine/manifest.json` + +## Next step + +Learn how to [Build bots, message extensions, tabs, and cards](build-bots-message-extensions-tabs-cards-outline.md) that implement the skills declared in your manifest. + +## See also + +- [Tools & SDKs for building agents](tools-sdk-for-agents-outline.md) +- [Resource-specific consent for agents](../../graph-api/rsc/resource-specific-consent.md) diff --git a/msteams-platform/agents-in-teams/build/build-bots-message-extensions-tabs-cards-outline.md b/msteams-platform/agents-in-teams/build/build-bots-message-extensions-tabs-cards-outline.md new file mode 100644 index 00000000000..11011da30d8 --- /dev/null +++ b/msteams-platform/agents-in-teams/build/build-bots-message-extensions-tabs-cards-outline.md @@ -0,0 +1,119 @@ +--- +title: Build bots, message extensions, tabs, and cards for your agent +description: Implement conversational logic, rich UI surfaces, and interaction patterns that bring your AI-powered agent to life in Microsoft Teams. +ms.localizationpriority: medium +ms.topic: how-to +ms.date: 07/02/2025 +--- +# Build bots, message extensions, tabs, and cards + +[Template instruction → One-sentence overview: “This guide shows how to wire up core Teams capabilities—bots, message extensions, tabs, and Adaptive Cards—around your agent’s AI logic.”] + +## Prerequisites + +- Completed [Quick-start guide](../get-started/quick-start-build-your-first-agent-outline.md) +- Agents Toolkit CLI or IDE extension installed +- Teams AI library configured in your project + +## 1. Add conversational bot logic + +### Scaffold a bot endpoint + +```bash +atk add bot --name HelpDeskBot +``` + +[Template instruction → Explain generated folders and Bot Framework adapter integration.] + +### Register handlers with Teams AI library + +```ts +app.message(/.*/, async (context, state) => { + const response = await planner.completePrompt(context); + await context.sendActivity(response); +}); +``` + +[Template instruction → ≤ 100 words explanation.] + +### Enable SSO & user context + +[Template instruction → One code block `authentication.getAuthToken` + explanation.] + +## 2. Expose actions through message extensions + +### Define search & action commands in manifest + +```json +"composeExtensions": [{ + "botId": "{{BOT_ID}}", + "commands": [{ + "id": "createTicket", + "type": "action", + "title": "Create ticket", + "description": "Open help-desk ticket" + }] +}] +``` + +### Handle `invoke` in code + +[Template instruction → JS/TS snippet that returns Adaptive Card dialog.] + +## 3. Surface information with tabs + +### Add a personal tab + +```bash +atk add tab --name Dashboard --personal +``` + +[Template instruction → Link to TeamsJS pages.tabs API for navigation.] + +### Embed Live Share canvas (optional) + +[Template instruction → bullet with link.] + +## 4. Craft engaging Adaptive Cards + +### Basic answer card + +```json +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.6", + "body": [ + { "type": "TextBlock", "text": "${answer}", "wrap": true } + ], + "actions": [ + { "type": "Action.Execute", "title": "More", "verb": "followUp" } + ] +} +``` + +[Template instruction → Show how to bind `${answer}` from LLM output.] + +### Universal Actions for up-to-date views + +[template instruction → 2–3 sentence explanation + link to UA guide.] + +## 5. Connect everything through the planner + +[Template instruction → Describe calling bot functions from cards via `Action.Execute`, storing state, and triggering planner steps.] + +## Testing checklist + +- Bot responds in chat and channel scopes +- Message extension dialog loads and returns card +- Tab renders in Teams, Outlook, Microsoft 365 hub +- Card buttons invoke `adaptiveCard/action` successfully + +## Next step + +Move on to [Local testing your agent](../test/local-testing-your-agent-outline.md) to validate these capabilities end-to-end. + +## See also + +- [Tools & SDKs for building agents](tools-sdk-for-agents-outline.md) +- [Design best practices for agents](../plan/design-best-practices-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/build/tools-sdk-for-agents-outline.md b/msteams-platform/agents-in-teams/build/tools-sdk-for-agents-outline.md new file mode 100644 index 00000000000..faa960341d4 --- /dev/null +++ b/msteams-platform/agents-in-teams/build/tools-sdk-for-agents-outline.md @@ -0,0 +1,83 @@ +--- +title: Tools and SDKs for building AI-powered agents +description: Set up your environment with the Microsoft 365 Agents Toolkit, Teams AI Library, TeamsJS, and other SDKs used to create, debug, and deploy agents. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Tools & SDKs for building agents + +[Intro – ≤ 100 words explaining that you can start coding an agent in minutes using first-party tooling and familiar languages like JavaScript, TypeScript, .NET, or Python.] + +## Microsoft 365 Agents Toolkit + +### Visual Studio Code extension + +- New-project scaffolding (agent, bot, tab, message extension). +- One-click **Debug in Teams** with auto tunnel & manifest update. +- Built-in **Agents Playground** for local Copilot testing. + +### Command-line interface (ATK CLI) + +```bash +npm install -g @microsoft/atk +atk new +atk provision && atk deploy +``` + +- Works in CI/CD and non-VS Code environments. + +### Visual Studio integration + +- .NET templates (C#) +- CodeLens for provision / deploy / debug + +## Teams AI Library + +| Feature | Why it matters | Package | +|---------|----------------|---------| +| Planner & function calling | Map user intent to skills | `@microsoft/teams-ai` | +| Memory & state management | Multi-turn context | Same | +| Adaptive Card helpers | Build Universal Actions | Same | + +## Microsoft Teams JavaScript SDK (TeamsJS) + +- Surface web content in Teams, Outlook, Microsoft 365. +- Namespaces: `app`, `pages.tabs`, `dialog`, `teamsCore`, etc. +- Tree-shakable imports for smaller bundles. + +## Microsoft Graph SDK + +- Access calendar, chat, files, people via agent skills. +- Works with Teams SSO and OBO flows. +- Language options: JS/TS, .NET, Python, Java. + +## Programming languages & runtimes + +| Language | Toolkit template | Supported SDKs | +|----------|------------------|----------------| +| TypeScript / Node 18+ | ✔ | Agents Toolkit, Teams AI, TeamsJS, Graph | +| .NET 8 | ✔ | Teams AI (.NET), Graph SDK | +| Python 3.10+ | Preview | Teams AI (Python), Graph SDK | + +## Supporting services + +- **Azure OpenAI / OpenAI** – LLM back-end for reasoning. +- **Azure Functions** – Lightweight APIs or background tasks. +- **Azure Fluid Relay / Live Share** – Real-time collaboration data. + +## Sample repos + +- `teams-samples/js/hello-agent` – Minimal custom engine agent. +- `teams-samples/csharp/sales-coach-agent` – Multi-skill enterprise sample. +- `teams-samples/python/rag-agent` – Retrieval-augmented generation demo. + +## Next step + +Go to [App manifest for agents](app-manifest-for-agents-outline.md) to learn how to declare your agent’s skills and permissions. + +## See also + +- [Quick-start: build your first agent](../get-started/quick-start-build-your-first-agent-outline.md) +- [Teams AI Library reference](https://aka.ms/teams-ai-lib) +- [Agents Toolkit CLI reference](../../toolkit/Microsoft-365-Agents-Toolkit-CLI.md) diff --git a/msteams-platform/agents-in-teams/classic/build-a-traditional-teams-app-outline.md b/msteams-platform/agents-in-teams/classic/build-a-traditional-teams-app-outline.md new file mode 100644 index 00000000000..5838038f04c --- /dev/null +++ b/msteams-platform/agents-in-teams/classic/build-a-traditional-teams-app-outline.md @@ -0,0 +1,54 @@ +--- +title: Build a traditional Microsoft Teams app +description: Learn the core surfaces—tabs, bots, message extensions, webhooks, and connectors—used to create classic Teams apps that don’t integrate with Copilot or the new agent runtime. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Build a traditional Microsoft Teams app + +[Template instruction → Introduce in 3-4 sentences (< 100 words) what a **classic** Teams app is, why it’s still supported, and when you might choose it over an AI-powered agent.] + +## Why build a classic app + +[Template instruction → Provide 2–3 bullets focusing on scenarios such as highly customized UI, legacy tenant environments, or meeting-stage media that isn’t yet agent-enabled.] + +## Core extensibility pillars + +[Template instruction → List each pillar with one-line description.] + +- Tabs (personal, channel, meeting) +- Bots (conversational experiences via Bot Framework) +- Message extensions (search & action commands) +- Webhooks and connectors (incoming/outgoing notifications) +- Meeting apps (side panel, stage, Live Share) + +## Architecture snapshot + +[Template instruction → Include simple diagram placeholder + 3-5 callouts showing Teams client, service-hosted web content, Bot Framework endpoint, and optional Azure Functions.] + +## Development lifecycle at a glance + +1. Plan UX & capabilities +2. Scaffold project with **Teams Toolkit** (classic mode) +3. Test locally with dev tunnels +4. Validate manifest (`manifestVersion` ≤ 1.21) +5. Publish to Tenant or Teams Store +[Template instruction → Add one short sentence under each bullet.] + +## Relationship to AI-powered agents + +[Template instruction → Explain in ≤ 70 words that classic apps can coexist with agents; you can migrate later by adding a `copilotAgents` block or keep both models side-by-side.] + +## Limitations + +[Template instruction → Note that classic apps won’t appear in Copilot skill list and cross-host runtime may require additional manifest work.] + +## Next step + +See [Tabs, bots & message extensions](tabs-bots-message-extensions-outline.md) for hands-on guides to each classic capability. + +## See also + +- [Overview of the Teams developer platform](../overview/overview-of-teams-developer-platform-outline.md) +- [App manifest schema (v1.21)](../reference/sdk-and-api-reference-hub-outline.md) diff --git a/msteams-platform/agents-in-teams/classic/meeting-apps-collaborative-features-outline.md b/msteams-platform/agents-in-teams/classic/meeting-apps-collaborative-features-outline.md new file mode 100644 index 00000000000..ecc5e7efd74 --- /dev/null +++ b/msteams-platform/agents-in-teams/classic/meeting-apps-collaborative-features-outline.md @@ -0,0 +1,115 @@ +--- +title: Meeting apps and collaborative features in classic Teams apps +description: Learn how to add meeting-side panels, share-to-stage experiences, Live Share real-time collaboration, and in-meeting notifications to traditional Microsoft Teams apps. +ms.localizationpriority: medium +ms.topic: how-to +ms.date: 07/02/2025 +--- +# Add meeting apps and collaborative features + +[Template instruction → Open with a 50-70-word paragraph that explains why meeting extensions matter (contextual collaboration, shared stage, real-time data) and clarifies that this guide targets *classic* Teams apps using manifest schema ≤ v1.21.] + +## Prerequisites + +[Template instruction → List only must-have items.] + +- Classic Teams app project created with **Teams Toolkit** (schema 1.21). +- Dev tunnel or ngrok for HTTPS callbacks. +- Microsoft 365 developer tenant with meeting policy allowing custom apps. + +## 1 – Enable in-meeting side panel + +### Update the manifest + +```json +"meetingExtensionDefinition": { + "scopes": [ "meetingSidePanel" ], + "context": [ "meetingChatTab", "meetingDetailsTab" ], + "commands": [ { "id": "openPanel", "title": "Open app side panel" } ] +} +``` + +[Template instruction → Explain each property in ≤ 2 sentences.] + +### Implement the tab content + +```ts +// /src/meetingSidePanel/Panel.tsx +import { pages } from "@microsoft/teams-js"; +``` + +## 2 – Share app content to the meeting stage + +### Add a share-to-stage command + +[Template instruction → Show manifest snippet with `shareToStage` capability.] + +### Invoke share action from side panel + +```ts +import { meeting } from "@microsoft/teams-js"; +await meeting.shareAppContentToStage({ appId, threadId }); +``` + +### Best practices + +- Limit stage load time to < 2 s. +- Provide fallback thumbnail for low bandwidth. + +## 3 – Integrate Live Share for real-time collaboration + +[Template instruction → 80-word overview then hands-on steps.] + +### Join a Live Share session + +```ts +const liveShare = await LiveShareClient.joinContainer(containerId); +``` + +### Sync cursors or media + +[Template instruction → Short code block or bullet list.] + +## 4 – Send in-meeting notifications + +### Add `activities.activityTypes` to manifest + +```json +"activities": { + "activityTypes": [ { "type": "surveyReminder", "description": "Survey reminder" } ] +} +``` + +### Trigger notification from bot + +```ts +await adapter.sendInMeetingNotification(meetingId, users, cardJson); +``` + +## 5 – Use dialogs inside meetings + +[Template instruction → Mention `dialog.url` or Adaptive Card dialogs for quick forms.] + +## 6 – Testing tips + +| Surface | How to test | +|---------|-------------| +| Side panel | Sideload app → **··· Apps** → Add | +| Stage view | Presenter role → **Share** menu → Select app | +| Live Share | Join meeting with two clients; verify cursor sync | + +## 7 – Design & UX best practices + +- **Do** show meeting context (title, participants) in UI. +- **Don’t** assume full width; respect 16:9 safe-area. +- Prefer Adaptive Card Universal Actions for user-specific refresh. + +## Next step + +[Template instruction → Provide logical link.] +Learn how to “**Send activity feed notifications**” to keep attendees engaged after the meeting. + +## See also + +- [Build a traditional Teams app](build-a-traditional-teams-app-outline.md) +- [Share to stage API reference](link to API) diff --git a/msteams-platform/agents-in-teams/classic/tabs-bots-message-extensions-outline.md b/msteams-platform/agents-in-teams/classic/tabs-bots-message-extensions-outline.md new file mode 100644 index 00000000000..64cdc097337 --- /dev/null +++ b/msteams-platform/agents-in-teams/classic/tabs-bots-message-extensions-outline.md @@ -0,0 +1,120 @@ +--- +title: Tabs, bots, and message extensions in classic Teams apps +description: Step-by-step guidance to add tabs, conversational bots, and message extensions to traditional Microsoft Teams apps. +ms.localizationpriority: medium +ms.topic: how-to +ms.date: 07/02/2025 +--- +# Add tabs, bots, and message extensions + +[Template instruction → Open with a 40–60-word paragraph explaining that these are the three most-used capabilities for classic Teams solutions and can be mixed in a single app package.] + +## Prerequisites + +[Template instruction → 3–5 bullets only (for example, Node/.NET runtime, Teams Toolkit installed, dev tenant with custom app upload).] + +## 1 – Create or open a classic Teams project + +### Using Teams Toolkit (VS Code) + +1. **Command Palette › Teams: Create New Project** → choose **Classic app**. +2. Select language (JavaScript, TypeScript, .NET). +3. **Capabilities** page – tick *Tab*, *Bot*, and *Message extension*. +[template instruction → Keep instructions < 120 words.] + +### Using Teams Toolkit CLI + +```bash +teamsapp new --name contoso-classic --capabilities tab bot me +``` + +## 2 – Build a personal or channel tab + +### Implement the web content + +```ts +// /src/tab/Tab.tsx +import { app } from "@microsoft/teams-js"; +``` + +[Template instruction → Show minimal React or vanilla snippet that reads Teams context and renders UI.] + +### Update manifest + +```json +"staticTabs": [{ + "entityId": "dashboard", + "name": "Dashboard", + "contentUrl": "https://localhost:53000/tab.html", + "scopes": [ "personal" ] +}] +``` + +## 3 – Add a conversational bot + +### Register bot endpoint + +```ts +const app = new TeamsActivityHandler(); +// onMessage handler … +``` + +### Enable SSO *(optional)* + +[Template instruction → Link to bot SSO guide.] + +### Test locally + +[Template instruction → Explain F5 debug + dev tunnel.] + +## 4 – Expose commands with a message extension + +### Define commands in manifest + +```json +"composeExtensions": [{ + "botId": "${{BOT_ID}}", + "commands": [ + { "id": "searchTickets", "type": "query", "title": "Search tickets" }, + { "id": "createTicket", "type": "action", "title": "Create ticket" } + ] +}] +``` + +### Handle invoke logic + +```ts +bot.messageExtensions.registerCommand('searchTickets', async (context, search) => { … }); +``` + +## 5 – Package and sideload the app + +```bash +teamsapp package +teamsapp preview --env local +``` + +[Template instruction → Mention that Toolkit auto-creates `teamsApp.zip` and launches debug Teams client.] + +## Best practices + +### Do + +- Keep tab UI responsive (≤ 400 KB bundle). +- Provide welcome messages for bots. +- Include at least one screenshot per capability for admin approval. + +### Don’t + +- Hard-code tenant IDs in code or manifest. +- Store personal data in plain text logs. + +## Next step + +[template instruction → Point to classic meeting apps or agent modernization article.] +Move on to [Meeting apps & collaborative features](meeting-apps-collaborative-features-outline.md) or learn how to modernize this classic app into an AI-powered agent. + +## See also + +- [Build a traditional Teams app](build-a-traditional-teams-app-outline.md) +- [App manifest schema (v1.21)](../reference/sdk-and-api-reference-hub-outline.md#schemas) diff --git a/msteams-platform/agents-in-teams/extend/cross-platform-capabilities-outlook-outline.md b/msteams-platform/agents-in-teams/extend/cross-platform-capabilities-outlook-outline.md new file mode 100644 index 00000000000..43613ef36f9 --- /dev/null +++ b/msteams-platform/agents-in-teams/extend/cross-platform-capabilities-outlook-outline.md @@ -0,0 +1,105 @@ +--- +title: Cross-platform capabilities for Outlook and Microsoft 365 +description: Understand host support, manifest settings, and coding patterns that let your Teams apps and agents run seamlessly in Outlook and the Microsoft 365 app. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Run your Teams solution across Microsoft 365 + +[Template instruction → 60-word intro explaining that a single package can now light up in Teams, Outlook, and the Microsoft 365 hub when you target the cross-platform runtime.] + +## 1. Host coverage matrix + +| Host | Supported surfaces | Minimum client version | Availability | +|------|--------------------|------------------------|--------------| +| Teams | Chat, tabs, Copilot, meetings | 2.5.0 | GA | +| Outlook (desktop, web, Mac) | Copilot, message extension, personal tab | 2.5.0 | GA | +| Microsoft 365 app (Windows, web, mobile) | Copilot pane, personal tab | 2.5.0 | Preview | + +[Template instruction → Add/adjust rows as new hosts gain support.] + +## 2. Manifest requirements + +### `extensions.requirements` block + +```json +"extensions": { + "requirements": [ + { "id": "teams", "version": "2.5.0" }, + { "id": "outlook", "version": "2.5.0" }, + { "id": "office", "version": "2.5.0" } + ] +} +``` + +[Template instruction → Explain that this declares the minimum runtime version for each host.] + +### `elementRelationshipSet` + +[Template instruction → Briefly describe one-way vs mutual dependencies to manage host-specific capabilities.] + +### Host-specific capability rules + +| Capability | Teams | Outlook | Microsoft 365 app | Notes | +|------------|-------|---------|----------|-------| +| `copilotAgents` | ✔ | ✔ | ✔ | Same actions list works everywhere. | +| Personal tab (`staticTabs`) | ✔ | ✔ | ✔ | Must include `context: ["personalTab"]`. | +| Message extension | ✔ | ✔ | — | Outlook supports search/action in mail compose only. | +| Meeting extensions | ✔ | — | — | Still Teams-only. | + +## 3. Coding guidelines + +### Detect host context + +```ts +import { app } from "@microsoft/teams-js"; +const context = await app.getHostContext(); // returns 'teams', 'outlook', or 'office' +``` + +[Template instruction → Show how to branch UI/logic based on host.] + +### Handle theme variations + +[Template instruction → Note that Outlook uses its own theme tokens; rely on Fluent UI tokens instead of hard-coded colors.] + +### Authentication parity + +[Template instruction → Explain that `authentication.getAuthToken()` works unchanged in Outlook/M365 as long as redirect URIs are valid.] + +## 4. UX considerations + +- Personal tab width in Outlook web is narrower—design responsive layouts. +- Outlook mobile launches tabs modally; avoid opening additional dialogs. +- Copilot answers appear in different panes; keep Adaptive Card width ≤ 600 px. + +## 5. Testing across hosts + +### Using Agents Toolkit + +```bash +atk preview --host outlook # sideloads into Outlook on the web +atk preview --host office # sideloads into M365 hub preview +``` + +[Template instruction → Mention that Toolkit automatically swaps manifest requirement sets and opens the correct client.] + +### Manual sideload + +[Template instruction → Provide link to Developer Portal sideload steps.] + +## 6. Limitations (July 2025) + +- Message extension **link unfurling** not yet supported in Outlook mobile. +- Live Share canvas only available in Teams meeting stage. +- GCC rollout planned H2 2025. + +## Next step + +[Template instruction → Point to Extend agents article created earlier.] +Deep-dive into [Extend agents across Microsoft 365](../integrate/extend-agents-across-microsoft-365-outline.md) for agent-specific guidance. + +## See also + +- [Teams JavaScript SDK capability support](../reference/sdk-and-api-reference-hub-outline.md) +- [Authentication and single sign-on](../integrate/authentication-sso-outline.md) diff --git a/msteams-platform/agents-in-teams/extend/device-capabilities-outline.md b/msteams-platform/agents-in-teams/extend/device-capabilities-outline.md new file mode 100644 index 00000000000..18b745564f7 --- /dev/null +++ b/msteams-platform/agents-in-teams/extend/device-capabilities-outline.md @@ -0,0 +1,109 @@ +--- +title: Device capabilities for Teams apps and agents +description: Learn how to access camera, microphone, location, barcode scanner, and People Picker APIs in Microsoft Teams, Outlook, and Microsoft 365. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Use native device capabilities + +[Template instruction → 60-word intro: explain why leveraging built-in hardware (camera, mic, GPS) delivers richer scenarios such as expense scanning or on-site inspections.] + +## 1. Supported capabilities and host matrix + +| Capability | Teams desktop | Teams mobile | Outlook | Microsoft 365 app | API namespace | +|------------|--------------|--------------|---------|----------|---------------| +| Camera / media capture | ✔ | ✔ | Preview | — | `media.*` | +| Location (geo) | — | ✔ | ✔ | ✔ | `location.* / geoLocation.*` | +| QR / barcode scanner | — | ✔ | — | — | `barCode.scanBarCode()` | +| File download & upload | ✔ | ✔ | ✔ | ✔ | `media.download()` | +| People Picker | ✔ | ✔ | ✔ | ✔ | `people.selectPeople()` | + +[Template instruction → Keep table concise (< 8 rows).] + +## 2. Permission model + +### Native device permissions + +[Template instruction → 2-sentence summary that desktop prompts once per session, mobile uses OS permission dialogs.] + +### Manifest `devicePermissions` block + +```json +"devicePermissions": [ "media", "geolocation", "barCode", "people" ] +``` + +[Template instruction → Briefly describe each enum.] + +## 3. API deep dive + +### 3.1 Media capture (`media.*`) + +#### Capture image or video + +```ts +import { media } from "@microsoft/teams-js"; +const result = await media.selectMedia({ mediaType: media.MediaType.Image }); +``` + +[Template instruction → ≤ 2 sentences on result object.] + +#### File size limits & formats + +[Template instruction → Bullet list.] + +### 3.2 Location (`geoLocation` and `location`) + +#### Get current coordinates + +```ts +const pos = await geoLocation.getCurrentPosition(); +``` + +#### Continuous tracking *(mobile only)* + +[Template instruction → Note battery impact.] + +### 3.3 QR / barcode scanner (`barCode.scanBarCode`) + +```ts +const code = await barCode.scanBarCode({ timeOutIntervalInSec: 30 }); +``` + +[Template instruction → Mention supported formats: QR, Code-128, EAN-13.] + +### 3.4 People Picker (`people.selectPeople`) + +```ts +const users = await people.selectPeople({ title: "Assign reviewers", setSelected: true }); +``` + +[Template instruction → Add note on AAD objectId vs UPN.] + +## 4. UX & design tips + +- Provide inline guidance (“Center QR code in the frame”). +- Handle permission denial with graceful fallbacks. +- Respect dark theme—use white overlay icons on camera preview. + +## 5. Testing device APIs locally + +| Client | Trick | +|--------|-------| +| Teams desktop | Use webcam or virtual camera; location APIs return null → mock values in Agents Playground. | +| Android | Deploy to real device via **Android Debug Bridge**; ensure HTTPS dev-tunnel. | +| iOS | TestFlight build; enable “Allow cross-website tracking” for cookies if using auth pop-ups. | + +## 6. Limitations (July 2025) + +[Template instruction → 2-3 bullets, for example, no barcode scanning on desktop, location API requires HTTPS.] + +## Next step + +[Template instruction → Link to how-to page that shows integrating these APIs in a tab or bot.] +See “Integrate media capabilities” for step-by-step code samples. + +## See also + +- [Authentication & single sign-on](../integrate/authentication-sso-outline.md) +- [Teams JavaScript SDK reference](../reference/sdk-and-api-reference-hub-outline.md#platform-sdks) diff --git a/msteams-platform/agents-in-teams/extend/notifications-webhooks-outline.md b/msteams-platform/agents-in-teams/extend/notifications-webhooks-outline.md new file mode 100644 index 00000000000..eca632e4167 --- /dev/null +++ b/msteams-platform/agents-in-teams/extend/notifications-webhooks-outline.md @@ -0,0 +1,137 @@ +--- +title: Notifications and webhooks in Microsoft Teams +description: Learn how to send activity-feed notifications, push proactive bot messages, and integrate incoming or outgoing webhooks to keep users informed in Microsoft Teams and across Microsoft 365. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Keep users informed with notifications & webhooks + +[Template instruction → 70-word intro that positions notifications as the primary re-engagement mechanism and explains that webhooks provide simple, no-code endpoints for external systems.] + +## 1. Notification options at a glance + +| Mechanism | Best for | Auth model | UI surface | +|-----------|----------|------------|------------| +| Activity-feed notification | Targeted alerts to a user or group | Azure AD / RSC | Teams “Activity” pane, mobile push | +| Proactive bot message | Rich interactive updates | Bot Framework token | Chat, channel, meeting | +| Incoming Webhook | Simple JSON payload | URL + HMAC (optional) | Channel conversation | +| Outgoing Webhook | Command & response integration | HMAC validated | Channel message ↔ external service | + +## 2. Activity-feed notifications (Graph API) + +### Manifest requirements + +```json +"activities": { + "activityTypes": [ + { "type": "taskDue", "description": "Task due reminder" } + ] +} +``` + +[Template instruction → Explain `activities.activityTypes` in ≤ 2 sentences.] + +### Send a notification + +```http +POST /teams/{team-id}/sendActivityNotification +Content-Type: application/json +{ + "topic": { "source": "entityUrl", "value": "/teams/{team-id}" }, + "activityType": "taskDue", + "previewText": { "content": "Task *TPS Report* is due today!" }, + "recipients": { "userIds": [ "{aad-user-id}" ] } +} +``` + +[Template instruction → Note 429 throttling and retry headers.] + +## 3. Proactive bot messages + +[Template instruction → 80-word overview.] + +### Acquire a conversation reference + +```ts +const ref = TurnContext.getConversationReference(context.activity); +``` + +### Create or continue conversation + +```ts +await adapter.continueConversation(ref, async ctx => { + await ctx.sendActivity(cardJson); +}); +``` + +### Best practices + +- Use SSO tokens to personalize content. +- Include “View details” deep link to tab or Stageview. + +## 4. Incoming webhooks + +### Set up + +1. Channel → **⋯ More › Connectors** → **Incoming Webhook** → copy URL. +2. POST card payload: + +```bash +curl -H "Content-Type: application/json" -d @card.json +``` + +### Secure with IP allow-list *(optional)* + +[Template instruction → 1 sentence.] + +## 5. Outgoing webhooks + +### Register + +[Template instruction → Numbered steps ≤ 90 words.] + +### Verify HMAC + +```csharp +var signature = request.Headers["Authorization"]; +var body = await new StreamReader(req.Body).ReadToEndAsync(); +if(!VerifyHmac(body, signature)) return Unauthorized(); +``` + +### Respond with Adaptive Card + +```json +{ + "type": "message", + "text": "Thanks! Your ticket **#1234** is created." +} +``` + +## 6. Design & UX guidelines + +- Keep notification count low; batch updates when possible. +- Use Adaptive Card **Action.Execute** for quick actions (approve / reject). +- Provide “Turn off” or frequency settings in personal tab. + +## 7. Throttling & rate limits + +| Service | Limit | Guidance | +|---------|-------|----------| +| Activity feed | 4 calls/sec per app per user | Exponential back-off | +| Bot API | 27 messages/sec per bot | Use `Retry-After` header | +| Webhooks | 30 requests/min per URL | Queue & batch | + +## 8. Cross-platform considerations + +[Template instruction → 2-3 bullets about Outlook: activity feed stays in Teams; proactive bot messages appear in Outlook chat; webhooks are Teams-only.] + +## Next step + +Implement [Authentication and single sign-on](../integrate/authentication-sso-outline.md) so your notifications include personalized data securely. + +## See also + +- [App manifest for agents](../build/app-manifest-for-agents-outline.md) +- [Microsoft Graph sendActivityNotification API](/graph/teams-send-activityfeednotifications) +- [Adaptive Card actions guide](https://adaptivecards.microsoft.com/) diff --git a/msteams-platform/agents-in-teams/get-started/key-agent-scenarios-examples-outline.md b/msteams-platform/agents-in-teams/get-started/key-agent-scenarios-examples-outline.md new file mode 100644 index 00000000000..c41646961ec --- /dev/null +++ b/msteams-platform/agents-in-teams/get-started/key-agent-scenarios-examples-outline.md @@ -0,0 +1,86 @@ +--- +title: Key agent scenarios and examples +description: Explore high-impact business and productivity use-cases for AI-powered agents and see how each maps to Teams capabilities. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Key agent scenarios & examples + +[Intro—≤ 90 words: set context that agents can automate tasks, surface knowledge, and coordinate workflows directly inside Teams, Copilot, Outlook, and Microsoft 365.] + +## Scenario catalog + +[Table introduces six common domains. Each row links to deeper how-tos.] + +| # | Domain | Agent goal | Primary capabilities | Quick demo link | +|---|--------|-----------|----------------------|-----------------| +| 1 | Sales & CRM | Summarize opportunities, draft emails, log notes | Message extension + Graph + Copilot function calls | [Demo](#sales-demo) | +| 2 | IT Help-desk | Triage tickets, auto-answer FAQs, escalate | Chat bot + Adaptive Cards + sequential workflow | [Demo](#helpdesk-demo) | +| 3 | HR & Onboarding | Answer policy questions, schedule training | Declarative plug-in + Meetings tab | [Demo](#hr-demo) | +| 4 | Project Management | Generate status reports, assign tasks | Custom engine agent + Planner API | [Demo](#pm-demo) | +| 5 | Compliance & Legal | Summarize chat threads, flag sensitive content | Notification feed + Live Share canvas | [Demo](#compliance-demo) | +| 6 | Data Insights | Deliver real-time dashboards & “explain this chart” chat | Tab + Live Share media + Copilot citations | [Demo](#data-demo) | + +## End-to-end example: Sales Deal Coach *(Spotlight)* + +### User flow + +1. Seller asks Copilot “Prep me for the Contoso meeting.” +2. Copilot planner selects **Deal Coach** agent. +3. Agent fetches opportunity data via CRM REST API. +4. Copilot synthesizes a briefing with citations. +5. Agent offers “Send recap email” action via Adaptive Card. + +### Implementation highlights + +- Custom engine agent using Teams AI Library. +- Function calling with `getOpportunity(opportunityId)`. +- SSO via Teams credential; OBO to CRM. +- Adaptive Card with Universal Actions for follow-up tasks. + +## Pattern library + +[Short subsection maps scenario patterns to capabilities.] + +| Pattern | Recommended surface | Key SDK or API | +|---------|--------------------|---------------| +| FAQ retrieval | Chat bot + Copilot plug-in | Index data → search function | +| Action execution | Message extension command | OpenAPI + function call | +| Meeting co-pilot | In-meeting side panel | Live Share + dialog | +| Workflow approval | Adaptive Card in chat | Sequential workflow & up-to-date view | + +## Industry spotlights + +- **Healthcare:** Agent retrieves patient vitals during a tele-consult. +- **Manufacturing:** Maintenance agent predicts downtime and schedules crews. +- **Education:** Classroom helper agent answers “what’s my next assignment?” + +## Choosing a scenario + +[2-bullet checklist: align with business metric and evaluate data accessibility.] + +### Sales demo + +### Helpdesk demo + +### HR demo + +### PM demo + +### Compliance demo + +### Data demo + +## Limitations + +[≤ 2 sentences: some Graph APIs still preview for agents; cross-tenant data access requires admin consent.] + +## Next step + +Follow the [Quick-start guide: build your first agent](quick-start-build-your-first-agent-outline.md) to implement one of these scenarios today. + +## See also + +- [Why build agents on Teams?](why-build-agents-on-teams-outline.md) +- [Tools & SDKs for building agents](../build/tools-sdk-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/get-started/quick-start-build-your-first-agent-outline.md b/msteams-platform/agents-in-teams/get-started/quick-start-build-your-first-agent-outline.md new file mode 100644 index 00000000000..530f28ea326 --- /dev/null +++ b/msteams-platform/agents-in-teams/get-started/quick-start-build-your-first-agent-outline.md @@ -0,0 +1,86 @@ +--- +title: Quick-start guide – build your first AI-powered agent +description: Scaffold, run, and test a working Microsoft Teams agent in less than 10 minutes using the Microsoft 365 Agents Toolkit. +ms.localizationpriority: medium +ms.topic: how-to +ms.date: 07/02/2025 +--- +# Build your first AI-powered agent + +In this quick-start you’ll create a runnable agent that answers “Hello” with an AI-generated response, surfaces as a Copilot plug-in, and appears in Teams chat. + +## Prerequisites + +- Node.js 18 LTS or later +- Visual Studio Code with **Microsoft 365 Agents Toolkit** extension ≥ v1.1 +- Microsoft 365 developer tenant with **Upload custom apps** enabled +- Azure subscription (free tier is fine) +- `devtunnel` or `ngrok` (Toolkit will install automatically) + +## Step 1 – Scaffold a new agent project + +1. Open VS Code → **View › Command Palette** → **> Agents: Create New Project**. +2. Choose **AI Agent** template → **JavaScript** or **TypeScript**. +3. Enter project name `hello-agent` and location. +4. When prompted, sign in with your Microsoft 365 dev account. + +*(Toolkit creates folder structure, `appPackage/manifest.json`, and boiler-plate agent code.)* + +## Step 2 – Review the generated code + +- **/src/agent/agent.ts** – Registers a `helloWorld` function. +- **/ai/helloWorld.prompt.txt** – Prompt template for the LLM. +- **/appPackage/manifest.json** – Declares agent type `customEngine`. +*(Spend 1 minute scanning comments.)* + +## Step 3 – Run locally + +```bash +npm install +npm start +``` + +Toolkit automatically: + +- Spins up local web server & bot endpoint. +- Creates a dev tunnel and updates the manifest. +- Launches Teams in a debug browser with the app sideloaded. + +## Step 4 – Chat with your agent + +1. In the opened Teams web client, open **Chat** › **Hello Agent**. +2. Type “Hello 👋” → Agent responds with an AI-generated greeting. +3. Click **Copilot** icon, type “Ask Hello Agent to introduce itself” – Copilot calls your agent. + +## Step 5 – Inspect & iterate + +- Set a breakpoint in `agent.ts`, re-run **Debug › Start Debugging**. +- Edit prompt text, hot-reload, and watch new output. + +## Optional – Deploy to Azure in one command + +```bash +atk provision && atk deploy +``` + +Toolkit provisions an Azure Bot, Function App, and Storage, then uploads an updated manifest for cloud testing. + +## Troubleshooting + +| Issue | Fix | +|-------|-----| +| Tunnel fails to start | Run `devtunnel service install –f` then retry. | +| No response from Copilot | Verify OpenAPI function declaration is in manifest `actions` block. | + +## Code sample + +Full project on GitHub: `microsoft/teams-samples/js/hello-agent`. + +## Next step + +Deep-dive into [Tools and SDKs for building agents](../build/tools-sdk-for-agents-outline.md) to extend this starter with real data and actions. + +## See also + +- [What are AI-powered agents?](what-are-ai-powered-agents-outline.md) +- [Key agent scenarios & examples](key-agent-scenarios-examples-outline.md) diff --git a/msteams-platform/agents-in-teams/get-started/what-are-ai-powered-agents-outline.md b/msteams-platform/agents-in-teams/get-started/what-are-ai-powered-agents-outline.md new file mode 100644 index 00000000000..92a5e48d334 --- /dev/null +++ b/msteams-platform/agents-in-teams/get-started/what-are-ai-powered-agents-outline.md @@ -0,0 +1,56 @@ +--- +title: What are AI-powered agents in Microsoft Teams? +description: Learn how agents combine conversational interfaces, orchestration logic, and Microsoft 365 data to extend Copilot and Teams experiences. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# What are AI-powered agents? + +[Introduce the definition in ≤ 100 words: “Agents are app manifests that expose skills—actions, knowledge, or workflows—to Microsoft 365 Copilot and other LLM-powered entry points while still lighting up classic Teams surfaces (chat, meetings, tabs).”] + +## Agent anatomy + +[Describe the three building blocks—1-2 sentences each.] + +1. Front-end surfaces (chat, message extension, cards, tabs). +2. Orchestration layer (planner, memory, prompt templates). +3. Back-end skills (APIs, data sources, event handlers). + +## Agent types + +| Type | Where it runs | Authoring model | When to use | +|------|---------------|-----------------|-------------| +| Declarative Copilot plug-in | Copilot canvas | Manifest + OpenAPI | Expose simple actions/knowledge. | +| Custom engine agent | Your service (Teams AI Library) | Code + prompt | Complex reasoning & autonomy. | +| Hybrid classic-plus-agent | Teams surfaces + Copilot | Manifest + code | Modernize existing bots/apps. | + +## How agents interact with Copilot + +[Numbered flow: user prompt → Copilot planner → agent selection → execute skill → Copilot synthesizes reply.] + +## Key capabilities + +- Natural-language invocation (“Call **Sales Forecast** agent”). +- Grounded knowledge retrieval with citations. +- Function calling & parameter extraction. +- User-specific permissions via RSC. +- Multi-turn context memory. +- Adaptive Card responses & sequential workflows. + +## When to build an agent vs. a classic app + +[Provide 3 “choose-this” vs 3 “choose-that” bullets.] + +## Limitations (preview) + +[≤ 2 sentences: e.g., no outbound calls from Copilot in GCC, token limits, planner customization beta only.] + +## Next step + +Read [Why build agents on Teams?](why-build-agents-on-teams-outline.md) to understand the business impact and hosting advantages. + +## See also + +- [Key agent scenarios & examples](key-agent-scenarios-examples-outline.md) +- [Quick-start guide: build your first agent](quick-start-build-your-first-agent-outline.md) diff --git a/msteams-platform/agents-in-teams/get-started/why-build-agents-on-teams-outline.md b/msteams-platform/agents-in-teams/get-started/why-build-agents-on-teams-outline.md new file mode 100644 index 00000000000..5513d77db70 --- /dev/null +++ b/msteams-platform/agents-in-teams/get-started/why-build-agents-on-teams-outline.md @@ -0,0 +1,64 @@ +--- +title: Why build AI-powered agents on Microsoft Teams? +description: Discover the strategic, user-experience, and developer advantages of hosting your AI agents on the Teams platform and Microsoft 365 Copilot. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Why build agents on Microsoft Teams? + +[Opening paragraph – ≤ 80 words explaining that Teams is the primary conversational canvas inside Microsoft 365 and the native home for custom Copilot skills.] + +## Business advantages + +- Reach 400 M+ monthly active users without switching apps. +- Reduce deployment friction with tenant-wide admin controls and instant per-user install. +- Monetize through Teams Store subscriptions and in-product purchase APIs. +- Built-in compliance, data residency, and audit logging meet enterprise requirements. + +## User-experience advantages + +- Seamless single sign-on with Microsoft 365 identity. +- One skill, many canvases—chat, meetings, Outlook, Microsoft 365 hub. +- Unified notifications in the Teams activity feed. +- Mobile, desktop, and web clients share the same agent runtime. + +## Developer advantages + +| Capability | Benefit | +|------------|---------| +| Agents Toolkit | Scaffold, tunnel, and debug in one click. | +| Teams AI Library | Handle intent recognition, memory, and function calls with minimal code. | +| Cross-host manifest | Surface in Outlook & M365 without rewriting. | +| Microsoft Graph | Tap into calendar, chat, files, and presence with a single SDK. | +| Azure integration | Add OpenAI, Functions, and Fluid real-time data with first-class auth. | + +## Copilot integration flow + +[Numbered list or mini-diagram showing: User asks Copilot → Planner selects your agent → Agent executes skill → Copilot replies with citations.] + +## Comparison with other delivery models + +| Approach | Time-to-value | Scale | AI readiness | IT admin control | +|----------|---------------|-------|--------------|------------------| +| Stand-alone bot | Medium | Limited to chat URL | DIY | Decentralized | +| Classic Teams app | Fast | Teams only | Manual | Centralized | +| **Teams agent (recommended)** | **Fastest** | Teams + Outlook + M365 | Built-in to Copilot | Policy-driven | + +## Success snapshots + +1. **Contoso Support Agent** cut ticket resolution time by 30 % by surfacing knowledge base answers in Copilot. +2. **Fabrikam Deal Coach** increased seller win-rate 15 % by embedding CRM insights into Teams calls. + +## Considerations + +[≤ 2 sentences on prerequisites such as Microsoft 365 licenses, preview limits, and admin consent.] + +## Next step + +Jump to [Key agent scenarios & examples](key-agent-scenarios-examples-outline.md) to see what you can build today. + +## See also + +- [What are AI-powered agents?](what-are-ai-powered-agents-outline.md) +- [Tools & SDKs for building agents](../build/tools-sdk-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/integrate/authentication-sso-outline.md b/msteams-platform/agents-in-teams/integrate/authentication-sso-outline.md new file mode 100644 index 00000000000..6a9f074bfd7 --- /dev/null +++ b/msteams-platform/agents-in-teams/integrate/authentication-sso-outline.md @@ -0,0 +1,123 @@ +--- +title: Authentication and single sign-on for AI-powered agents +description: Configure Microsoft Entra ID, update your agent manifest, and add code to enable seamless single sign-on (SSO) across chat, Copilot, tabs, and message extensions. +ms.localizationpriority: medium +ms.topic: how-to +ms.date: 07/02/2025 +--- +# Enable authentication and single sign-on + +This guide shows how to let your agent silently obtain a Microsoft Graph access token on behalf of the signed-in Teams user—no extra prompts, no OAuth pop-ups. + +## Prerequisites + +- Microsoft 365 developer tenant with admin rights +- Azure subscription +- Agents Toolkit CLI ≥ v1.1 or VS Code extension ≥ v1.1 +- Node 18 / .NET 8 / Python 3.10 project scaffolded via `atk new` + +## 1 – Register (or reuse) a Microsoft Entra application + +1. Open **Entra Admin Center** → **App registrations** → **New registration**. +2. Name: `ContosoAgentApp`, Supported accounts: *Single tenant*. +3. Record **Application (client) ID** and **Tenant ID**. +4. In **Authentication** tab: + - Add redirect URI `https://token.botframework.com/.auth/web/redirect`. + - Enable *Allow implicit/Hybrid*. +5. In **API Permissions** tab: + - Add `User.Read`, `Chat.Read`, any custom scopes. +6. *Optional*: create a client secret ( bots only; tabs use SSO token ). + +> [!TIP] +> Use `atk entra-app upload` to automate steps 1-5. + +## 2 – Update the agent manifest + +### `webApplicationInfo` block + +```json +"webApplicationInfo": { + "id": "", + "resource": "api://" +} +``` + +### RSC scopes (if needed) + +```json +"authorization": { + "permissions": { + "resourceSpecific": [ + { + "type": "chat", + "name": "Chat.Read", + "description": "Read messages in a chat the user is part of" + } + ] + } +} +``` + +## 3 – Add client-side code (tabs / message extensions) + +```ts +import { authentication } from "@microsoft/teams-js"; + +const token = await authentication.getAuthToken({ resources: ["https://graph.microsoft.com"] }); +const graphData = await fetch("https://graph.microsoft.com/v1.0/me", { + headers: { Authorization: `Bearer ${token}` } +}).then(r => r.json()); +``` + +*Handle `error:needsConsent` by calling `authentication.requestAuthToken()` once.* + +## 4 – Add server-side code (bots / custom engine) + +### JavaScript + +```ts +import { TeamsActivityHandler, createMicrosoftGraphClient } from "@microsoft/teams-ai"; + +adapter.setAdapterSettings({ + appId: process.env.M365_APP_ID, + appPassword: process.env.M365_APP_PASSWORD +}); + +bot.onMessage(async (context, state) => { + const oboToken = await adapter.getUserToken(context, { scopes: ["https://graph.microsoft.com/.default"] }); + const graph = createMicrosoftGraphClient(oboToken); + const profile = await graph.api("/me").get(); + await context.sendActivity(`Hello ${profile.displayName}!`); +}); +``` + +### .NET (snippet) + +```csharp +var result = await userTokenClient.GetUserTokenAsync(turnContext, "graph", scopes); +graphClient = new GraphServiceClient(new DelegateAuthenticationProvider( + r => { r.Headers.Authorization = new(result.TokenType, result.Token); return Task.CompletedTask; })); +``` + +## 5 – Test the flow locally + +1. Run `atk preview --env local`. +2. Toolkit sideloads the app and launches Teams in a debug browser. +3. First Graph call triggers silent token acquisition; if consent required, admin prompt appears once. + +## Troubleshooting + +| Symptom | Resolution | +|---------|------------| +| `invalid_grant` after 1 hour | Ensure `oauthTokenProvider` caches refresh tokens for subsequent calls. | +| Teams mobile shows login dialog | Mobile requires **TeamsJS v2.4+** and HTTPS (dev tunnel). | +| `AADSTS65001` (consent required) | Grant tenant-wide admin consent in Entra or use RSC scopes only. | + +## Next step + +Integrate Graph calls in your agent’s skills—see [Microsoft Graph integration](microsoft-graph-integration-outline.md). + +## See also + +- [App manifest for agents](../build/app-manifest-for-agents-outline.md) +- [Resource-specific consent for agents](../../graph-api/rsc/resource-specific-consent.md) diff --git a/msteams-platform/agents-in-teams/integrate/extend-agents-across-microsoft-365-outline.md b/msteams-platform/agents-in-teams/integrate/extend-agents-across-microsoft-365-outline.md new file mode 100644 index 00000000000..db46dc5e5d2 --- /dev/null +++ b/msteams-platform/agents-in-teams/integrate/extend-agents-across-microsoft-365-outline.md @@ -0,0 +1,89 @@ +--- +title: Extend your Teams agents across Microsoft 365 +description: Learn how a single app manifest lets AI-powered agents light up in Outlook, Microsoft 365 app, and other hosts while reusing the same code base. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Extend agents across Microsoft 365 + +[Intro – ≤ 90 words explaining that the new cross-host runtime lets agents you build for Teams appear automatically in Outlook and the Microsoft 365 hub, giving users a consistent Copilot + chat experience wherever they work.] + +## 1. Where agents can run + +| Host product | Supported surfaces | Minimum client version | Status | +|--------------|-------------------|------------------------|--------| +| Microsoft Teams | Chat, Copilot, tabs, meetings | GA | ✔ | +| Outlook (Windows, Web, Mac, Mobile) | Copilot, message extension, personal dashboard tab | V2.5+ | GA | +| Microsoft 365 app (Windows, Web, Mobile) | Copilot pane, personal/dash tabs | V2.5+ | Preview | +| Word / Excel / PowerPoint | Copilot ribbon actions (plug-ins only) | TBD | Private preview | + +## 2. Cross-host manifest requirements + +### `elementRelationshipSet` + +Describe how to declare dependencies so Outlook can load only the personal tab portion of a Teams agent if desired. + +### `requirements` / `requirementSet` + +Explain how to specify host-specific runtime needs: + +```json +"extensions": { + "requirements": [ + { "id": "outlook", "version": "2.5.0" }, + { "id": "teams", "version": "2.5.0" } + ] +} +``` + +### Capabilities matrix + +| Manifest element | Teams | Outlook | M365 hub | Notes | +|------------------|-------|---------|----------|-------| +| `copilotAgents.declarativeAgents` | ✔ | ✔ | ✔ | Same OpenAPI spec reused. | +| `composeExtensions` | ✔ | ✔ | — | Outlook supports search/action in mail compose. | +| `staticTabs` (personal) | ✔ | ✔ | ✔ | Must set `context` to `personalTab`. | +| `meetingExtensionDefinition` | ✔ | — | — | Meetings remain Teams-only. | + +## 3. Coding considerations + +- Use **TeamsJS v2.5+** conditional `app.getHostContext()` to tailor UI per host. +- Avoid Teams-specific deep links (`/l/team/`) unless you wrap with a host check. +- Authentication: SSO token acquisition flow is identical; Outlook returns the same JWT audience. + +## 4. UI & UX guidance + +### Personal dashboard tabs + +- Respect narrow pane widths in Outlook preview. +- Hide left-nav elements and rely on host navigation. + +### Copilot plug-ins + +- Keep answer cards ≤ 600 px wide for Outlook mobile. + +### Notifications + +- Activity feed is Teams-only; consider email notifications for Outlook-centric users. + +## 5. Deployment workflow + +1. Update manifest to include Outlook requirement set. +2. Run `atk preview --host outlook`. +3. Toolkit sideloads the app into Outlook on the web for validation. +4. Submit single package to Teams Store—Microsoft automatically distributes to Outlook and Microsoft 365 when criteria met. + +## 6. Limitations (current preview) + +- Meeting stage and Live Share canvas not yet supported in Outlook. +- Outlook mobile does not support message extension **action** commands (search only). +- GCC tenants receive cross-host apps later in 2025. + +## Next step + +Return to [Local testing your agent](../test/local-testing-your-agent-outline.md) to validate cross-host behavior before publishing. + +## See also + +- [App manifest for agents](../build/app-manifest-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/integrate/microsoft-graph-integration-outline.md b/msteams-platform/agents-in-teams/integrate/microsoft-graph-integration-outline.md new file mode 100644 index 00000000000..9137cd2fad6 --- /dev/null +++ b/msteams-platform/agents-in-teams/integrate/microsoft-graph-integration-outline.md @@ -0,0 +1,121 @@ +--- +title: Microsoft Graph integration for AI-powered agents +description: Use Microsoft Graph APIs to access users, chats, calendar events, files, and insights directly from your Teams agent skills. +ms.localizationpriority: medium +ms.topic: how-to +ms.date: 07/02/2025 +--- +# Integrate Microsoft Graph with your agent + +This guide walks through acquiring tokens, calling Graph from both client-side and bot code, and surfacing data through Copilot function calls. + +## Prerequisites + +- Single-sign-on configured as described in [Authentication and SSO](authentication-sso-outline.md). +- Microsoft Graph permissions added to your Entra app (for example, `Chat.Read`, `Calendars.Read`). +- Agents Toolkit project (JavaScript/TypeScript, .NET, or Python). + +## 1 – Decide on permission model + +| Scenario | Permission | Consent level | Typical surfaces | +|----------|------------|---------------|------------------| +| User-centric data (profile, calendar) | Delegated | User/admin | Chat, Copilot | +| Team or chat insights | RSC | Team owner | Message extension | +| Org-wide analytics | Application | Tenant admin | Dashboard tab | + +> [!TIP] +> Combine RSC with delegated scopes to minimize admin friction. + +## 2 – Acquire a Graph access token + +### Client-side (tabs, message extensions) + +```ts +const token = await authentication.getAuthToken({ + resources: ['https://graph.microsoft.com'], + silent: true +}); +``` + +### Bot / custom engine (On-Behalf-Of flow) + +```ts +import { createMicrosoftGraphClient } from "@microsoft/teams-ai"; +const oboToken = await adapter.getUserToken(context, { scopes: ['https://graph.microsoft.com/.default'] }); +const graph = createMicrosoftGraphClient(oboToken); +``` + +## 3 – Call common Graph endpoints + +### Get signed-in user profile + +```ts +const me = await graph.api('/me').get(); +``` + +### List upcoming meeting instances + +```ts +const events = await graph + .api('/me/calendarview') + .query({ startDateTime, endDateTime }) + .header('Prefer', 'outlook.timezone="UTC"') + .get(); +``` + +### Post an Adaptive Card to a chat + +```ts +await graph.api(`/chats/${chatId}/messages`) + .post({ subject:null, body:{ contentType:'html', content:cardHtml }}); +``` + +## 4 – Surface Graph data via agent skills + +1. Define an **action** in `manifest.json`: + + ```json + { "id":"getUpcomingMeetings","description":"Returns next 5 meetings","parameters":[] } + ``` + +2. Implement the function: + + ```ts + planner.defineFunction('getUpcomingMeetings', async(_, ctx)=>{ + const events = await graph.api('/me/events').top(5).get(); + return events.value.map(e=>({subject:e.subject,start:e.start.dateTime})); + }); + ``` + +3. Copilot formats the response with citations automatically. + +## 5 – Handle throttling & paging + +- Use `Prefer: outlook.body-content-type="text"` to shrink payloads. +- Check `@odata.nextLink` for paging loops. +- Honor `Retry-After` headers on `429`. + +## 6 – Advanced: Change notifications & webhooks + +Brief overview (link to Graph docs) on subscribing to chatMessage, event, or driveItem changes so your agent can push proactive notifications. + +## Troubleshooting + +| Error | Cause | Fix | +|-------|-------|-----| +| `AADSTS65001` | Missing consent | Grant admin consent or use incremental consent flow | +| `403 Forbidden` | Permission not present in token | Confirm scope in JWT `scp` claim | +| `404 Not found` | Using RSC token on wrong resource type | Check chat/team ID and RSC type | + +## Code sample + +- `teams-samples/js/graph-agent` – Demonstrates SSO, OBO, and Graph calls in a custom engine agent. + +## Next step + +Enhance user experiences with [Device capabilities](../extend/device-capabilities-outline.md) or continue to [Extend agents across Microsoft 365](extend-agents-across-microsoft-365-outline.md). + +## See also + +- [Authentication & single sign-on](authentication-sso-outline.md) +- [Microsoft Graph API reference](/graph/api/overview?view=graph-rest-1.0&preserve-view=true) diff --git a/msteams-platform/agents-in-teams/overview/overview-of-teams-developer-platform-outline.md b/msteams-platform/agents-in-teams/overview/overview-of-teams-developer-platform-outline.md new file mode 100644 index 00000000000..b11993d041b --- /dev/null +++ b/msteams-platform/agents-in-teams/overview/overview-of-teams-developer-platform-outline.md @@ -0,0 +1,52 @@ +--- +title: Overview of the Microsoft Teams developer platform +description: End-to-end view of what you can build, where solutions run, and how AI-powered agents fit into the platform. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Overview of the Microsoft Teams developer platform + +[Template instruction → In 3-4 sentences (< 100 words) explain that Teams is now an AI-first collaboration canvas, list the primary extensibility points (agents, classic apps, cross-M365 surfaces), and set the expectation that readers dive deeper in subsequent articles.] + +## Why build on Teams + +[Template instruction → Provide 2-3 bullet points on business value: pervasive reach, built-in identity & compliance, new AI-agent runtime, one code-base across Microsoft 365.] + +## Core extensibility pillars + +[Template instruction → Introduce each item with a one-line description.] + +- AI-powered agents (Copilot plug-ins, custom engine agents) +- Conversational bots & message extensions +- Collaborative UI surfaces (tabs, stageview, Adaptive Cards) +- Meeting & calling apps +- Notifications, webhooks, device capabilities +- Cross-platform hosting (Teams, Outlook, Microsoft 365) + +## Architecture at a glance + +[Template instruction → Include a simple Mermaid or ASCII diagram placeholder plus 3-5 numbered callouts showing user ⇄ Teams ⇄ your service, highlighting where Agents SDK / Graph / Azure services plug in.] + +## Development lifecycle + +1. Plan & design +2. Build with Agents Toolkit & SDKs +3. Test & debug locally or in the cloud +4. Publish to the Teams Store or your org tenant +5. Grow adoption & monitor analytics +[Template instruction → Add a one-sentence explanation under each step.] + +## Limitations + +[Template instruction → Note current preview limits for agents—keep to ≤ 2 sentences.] + +## Next step + +See [What are AI-powered agents?](../get-started/what-are-ai-powered-agents-outline.md) to learn how agents transform the developer story. + +## See also + +- [Why build agents on Teams?](../get-started/why-build-agents-on-teams-outline.md) +- [Tools & SDKs for building agents](../build/tools-sdk-for-agents-outline.md) +- [App manifest for agents](../build/app-manifest-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/overview/teams-developer-glossary-outline.md b/msteams-platform/agents-in-teams/overview/teams-developer-glossary-outline.md new file mode 100644 index 00000000000..3d34abe86ba --- /dev/null +++ b/msteams-platform/agents-in-teams/overview/teams-developer-glossary-outline.md @@ -0,0 +1,115 @@ +--- +title: Microsoft Teams developer glossary +description: Definitions of key terms, acronyms, and concepts used throughout the Teams developer platform and AI-agent documentation. +ms.localizationpriority: medium +ms.topic: reference +ms.date: 07/02/2025 +--- +# Microsoft Teams developer glossary + +The following alphabetical glossary helps you quickly understand the terminology used in the Teams developer platform—especially new phrases introduced with AI-powered agents. Terms are grouped by first letter. + +> [!NOTE] +> If a term links to another article, that page provides deeper technical details. + +## A + +* Adaptive Card – JSON-based UI snippet that renders natively in Teams, Outlook, and Microsoft 365. +* Agent (AI-powered) – An application manifest type that exposes skills to Copilot and other LLM-backed surfaces. +* App manifest – The JSON file that declares capacities, permissions, and runtime requirements for a Teams or agent app. + +## B + +* Bot – Conversational component powered by the Bot Framework or Teams AI Library. +* Background load configuration – Manifest setting that enables tabs to pre-cache content. + +## C + +* Copilot plug-in – Declarative agent that surfaces actions or knowledge to Microsoft 365 Copilot. +* Custom engine agent – Agent that hosts its own reasoning logic rather than relying on Copilot orchestration. + +## D + +* Device capability API – TeamsJS namespace enabling camera, barcode scanner, and location access. + +## E + +* ElementRelationshipSet – Manifest section that specifies dependencies between capabilities when extending across Microsoft 365. + +## F + +* Fluent UI – Microsoft’s cross-platform design system used by Teams web surfaces. + +## G + +* Graph (Microsoft) – REST API endpoint that provides data from Microsoft 365 services such as Teams, Outlook, and OneDrive. + +## H + +* Hosted content – Any web experience (tab, dialog, Stageview) rendered inside the Teams webview container. + +## I + +* Incoming Webhook – Simple HTTP endpoint that posts JSON payloads into a Teams channel. +* Interactive notification – Bot-delivered message that includes buttons or Adaptive Card actions. + +## J + +* JSON schema (manifest) – Formal definition of allowable properties and value types inside a Teams or agent manifest file. + +## L + +* Live Share SDK – Library that enables real-time co-editing, cursor presence, and media sync inside meeting apps. + +## M + +* Message extension – Extension that lets users search or invoke actions directly from the Teams compose box or message context menu. + +## N + +* Notification feed – The “Activity” pane in Teams where apps can surface user-specific alerts. + +## O + +* OBO (On-Behalf-Of) flow – OAuth pattern used to exchange a Teams access token for a Microsoft Graph token. + +## P + +* Personal tab – Static tab that is installed in the user’s app bar, scoped to that individual. + +## R + +* Resource-specific consent (RSC) – Fine-grained permission model that lets an app access specific team, chat, or meeting resources. + +## S + +* Stageview – Multi-window surface that opens rich content (docs, cards) alongside chat. +* Single sign-on (SSO) – Experience where Teams silently acquires an access token without extra user prompts. + +## T + +* TeamsJS (Microsoft Teams JavaScript SDK) – Client library for tabs, dialogs, and web content running inside Teams or Outlook. + +## U + +* Universal Actions – Adaptive Card action pattern that enables user-specific views, refresh, and sequential workflows. + +## V + +* Valid domains – Manifest array of fully qualified domain names that the app is allowed to load. + +## W + +* Webhooks (Outgoing) – Endpoint that lets Teams POST chat content to an external service and receive a JSON reply. + +* (Add new terms as the platform evolves; keep each definition ≤ 30 words.)* + +## Next step + +Review [Tools & SDKs for building agents](../build/tools-sdk-for-agents-outline.md) to see how these concepts map to code. + +## See also + +* [Overview of the Teams developer platform](overview-of-teams-developer-platform-outline.md) + +* [App manifest for agents](../build/app-manifest-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/overview/whats-new-for-developers-outline.md b/msteams-platform/agents-in-teams/overview/whats-new-for-developers-outline.md new file mode 100644 index 00000000000..e863f700c55 --- /dev/null +++ b/msteams-platform/agents-in-teams/overview/whats-new-for-developers-outline.md @@ -0,0 +1,50 @@ +--- +title: What’s new for Microsoft Teams developers +description: Monthly summary of major platform updates, SDK releases, and preview features with an emphasis on AI-powered agents. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# What’s new for Microsoft Teams developers + +[Template instruction → Intro sentence (< 40 words) explaining that this page aggregates the latest capabilities and links to deep-dive articles.] + +## June 2025 highlights + +[Template instruction → Use this pattern for each month; limit to top 5 items.] + +| Feature | Category | Status | Quick link | +|---------|----------|--------|------------| +| Declarative Copilot plug-ins GA | AI agents | GA | [Build your first plug-in](../get-started/quick-start-build-your-first-agent-outline.md) | +| Teams JavaScript SDK 2.7.0 | SDK | GA | [Release notes](https://aka.ms/teamsjs) | +| Live Share media sync in Outlook | Cross-M365 | Preview | [Live Share media overview](../../apps-in-teams-meetings/teams-live-share-overview.md) | +| Link unfurling zero-install | Notifications | GA | [Guide](../extend/notifications-webhooks-outline.md) | +| Agents Toolkit VS Code 1.1 | Tools | GA | [Install](../build/tools-sdk-for-agents-outline.md) | + +## Roadmap at a glance + +[Template instruction → Table with feature, target quarter, and preview sign-up link.] + +## Deprecations & breaking changes + +[Template instruction → Bullet list; each item must include action required and deadline.] + +## Release channels + +- Public release (GA) +- Developer preview *(opt-in)* +- Experimental / Private preview +[Template instruction → Describe how to enable each channel in ≤ 30 words.] + +## How to stay informed + +[Template instruction → Provide RSS, GitHub discussions, Tech Community blog links.] + +## Next step + +Visit [Tools & SDKs for building agents](../build/tools-sdk-for-agents-outline.md) to set up your environment. + +## See also + +- [Overview of the Teams developer platform](overview-of-teams-developer-platform-outline.md) +- [Developer preview guide](../../resources/dev-preview/developer-preview-intro.md) diff --git a/msteams-platform/agents-in-teams/overview/why-build-on-microsoft-teams-outline.md b/msteams-platform/agents-in-teams/overview/why-build-on-microsoft-teams-outline.md new file mode 100644 index 00000000000..9b41725e08a --- /dev/null +++ b/msteams-platform/agents-in-teams/overview/why-build-on-microsoft-teams-outline.md @@ -0,0 +1,64 @@ +--- +title: Why build on Microsoft Teams? +description: Key business, user, and developer benefits of delivering AI-powered solutions on the Teams platform. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Why build on Microsoft Teams? + +[Template instruction → Open with a concise paragraph (≤ 80 words) describing Teams’ reach—400 M+ monthly active users, deep Microsoft 365 integration, and the new agent runtime that lets you add intelligence into everyday collaboration.] + +## Business value + +[Template instruction → Write each bullet as a crisp benefit + outcome.] + +- Accelerate ROI: deploy once to Teams and surface in Outlook & Microsoft 365 without extra engineering. +- Boost workforce productivity: AI agents reduce context-switching by bringing data and actions into the flow of work. +- Trust & security: leverage Microsoft compliance, data residency, and admin-controlled permissions. +- Marketplace monetization: reach millions of organizations through the Teams Store with subscription and in-app purchase options. + +## User value + +[Template instruction → 3–4 bullets focused on end-user experience.] + +- Friction-free sign-in with Microsoft 365 credentials and single sign-on. +- Multi-modal interactions—chat, voice, meetings, cards—choose what fits the moment. +- Unified activity feed & notifications so important updates never get lost. +- Seamless mobility: desktop, web, Android, and iOS clients share the same app fabric. + +## Developer value + +[Template instruction → Emphasize tooling and lowered barriers.] + +- Agents Toolkit: templates, local tunnels, and one-click debug streamline setup. +- Reusable skills: one manifest powers bots, message extensions, tabs, and Copilot plug-ins. +- Open standards: REST, Adaptive Cards, JavaScript/TypeScript, .NET, Python. +- Extensible with Azure services (OpenAI, Functions, Storage, Cognitive Search) and Microsoft Graph APIs. + +## Comparison with alternative approaches + +| Approach | Coverage | AI-readiness | Admin control | Time-to-value | +|----------|----------|--------------|---------------|---------------| +| Stand-alone web app | Limited | DIY | Custom | High | +| Teams native app (classic) | Teams only | Manual | Central | Medium | +| AI-powered agent on Teams *(recommended)* | Teams + Outlook + Microsoft 365 | Built-in orchestration, Copilot surface | Admin policies & consent | **Fastest** | + +[Template instruction → Fill cells with one-word qualifiers (“High / Medium / Low”) or short phrases.] + +## Success stories + +[Template instruction → List 2–3 real or hypothetical case studies in one sentence each.] + +## Limitations & considerations + +[Template instruction → Call out licensing or governance prerequisites in ≤ 2 sentences.] + +## Next step + +Learn “Key agent scenarios & examples” to see practical implementations. + +## See also + +- [Overview of the Teams developer platform](overview-of-teams-developer-platform-outline.md) +- [Tools & SDKs for building agents](../build/tools-sdk-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/plan/agent-types-capabilities-outline.md b/msteams-platform/agents-in-teams/plan/agent-types-capabilities-outline.md new file mode 100644 index 00000000000..e01df301ef2 --- /dev/null +++ b/msteams-platform/agents-in-teams/plan/agent-types-capabilities-outline.md @@ -0,0 +1,73 @@ +--- +title: Agent types and capabilities +description: Compare declarative plug-ins, custom engine agents, and hybrid approaches, and learn which capabilities each model supports across Microsoft Teams and Microsoft 365 Copilot. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Agent types and capabilities + +[Opening paragraph – ≤ 90 words explaining that the Teams platform offers multiple agent archetypes so developers can balance speed-to-market, control, and complexity.] + +## 1. Agent archetypes + +| Type | Authoring model | Where logic runs | Ideal for | Core tools | +|------|-----------------|------------------|-----------|------------| +| **Declarative Copilot plug-in** | JSON manifest + OpenAPI + optional knowledge URLs | Copilot planner executes functions | Simple data fetch & command skills | Developer Portal, ATK CLI | +| **Custom engine agent** | Code (Teams AI Library / Bot Framework) + prompt files | Your service (Azure, on-prem) | Complex reasoning, multi-step workflows | Agents Toolkit, Teams AI Library | +| **Hybrid classic + agent** | Existing bot / tab augmented with `copilotAgents` block | Mix of legacy app and agent logic | Modernizing current Teams apps | Teams AI Library + manifest update | + +### Decision matrix + +[Bullet checklist—choose declarative if you have REST endpoints and no custom logic; choose custom engine if you need orchestration, memory, or external calls.] + +## 2. Capability catalogue + +| Capability | Declarative plug-in | Custom engine | Hybrid | Notes / SDK | +|------------|--------------------|---------------|--------|-------------| +| Function calling (OpenAPI) | ✔ | ✔ | ✔ | Manifest `actions` + Teams AI Planner | +| Knowledge retrieval w/ citations | ✔ (URL or Graph index) | ✔ | ✔ | Add `knowledgeSources` or implement RAG | +| Multi-turn memory | — | ✔ | ✔ | `TurnState`, vector store adapters | +| Sequential workflows / up-to-date cards | — | ✔ | ✔ | Universal Actions, state store | +| Adaptive Card responses | ✔ | ✔ | ✔ | `AdaptiveCards`, UA | +| Live Share real-time sync | — | ✔ | ✔ | Live Share SDK | +| Meetings / calling surfaces | Limited* | ✔ | ✔ | Custom engine required for media APIs | +| Notifications & activity feed | — | ✔ | ✔ | Bot `sendNotification` API | + +\*Declarative plug-ins can surface in Copilot during meetings but not manage real-time media. + +## 3. Surface map + +| Surface | Declarative | Custom engine | Tools / APIs | +|---------|-------------|---------------|--------------| +| Copilot chat | ✔ | ✔ | Planner, function calls | +| Teams chat / channel | Optional via bot | ✔ | Bot messaging | +| Message extension | — | ✔ | `composeExtensions` | +| Personal / dashboard tab | — | ✔ | TeamsJS `pages.tabs` | +| Outlook + M365 hub | ✔ | ✔ | Cross-host manifest | +| Meeting side panel / stage | — | ✔ | Live Share, `meeting` APIs | + +## 4. Security & permission considerations + +- Declarative agents inherit user context; rely on Graph delegated scopes. +- Custom engine agents can also use application permissions but must apply RSC. +- Admin consent flow differs—highlight policy settings. + +## 5. Migration paths + +1. **Classic bot ➜ Hybrid agent:** add `copilotAgents.customEngineAgents` and expose existing commands as functions. +2. **Declarative ➜ Custom engine:** start simple, then add orchestration code when requirements grow. + +## Limitations (preview) + +[≤ 2 sentences on current schema version (1.22 preview) and GCC availability.] + +## Next step + +Proceed to [Design best practices for agents](design-best-practices-for-agents-outline.md) to plan UX, prompts, and governance for your chosen agent type. + +## See also + +- [Choose your agent use-case](choose-your-agent-use-case-outline.md) +- [App manifest for agents](../build/app-manifest-for-agents-outline.md) +- [Tools & SDKs for building agents](../build/tools-sdk-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/plan/choose-your-agent-use-case-outline.md b/msteams-platform/agents-in-teams/plan/choose-your-agent-use-case-outline.md new file mode 100644 index 00000000000..b6592e80252 --- /dev/null +++ b/msteams-platform/agents-in-teams/plan/choose-your-agent-use-case-outline.md @@ -0,0 +1,79 @@ +--- +title: Choose your agent use-case +description: A framework to identify high-value scenarios, required data, and success metrics before you start building an AI-powered agent for Microsoft Teams. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Choose your agent use-case + +[Intro – ≤ 90 words explaining that picking the right scenario up-front saves re-work and increases adoption.] + +## 1. Identify the business goal + +- Reduce task completion time +- Improve decision quality +- Increase employee engagement +*(Provide 1-sentence examples for each.)* + +## 2. Map user personas & workflows + +| Persona | Daily pain-point | Opportunity for an agent | +|---------|-----------------|---------------------------| +| Seller | Hunting for account data | One-shot “deal briefing” via Copilot | +| Support engineer | Repetitive triage questions | FAQ retrieval + ticket creation | +| Project lead | Status reporting | Auto-generated summary & action items | + +## 3. Classify the agent type + +| Need | Recommended type | Key capabilities | +|------|------------------|------------------| +| Expose simple APIs | Declarative plug-in | Function calling, knowledge docs | +| Complex reasoning / orchestration | Custom engine agent | Planner, memory, data fusion | +| Modernize existing bot | Hybrid classic + agent | Re-use bot endpoint + add actions | + +## 4. Assess data & API readiness + +Checklist: + +- [ ] Accessible via REST or Graph +- [ ] SSO or OAuth flow possible +- [ ] Data licensing permits LLM usage +- [ ] PII / compliance concerns addressed + +## 5. Define success metrics + +| Metric | How to measure | Tool | +|--------|----------------|------| +| Adoption | Daily active users | Teams admin analytics | +| Task efficiency | Avg. time to complete | In-app telemetry | +| Accuracy / quality | User thumbs-up rate | Card feedback buttons | + +## 6. Decide the surfaces to light up + +- Chat or channel conversation +- Copilot canvas (inline) +- Message extension command +- Meeting side panel or stage +- Personal dashboard tab + +*(Highlight that each extra surface adds development/test scope.)* + +## 7. Create a minimal-viable agent (MVA) plan + +1. Pick one critical skill. +2. Target chat + Copilot first. +3. Collect feedback, iterate, then expand. + +## Limitations & constraints + +[≤ 2 sentences summarizing preview or tenant limitations that may affect scenario choice.] + +## Next step + +Proceed to [Agent types & capabilities](agent-types-capabilities-outline.md) to match your chosen scenario with the right technical pattern. + +## See also + +- [Key agent scenarios & examples](../get-started/key-agent-scenarios-examples-outline.md) +- [Design best practices for agents](design-best-practices-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/plan/design-best-practices-for-agents-outline.md b/msteams-platform/agents-in-teams/plan/design-best-practices-for-agents-outline.md new file mode 100644 index 00000000000..ae4804b78f6 --- /dev/null +++ b/msteams-platform/agents-in-teams/plan/design-best-practices-for-agents-outline.md @@ -0,0 +1,92 @@ +--- +title: Design best practices for AI-powered agents +description: Guidelines for conversation flow, prompt engineering, UI surfaces, accessibility, and analytics to deliver high-quality agents in Microsoft Teams and Copilot. +ms.localizationpriority: medium +ms.topic: reference +ms.date: 07/02/2025 +--- +# Design best practices for AI-powered agents + +[Intro – ≤ 90 words describing why good design matters: clarity for users, guardrails for the LLM, and trust for admins.] + +## 1. Conversation & prompt design + +### Do + +- Write system prompts that set persona, tone, and allowed data sources. +- Constrain actions with explicit JSON schema in `actions.parameters`. +- Provide concrete examples for zero-shot and few-shot learning. + +### Don’t + +- Leave instructions open-ended (“do whatever the user asks”). +- Embed secrets or URLs directly in prompts—use environment variables. + +## 2. User experience principles + +### Keep it in the flow of work + +- Prefer chat replies or Adaptive Cards over opening browser windows. + +### Progressive disclosure + +- Start with concise answers; offer “Show details” via Universal Actions. + +### Contextual grounding + +- Display citations, timestamps, and data source names to build trust. + +## 3. Surface selection guidelines + +| Scenario | Recommended surface | Rationale | +|----------|--------------------|-----------| +| Quick Q&A | Copilot + chat bot | Fastest feedback loop | +| Structured input | Message extension dialog | Controlled forms | +| Collaborative editing | Tab + Live Share | Real-time co-creation | +| Meeting co-pilot | Side panel | Keeps content visible while speaking | + +## 4. Accessibility & theming + +- Use Adaptive Card color tokens; never hard-code hex values. +- Ensure focus order in dialogs follows keyboard navigation. +- Provide alt-text on images; target 4.5:1 contrast ratio. + +## 5. Performance & reliability + +- Cache frequent API calls in bot memory for the turn. +- Keep LLM prompt + completion under 8 K tokens to avoid latency. +- Use streaming responses for answers > 400 characters. + +## 6. Safety & compliance guardrails + +- Implement moderation on user input *and* LLM output. +- Respect tenant sensitivity labels and data-loss-prevention policies. +- Log function calls with user ID and timestamp for audit. + +## 7. Telemetry & measurement + +| Funnel stage | Instrumentation tip | Metric | +|--------------|--------------------|--------| +| Discovery | Track install & first-launch events | Daily new installs | +| Engagement | Log `Action.Execute` invocations | Avg. tasks/user | +| Satisfaction | Add thumbs-up/down buttons to cards | Positive % | + +> [!TIP] +> Use **Application Insights** or **Azure Monitor** for low-code telemetry wiring via Agents Toolkit. + +## 8. Iteration workflow + +1. Ship minimal-viable agent to internal ring. +2. Observe logs, rejection reasons, Copilot planner traces. +3. Refine prompts, card layouts, and function parameters. +4. Repeat with a broader audience. + +## Next step + +Move on to [Authentication & single sign-on](../integrate/authentication-sso-outline.md) to secure your agent. + +## See also + +- [Choose your agent use-case](choose-your-agent-use-case-outline.md) +- [Agent types & capabilities](agent-types-capabilities-outline.md) +- [Tools & SDKs for building agents](../build/tools-sdk-for-agents-outline.md) diff --git a/msteams-platform/agents-in-teams/publish/grow-adoption-track-usage-outline.md b/msteams-platform/agents-in-teams/publish/grow-adoption-track-usage-outline.md new file mode 100644 index 00000000000..5f4a91515f1 --- /dev/null +++ b/msteams-platform/agents-in-teams/publish/grow-adoption-track-usage-outline.md @@ -0,0 +1,90 @@ +--- +title: Grow adoption and track usage of your Teams agent +description: Strategies, in-product levers, and analytics tools that help you drive installs, engagement, and retention for your AI-powered agent. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Grow adoption & track usage + +[Template instruction → Open with a 60–80 word paragraph summarizing why post-publish effort matters: the Store listing alone doesn’t guarantee success; you need promotion, onboarding guidance, and data-driven iteration.] + +## 1. Define success metrics before launch + +[Template instruction → Bullet the 3–4 KPIs you’ll watch—installs, weekly active users, task-completion rate, CSAT.] + +## 2. Optimize your Teams Store listing + +### Do + +- Use action-oriented keywords (“Copilot”, “CRM insights”). +- Include at least three screenshots that show Copilot interaction and chat UI. + +### Don’t + +- Reuse marketing copy from another product without context. +[template instruction → Keep lists to ≤ 6 bullets total.] + +## 3. Drive discovery inside Teams + +| Lever | What it does | How to enable | +|-------|--------------|---------------| +| Admin pinning | Puts your agent in left rail or message composer | Work with tenant IT and provide JSON policy | +| Zero-install link unfurling | Suggests agent when users paste domain URLs | Add `composeExtensions.queryLink` in manifest | +| Adaptive Card deep links | Jump users into specific actions | Use `teams.microsoft.com/l/entity/` links | + +## 4. Build a great first-run experience + +- Show a welcome card with sample prompts. +- Pre-authenticate using SSO; avoid OAuth pop-ups. +- Offer **Learn more** button linking to docs or video. +[template instruction → Explain each bullet in ≤ 20 words.] + +## 5. Promote outside Teams + +| Channel | Asset | Pro tip | +|---------|-------|---------| +| Email campaign | GIF of Copilot demo | Include admin install guide PDF | +| Company intranet | Hero banner | Embed Store deep link | +| Social / blog | Short demo video | Tag #MicrosoftTeamsDev | + +## 6. Instrument your agent for analytics + +### In-product telemetry + +[Template instruction → Describe adding Application Insights or `@microsoft/teams-ai` telemetry hook.] + +### Teams admin analytics + +[Template instruction → Note that tenant admins can view usage by app—provide screenshot placeholder.] + +### Partner Center analytics (Store) + +- Daily installs & active users +- Ratings & reviews feed +- Crash & error reports + +## 7. Iterate based on data + +1. Identify drop-off step (for example, users never click “Connect data”). +2. Ship a targeted improvement (auto-detect data source). +3. Announce update via release notes card. +[Template instruction → Numbered list ≤ 3–4 steps.] + +## 8. Common growth pitfalls + +| Pitfall | Mitigation | +|---------|-----------| +| Over-prompting users | Batch notifications; respect quiet hours | +| Ignoring mobile users | Test responsive cards & tabs | +| No feedback channel | Add thumbs-up/down or feedback form | + +## Next step + +[Template instruction → Link to monetization guide.] +Learn how to [Monetize your agent](monetize-your-agent-outline.md) with SaaS offers or in-app purchases. + +## See also + +- [Publish your agent to the Teams Store](publish-your-agent-to-teams-store-outline.md) +- [Local testing your agent](../test/local-testing-your-agent-outline.md) diff --git a/msteams-platform/agents-in-teams/publish/monetize-your-agent-outline.md b/msteams-platform/agents-in-teams/publish/monetize-your-agent-outline.md new file mode 100644 index 00000000000..b903120a502 --- /dev/null +++ b/msteams-platform/agents-in-teams/publish/monetize-your-agent-outline.md @@ -0,0 +1,105 @@ +--- +title: Monetize your Teams agent +description: Explore pricing models, SaaS offers, and in-app purchase options to generate revenue from your Microsoft Teams AI-powered agent. +ms.localizationpriority: medium +ms.topic: conceptual +ms.date: 07/02/2025 +--- +# Monetize your Teams agent + +[Template instruction → Open with 70–90 words on why monetization matters—turn usage into ROI, align with customer value, and leverage Microsoft commercial marketplace.] + +## 1. Marketplace monetization models + +| Model | When to pick it | Billing handled by | User purchase flow | +|-------|-----------------|--------------------|--------------------| +| Free | Build adoption first or upsell later | n/a | Single-click install | +| Paid SaaS (**recommended**) | Subscription to cloud service | Microsoft commerce engine | Admin selects plan → checkout | +| In-app purchase (IAP) | Unlock premium features | Microsoft commerce engine | User triggers paywall → Teams dialog | +| License BYO (bring your own) | Existing customer contracts | Your backend | Manual account linking | + +[Template instruction → Keep each cell concise (< 12 words).] + +## 2. Create a SaaS offer in Partner Center + +1. [Template instruction → Bullet-form numbered list; ≤ 150 words total.] +2. Define pricing plans (monthly, annual, private plans). +3. Specify metered dimensions *(optional)* for usage-based billing. +4. Connect the offer to your Teams app via **Product ID**. +5. Enable trial or sandbox test tenants. + +> [!TIP] +> Use **Private plans** for pilots or enterprise negotiated pricing. + +## 3. Activate in-app purchases (IAP) + +### Manifest changes + +```json +"subscriptionOffer": { + "offerId": "contosoPro", + "resource": "https://marketplace.microsoft.com" +} +``` + +[Template instruction → Explain each property in 1–2 sentences.] + +### Payment flow + +1. User clicks premium button in Adaptive Card. +2. Teams opens purchase dialog (TeamsJS `appInstallDialog.openPurchaseExperience`). +3. Upon success, Teams returns `orderId` to your bot/tab. +4. Verify entitlement via **License Service API** before unlocking features. + +### Service-to-service validation + +[Template instruction → Code block (pseudo) showing REST call to `https://marketplaceapi.microsoft.com/api/saas/subscriptions/{id}`.] + +## 4. Handle licensing in code + +- Cache entitlement in your database. +- Gracefully downgrade on expired license (`status=Suspended`). +- Display **Manage Subscription** deep link in settings tab. + +## 5. Revenue share & payout + +| Channel | Rev share* | Payout cadence | +|---------|-----------|---------------| +| Teams Store SaaS | 85 % to publisher | Monthly | +| In-app purchase | 85 % to publisher | Monthly | + +\*Subject to Microsoft Standard Publisher Agreement. + +## 6. Pricing best practices + +### Do + +- Tier plans by tangible ROI (for example, tickets solved). +- Offer a 14-day trial with limited actions. + +### Don’t + +- Only gate AI tokens; bundle workflow value too. + +## 7. Compliance & tax considerations + +[Template instruction → 2–3 sentences noting Microsoft handles global tax, but you must submit payout and tax forms in Partner Center.] + +## 8. Testing your monetized agent + +1. Enable **Preview offer ID** in Partner Center. +2. Run `atk preview --marketplaceId ` to sideload with preview pricing. +3. Validate purchase on sandbox tenants. + +## Limitations + +[Template instruction → ≤ 2 sentences about GCC and EDU marketplace restrictions.] + +## Next step + +Return to [Publish your agent to the Teams Store](publish-your-agent-to-teams-store-outline.md) to submit your monetized package. + +## See also + +- [Grow adoption & track usage](grow-adoption-track-usage-outline.md) +- [In-app purchase API reference](/windows/uwp/monetize/in-app-purchases-and-trials) diff --git a/msteams-platform/agents-in-teams/publish/publish-your-agent-to-teams-store-outline.md b/msteams-platform/agents-in-teams/publish/publish-your-agent-to-teams-store-outline.md new file mode 100644 index 00000000000..be21a098bd4 --- /dev/null +++ b/msteams-platform/agents-in-teams/publish/publish-your-agent-to-teams-store-outline.md @@ -0,0 +1,98 @@ +--- +title: Publish your agent to the Teams Store +description: Step-by-step instructions for packaging, validating, and submitting your AI-powered agent so millions of Microsoft Teams users can discover and install it. +ms.localizationpriority: medium +ms.topic: how-to +ms.date: 07/02/2025 +--- +# Publish your agent to the Teams Store + +[Template instruction → Open with one sentence summarizing the goal: “You’ll learn how to turn your local agent project into a production-ready package and submit it for Store approval.”] + +## Prerequisites + +[Template instruction → List 3-5 bullets only.] + +- Agent has passed **local validation** (`atk validate`) with no errors. +- Icons, screenshots, and marketing text prepared per Store guidelines. +- Publisher has completed **Partner Center** account verification. +- Admin rights to grant app permissions in target tenant (for testing). + +## Step 1 – Build the app package + +[Template instruction → ≤ 150 words describing the Toolkit command.] + +```bash +atk package --env prod +``` + +Outputs `teamsApp.zip` containing `manifest.json + icons`. + +### What’s inside + +| File | Purpose | +|------|---------| +| manifest.json | Declares agent, icons, permissions | +| color.png | 192 × 192 color icon | +| outline.png | 192 × 192 outline icon | + +## Step 2 – Validate with Store rules + +[Template instruction → Emphasize additional policy checks.] + +```bash +atk validate --rules store +``` + +Fix any *error* or *critical* warnings (for example, unsuitable descriptions, missing privacy URL). + +## Step 3 – Upload in Partner Center + +1. [Template instruction → Use numbered list.] Sign in to **Partner Center › Teams Store › New submission**. +2. Upload `teamsApp.zip`. +3. Fill in Store listing details: + - **Short description** (≤ 80 chars) + - **Long description** (≤ 4,000 chars, supports Markdown) + - Category, search keywords, pricing. +4. Add **screenshots** (1366 × 768) + **video** (optional). +5. Specify regional availability and languages. +6. Click **Save draft**. + +## Step 4 – Configure SaaS or in-app purchase *(optional)* + +[Template instruction → 2-3 sentences with link to monetization guide.] + +## Step 5 – Submit for review + +- Partner Center runs automated tests (≈ 10 min). +- Manual review SLA: 3–5 business days. +- Track status under **Submissions** tab. + +## Step 6 – Respond to validation feedback + +[Template instruction → Use callout >NOTE.] +> If the app is rejected, open the review report, fix highlighted issues (e.g., missing consent flow), increment `version`, rebuild `teamsApp.zip`, and **Resubmit**. + +## Post-publish actions + +- **Promote**: generate Store deep link and share with customers. +- **Monitor**: view installs & ratings in Partner Center analytics. +- **Update**: submit new versions—only `version` field must increment; existing users receive auto-update. + +## Troubleshooting + +| Issue | Fix | +|-------|-----| +| “Icon size invalid” | Provide 192 × 192 PNG ≤ 32 KB. | +| `scopeConstraints` error | Remove classic-only settings; agents use `defaultInstallScope`. | +| App stuck in “In review” | Reply to reviewer note or create Partner Center support ticket. | + +## Next step + +[Template instruction → Link to adoption article.] +Proceed to [Grow adoption & track usage](grow-adoption-track-usage-outline.md) to maximize your agent’s reach. + +## See also + +- [Manifest validation workflow](../test/manifest-validation-workflow-outline.md) +- [Monetize your agent](monetize-your-agent-outline.md) diff --git a/msteams-platform/agents-in-teams/reference/sdk-and-api-reference-hub-outline.md b/msteams-platform/agents-in-teams/reference/sdk-and-api-reference-hub-outline.md new file mode 100644 index 00000000000..58e525c505e --- /dev/null +++ b/msteams-platform/agents-in-teams/reference/sdk-and-api-reference-hub-outline.md @@ -0,0 +1,78 @@ +--- +title: SDK & API reference hub +description: Entry point to all Microsoft Teams, Copilot agent, Microsoft Graph, and tooling APIs used when building solutions on the Teams developer platform. +ms.localizationpriority: medium +ms.topic: reference +ms.date: 07/02/2025 +--- +# SDK & API reference hub + +[template instruction → Brief intro (≤ 60 words) that tells readers this is the centralized jump-off page for detailed class, method, CLI, and schema docs.] + +## Platform SDKs + +### Microsoft Teams JavaScript SDK (TeamsJS) + +[template instruction → One-sentence scope statement + bullet links.] + +- v2.x reference (TypeScript) +- v1.x (legacy) +- Release notes + +### Teams AI Library + +- JavaScript / TypeScript +- .NET +- Python (preview) + +### Microsoft 365 Agents Toolkit SDK + +- `@microsoft/atk` (Node CLI helpers) +- TeamsFx runtime helpers + +## Command-line tools + +| Tool | Docs | Latest version | +|------|------|----------------| +| Agents Toolkit CLI (`atk`) | [CLI reference](../../toolkit/Microsoft-365-Agents-Toolkit-CLI.md) | 1.1 | +| Teams Toolkit CLI (`teamsapp`) *(classic)* | [Reference](../../toolkit/teams-toolkit-CLI.md) | 5.x | + +## REST & Graph APIs + +- Microsoft Graph – Teams, chat, channel, presence, meeting transcripts + +- Agent marketplace & commerce APIs +- Resource-specific consent endpoints + +[template instruction → Provide bullets linking to official Graph interactive docs, plus Teams-specific REST samples.] + +## Schemas + +- App manifest JSON schema (v1.22 for agents) +- Localization schema +- Adaptive Card schema and Universal Actions extensions + +## Samples gallery + +| Language | Repo link | Scenario | +|----------|-----------|----------| +| TypeScript | `contoso/hello-agent` | Minimal custom engine agent | +| C# | `contoso/sales-coach-agent` | Multi-skill enterprise bot | +| Python | `contoso/rag-agent` | RAG pattern with Azure AI Search | + +## How to use this hub + +1. Pick a surface (TeamsJS, Teams AI, Graph). +2. Select language tab. +3. Drill into class, method, or endpoint pages. + +[template instruction → Each bullet ≤ 15 words.] + +## Next step + +Jump to [Tools & SDKs for building agents](../build/tools-sdk-for-agents-outline.md) to install the libraries referenced here. + +## See also + +- [App manifest for agents](../build/app-manifest-for-agents-outline.md) +- [Authentication & single sign-on](../integrate/authentication-sso-outline.md) diff --git a/msteams-platform/agents-in-teams/reference/teams-bot-framework-activity-extensions-outline.md b/msteams-platform/agents-in-teams/reference/teams-bot-framework-activity-extensions-outline.md new file mode 100644 index 00000000000..5f01921ceb1 --- /dev/null +++ b/msteams-platform/agents-in-teams/reference/teams-bot-framework-activity-extensions-outline.md @@ -0,0 +1,137 @@ +--- +title: Microsoft Teams extensions to the Bot Framework Activity schema +description: Complete reference for Teams-specific activity types, `channelData` payloads, and event properties that extend the core Bot Framework Activity protocol. +ms.localizationpriority: medium +ms.topic: reference +ms.date: 07/02/2025 +--- +# Teams extensions to the Bot Framework Activity protocol + +[template instruction → ≤ 60-word intro explaining that while Bots in Teams adhere to the Bot Framework Activity schema, Teams adds extra activity types, invoke names, and `channelData` shapes. This page consolidates them in one place.] + +## 1. Activity type additions + +| `type` value | Purpose | When sent | Key properties | +|--------------|---------|-----------|----------------| +| `invoke` | From client to bot for rich interactions (task modules, Adaptive Card `Action.Execute`, message extensions) | User presses button / executes command | `name`, `value` (object) | +| `messageReaction` *(Teams)* | Reaction added/removed on message | User 👍 / ❤️ etc. | `reactionsAdded[]`, `reactionsRemoved[]` | +| `event` – **`meetingStart` / `meetingEnd`** | Lifecycle notifications for meetings | Meeting begins / ends | `value.meeting` object | +| `event` – **`meetingParticipantJoin/Leave`** | Participant roster change | User joins/leaves | `value.participant` | +| `event` – **`installationUpdate`** | Bot installed, upgraded, or removed | App lifecycle | `value.action`, `teamsInfo` | +| `event` – **`typingIndicator`** *(Teams)* | Extended typing status | User types in Teams (not forwarded by default) | n/a | + +[template instruction → Include cross-links for deeper docs.] + +## 2. `invoke` – `name` registry + +| `name` | Triggering feature | Expected request `value` | Response contract | +|--------|-------------------|--------------------------|-------------------| +| `task/fetch` | Dialog open (URL or Adaptive Card) | `{ data?: any }` | `task` envelope | +| `task/submit` | Dialog submit/close | `{ data?: any }` | `task` or `message` | +| `composeExtension/query` | Search ME | `parameters[], queryText` | `composeExtension` result set | +| `composeExtension/queryLink` | Link unfurl | `url` | Same as above | +| `composeExtension/submitAction` | Action ME submit | `data` | `composeExtension` result | +| `adaptiveCard/action` | Adaptive Card `Action.Execute` | `verb`, `data` | Adaptive Card or message | +| `signin/verifyState` | OAuth callback | `state` | 200/401 | +| `actionableMessage/executeAction` | Outlook actionable message |…|…| + +[template instruction → Provide only top entries; add note linking to full table at bottom.] + +## 3. Teams-specific `channelData` schemas + +### 3.1 Common envelope + +```json +{ + "tenant": { "id": "" }, + "team": { "id": "", "name": "Contoso" }, + "channel":{ "id": "", "name": "General" }, + "eventType": "channelCreated" | "teamRenamed" | ... +} +``` + +*All properties are optional depending on context.* + +### 3.2 Conversation-update events + +| Event (`eventType`) | Extra fields | Sample | +|---------------------|-------------|--------| +| `teamMemberAdded` | `membersAdded[]` | [JSON sample] | +| `channelRenamed` | `channel` old/new | … | +| `teamArchived` | `team` object | … | + +### 3.3 Meeting events + +```json +"value": { + "meeting": { + "id": "19:meeting_Y2FjZW…", + "topic": "Project Sync", + "joinUrl": "https://teams.microsoft.com/l/meetup-join/…" + } +} +``` + +## 4. Extended properties on standard activities + +| Property | Applies to | Description | +|----------|-----------|-------------| +| `localTimestamp` | All | Client-local ISO time | +| `channelData.notification` | `message` | `{ alert: true }` triggers @mention banner | +| `onBehalfOf` | Message preview flows | Array attributing bot messages to user | + +## 5. Response envelopes + +### 5.1 `task` response (dialog) + +```json +{ + "task": { + "type": "continue", + "value": { + "title": "My dialog", + "height": 500, + "width": "medium", + "url": "https://.../dialog.html" + } + } +} +``` + +### 5.2 `composeExtension` response + +```json +{ + "composeExtension": { + "type": "result", + "attachmentLayout": "list", + "attachments": [ { ...card... } ] + } +} +``` + +## 6. Error handling for invoke activities + +- Return HTTP 200 with `statusCode` property in JSON body. +- Common status codes: `400` (bad request), `403` (auth failure), `429` (rate limit). +- Teams client displays generic error UI; include `error.message` for diagnostics. + +## 7. Versioning & compatibility + +[template instruction → Explain Bot Framework protocol version (v3 / v4) usage and Teams client backward compatibility guarantees (12-month deprecation notice).] + +## 8. Resources & samples + +| Sample repo | Demonstrated extension | Language | +|-------------|-----------------------|----------| +| `teams-samples/js/invoke-task-module` | `task/fetch`, `task/submit` | TypeScript | +| `teams-samples/csharp/adaptive-card-ua` | `adaptiveCard/action` | C# | + +## Next step + +Consult [Build bots, message extensions, tabs & cards](../build/build-bots-message-extensions-tabs-cards-outline.md) to see these activity extensions in action. + +## See also + +- [Bot Framework Activity schema](https://aka.ms/bf-activity-schema) +- [Authentication & single sign-on](../integrate/authentication-sso-outline.md) diff --git a/msteams-platform/agents-in-teams/resources/frequently-asked-questions-outline.md b/msteams-platform/agents-in-teams/resources/frequently-asked-questions-outline.md new file mode 100644 index 00000000000..68c30f46d13 --- /dev/null +++ b/msteams-platform/agents-in-teams/resources/frequently-asked-questions-outline.md @@ -0,0 +1,108 @@ +--- +title: Frequently asked questions for Microsoft Teams developers +description: Answers to common questions about building, testing, and publishing Teams apps and AI-powered agents. +ms.localizationpriority: medium +ms.topic: troubleshooting +ms.date: 07/02/2025 +--- +# Frequently asked questions – Microsoft Teams developer platform + +[Template instruction → Begin with a one-sentence intro that sets expectation: “This page aggregates the questions we hear most often from developers building traditional Teams apps and AI-powered agents.”] + +## General + +### Q1. What’s the difference between a classic Teams app and an AI-powered agent? + +[Template instruction → Answer in ≤ 120 words: compare manifest versions, Copilot integration, and host coverage.] + +### Q2. Which languages and SDKs are officially supported? + +[Template instruction → List JS/TS, .NET, Python, and link to SDK hub.] + +### Q3. Can I migrate my existing Teams app to an agent? + +[Template instruction → Explain adding `copilotAgents` to manifest, point to migration guide.] + +## Tooling & setup + +### Q4. Do I need both Agents Toolkit and Teams Toolkit? + +[Template instruction → Clarify that Agents Toolkit supersedes classic Toolkit for new projects but both can coexist.] + +### Q5. How do I set up a free Microsoft 365 developer tenant? + +[Template instruction → Short answer + link.] + +### Q6. Dev tunnel vs. ngrok—what should I use? + +[Template instruction → Two-sentence comparison and link to setup doc.] + +## Authentication & Microsoft Graph + +### Q7. Why do I get `AADSTS65001` even after granting consent? + +[Template instruction → Cover missing scope in token claim.] + +### Q8. Does Outlook support Teams SSO tokens? + +[Template instruction → Yes, same JWT audience; explain redirect URI requirement.] + +## Copilot & agents + +### Q9. How does Copilot discover my agent’s skills? + +[Template instruction → Mention planner, manifest `actions`, refresh after sideload.] + +### Q10. What token limits apply to prompts and responses? + +[Template instruction → Provide current 8 K token guidance.] + +### Q11. Are agents available in government clouds? + +[Template instruction → Preview timeline or limitation.] + +## Notifications + +### Q12. Why aren’t my activity-feed notifications appearing on mobile? + +[Template instruction → Explain tenant admin policy + quiet hours.] + +## Testing & debugging + +### Q13. How can I test Copilot interactions without publishing? + +[Template instruction → Mention Microsoft 365 Agents Playground.] + +### Q14. Local debug fails with “package error 1102” + +[Template instruction → Explain mismatched schema vs. Teams client version.] + +## Publishing & monetization + +### Q15. What is the revenue share for paid SaaS offers? + +[Template instruction → 85 % developer / 15 % Microsoft.] + +### Q16. How long does Store review take? + +[Template instruction → Typical 3–5 business days, variables.] + +### Q17. Can I sell outside the Teams Store? + +[Template instruction → Explain BYO licensing vs Store compliance.] + +## Cross-platform (Outlook & Microsoft 365) + +### Q18. Why doesn’t my message extension appear in Outlook? + +[Template instruction → Check `extensions.requirements` and host version.] + +### Q19. Does Live Share work in Outlook meetings? + +[Template instruction → Not yet; roadmap note.] + +## See also + +- [Troubleshooting tips](../test/troubleshooting-tips-outline.md) +- [SDK & API reference hub](../reference/sdk-and-api-reference-hub-outline.md) +- [Authentication and single sign-on](../integrate/authentication-sso-outline.md) diff --git a/msteams-platform/agents-in-teams/resources/support-and-feedback-channels-outline.md b/msteams-platform/agents-in-teams/resources/support-and-feedback-channels-outline.md new file mode 100644 index 00000000000..addb5f52f39 --- /dev/null +++ b/msteams-platform/agents-in-teams/resources/support-and-feedback-channels-outline.md @@ -0,0 +1,76 @@ +--- +title: Support and feedback channels for Microsoft Teams developers +description: Find the right place to ask questions, report bugs, request features, and get official support while building Teams apps and AI-powered agents. +ms.localizationpriority: medium +ms.topic: reference +ms.date: 07/02/2025 +--- +# Support & feedback for Teams developers + +[Template instruction → Begin with a short paragraph (< 60 words) explaining why engaging with the community and Microsoft channels speeds up development and improves product quality.] + +## 1. Self-help resources + +- **Documentation** – Start with this docs site; use the search bar for API or error codes. +- **Samples gallery** – Review working code in the [templates & samples](templates-and-sample-apps-outline.md) page. +- **Troubleshooting guides** – Check [Troubleshooting tips](../test/troubleshooting-tips-outline.md) for common fixes. + +## 2. Community Q&A + +| Channel | When to use | Link | +|---------|-------------|------| +| Stack Overflow `msteams` tag | Quick how-to or error questions | `https://stackoverflow.com/questions/tagged/msteams` | +| Microsoft Q&A `teams-platform` | Deeper technical threads; Microsoft engineers monitor | `https://aka.ms/teams-platform-qa` | +| GitHub Discussions (teams-samples) | Issues with official samples | `https://github.com/OfficeDev/TeamsFx/discussions` | +| Tech Community Blogs & AMAs | Early previews, best practices | `https://aka.ms/teams-tech-community` | + +[Template instruction → Keep table concise; link text must be full URL.] + +## 3. Report documentation issues + +[Template instruction → 3-step numbered list ≤ 70 words.] + +1. At the top of any doc page click **Feedback** → **This page**. +2. Choose **GitHub Issues**; sign in if prompted. +3. Describe the problem or propose an edit—use clear steps and screenshots. + +## 4. Report product bugs + +### Via GitHub + +- Use **`microsoft/TeamsFx`** repository for Agents Toolkit or SDK bugs. +- Label the issue **`bug`** and include repro steps, logs, and client versions. + +### Via Microsoft 365 Developer Support + +1. Go to **Microsoft 365 admin center › Support › New service request**. +2. Select **Teams platform** and provide tenant & app IDs. +3. [Template instruction → Mention SLA: “response within 24 business hours for paid support plans.”] + +## 5. Request new features + +- Submit ideas on **Microsoft Teams UserVoice** replacement portal: `https://aka.ms/teams-feature-request`. +- Up-vote existing items; the PM team reviews top ideas monthly. + +## 6. Stay updated + +- **Twitter / X:** `@Microsoft365Dev` for announcements. +- **RSS feed** for [What’s new](../overview/whats-new-for-developers-outline.md). +- **Monthly community call** – Register at `https://aka.ms/teams-community-call`. + +## 7. Escalation path + +[Template instruction → Bullet list ≤ 3 items.] + +- If a support ticket is blocked > 5 days, reply in-thread to escalate. +- For security vulnerabilities, email `secure@microsoft.com` with “MSRC” in the subject. +- Engage Microsoft partner manager for marketplace or monetization blockers. + +## Next step + +Review [Manifest validation workflow](../test/manifest-validation-workflow-outline.md) to pre-empt common submission errors before opening a support ticket. + +## See also + +- [Frequently asked questions](frequently-asked-questions-outline.md) +- [Templates & sample apps](templates-and-sample-apps-outline.md) diff --git a/msteams-platform/agents-in-teams/resources/templates-and-sample-apps-outline.md b/msteams-platform/agents-in-teams/resources/templates-and-sample-apps-outline.md new file mode 100644 index 00000000000..3b8f4c9c811 --- /dev/null +++ b/msteams-platform/agents-in-teams/resources/templates-and-sample-apps-outline.md @@ -0,0 +1,73 @@ +--- +title: Templates and sample apps for Microsoft Teams developers +description: Explore official templates, fully-featured sample repos, and low-code solutions that accelerate building classic Teams apps and AI-powered agents. +ms.localizationpriority: medium +ms.topic: reference +ms.date: 07/02/2025 +--- +# Templates & sample apps + +[template instruction → Open with ≤ 60 words explaining that Microsoft publishes open-source projects covering common scenarios—use them as learning tools or building blocks.] + +## 1. Quick-start templates + +| Template | Capability focus | Language | Where to get it | +|----------|-----------------|----------|-----------------| +| **Hello Agent** | Custom engine agent, Copilot plug-in | TypeScript | VS Code “New Project” wizard / GitHub | +| **Declarative Plug-in** | OpenAPI + knowledge sources | JSON + Postman | Developer Portal sample gallery | +| **Classic Tab + Bot** | Personal tab + SSO bot | JavaScript / C# | `teams-samples` repo | + +[template instruction → Keep table ≤ 6 rows; link each template to its repo.] + +## 2. Full-featured sample solutions + +### Contoso Sales Coach *(TypeScript)* + +- Custom engine agent with CRM integration +- Message extension + tab dashboard + activity notifications +- Shows Azure Functions, Graph, and OpenAI usage +[template instruction → Provide GitHub link.] + +### Fabrikam Help-desk Bot *(C#)* + +- Classic bot modernized into hybrid agent +- Sequential workflow approvals with Adaptive Cards +- In-app purchase to unlock premium SLA analytics + +### Northwind RAG Assistant *(Python – preview)* + +- Retrieval-augmented generation against Azure AI Search index +- Multi-turn Copilot skills and citations +- Live Share canvas for collaborative editing of responses + +## 3. Low-code solutions with Power Platform + +| Solution | Components | Scenario | Link | +|----------|------------|----------|------| +| Champion Management Platform | Power Apps + Power Automate + Dataverse | Employee community building | Docs / GitHub | +| Company Communicator | Power Automate + Azure Functions | Org-wide announcements | Docs / GitHub | +| Teams Emergency Operations Center | Power Apps + Maps | Crisis coordination | Docs / GitHub | + +[template instruction → Note licensing considerations in footnote if needed.] + +## 4. How to use a template effectively + +1. **Fork or clone** the repo instead of editing in place. +2. **Rename** the app ID and manifest fields (`id`, `name`, `publisher`). +3. **Update icons** and privacy-policy URL. +4. **Run `atk validate`** before sideloading. +5. **Iterate**—replace stub APIs with your own services. +[template instruction → Keep each step ≤ 20 words.] + +## 5. Contribute back + +[template instruction → Encourage community contributions; provide link to contribution guidelines and issue tracker.] + +## Next step + +Try the **Hello Agent** template via the Agents Toolkit and complete the [Quick-start guide](../get-started/quick-start-build-your-first-agent-outline.md). + +## See also + +- [SDK & API reference hub](../reference/sdk-and-api-reference-hub-outline.md) +- [Grow adoption & track usage](../publish/grow-adoption-track-usage-outline.md) diff --git a/msteams-platform/agents-in-teams/test/local-testing-your-agent-outline.md b/msteams-platform/agents-in-teams/test/local-testing-your-agent-outline.md new file mode 100644 index 00000000000..16b5026699a --- /dev/null +++ b/msteams-platform/agents-in-teams/test/local-testing-your-agent-outline.md @@ -0,0 +1,87 @@ +--- +title: Local testing your AI-powered agent +description: Run, debug, and validate your Microsoft Teams agent on your development machine using the Agents Toolkit, dev tunnels, and Microsoft 365 Agents Playground. +ms.localizationpriority: medium +ms.topic: how-to +ms.date: 07/02/2025 +--- +# Test your agent locally + +Develop faster by running your agent—bot logic, Copilot plug-in functions, tabs, and cards—without publishing to Azure or the Teams Store. + +## Prerequisites + +- Project scaffolded with the **Microsoft 365 Agents Toolkit** (`atk new …`) +- Node 18 / .NET 8 / Python 3.10 runtime installed +- Visual Studio Code (v1.90+) or ATK CLI (v1.1+) +- **dev tunnel** service (auto-installed) or **ngrok** (fallback) +- Microsoft 365 developer tenant with **Upload custom apps** enabled + +## 1 – Start a local debug session + +### Using VS Code + +1. Press `F5` or choose **Run › Debug in Teams**. +2. Toolkit performs: + - NPM / dotnet build + - Spins up local web server & bot process + - Creates HTTPS dev tunnel (e.g., `https://a1c2.p1.dev.tunnels.ms`) + - Patches URLs inside `manifest.json` + - Sideloads the app and launches Teams in a debug browser profile + +### Using ATK CLI + +```bash +atk preview --env local +``` + +Same automation—works in any IDE or on CI agents. + +## 2 – Test Copilot interactions in Microsoft 365 Agents Playground + +1. From VS Code Command Palette → **Agents: Launch Playground** + *(or run `atk playground`)* +2. Choose activity trigger (Chat message, Copilot prompt, Message-extension) +3. Inspect planner trace, function calls, and LLM tokens in real time +4. Edit prompt or code → hot-reload → re-trigger instantly + +> [!TIP] +> Playground can mock Teams context (team ID, locale, theme) via `playground.config.yaml`. + +## 3 – Debug bots & message extensions + +| Task | Where | Steps | +|------|-------|-------| +| Breakpoints | VS Code / VS | Set in `*.ts`, `*.cs`, `*.py`; press F5 | +| View incoming activities | Debug console → **Teams AI Trace** | Shows `message`, `invoke`, `adaptiveCard/action` | +| Inspect tokens | Playground “Auth” pane | JWT claims & scopes | + +## 4 – Debug tabs & cards + +- Open **Teams** debug browser window that Toolkit launches. +- Press `F12` to access Dev Tools; source maps enabled by default. +- Use `teams-js` **pages.backStack** helper to navigate quickly between states. + +## 5 – Run integration tests (optional) + +```bash +npm run test:e2e # Playwright sample +atk preview --ci --test # Headless sideload + mocha tests +``` + +## Troubleshooting + +| Symptom | Fix | +|---------|-----| +| **“Tunnel error: port in use”** | Change local port in `.env.local` or stop other process. | +| **App not showing in Teams** | Clear Teams cache (`Ctrl+Shift+R`) or check manifest sideload log. | +| **Copilot says “skill unavailable”** | Verify `actions` IDs in manifest match planner function names. | + +## Next step + +Validate your manifest with [Manifest validation workflow](manifest-validation-workflow-outline.md) and then deploy to a dev Azure environment. + +## See also + +- [Microsoft 365 Agents Playground](../../toolkit/debug-your-agents-playground.md) +- [Agents Toolkit CLI reference](toolkit link) diff --git a/msteams-platform/agents-in-teams/test/manifest-validation-workflow-outline.md b/msteams-platform/agents-in-teams/test/manifest-validation-workflow-outline.md new file mode 100644 index 00000000000..a4c75cff33e --- /dev/null +++ b/msteams-platform/agents-in-teams/test/manifest-validation-workflow-outline.md @@ -0,0 +1,89 @@ +--- +title: Manifest validation workflow +description: Automatically check your agent’s manifest for schema compliance, policy rules, and cross-host requirements before publishing to Microsoft Teams or Copilot. +ms.localizationpriority: medium +ms.topic: how-to +ms.date: 07/02/2025 +--- +# Validate your agent manifest + +A correct `manifest.json` guarantees your agent installs, runs, and appears in Copilot as expected. This article shows CLI and CI methods to catch errors early. + +## Prerequisites + +- Agents Toolkit CLI ≥ v1.1 (`atk --version`) +- Manifest upgraded to schema version `1.22` (required for agents) +- Node 18 / .NET 8 / Python 3.10 environment + +## 1 – Run local validation + +### Using Agents Toolkit CLI + +```bash +atk validate --env local +``` + +Checks performed: + +1. JSON schema validation against `$schema` URL +2. **Policy** rules (icon sizes, name length, prohibited words) +3. Cross-host requirement-set consistency +4. Dev-tunnel URL safety (`https://*.tunnels.ms`) + +### Using VS Code CodeLens + +Open `appPackage/manifest.json` → click **Validate** at top of file. +Errors and warnings show inline. + +## 2 – Preview manifest in Developer Portal + +1. `atk preview --manifest` launches Developer Portal with a temporary draft. +2. Use visual editor to correct missing fields or add icons. +3. Click **Export** to write changes back to repo. + +## 3 – CI/CD validation step + +Add to GitHub Actions workflow: + +```yaml +- name: Validate Teams manifest + run: atk validate --env prod --output json > manifest-report.json +``` + +Fail the build on any **error** severity result: + +```yaml +- name: Fail on validation errors + run: | + if jq '.errors | length > 0' manifest-report.json; then + exit 1 + fi +``` + +## 4 – Common validation errors + +| Error ID | Explanation | Fix | +|----------|-------------|-----| +| `SCHEMA001` | Unknown property `copilotAgentz` | Rename to `copilotAgents`. | +| `IMG004` | Color icon must be 192×192 PNG | Export correct size from design tool. | +| `CAP201` | `composeExtensions` requires matching bot ID | Ensure `botId` matches `bots[*].botId`. | +| `RSC401` | Missing resource-specific consent scopes | Add under `authorization.permissions.resourceSpecific`. | + +## 5 – Testing pre-publishing policies + +Run marketplace checks: + +```bash +atk validate --rules store +``` + +Includes legal text scan, mandatory privacy-policy URL, and localization file presence. + +## Next step + +After a clean validation report, you’re ready to [Publish your agent to the Teams Store](../publish/publish-your-agent-to-teams-store-outline.md). + +## See also + +- [App manifest for agents](../build/app-manifest-for-agents-outline.md) +- [Agents Toolkit CLI reference](toolkit link) diff --git a/msteams-platform/agents-in-teams/test/troubleshooting-tips-outline.md b/msteams-platform/agents-in-teams/test/troubleshooting-tips-outline.md new file mode 100644 index 00000000000..adef33a462d --- /dev/null +++ b/msteams-platform/agents-in-teams/test/troubleshooting-tips-outline.md @@ -0,0 +1,69 @@ +--- +title: Troubleshooting tips for AI-powered agents +description: Quick fixes for the most common issues you’ll face when developing, debugging, and publishing Microsoft Teams agents. +ms.localizationpriority: medium +ms.topic: troubleshooting +ms.date: 07/02/2025 +--- +# Frequently asked questions – Troubleshooting + +## Q1. My agent doesn’t show up in Copilot suggestions + +A. Confirm that the manifest uses `manifestVersion` `"1.22"` and contains a `copilotAgents` block with at least one `actions` entry. Re-sideload the updated package (`atk preview`), then type **/reset skills** in Copilot to refresh the planner cache. + +## Q2. `invalid_grant` or `AADSTS65001` when calling Microsoft Graph + +A. The token is missing the required scope. Make sure you've: + +1. Added the delegated or RSC permission in Microsoft Entra ID, +2. Granted admin consent, and +3. Requested the token with the same scope list. +For bots, verify the On-Behalf-Of flow exchanges the Teams token for a Graph token. + +## Q3. Dev tunnel fails with “port already in use” + +A. Another process is occupying the default port (3978). Stop the process or set `BOT_PORT=3980` (or any free port) in `.env.local` and restart `atk preview`. + +## Q4. Adaptive Card buttons do nothing + +A. Most often the `verb` in `Action.Execute` doesn’t match the handler name. Check that your bot code registers `app.command('verbName', …)` exactly as it appears in the card JSON. Also ensure `type` is `Action.Execute`, not `Action.Submit`. + +## Q5. Message extension dialog never returns a result + +A. Look for a `task/fetch` without a corresponding `task/submit` in the debugger. Return a `responseType: "result"` payload from the bot and include a `composeExtension` section with at least one attachment. + +## Q6. “Skill unavailable” error from Copilot + +A. Copilot couldn’t execute the action because: + +- The OpenAPI description isn’t reachable (403 or 404). +- Function parameters exceeded token limits. +- Planner disabled the skill after repeated failures—clear by re-sideloading and retrying. + +## Q7. Icon validation fails during package upload + +A. Both `color` and `outline` PNGs must be exactly 192×192 px and 32 KB or less. No alpha transparency on the outline icon. Use the Teams icon template provided in the UI Kit. + +## Q8. Live Share canvas doesn’t sync for other users + +A. Ensure that: + +- All participants are running Teams desktop or web (mobile support is preview). +- Your tenant has the **Fluid Relay Service** enabled. +- `LiveShareClient.joinContainer()` resolves before you render the canvas. + +## Q9. Bot receives duplicate `ConversationUpdate` events + +A. Teams sends one event per installed scope. Filter by `channelData.eventType` and `conversation.id`, or keep a deduplication set in memory. + +## Q10. “App name already taken” when publishing + +A. App IDs must be globally unique in the Teams Store. Increment the `id` GUID and the `version` field, then resubmit. + +*(Add more Q/A pairs as new issues arise; keep total ≤ 15.)* + +## See also + +- [Local testing your agent](local-testing-your-agent-outline.md) +- [Manifest validation workflow](manifest-validation-workflow-outline.md) +- [Agents Toolkit CLI reference](toolkit link) diff --git a/msteams-platform/mstdd-landing.yml b/msteams-platform/mstdd-landing.yml index fe201179107..e359e88c5d2 100644 --- a/msteams-platform/mstdd-landing.yml +++ b/msteams-platform/mstdd-landing.yml @@ -1,7 +1,7 @@ ### YamlMime:Landing -title: Microsoft Teams developer documentation # < 60 chars -summary: Welcome to overview of Microsoft Teams developer documentation. Teams apps and agents bring key information, common tools, and trusted processes to where people increasingly gather, learn, and work. # < 160 chars +title: Microsoft Teams developer platform # < 60 chars +summary: Welcome to overview of Microsoft Teams developer documentation. What do you want to build? # < 160 chars metadata: title: Microsoft Teams Developer Documentation # Required; page title displayed in search results. Include the brand. < 60 chars. @@ -21,322 +21,73 @@ landingContent: # Cards and links should be based on top customer tasks or top subjects # Start card title with a verb -- title: Microsoft Build 2025 +- title: I want to build an assistant that understands natural language linkLists: - linkListType: concept links: - - text: Teams AI library v2 (preview) - url: /microsoftteams/platform/teams-ai-library/welcome - - text: Teams Toolkit renamed to Microsoft 365 Agents Toolkit - url: /microsoft-365/developer/overview-m365-agents-toolkit?toc=%2Fmicrosoftteams%2Fplatform%2Ftoc.json&bc=%2Fmicrosoftteams%2Fplatform%2Fbreadcrumb%2Ftoc.json - - text: Custom app analytics and agent usage analytics for custom apps in Developer Portal - url: /microsoftteams/platform/concepts/build-and-test/analyze-your-apps-usage-in-developer-portal?tabs=custom-apps-built-for-your-org - - text: Agent usage analytics for third-party apps in Developer Portal - url: /microsoftteams/platform/concepts/build-and-test/analyze-your-apps-usage-in-developer-portal?tabs=thirdpartyapps - - text: AI-generated meeting summary - url: graph-api/meeting-transcripts/meeting-insights.md - - text: Custom activity icons (preview) - url: /graph/teams-send-activityfeednotifications?toc=%2Fmicrosoftteams%2Fplatform%2Ftoc.json&bc=%2Fmicrosoftteams%2Fplatform%2Fbreadcrumb%2Ftoc.json&tabs=desktop%2Chttp#custom-activity-icons-in-activity-feed-notifications + - text: Start with building an agent + url: teams-ai-library-tutorial.yml + - text: • Work across Microsoft 365 + url: /microsoft-365-copilot/extensibility/overview-custom-engine-agent?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json + - text: • Use memory, tools, and prompt planning + url: bots/how-to/teams-conversational-ai/how-conversation-ai-get-started.md + - text: Agent for intelligent data access and automation + url: bots/how-to/teams-conversational-ai/how-conversation-ai-core-capabilities.md -- title: Build custom engine agents +- title: I want to build intelligent lookup agent linkLists: - linkListType: concept links: - - text: Custom engine agents overview - url: /microsoft-365-copilot/extensibility/overview-custom-engine-agent?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json - - text: Teams AI library v2 (preview) - url: /microsoftteams/platform/teams-ai-library/welcome - - text: Teams AI library v1 - url: bots/how-to/teams-conversational-ai/teams-conversation-ai-overview.md - - text: Build custom engine agents using Agents Toolkit - url: Teams-AI-library-tutorial.yml - - text: Custom engine agent user experience - url: bots/how-to/teams-conversational-ai/ai-ux.md - - text: Enhance AI-generated bot Messages - url: bots/how-to/bot-messages-ai-generated-content.md - - text: Custom engine agents support for Microsoft 365 Copilot Chat - url: bots/how-to/teams-conversational-ai/how-conversation-ai-get-started.md#add-support-for-microsoft-365-copilot-chat - - text: Extend bot-based message extension as an agent for Microsoft 365 Copilot - url: messaging-extensions/build-bot-based-agent.md - -- title: Build app capabilities + - text: Build a custom engine agent + url: teams-ai-library-tutorial.yml + - text: • Connect to external data and APIs + url: bots/how-to/teams-conversational-ai/how-conversation-ai-get-started.md + - text: • Test in agents playground + url: teams-ai-library-tutorial.yml#configure-and-debug-your-custom-engine-agent + +- title: I want to build agent with automated workflows that trigger tools and automate tasks linkLists: - - linkListType: concept - links: - - text: Build tabs - url: ~/tabs/what-are-tabs.md - - text: Build bots and agents - url: ~/bots/what-are-bots.md - - text: Build message extensions - url: ~/messaging-extensions/what-are-messaging-extensions.md - - text: Build apps for Teams meetings - url: ~/apps-in-teams-meetings/teams-apps-in-meetings.md - - text: Build webhooks and connectors - url: ~/webhooks-and-connectors/what-are-webhooks-and-connectors.md - - text: Build cards and dialogs - url: ~/task-modules-and-cards/cards-and-task-modules.md - - text: App manifest - url: ../msteams-platform/resources/schema/manifest-schema.md - - text: Public developer preview manifest schema - url: ~/resources/schema/manifest-schema-dev-preview.md - - -- title: Step-by-step guides - linkLists: - - linkListType: get-started - links: - - text: Get started with building apps - url: ../msteams-platform/get-started/get-started-overview.md - - text: Get started with GitHub - url: /contribute/additional-resources - - text: Glossary - url: ~/get-started/glossary.md - - text: Overview - url: ~/overview.md - - linkListType: tutorial - links: - - text: Build app with JavaScript - url: sbs-gs-javascript.yml - - text: Build your first app using Blazor - url: sbs-gs-blazorupdate.yml - - text: Build app with SPFx - url: sbs-gs-spfx.yml - - text: Build app with C# or .NET - url: sbs-gs-csharp.yml - - text: Build app with Node.js - url: sbs-gs-nodejs.yml - - text: Build command bot with JavaScript - url: sbs-gs-commandbot.yml - - text: Build notification bot with JavaScript - url: sbs-gs-notificationbot.yml - - text: Build workflow bot - url: sbs-gs-workflow-bot.yml - - linkListType: tutorial - links: - - text: Debug your AI chat bot using Agents Playground - url: ~/toolkit/teams-app-test-tool-tutorial.md - - text: Bot configuration experience - url: ~/qsg-bot-configuration-experience.yml - - text: Create Teams conversation bot - url: ~/bots/how-to/conversations/channel-and-group-conversations.md - - text: Create Calling and meeting bot - url: ~/sbs-calling-and-meeting.yml - - text: Configure SSO for tabs and message extensions - url: ~/sbs-tabs-and-messaging-extensions-with-SSO.yml - - text: Build tabs with Adaptive Card - url: ~/sbs-tab-with-adaptive-cards.yml - - text: Build a bot to send Proactive messages - url: ~/sbs-send-proactive.yml - - text: Build a bot with SSO authentication - url: ~/sbs-bots-with-sso.yml - - text: Generate meeting token - url: ~/sbs-meeting-token-generator.yml - - linkListType: tutorial - links: - - text: Generate meeting side panel - url: ~/sbs-meetings-sidepanel.yml - - text: Build an in-meeting document signing app - url: ~/sbs-inmeeting-document-signing.yml - - text: Build command bot with JavaScript - url: sbs-gs-commandbot.yml - - text: Build notification bot with JavaScript - url: sbs-gs-notificationbot.yml - - text: Upload files to Teams from a bot - url: ~/sbs-file-handling-in-bot.yml - - text: Generate meeting content bubble - url: ~/sbs-meeting-content-bubble.yml - - text: Invoke dialogs from Microsoft Teams - url: ~/sbs-botbuilder-taskmodule.yml - - text: Build search based message extension - url: ~/sbs-messagingextension-searchcommand.yml - - text: Build action based message extension - url: ~/sbs-meetingextension-action.yml - - text: Build Outgoing Webhooks - url: ~/sbs-outgoing-webhooks.yml - - linkListType: tutorial + - linkListType: concept links: - - text: Unfurl links in Teams using bot - url: ~/sbs-botbuilder-linkunfurling.yml - - text: Build Teams connectors - url: ~/sbs-teams-connectors.yml - - text: Send activity feed notification - url: ~/sbs-graphactivity-feedbroadcast.yml - -- title: Build apps for Teams + - text: Build a custom engine agent + url: teams-ai-library-tutorial.yml + - text: • Define tools and planner logic + url: bots/how-to/teams-conversational-ai/how-conversation-ai-get-started.md#create-ai-components + - text: • Integrated with Teams AI library + url: bots/how-to/teams-conversational-ai/how-conversation-ai-get-started.md#import-teams-ai-library + +- title: I want to build an agent or app that collates data from multiple sources and provide summary linkLists: - - linkListType: overview - links: - - text: Build apps for Microsoft Teams - url: ../msteams-platform/overview.md - - text: App fundamentals - url: ~/concepts/app-fundamentals-overview.md - - text: Design your app - url: ~/concepts/design/design-teams-app-overview.md - - text: Code samples - url: https://github.com/OfficeDev/Microsoft-Teams-Samples - - text: Build apps for Teams meeting stage - url: ~/apps-in-teams-meetings/build-apps-for-teams-meeting-stage.md - - linkListType: whats-new + - linkListType: concept links: - - text: What's new - url: ../msteams-platform/whats-new.md - - -- title: Publish Teams app or agents - linkLists: - - linkListType: concept - links: - - text: Validation guidelines for agents - url: ~/concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines.md - - text: Publish Teams apps in Microsoft Teams Store - url: /training/modules/microsoft-teams-publish-app-to-store - - text: Publish your Teams apps - url: ~/concepts/deploy-and-publish/apps-publish-overview.md - - text: Upload your app in Microsoft Teams - url: ~/concepts/deploy-and-publish/apps-upload.md - - text: Publish to Microsoft Teams Store - url: ~/concepts/deploy-and-publish/appsource/publish.md - - text: Microsoft Teams Store validation guidelines - url: ~/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md - - text: Common reasons for app validation failure - url: ~/concepts/deploy-and-publish/appsource/common-reasons-for-app-validation-failure.md - - text: Maintain your published app - url: ~/concepts/deploy-and-publish/appsource/post-publish/overview.md - -- title: Teams app scenarios + - text: Build an app or agent + url: get-started/get-started-overview.md + - text: • Use Microsoft Graph APIs for Teams app + url: /graph/teams-concept-overview?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json + - text: • Extend across Microsoft 365 + url: /microsoft-365/developer/overview-m365-agents-toolkit?toc=/microsoftteams/platform/toc.json&bc=/microsoftteams/platform/breadcrumb/toc.json + +- title: I want to build an interactive app for Microsoft Teams linkLists: - - linkListType: reference - links: - - text: Best practices for Teams app scenarios - url: https://developer.microsoft.com/microsoft-teams/app-development-resources/?filter=bestpractices - - text: Explore low-code apps for Teams - url: ~/samples/teams-low-code-solutions.md - -- title: Monetize your app + - linkListType: concept + links: + - text: Build a Teams app + url: get-started/get-started-overview.md + - text: • Use tabs, bots, or message extensions + url: toolkit/create-new-project.md + - text: • Build structured flows and user input + url: task-modules-and-cards/cards-and-task-modules.md + - text: Build your first Teams app + url: get-started/get-started-overview.md#build-your-first-teams-app + +- title: I want to fetch or work with external business data linkLists: - linkListType: concept links: - - text: Guidelines for apps linked to SaaS offers - url: concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md#apps-linked-to-saas-offer - - text: Microsoft Teams Store validation guidelines - url: ~/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md - - text: Monetize your Teams app with a transactable SaaS offer - url: ~/concepts/deploy-and-publish/appsource/prepare/include-saas-offer.md - - text: In-app purchases - url: ~/concepts/deploy-and-publish/appsource/prepare/in-app-purchase-flow.md - - text: Test preview for monetized apps - url: ~/concepts/deploy-and-publish/appsource/prepare/test-preview-for-monetized-apps.md - - text: Additional tips for rapid approval to publish your app linked to a SaaS offer - url: ~/concepts/deploy-and-publish/appsource/publish.md#additional-tips-for-rapid-approval-to-publish-your-app-linked-to-a-saas-offer - - - -# - title: Notifications -# linkLists: -# - linkListType: reference -# links: -# - text: Design activity feed notifications -# url: concepts/design/activity-feed-notifications.md -# - text: Send activity feed notifications -# url: /graph/teams-send-activityfeednotifications -# - text: Best practices for activity feed notifications -# url: /graph/teams-activity-feed-notifications-best-practices -# - text: Send proactive messages -# url: bots/how-to/conversations/send-proactive-messages.md - -# - title: -# linkLists: -# - linkListType: whats-new -# links: -# - text: Introduced app manifest v1.14 -# url: ~/resources/schema/manifest-schema.md -# - text: Common reasons for app validation failure -# url: ~/concepts/deploy-and-publish/appsource/common-reasons-for-app-validation-failure.md -# - text: Upload your app in Microsoft Teams -# url: ~/concepts/deploy-and-publish/apps-upload.md -# - text: Share to Teams from personal app or tab -# url: ~/concepts/build-and-test/Share-to-Teams-from-personal-app-or-tab.md -# - text: Create Teams conversation bot -# url: ~/bots/how-to/conversations/channel-and-group-conversations.md -# - text: Build your first app using Blazor -# url: sbs-gs-blazorupdate.yml -# - text: Device permissions for the browser -# url: ~/concepts/device-capabilities/browser-device-permissions.md -# - text: Integrate People Picker -# url: ~/concepts/device-capabilities/people-picker-capability.md - -#- title: What's new -# linkLists: -# - linkListType: whats-new -# links: -# - text: Best practices to optimize tab performance in Teams mobile -# url: resources/teams-mobile-best-practices.md -# - text: Advanced step-by-step guide to build custom engine agent -# url: sbs-Teams-AI.yml -# - text: AI label, citations, feedback buttons, and sensitivity labels for bot messages -# url: bots/how-to/format-ai-bot-messages.md -# - text: Copilot handoff -# url: bots/how-to/conversations/bot-copilot-handoff.md -# - text: Assistants API to create powerful AI assistants -# url: bots/how-to/teams-conversational-ai/teams-conversation-ai-overview.md#how-do-teams-ai-library-features-benefit-me -# - text: Build apps with Teams AI library -# url: bots/how-to/teams-conversational-ai/conversation-ai-quick-start.md -# - text: Build a custom engine agent to chat with your data -# url: teams-ai-library-tutorial.yml -# - text: Precache your tab app to optimize its initial load time -# url: tabs/how-to/app-caching.md#precaching-tab-apps -# - text: App package editor in Developer Portal for Teams -# url: concepts/build-and-test/manage-your-apps-in-developer-portal.md#configure -# - text: Introducing third-party cloud storage for drag-dropped files in a Teams chat -# url: concepts/device-capabilities/third-party-storage-capability.md -# - text: Tab app caching is generally available -# url: tabs/how-to/app-caching.md -# - text: AI label, citations, feedback buttons, and sensitivity labels in bot messages are generally available -# url: bots/how-to/bot-messages-ai-generated-content.md -# - text: Introducing share to meeting from personal app -# url: concepts/build-and-test/share-to-teams-from-personal-app-or-tab.md#share-to-meeting-from-personal-app -# - text: Text customization for share to stage button -# url: apps-in-teams-meetings/build-apps-for-teams-meeting-stage.md#advanced-share-to-stage-apis -# - text: Multi parameters for API-based message extensions -# url: messaging-extensions/create-api-message-extension.md#multi-parameters - -# - title: What's new -# linkLists: -# - linkListType: whats-new -# links: -# - text: Custom engine agents support for Microsoft 365 Copilot Chat -# url: bots/how-to/teams-conversational-ai/how-conversation-ai-get-started.md#add-support-for-microsoft-365-copilot-chat -# - text: Extend bot-based message extension as an agent for Microsoft 365 Copilot -# url: messaging-extensions/build-bot-based-agent.md - + - text: Build a Teams agent or app, depending on interaction required + url: get-started/get-started-overview.md + - text: • Build agent for smart queries or language prompts + url: bots/how-to/teams-conversational-ai/conversation-ai-quick-start.md + - text: • For structured forms or UI, use Teams app + url: task-modules-and-cards/cards-and-task-modules.md -#- title: Get started -# linkLists: -# - linkListType: get-started -# links: -# - text: Get started with building apps -# url: ../msteams-platform/get-started/get-started-overview.md -# - text: Get started with GitHub -# url: /contribute/additional-resources -# - text: Glossary -# url: ~/get-started/glossary.md -# - text: Overview -# url: ~/overview.md -# - linkListType: tutorial -# links: -# - text: Build app with JavaScript -# url: sbs-gs-javascript.yml -# - text: Build your first app using Blazor -# url: sbs-gs-blazorupdate.yml -# - text: Build app with SPFx -# url: sbs-gs-spfx.yml -# - text: Build app with C# or .NET -# url: sbs-gs-csharp.yml -# - text: Build app with Node.js -# url: sbs-gs-nodejs.yml -# - text: Build command bot with JavaScript -# url: sbs-gs-commandbot.yml -# - text: Build notification bot with JavaScript -# url: sbs-gs-notificationbot.yml -# - text: Build workflow bot -# url: sbs-gs-workflow-bot.yml \ No newline at end of file