bot
49 TopicsQuestions About Alternatives to Multi-Tenant Bots After July 31, 2025 Deprecation
Hello, As the ability to create multi-tenant bots in Azure will be discontinued after July 31, 2025, I’d like to ask if there are any viable alternatives available now? If I create a single-tenant bot and publish it to the Teams App Store, will users from other tenants still be able to interact with the bot? Additionally, will the bot be able to access their basic user profile information (only user name and aadObjectId) and conversation data? From my understanding, access tokens obtained using the client ID and client secret are tenant-scoped, meaning they are not valid across other tenants. As a result, the bot cannot access user information such as profile photos or email addresses from users in other tenants — is that correct? I'd really appreciate any clarification or recommended best practices on this. Thank you!9Views0likes0CommentsWhat is the recommended bot type for multi-tenant bots?
According to this document multi-tenant bots cannot be created after July 31, 2025. Another option to reach tenants other than ours is to use incoming webhooks. However, according to this document, incoming webhooks will be deprecated at the end of 2025. I would like to create a bot that can be deployed to any Microsoft Teams outside our organization. What is the recommended approach? Thank you.Solved171Views1like4CommentsMaximum # of scopes in manifest 1.21
I am looking at the 1.21 version of the schema and I see the definition below for the scopes properties. It only allows a maximum of 3 items, which means that you cannot allow all 4 available values to be defined. E.g. the following definition in the bot manifest would be invalid scopes: ["team", "personal", "groupChat", "copilot"] Is this intentional? Thank you. "scopes": { "type": "array", "description": "Specifies whether the bot offers an experience in the context of a channel in a team, in a 1:1 or group chat, or in an experience scoped to an individual user alone. These options are non-exclusive.", "maxItems": 3, "items": { "enum": [ "team", "personal", "groupChat", "copilot" ] } }, "commandLists": { "type": "array", "maxItems": 3, "description": "The list of commands that the bot supplies, including their usage, description, and the scope for which the commands are valid. A separate command list should be used for each scope.", "items": { "type": "object", "additionalProperties": false, "properties": { "scopes": { "type": "array", "description": "Specifies the scopes for which the command list is valid", "maxItems": 3, "items": { "enum": [ "team", "personal", "groupChat", "copilot" ] } }Solved25Views0likes1CommentCSS Properties being stripped from Teams Chat messages from Bot
Hi Team, We've noticed that certain CSS properties are no longer appearing in HTML messages when sent to Teams Chat. Previously, our bot styled messages using display and border properties, but now these properties are missing from the HTML when we inspect the page. Steps to Reproduce: Start the Echo bot from the sample templates (I used Teams Toolkit to deploy it to Teams or run it in the Test tool). In the TeamsBot.ts file, modify the onMessage function by replacing await context.sendActivity(...) with the following code. This example adds styling to an echo message. const a: Partial<Activity> = { text: `<span style="display: block; color: red; border-radius: 4px; padding: 4px; border: 1px solid red; ">Echoo:</span> <span style="display: block;">${txt}</span>`, textFormat: TextFormatTypes.Xml }; await context.sendActivity(a); Note: I also tried sending the HTML directly with context.sendActivity(...) without setting the textFormat property in the Activity, and observed the same result. Run the bot in the Test tool and Teams to compare behavior. Observed behavior: In the Test tool: All styles are applied as expected. In Teams: Only the color property is applied, while display, padding, and border properties are ignored (stripped out of the HTML). Here’s an example of the HTML output in Teams: <div dir="auto" id="content-1730973548675" aria-label="Echoo: test styles properties" class="fui-Primitive ___16zla5h f1oy3dpc fqtknz5 fyvcxda"> <span style="color: red;">Echoo:</span> <span>test styles properties</span> </div> Could you provide insights on whether this change is intended, and if there are any workarounds for preserving these CSS properties in Teams messages? Thank you!758Views11likes4CommentsRegister bot without Azure process
Hi Microsoft Teams, I was looking on creating and hosting bots. I thought that it is required to host the bot in Azure but according to documentation it is not but it needs to registered in Azure bot framework using https://dev.botframework.com/bots/new. It also tells that we should also add Microsoft Teams as channel after the bot is registered. How does it work? What are the requirements to host it outside of Azure? Does it mean that it is free to register our bot? Please let me know the details because the documentation doesn't tell more information about this. Thank you.14KViews0likes11CommentsMentioning of a user is split in first and lastname
I just discovered that from somewhere in December I do not get a mentioned user in a message as one mention any longer but splitted into two mentions with first and lastname. Is this a bug or is it by intention? This is how the JSON message to the bot for the message: @bot Sarah Johnson mentioning looked like until December: { "text": "<at>bot</at> <at>Sara Johnson</at> mentioning", "textFormat": "plain", ... "recipient": { "id": "...", "name": "bot" }, "entities": [ { "mentioned": { "id": "xxx", "name": "bot" }, "text": "<at>bot</at>", "type": "mention" }, { "mentioned": { "id": "123", "name": "Sarah Johnson" }, "text": "<at>Sarah Johnson</at>", "type": "mention" }, ... ], ... } And this is how it looks today. { "text": "<at>bot</at> <at>Sara</at> <at>Johnson</at> mentioning", "textFormat": "plain", ... "recipient": { "id": "...", "name": "bot" }, "entities": [ { "mentioned": { "id": "xxx", "name": "bot" }, "text": "<at>bot</at>", "type": "mention" }, { "mentioned": { "id": "123", "name": "Sarah" }, "text": "<at>Sarah</at>", "type": "mention" }, { "mentioned": { "id": "123", "name": "Johnson" }, "text": "<at>Johnson</at>", "type": "mention" }, ... ], ... } The mentioning is split in first and lastname with the same userid. Is that the intended behaviour?578Views0likes4CommentsMicrosoft.Bot.Connector SendToConversationAsync Failed - 'Forbidden'
Hi. We use Microsoft.Bot.Connector (4.22.9) SendToConversationAsync for sending an activity to a conversation. Most of them are processed successfully, but some fail with 'Operation returned an invalid status code 'Forbidden'. How can I handle it? What is the reason? Also, I have a second question about "blocked conversation." If the user blocks the conversation, I think SendToConversationAsync will fail, too. How can I handle this, and what kind of error will be raised?140Views0likes5CommentsMeeting Bot issue: Did not receive valid response for JoinCall request from call modality controller
I'm trying to join a Teams Meeting with a bot. I used this https://microsoftgraph.github.io/microsoft-graph-comms-samples/docs/articles/index.html#making-an-outbound-call-to-join-an-existing-microsoft-teams-meeting sample. When the bot attempts to join I get the popup to admit or deny it in the meeting, but as soon as I click admit, it drops. In the logs I see this message: Call status updated to Terminated - Did not receive valid response for JoinCall request from call modality controller.. DiagCode: 580#5426.@ I am using the latest (1.2.0.10563 at time of writing) version of Microsoft.Graph.Communications libraries and the problem only started after I updated from 1.2.0.3742 that I was using previously. I could not find any info on what the call modality controller is, or how to check what it is responding if anything. Any ideas on how to troublshoot this are welcome.960Views1like9CommentsSeeking Best Practices for Performance Testing Bots in Microsoft Teams
Teams Meeting Bot This bot is automatically installed in all scheduled meetings across the organization. It interacts with the Microsoft Graph API via the 'api/messages' endpoint in the Bot Framework to retrieve meeting transcripts. These transcripts are then processed by an LLM model to generate a summarized version of the meeting. Chatbot This is a personal Teams chatbot built using the Bot Framework. It streams real-time responses from an LLM model based on user queries. We are planning a performance test for these bots. What would be the standard procedure to achieve this? Looking forward to your insights.120Views0likes2CommentsSend Messages using Bot/Change Notification in MS Teams
Hi I have some questions regarding bot functionality within Microsoft Teams. I'm developing an app/plug-in to monitor and analyze all incoming messages in chats and channels. The goal is to intercept these messages, check them for specific flagged (e.g., inappropriate) content, and instantly send a notification back to the respective chat or channel if flagged content is detected. I need to achieve this in real time. Currently, I’ve implemented the first half of this functionality using Microsoft Graph’s change notifications API, allowing me to intercept and read messages as they arrive. However, I’m facing a limitation: since my app doesn’t have permissions to post messages, I can't use the Graph API’s send capabilities to notify users within the channels or chats. To work around this, I’m considering utilizing a bot. My approach is to have a bot send these notifications to the appropriate chats and channels, using identifiers such as tenant ID, team ID, channel ID, message ID, and chat ID—information I retrieve through the change notifications API. So here are my main questions: Can I use a bot to send messages to various chats and channels on demand, leveraging the IDs obtained from the change notifications API? This would allow my app to handle message interception while the bot takes over in sending the flagged notifications. In my current setup, is there a way to reply to chats or channels directly using the Graph API's 'send' functionality through the app itself? It is related to Application/Delegation Permissions. Thanks339Views0likes5Comments