Communication
Microsoft Teams Webhooks
Microsoft collaboration platform. Receive events for messages, channels, teams, and meeting updates.
Connecting Microsoft Teams to Hookbase
Create a source in Hookbase first — it gives you an ingest URL to paste into Microsoft Teams. Then:
- 1Register a bot in Azure Bot Service (or the Teams Developer Portal)
- 2Set the bot's Messaging endpoint to your Hookbase ingest URL
- 3Install the bot/app in your Teams team or chat
- 4Teams sends events as Bot Framework activities; there is no secret to paste into Hookbase, because Hookbase does not verify Bot Framework JWTs yet
Signature verification
Microsoft Teams does not sign its webhooks with an HMAC scheme, so a signing secret on the source would have nothing to verify. Use a custom source with no secret, and keep the ingest URL itself hard to guess.
How Microsoft Teams secures them instead: A general Teams bot app validates inbound calls via a Bot Framework JWT bearer token checked against a live-fetched Microsoft JWKS, not a static secret — this needs its own bot-auth implementation, not a Hookbase source signing secret. (Teams' separate legacy "Outgoing Webhook" feature does use a static HMAC-SHA256 token, but for a narrower single-message use case than the events listed above.)
Microsoft Teams event types
15 of the events people route most often. Hookbase accepts every event Microsoft Teams sends, whether or not it is listed here.
message
Activity: a user sent the bot a message (or @mentioned it in a channel)
conversationUpdate
Activity: members added/removed, or team/channel changes (see channelData.eventType)
messageReaction
Activity: a reaction was added to or removed from a bot message
installationUpdate
Activity: the bot was installed (action: add) or uninstalled (action: remove)
channelCreated
conversationUpdate eventType: a channel was created
channelRenamed
conversationUpdate eventType: a channel was renamed
channelDeleted
conversationUpdate eventType: a channel was deleted
channelRestored
conversationUpdate eventType: a deleted channel was restored
teamMemberAdded
conversationUpdate eventType: a member (or the bot) was added to a team
teamMemberRemoved
conversationUpdate eventType: a member (or the bot) was removed from a team
teamRenamed
conversationUpdate eventType: a team was renamed
teamDeleted
conversationUpdate eventType: a team was deleted
teamArchived
conversationUpdate eventType: a team was archived
teamUnarchived
conversationUpdate eventType: a team was unarchived
teamRestored
conversationUpdate eventType: a deleted team was restored
What a Microsoft Teams webhook looks like
A message payload. Hookbase stores the raw body exactly as it arrived, so this is also what you get back on a replay.
{
"type": "message",
"id": "1705314600000",
"timestamp": "2024-01-15T10:30:00.000Z",
"localTimestamp": "2024-01-15T05:30:00.000-05:00",
"channelId": "msteams",
"serviceUrl": "https://smba.trafficmanager.net/amer/",
"from": {
"id": "29:1ljv6N86roXr5pjPrCJVIz6xHh5QxjI",
"name": "Jane Dev",
"aadObjectId": "eddfa9d4-346e-4cce-a18f-fa6261ad776b"
},
"conversation": {
"isGroup": true,
"conversationType": "channel",
"tenantId": "b28fdbfd-2b78-4f93-b0f8-8881793f0f8f",
"id": "19:0b7f32667e064dd9b25d7969801541f4@thread.tacv2;messageid=1705314600000"
},
"recipient": {
"id": "28:608cacfd-1cea-40c9-b678-4b93e69bb72b",
"name": "Hookbase Bot"
},
"text": "<at>Hookbase Bot</at> deploy status?",
"textFormat": "plain",
"channelData": {
"teamsChannelId": "19:0b7f32667e064dd9b25d7969801541f4@thread.tacv2",
"teamsTeamId": "19:zFLSDFWsesfzcmKArqKJ65aOXJz@thread.tacv2",
"channel": {
"id": "19:0b7f32667e064dd9b25d7969801541f4@thread.tacv2"
},
"team": {
"id": "19:zFLSDFWsesfzcmKArqKJ65aOXJz@thread.tacv2"
},
"tenant": {
"id": "b28fdbfd-2b78-4f93-b0f8-8881793f0f8f"
}
}
}Start receiving Microsoft Teams webhooks
Create a source, paste the URL into Microsoft Teams, and watch the first event arrive. The free tier includes 1,000 events a month.
Get Started Free