Token Watch watches the client secrets and certificates on your Entra App Registrations. Once you grant admin consent, it reads the credential metadata through Microsoft Graph and, on a daily monitoring run, sends an alert whenever a tracked credential is expired or getting close.
Teams no longer has a native "incoming webhook" the way it once did, so Token Watch takes the path Microsoft now supports: it sends an Adaptive Card to a Power Automate workflow URL, and the flow posts that card into whichever channel or chat you point it at.
Integration overview
Microsoft Entra ID / Azure AD App Registrations
-> Token Watch
-> Microsoft Teams webhook channel
-> Power Automate workflow URL
-> Teams channel or chat
Token Watch sends metadata only. It never sends client secret values, certificate private keys, Microsoft user passwords, or payment card details. When a daily run finds nothing expiring, nothing is sent.
When to use Teams alerts
Pick Teams if your identity, platform, or operations people already triage work there — the alert lands where they are already looking. For a small team, email might cover it. If you need a signed, machine-verifiable payload, that is the JSON webhook channel, not this one. Teams mode is built for readable notifications and for fanning out into Power Automate workflows.
Prerequisites
- Token Watch tenant setup is complete.
- Microsoft admin consent has been granted and applications have synced.
- Monitoring is enabled and webhook delivery is available in your Token Watch plan.
- You can create or manage a Power Automate cloud flow.
- You have a Teams channel or chat where alerts should be posted.
- The generated workflow URL is a public HTTPS endpoint.
Step-by-step setup
- Create a Power Automate cloud flow.
- Use a trigger that receives an HTTP or webhook request for Teams.
- Configure the flow to post the incoming Adaptive Card to the desired Teams channel or chat.
- Copy the generated workflow URL.
- In Token Watch, open Monitoring > Webhook reporting.
- Select Microsoft Teams.
- Paste the Power Automate workflow URL.
- Enable webhook delivery.
- Send a test webhook.
Token Watch posts JSON and treats a 2xx from your flow as success. Anything else counts as
a failed attempt, and Token Watch retries — up to three attempts in total, with backoff before the
second and third.
What Teams receives
The flow receives a message envelope with a single Adaptive Card attachment (card version
1.4). The card leads with a title counting the credentials that need attention, shows the
generated timestamp, and lays each one out — application, secret or certificate, status, expiry
— as a fact set. To stay inside the card's limits, Token Watch lists up to 40 facts and adds a
summary line when there are more.
Token Watch — 2 secret(s) need attention
Generated 2026-06-13T00:00:00Z
Contoso API — client-secret Expiring · expires 2026-06-20T00:00:00Z
Fabrikam Web — signing-cert Expired · expires 2026-06-11T00:00:00Z
Security notes
Teams mode is for people to read, not for machines to verify. It does not carry the
X-TW-Signature header that the JSON channel uses, so the workflow URL is your
control: treat it like a secret, write down who owns the flow, and decide up front where flow failures
get investigated.
If you need signature verification, replay protection, custom deduplication, or SIEM-grade ingestion, send the alert to the JSON webhook channel first, verify it in your own receiver, and post into Teams from there as a downstream step. And if your team really handles operational alerts in Slack, the Slack guide covers that incoming-webhook path.
Routing ideas
- Post alerts to an identity, platform, or production operations Teams channel.
- Use Power Automate steps to create Planner tasks, notify owners, or send approvals.
- Send
Expiredcredentials to a higher-urgency path. - Send
Expiringcredentials to a maintenance queue. - Route by tenant, application naming convention, owner map, service catalog, or team mapping.
- Avoid creating duplicate tasks every night for the same credential.
Troubleshooting
- No webhook arrived: confirm there was at least one expired or expiring tracked credential.
- Webhook URL is invalid: confirm it is a public HTTPS URL.
- 401 or 403: check the Power Automate trigger URL and permissions.
- 404: the workflow URL may have been regenerated or copied incorrectly.
- 429: check Power Automate limits and downstream Teams posting behavior.
- Teams does not show the message: confirm the flow is enabled and posts the incoming Adaptive Card to the expected destination.
- Webhook health is unhealthy: health is computed from recent scheduled deliveries, not manual tests.
Limitations
- Token Watch does not renew credentials for you.
- Token Watch does not send secret values.
- Teams delivery depends on the Power Automate workflow remaining enabled and authorized.
- Teams mode is for human-readable notifications; a JSON webhook is better for signed automation.
- The alert only helps if the team has an ownership and renewal process.
FAQ
X-TW-Signature. Use the JSON webhook for signed machine-to-machine ingestion.
Token Watch