Additional team and channel-related features and issues within Microsoft Teams for business
Welcome to Q&A Community,
As you described, I understand how confusing it can be when the setup looks correct, but the feature just doesn’t behave as expected. Let’s walk through some effective steps to fix this:
Outgoing webhooks only work in public channels (not private or personal chats). Confirm the channel you're testing in is public.
- The webhook is added at the team level, but @mentions work in any public channel within that team. If it's a private channel, recreate the webhook in a public one.
Check if the Webhook is listed and remove/re-add it:
- Go to the team in Teams > Manage team > Apps tab. Look for "Outgoing webhook" under uploaded apps or connectors. If it's not there or shows as inactive, that's the problem.
- Alternatively, in the channel > ... (more options) > Connectors > Search for "Outgoing Webhook" and see if it's configured.
- If it's listed but not working, remove it and recreate:
- Name: Choose a simple name without spaces or special characters (e.g., "n8nAI").
- Callback URL: Your n8n webhook URL (must be HTTPS and publicly accessible; use ngrok or a tunnel if testing locally).
- Description and profile picture: Optional, but add them.
- When creating, Teams will display an HMAC security token (a secret key)—copy this immediately, as you'll need it for validation in n8n (more on this below).
After recreating, wait 5-10 minutes for propagation, then restart Teams or switch to the web version to test.
- Test @Mention Manually (Bypass Autocomplete):
- Autocomplete can lag or fail due to caching/network issues, but you can still type the full @mention manually.
- In the channel, type @YourWebhookName your test message (replace with exact name) and send it. If it resolves (the name turns bold or links), it should trigger the POST to n8n.
- If it doesn't resolve or send, the webhook isn't activated—proceed to validation below.
- Implement HMAC Validation in Your n8n Flow: This is likely the root cause: Teams requires HMAC authentication to validate requests. During webhook creation and for every message, Teams sends a POST with an Authorization header containing HMAC <base64-encoded-hmac>. Your n8n flow must verify this against the secret (from creation) to confirm it's from Teams. If validation fails during initial creation, the webhook won't activate fully, leading to no @mention.
- In n8n:
-Use a Webhook node as the trigger (this receives the Teams POST).
This setup avoids webhook validation issues and leverages your existing app permissions. If you run into 403 errors when sending, double-check the license and permissions—ensure the user/account has an active Office 365/Teams license.
If none of this resolves it or you share more details (e.g., screenshots of the webhook creation, n8n flow, or exact error in n8n logs), I can dig deeper. Let me know how it goes!
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
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.