Microsoft Teams Alerts for Cron Jobs
Route cron failure alerts into any Microsoft Teams channel via an incoming webhook connector. Five-minute setup, no admin app deployment required (channel-level workflow works).
1. Create the Teams workflow / connector
Microsoft deprecated the "Incoming Webhook" connector in 2024. The current path uses Workflows (formerly Power Automate templates):
- In Teams, click the + next to your channel tabs → Workflows.
- Search for and select "Post to a channel when a webhook request is received".
- Sign in (uses your existing Microsoft 365 account; no admin approval needed for channel-level workflows in most tenants).
- Pick the team and channel for alerts. Click Add workflow.
- Copy the resulting HTTP POST URL — looks like
https://prod-XX.westus.logic.azure.com:443/workflows/.../triggers/manual/paths/invoke?...
If your tenant still has the legacy Incoming Webhook connector enabled, you can use it instead — same URL format works, but Microsoft will eventually disable it. Migrating now saves the rework later.
2. Wire it up in crond.io
The teams payload template formats alerts as an Adaptive Card (the modern format Teams expects from Workflows). Includes color-coded title, monitor name, status, last successful ping timestamp, and a link button.
@mentioning a team or user
Adaptive Cards posted via Workflows can include <at>mentions, but they require the user's Azure AD object ID, not display name. Add to the alert config:
Get the AAD object ID from Microsoft Entra ID → Users → <user> → Object ID. For team-wide mentions, use the team's group ID instead.
Troubleshooting
- 200 from webhook but no message in Teams: the workflow accepted the request but Adaptive Card schema rejected it. Check Workflow → Run history for the underlying error.
- 403 / Authentication failed: the workflow owner left the tenant. Have a current member re-create the workflow and update the URL in crond.io.
- Card looks plain (no colors): the channel may be on the Teams classic client, which renders Adaptive Cards less richly. New Teams client renders correctly.