Forum Widgets
Latest Discussions
Urgent: Teams app publishing process blocked - app does not appear in the store after approval
Hello everyone, i am contacting you regarding a problem with the publishing of my Microsoft Teams app that started yesterday and is blocking my development work. Problem description: After developing a new version of my MS Teams app, I can no longer successfully publish it in my organization. The app is uploaded in the Developer Portal, released in the Teams Admin Center, but then does not appear in the Teams App Store under "Built for your org", so I cannot test it. Chronology: I am an admin in my organization and am developing a Teams app Before yesterday, the publishing process went smoothly: Upload in the Developer Portal → Appearance in the App Store → Test Yesterday, a colleague installed the app for testing purposes Since then, I can no longer publish new versions (they do not appear in the App Store) The upload and release in the Admin Center work without an error message However, the app does not appear in the App Store afterwards, neither in the desktop client nor in the web client Attempts have already been made to solve this: Completely restarted Teams client several times App version increased in manifest (to 1.2.0) App deleted and re-uploaded in Developer Portal App deleted and re-released in Teams Admin Center Waited for a delay of several hours Cleared cache (as far as possible on Mac) Test in web client (with the same result) Special observations: In the Mac client, the button "Upload a custom app" is grayed out with the note to contact my IT admin (I am the admin myself) On the Service Health Page, there is an active incident with the ID MO1093370 that affects Microsoft Teams I suspect that the issue is related to the current service degradation, which is described in the health page as "An infrastructure component is not processing requests as efficiently as expected" and explicitly affects Microsoft Teams. Is there a way to fix or work around this issue so that I can continue my development work? Can you confirm whether there is a connection with the current service degradation? Thank you in advance for your help. Best regards MichaelMRingtunatusJun 18, 2025Copper Contributor18Views0likes2CommentsSimple Workflow to Replace Teams Incoming Webhooks
Replacing Teams Connectors As you may be aware, Teams connectors have been deprecated (as discussed in Retirement of Office 365 connectors within Microsoft Teams). This means that a change to the connector URL must be made by December 31, 2024 (more information forthcoming) and that you should not create new webhooks by August 15 th , 2024. After August 15 th , 2024, you should be using the Power Automate Workflows app in Teams instead of webhooks. The connectors are being retired for several reasons, including security, scalability and flexibility. These are all requests our customers have made repeatedly in the past. Power Automate workflows are powerful 5 th generation programs which use a drag-and-drop, graphical user interface (GUI) paradigm to allow powerful data transformations and selective publishing to Teams. There is a lot of information for Power Automate Workflow at Browse and add workflows in Microsoft Teams - Microsoft Support. This article is not meant to make you an expert on Power Automate or Workflows. There are plenty of articles for you to read to become an expert. I just wanted to create an article on how you can recreate the original webhook experience. From there, you should be able to experiment with the new capabilities Workflows provide. Replacing an Incoming Webhook To replace the incoming connector, I’m going to start by creating a new team in my test tenant. All of this will be done using the Teams Web Client (because it’s easier for me to work with at present). From the Teams blade, I’ll press the ‘+’ symbol and choose ‘Create team.’ I’ll name my team a really thought-provoking name like ‘Webhook-Replace’ and give it an awesome description. I’ll then click on the ‘Create’ button. Teams will congratulate me for making such a great team with a great team name and ask me to add new members. I’ll add my System Admin account (just to make it easier for that account to delete this later) and Teams will drop me in the ‘General’ channel for this tab (all teams will have a default ‘General’ tab). Since it doesn’t matter to me where I make this webhook replacement, I’m fine with the General tab so I’ll just use it and not add another channel [Important Note: At the time I’m writing this, private channels do not work with Power Automate Workflows. My understanding is that they are working to expand Workflows to include private channels, but that work isn’t completed yet.] Install Power Automate Workflows Now, I need to install Power Automate Workflows into Teams. To do this, I’ll click on the ‘Apps’ button on the far-left vertical bar which will open up the apps I have available to install [Note: This list will be limited based on the App permission and App setup policies and/or App Centric Management. For App permission policies, if you don’t see Workflows in the Apps section, you need to discuss availability of this app with your Teams Administrator. Even if it appears in your apps, you may need to REQUEST the app in order to install it, depending on these policies. For App Centric Management, the App will need to be assigned to you in order to use it] In the apps application that opens up, you can type ‘Workflows’ in the ‘Search apps and more’ textbox to quickly find the app. Click the ‘Add’ or ‘Install’ button. This will open the Workflows setup/information dialog. From here, you can do a few things. If you just click the ‘Add’ button, it will install/add the app as a ‘one-on-one chat app’. This is actually what I want, so that it allows me to determine as I design the workflow, how it acts. For a webhook replacement, this is what I recommend. You can use the down carat and choose to add to a team, chat or meeting but I will leave you to experiment with these features. This adds the ‘Workflows’ app to the far-left application bar and opens the application. This is the Workflows App in Teams. Personally, I don’t like using it because it will occasionally make suggestions or assumptions that go beyond what I really want to do. So, I almost always use the ‘open in browser’ option from the upper right. This opens up the full Power Automate flow page. From the left, I’m going to choose the ‘Templates’ blade. In the ‘Search templates’, I’ll enter ‘Teams Webhook’ and hit enter to find the webhook templates. As you can see, you can start with a Teams template. The recommended template to begin with is ‘Post to a chat when a webhook request is received’ so that is what I will use here. We’ll change it after opening it and I’ll explain all of this in a moment. Choosing the template opens the flow connection. The ‘This flow will connect to:’ should be pre-populated with your username and contain a green checkmark. Click on ‘Continue’ and the flow will ask you which team and channel you wish to send to. Here, I’m going to use the dropdown to select ‘Webhook-Replace’ from my list of Teams. Then, I’ll choose the ‘General’ channel and choose to ‘Edit in advanced mode.’ You could simply choose ‘Create’ but that will automatically create the flow and we’ll need to edit it anyway. Clicking ‘Edit in advanced mode’ will display the current flow template. By default, this flow will take whatever is sent to the webhook and attempt to send it as an adaptive card. Generally, this won’t work. You need to do some transformation on the data, unless the application is sending an Adaptive Card – which most providers don’t do. Instead, most providers such as GitHub, send a JSON filled with data and events. Going through how to connect GitHub is out of scope for this article, though I may follow up with a GitHub case in a new article later. Likewise, creating an adaptive card to present in the Teams channel is outside the scope of this article. I’m just going to show you a simple JSON dataset and how to send it to a channel. For this, I’m going to use a very simple CURL commandline (from Windows) with a very small, easy JSON payload. It's just a lame payload with text and ‘hello world’ but this is just an article to show a simple webhook replacement. First, we need to get the URL from the ‘When a Teams webhook request is received’ step. Click on that step and it will open up the settings for the step. Copy the HTTP URL and place it in a safe place. (For me, I’ll use it in the Powershell curl.exe I have copied and pasted above). Even though the JSON payload here is simplistic, I still need to have the flow process it. In order to do that, I’m going to need to add something to this flow. So, I’ll choose the ‘+’ button between the two existing flow steps (because I need to parse the JSON between those two steps) and choose to ‘Add an action’. This opens the ‘Add an action’ popup on the left side. We want to process json, so I’ll enter ‘JSON’ in the search bar and look at my options. I see that ‘Data Oepration’ has a ‘Parse JSON’ option, so I’m going to choose that by clicking on it. This adds the action between the two steps, exactly like I wanted. This also opens the ‘Parse JSON’ settings because I still need to instruct this flow step on how to process the JSON content. I’ll click in the ‘Content’ textbox. This will bring up the ‘actions’ choices on the right side of the textbox. The lightning bolt means ‘Dynamic Content’. The ‘fx’ stands for formulas or expressions. I want to process Dynamic Content coming from the webhook step, so I’ll choose the lightning bolt. This brings up the potential content from the webhook step. The ‘Attachments Adaptive Card’ will allow you to parse any Adaptive Cards coming into the webhook. ‘Attachments Item’ processes a single attachment included to the webhook package. The ‘Attachments’ collection are any multiple attachments to the package sent to the webhook. Finally, the ‘Body’ just gives you the body of the package sent to the webhook. Since I’m sending a simple JSON body, that’s what I want here. Now, I have to supply the schema for the content I’m sending. At the very bottom of the textbox you have the option to ‘Use sample payload to generate schema.’ If you can’t write JSON Schema but you have a sample JSON payload that you’re sending, you can add it here and let the service process it. I’m going to do this, especially because this is such a simple payload. Clicking on this opens a window where you can type or paste a sample payload. I’ll enter my simple payload here and click the ‘Done’ button at the lower right corner which will populate the schema. You don’t need to ‘Save’ here; once entered it will remain until you change it. As I said, creating an adaptive card is beyond the scope of this article, so I’m going to delete that. I’ll Select the ‘Send each adaptive card’ to open the ‘Settings on the left’. Next, I’ll click the three dots on the right side of that popup and choose ‘Delete.’ Now, I’ll click the ‘+’ circle under the ‘Parse JSON’ and choose ‘Add an action’ to send a message to my team’s channel. This opens the ‘Add an action’ popup on the left. I want to add an action specific to Microsoft Teams, so I’ll select those from the available action categories. This brings up available steps for Microsoft Teams. I’ll scroll down and find the one I’m looking for – ‘Post message in a chat or channel.’ This opens the ‘Post message in a chat or channel’ settings. From here, I’ll want to ‘Post As’ a ‘Flow bot’ (you can change this to a user but there’ll be other settings necessary; I’m happy with the ‘Flow bot’). Next, I’ll drop down the ‘Post In’ selection box which will allow me to choose either a ‘channel’ or ‘group chat.’ Obviously, I want to post to a ‘channel’. Wait a second and this will open up further choices of which Team and channel. I’ll pick the ‘Webhook-Replace’ team and ‘General’ channel. Finally, I’ll click in the ‘Message’ textbox. In this box, I can actually type a message to send – but I’m interested in more ‘Dynamic Content’ so I’ll choose the lightning bolt and from the ‘Parse Json’ step, choose ‘body text’ (Note: If you look back at the automatic schema generated in the ‘Parse JSON’ step, you’ll see that ‘text’ is the only ‘Propery’ in the ‘Properties’ collection so this will post the VALUE (string) from the ‘text’ property). You might see that there are 2 ‘Advanced Parameters’ you can set. I’m not going to set them, but they will allow you to set a static or dynamic ‘Subject’ and ‘Hosted contents.’ With that, we’re done. From the bar on the upper right hand side of the screen we want to ‘Save’ the content (you can test with ‘flow checker’ if you want) and then click the ‘back’ arrow from the upper left on the same bar. You’ll get a pop up that says ‘Your flow is ready to go’. Just click ‘Got it’. The flow will have a title the same as the template. You can click ‘Edit’ for the details action and rename it, add a description and so on. I’m not going to – it’s time to TEST!! I click ‘enter’ on my Powershell curl.exe command and it processes! Conclusion As you can see, setting up a Power Automate webhook processor is not as simple as the old Teams ‘Incoming Webhook’ but it is much more scalable and flexible and, though I didn’t delve into the options here because this was a simple article to show how to replace the incoming webhook functionality, it can provide security to ensure that malicious actors can’t hijack your webhook and send data to your users.28KViews0likes10CommentsWhat if post adaptive card and wait for a response timeout
Hi Team, Scenario: Post the adaptive card to the team chat. If the user doesn't respond after 2 hours, the adaptive card should be updated as "Expired"with a new design on the same conversation. In an attempt to comply with this, I used a "Post adaptive card in char and wait for response." Challenges: What would happen if I posted an adaptable card and waited for a response timeout? I wouldn't get a response. An error is being thrown. Expectations include waiting for a response after receiving an adapted card. In any case, your card has already produced a message ID and posted. This action should to return a Message Id in the event that a timeout occurs. Would you kindly respond if you have discovered a solution?AshuJadhavJun 17, 2025Copper Contributor1.6KViews2likes10CommentsImage inside adaptive not centered when posting in teams
Hi team, I'm trying to post an adaptive card to teams via power automate. Below is the preview of adaptive card in adaptive card designer where it works as expected: Below is what I see in teams after it is posted: As you can see the image is left aligned for some reason while the text block remained intact. The strange thing is this has been functioning as expected until last week. Even existing cards posted to teams has been broken. Below is the card json: { "type": "AdaptiveCard", "$schema": "https://adaptivecards.io/schemas/adaptive-card.json", "version": "1.5", "minHeight": "300px", "verticalContentAlignment": "Top", "body": [ { "type": "ColumnSet", "horizontalAlignment": "Center", "columns": [ { "type": "Column", "width": "stretch", "items": [ { "type": "TextBlock", "text": "AWARD NAME", "wrap": true, "horizontalAlignment": "Center", "maxLines": 3, "style": "heading", "fontType": "Default", "size": "ExtraLarge", "weight": "Bolder", "color": "Default", "isSubtle": false }, { "type": "Container", "items": [ { "type": "TextBlock", "text": "This certificate is proudly presented to", "wrap": true } ], "horizontalAlignment": "Center", "minHeight": "60px", "verticalContentAlignment": "Center" }, { "type": "TextBlock", "text": "TEST SHARMA", "wrap": true, "horizontalAlignment": "Center", "style": "default", "fontType": "Monospace", "weight": "Bolder" }, { "type": "TextBlock", "text": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.", "wrap": true }, { "type": "TextBlock", "text": "DATE: 15/02/2025", "wrap": true, "spacing": "Medium" }, { "type": "TextBlock", "text": "Presented By: TEST MANAGER", "wrap": true, "spacing": "Medium", "horizontalAlignment": "Center" } ], "horizontalAlignment": "Center" }, { "type": "Column", "width": "stretch", "backgroundImage": { "url": "https://media.istockphoto.com/id/1185382671/vector/abstract-blurred-colorful-background.jpg?s=612x612&w=0&k=20&c=3YwJa7lCw-cQ-hviINULUokL9lYU4RuGjMP_E_0N8E4=", "horizontalAlignment": "Center" }, "horizontalAlignment": "Center", "verticalContentAlignment": "Center", "rtl": false, "items": [ { "type": "TextBlock", "text": "New TextBlock", "wrap": true }, { "type": "Image", "url": "https://w0.peakpx.com/wallpaper/419/208/HD-wallpaper-face-art-abstract-face-painting-profile.jpg", "style": "Person", "size": "Large", "horizontalAlignment": "Center", "altText": "test", "targetWidth": "AtLeast:Standard" } ], "height": "stretch" } ], "spacing": "None", "minHeight": "300px" }, { "type": "ActionSet", "actions": [ { "type": "Action.OpenUrl", "title": "Download Certificate", "url": "https://neudesic.sharepoint.com/:b:/s/neudev/EWDLSQoUHQJGkM-LwPJgwhkB-qVs8nk06027geBe22MUEA?e=WzscF0", "tooltip": "Download" } ], "horizontalAlignment": "Right", "spacing": "Medium" } ], "msTeams": { "width": "full" } }rbn_neuJun 17, 2025Copper Contributor100Views0likes6CommentsQuestions 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!Ian2025Jun 17, 2025Copper Contributor36Views0likes2CommentsCustom Teams AI Bot does not have attachment button
My team is developing a custom teams AI bot that allows for file uploads. When testing this feature using the edge and chrome debugging, the attachment button does not appear, or it will appear for a moment and then disappear. This seems to be an ongoing issue, and we would like to know if it has a simple remedy or if this problem needs to be escalated to Microsoft Engineers. Please see the following Microsoft developer forum topic discussing the same issue: https://techcommunity.microsoft.com/discussions/teamsdeveloper/file-upload-option-disappearing-in-teams-bot/4397456 My Manifest.json: Sensitive data has been removed "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.19/MicrosoftTeams.schema.json", "manifestVersion": "1.19", "version": "2.0.0", "id": "${{TEAMS_APP_ID}}", "developer": { "name": "", "websiteUrl": "", "privacyUrl": "", "termsOfUseUrl": "" }, "icons": { "color": "", "outline": "" }, "name": { "short": "", "full": " " }, "description": { "short": "s", "full": "$[file('description.txt')]" }, "accentColor": "#005DAB", "bots": [ { "botId": "${{BOT_ID}}", "scopes": [ "personal", "team", "groupChat" ], "supportsFiles": true, "isNotificationOnly": false, ... }kmartinJun 16, 2025Copper Contributor54Views0likes3CommentsChange Teams App Domain
I have a multi tenant app available in the Teams App store. I have to change the domain for that app due to Azure CDN Standard from Microsoft (classic) being retired. Instead of a ".azureedge.net" domain I'd like to use my own subdomain going forward. To prevent service disruptions I would like to host the app frontend on two domains simultaniously and then change the domain in a manifest update. However, it seems the App Registration Resource (Application ID URI) needs to contain the domain name for Teams to allow access to the app, otherwise I get the following error message: Get SSO token failed with error: App resource defined in manifest and iframe origin do not match Creating a new app registration would mean every customer would need to grant access again to my app registration. What is the recommended approach to changing domains for a Teams app?ThomasPeJun 15, 2025Copper Contributor25Views0likes2CommentsApprovals API only working in the default environment
I am using the beta Approvals API (approvalItem resource type - Microsoft Graph beta | Microsoft Learn) for a proof of concept and have noticed that it works great in the Personal Productivity (Default) environment, but I get 404 non found errors when trying to access approvals in other environments. I've tried adding the app registration I'm using to the environment as an S2S app with Sys Admin privileges and added the org API endpoint to the app itself but neither solved it. Is this intended behavior?AJBerry223Jun 10, 2025Former Employee53Views0likes3CommentsTable control on iOS
Hi, I am developing a digital assistant on MS Teams. One of the functionality required to present data in the table control. I designed application to show all fields on desktop application, but want to hide some of the fields on mobile devices because of screen size. In order to hide some columns I used targetWidth on table control. But it is not worked as I expected. There's no problem with desktop or web browser client. The problem occurs on iPhone/iPad Teams client. As an example let's try to hide 3rd column. When I set targetWidth="wide", it only clear content of the column but the column is still present. Please find pseudo sample iOS screen below; It is weird that I can see correct result when I check preview on https://adaptivecards.microsoft.com/designer To solve this problem I assigned each object I want to hide from top to bottom but didn't work. Please find code snipped below; { "type": "AdaptiveCard", "$schema": "https://adaptivecards.io/schemas/adaptive-card.json", "version": "1.5", "msteams": { "width": "full" }, "body": [ { "type": "Table", "columns": [ { "width": 2 }, { "width": 2 } ], "rows": [ { "type": "TableRow", "cells": [ { "type": "TableCell", "items": [ { "type": "TextBlock", "text": "Host", "wrap": true, "weight": "Bolder", "size": "Small", "targetWidth": "Wide" } ], "targetWidth": "Wide" }, { "type": "TableCell", "items": [ { "type": "TextBlock", "text": "Type", "wrap": true, "weight": "Bolder", "size": "Small" } ] } ] }, { "type": "TableRow", "cells": [ { "type": "TableCell", "items": [ { "type": "TextBlock", "text": "myhost", "wrap": true, "size": "Small", "targetWidth": "Wide" } ], "targetWidth": "Wide" }, { "type": "TableCell", "items": [ { "type": "TextBlock", "text": "Physical", "wrap": true, "size": "Small" } ] } ] } ] } ] } Thank you for your help, Orkun GedikorkungedikJun 09, 2025Copper Contributor60Views0likes2CommentsDelay in Teams Proactive Notification Popups (Internal and Customer Impact)
We are currently experiencing an issue with Microsoft Teams, both internally and among our customers. Specifically, there is a noticeable delay in the appearance of proactive notification popups. In many instances, these notifications are delayed by approximately 5 to 10 seconds after the triggering event using ms botframework sdk. This issue affects the responsiveness of our Teams-based applications and workflows, particularly in time-sensitive use cases. The delay has been observed consistently across different environments, which suggests it may not be limited to a specific configuration or network. We would appreciate your assistance in investigating this matter. If there are any known issues, recommended diagnostics, or configuration adjustments that could help mitigate this behavior, we would be grateful for your guidance. Thank you very much for your support.Solvedjames099Jun 09, 2025Copper Contributor117Views0likes6Comments
Resources
Tags
- microsoft teams1,711 Topics
- developer1,334 Topics
- meetings230 Topics
- Chat226 Topics
- Administrator142 Topics
- Settings107 Topics
- Calling104 Topics
- files67 Topics
- teams54 Topics
- devices52 Topics