Developer docs
Microsoft Teams notifications
DeploySeal posts Adaptive Cards into a Teams channel through a Teams Workflows webhook (Power Automate's “When a Teams webhook request is received” trigger). Nothing to install in your tenant, no bot registration — one URL per channel. Channels are configured under Settings → Integrations → Microsoft Teams; each picks its own events and severity filter.
Six-step setup
- 1
Open the channel
In Teams, go to the channel that should receive DeploySeal cards, open its ⋯ menu and choose Workflows.
- 2
Pick the webhook template
Search for and select Post to a channel when a webhook request is received. (Office 365 Connectors are retired; Workflows is the supported route.)
- 3
Name the flow and confirm the channel
Give it a name such as DeploySeal, confirm the team and channel, and press Add workflow.
- 4
Copy the URL
Teams shows the webhook URL once the flow is created (it starts with https://…logic.azure.com/ or https://…powerautomate.com/). Copy it.
- 5
Paste it in DeploySeal
Go to Settings → Integrations → Microsoft Teams → Add Teams channel, paste the URL and give it a label. The URL is encrypted at rest and never shown again.
- 6
Send a test and choose events
Press Send test — a card should appear in the channel within a few seconds. Then pick the events and severity filter on the channel card.
The URL must be https and reachable over the public internet; DeploySeal validates the shape when you paste it and refuses private or internal addresses. Redirects are never followed. Any https host is accepted so relays and regional Logic Apps domains work — you do not need to whitelist anything.
What each card shows
Every card is an Adaptive Card 1.4 with a bold header, a fact list, an optional note and one Open in DeploySeal button. Header colour follows the same vocabulary as Slack: Critical and “Do not approve” in red, High and reservations in amber, a cleared launch gate in green.
| Event | Header | Facts |
|---|---|---|
| issue.created | New high issue: #12 Checkout button unresponsive | Severity · Type · Campaign · Reported by · Page |
| issue.status_changed | #12 Checkout button unresponsive → Retest Failed | Status (old → new) · Severity · Campaign · Changed by · reason as a note |
| campaign.launched | Campaign launched: Spring relaunch | Site · Testers invited · Target ship date · Launched by |
| tester.completed | Sarah N. finished testing: Approve with reservations | Verdict · Issues reported · Campaign · closing note as a quote |
| report.sealed | Readiness report sealed: Spring relaunch | Launch gate · Readiness · Seal + version · Signatures · Site · Sealed by + decision |
| signoff.requested | Sign-off requested: Spring relaunch | Signers · Requested by · Target ship date |
Status changes post only Fixed, Retest failed, Closed and Won't fix unless “all status changes” is on. The severity filter (all / High and above / Critical only) applies to both issue events. Cards are delivered from a durable queue with three quick attempts; a channel whose last delivery failed shows a Failed badge with the reason and heals on the next success.
The payload, for the curious
If you would rather route the card through your own flow steps (conditions, mentions, a different channel), this is the exact envelope the Workflows trigger receives:
POST <your Workflows webhook URL>
Content-Type: application/json
{
"type": "message",
"summary": "New High issue #12: Checkout button unresponsive",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"contentUrl": null,
"content": {
"type": "AdaptiveCard",
"version": "1.4",
"msteams": { "width": "Full" },
"body": [
{ "type": "TextBlock", "size": "Medium", "weight": "Bolder", "wrap": true,
"color": "Warning", "text": "New high issue: #12 Checkout button unresponsive" },
{ "type": "FactSet", "facts": [
{ "title": "Severity", "value": "🟠 High" },
{ "title": "Type", "value": "Bug" },
{ "title": "Campaign", "value": "Spring relaunch" },
{ "title": "Reported by", "value": "sarah@example.com" },
{ "title": "Page", "value": "https://staging.example.com/checkout" }
] }
],
"actions": [
{ "type": "Action.OpenUrl", "title": "Open in DeploySeal",
"url": "https://app.deployseal.com/issues/9b2c5d4e-…" }
]
}
}
]
}Ready to wire it up? Teams channels live in your workspace settings.
Open Teams settingsUsing Slack? See the Slack setup guide. Need raw events? See the webhook reference.