New to Kestra?
Use blueprints to kickstart your first workflows.
Auto-resolve Squadcast incidents when systems recover. A Kestra webhook receives the recovery signal and sends status resolve with the original event id.
Half of incident hygiene is closing pages, and it is the half that gets forgotten. Squadcast's incoming webhook correlates calls by event id, an alert sent with status: trigger and an event_id opens an incident, and a later call with status: resolve and the same event_id closes it. This blueprint automates the second half. A Kestra webhook trigger receives a recovery signal from the healing system or its monitor, sends the resolve payload through io.kestra.plugin.squadcast.SquadcastIncomingWebhook, and posts a Slack note, so incidents opened by your pager flows close themselves the moment recovery is confirmed.
on_recovery (io.kestra.plugin.core.trigger.Webhook) exposes an endpoint guarded by a secret key. The recovering service, a synthetic check, or another Kestra flow posts a JSON body containing event_id once health returns.resolve_incident posts a two-field payload, status: resolve and event_id, matching the resolve semantics documented on the plugin page. The expression {{ trigger.body.event_id ?? inputs.event_id }} reads the live webhook body in production and falls back to the event_id input for manual runs.note_resolution leaves a Slack line naming the resolved event id, so the recovery is visible in the channel without a human touching Squadcast.errors block reports to Slack when the resolve call fails, because a resolved system with an open page erodes trust in the pager in both directions.event_id this flow can resolve.Auto-resolution needs an authenticated HTTP entry point, payload templating with a safe manual fallback, a pager integration, and an audit trail of every close. Kestra's webhook trigger, Pebble expressions, and execution history provide all of it in a dozen lines of YAML, and the same pattern extends to any system that reports its own recovery.
event_id when they trigger incidents.SQUADCAST_WEBHOOK_URL: the full Squadcast incoming webhook endpoint, including its token.SLACK_WEBHOOK_URL: Slack incoming webhook URL.RESOLVE_WEBHOOK_KEY: the key guarding the Kestra webhook endpoint.{"event_id": "your-event-id"} to the flow's webhook URL and confirm the Squadcast incident resolves and the Slack note appears.