Share via

When I install my Teams app to a team, no webhook is fired to my messaging endpoint

Ryan Jones 0 Reputation points
2026-05-26T20:37:15.6566667+00:00

I have developed a bot that is on the Microsoft App store, need to deploy very similar ones for particular customers with a different endpoint.

Steps to reproduce:

  1. Create an Azure bot (single tenant)
  2. Add a messaging endpoint
  3. Add Microsoft Teams as a channel
  4. Create an App Registration (single tenant)
  5. create a teams app with manifest templated as below
  6. Install the Teams app to the same tenant as the resources created above. Success shown
  7. Add the app to a team from admin.teams.microsoft.com. It says that it was added to the team
  8. No webhook is fired to my endpoint of the installation

Troubleshooting steps attempted

  1. Have verified from the Azure bot page if I use the test webchat my endpoint is hit and accessible (I am not interested in the chat feature -- I need to know if a user or team installs my app)
  2. Have verified my tenant allows custom apps
  3. Have verified permission policies do not restrict custom apps, including my app
  4. Have verified that the app is not blocked, is available to all
  5. All of the Teams/users I try to install it to do not have anything unique about them -- they can be brand new teams that are public, etc.
  6. Have attempted similar steps with the app registration as multi-tenant
  7. Have confirmed that my app registrations have a client secret added
  8. Have tried using the bot ID in the same place as the app-registration-id
  9. Have tried creating the bot from dev.teams.microsoft.com and using it from there
  10. Have tried creating a brand new tenant (different email, credit card, etc.) and going through the same steps My web application that should receive the webhook is not deployed on any Microsoft resource, it is a Rails application.
  11. Have verified in the Teams app when I go to Manage Team and click on Apps my app is shown as installed.
  12. Have added my messaging endpoint as a valid domain, which is also a verified domain for my tenant.
{
    "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.12/MicrosoftTeams.schema.json",
    "version": "3.0.0",
    "manifestVersion": "1.12",
    "id": "<PII removed>",
    "packageName": "com.package.name",
    "name": {
        "short": "May 26",
        "full": ""
    },
    "developer": {
        "name": "Example co",
        "mpnId": "my-mpn-id",
        "websiteUrl": "https://example.com",
        "privacyUrl": "https://example.com/policies/privacy",
        "termsOfUseUrl": "https://example.com/policies/terms"
    },
    "description": {
        "short": "short message",
        "full": "full message"
    },
    "icons": {
        "outline": "outline.png",
        "color": "color.png"
    },
    "accentColor": "#2151FF",
    "bots": [
        {
            "botId": "azure-bot-id",
            "scopes": [
                "personal",
                "team"
            ],
            "isNotificationOnly": true,
            "supportsCalling": false,
            "supportsVideo": false,
            "supportsFiles": false
        }
    ],
    "validDomains": [],
    "webApplicationInfo": {
        "id": "app-registration-id",
        "resource": "api://example.com/app-registration-id"
    },
    "devicePermissions": [
        "notifications"
    ],
    "authorization": {
        "permissions": {
            "orgWide": [],
            "resourceSpecific": [
                {
                    "name": "TeamMember.Read.Group",
                    "type": "Application"
                }
            ]
        }
    }
}
Microsoft Teams | Development
Microsoft Teams | Development

Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs

0 comments No comments

2 answers

Sort by: Most helpful
  1. Nivedipa-MSFT 4,246 Reputation points Microsoft External Staff Moderator
    2026-05-27T05:33:24.9266667+00:00

    Hello @Ryan Jones 
    The install webhook isn't firing because your manifest has "isNotificationOnly": true. Notification-only bots are outbound-only — Teams suppresses conversationUpdate (install/member-added) events for them, which is exactly the event you're waiting for.

    Fix:

    1. Set "isNotificationOnly": false (or remove the field) in the manifest, bump the version, and repackage.
    2. Reinstall the app to a team from the Teams client as a team owner (not via Teams Admin Center — admin-pushed installs don't reliably fire the install activity).
    3. Watch /api/messages for a conversationUpdate with membersAdded containing your bot ID.

    If you still see nothing after that, check: (a) Azure Bot → Channels → Teams → Issues for delivery failures, and (b) that your Rails endpoint isn't 401-ing the JWT (single-tenant bots must validate against https://login.microsoftonline.com/{tenantId}/v2.0/.well-known/openid-configuration with audience = your bot's App ID).

    If you found the information above helpful, I would appreciate it if you could share your feedback.
    Your feedback is important to us. Please rate us: 🤩 Excellent 🙂 Good 😐 Average 🙁 Needs Improvement 😠 Poor

    Was this answer helpful?


  2. Teddie-D 16,800 Reputation points Microsoft External Staff Moderator
    2026-05-27T00:06:35.8233333+00:00

    Hi @Ryan Jones 

    Thanks for the detailed information.  

    Based on your setup, the most likely explanation is related to the bot being configured as notification-only. 

    In your manifest: "isNotificationOnly": true  

    With a notification-only bot, Microsoft Teams treats the bot differently from a standard conversational bot. Users typically cannot @mention the bot in a channel or start a normal chat with it. The bot is designed primarily for proactive messaging. Because of that, Teams may show the app as installed in the team, but may not create a conversation context with the bot. 

    Reference: Notification-only bots - Teams | Microsoft Learn 

    If no conversation is created, Teams may not send lifecycle activities such as conversationUpdate to your messaging endpoint. 

    Reference: Conversation events - Teams | Microsoft Learn 

    So, the behavior you’re seeing, app appears successfully installed, but no webhook reaches your endpoint, is consistent with a notification-only bot configuration 

    Here are some recommended steps you may try: 

    1.Change the manifest from: "isNotificationOnly": true to: "isNotificationOnly": false  

    2.Repackage and upload the updated manifest. 

    3.Reinstall the app in Teams. 

    4.Once installed, trigger interaction: 

    • @mention the bot in a channel or  
    • open it directly and send a message.  

    This helps trigger Teams to add the bot to the team conversation and establish the conversation context.  

    5.Capture and log all incoming activity payloads at your endpoint, especially:   

    • message  
    • conversationUpdate  

    Please try these steps and let me know how it goes.


    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. 

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.