Auto-resolve cascade parent tickets
Close cascade parent tickets (the "Multiple devices offline on integration X" rollups) automatically when their fanout group has gone quiet — useful for organizations where the cascade is informational and the parent doesn't need to live in the queue. For ops teams who triage at the device level and want cascade parents tidied up after recovery.
What this workflow does
- A Ticket Opened trigger fires when any ticket opens.
- An If condition routes to true only when the ticket is a cascade parent (the engine marks these with
correlationId == id). - A Resolve Ticket action closes the parent with an audit note.
Note: The default behaviour is that the health monitor itself auto-resolves a cascade parent when every member ticket recovers. This workflow is for the opposite policy — close the parent immediately on open, on the assumption that the per-device child tickets are the source of truth. Pick one policy or the other; running both is harmless but the auto-resolver may close before this workflow does.

Prerequisites
- Workflows enabled for your org. See Enable workflows for your org.
- Tickets enabled for your org. See Tickets.
- A workflow service account that can resolve tickets.
Build it
1. Create the workflow
Workflows → New workflow → name Auto-close cascade parents → Create.
2. Add the Ticket Opened trigger
- Add node → Triggers → Ticket Opened.
- No settings.
3. Add the If condition
- Add node → Conditions → If.
- One row:
- Value 1 — data reference,
trigger.ticket.correlationId. - Operation — string equals.
- Value 2 — data reference,
trigger.ticket.id.
- Value 1 — data reference,
- Connect the trigger to the If.
The correlationId == id check is the engine's marker for a cascade parent — child tickets carry the parent's id in their correlationId, so only the parent passes this test.
4. Add the Resolve Ticket action
- Add node → Actions → Resolve Ticket.
- Settings:
- Ticket id —
{{ .trigger.ticket.id }}. - Note —
Auto-resolved cascade parent — per-device child tickets are tracked individually.
- Ticket id —
- Connect the true port of If to the action.
5. Save and enable
Click Save, leave Enabled on.
Variations
- Resolve after a delay. Insert a Wait node (or a stateful Cooldown gate) between the If and the Resolve to give the cascade a chance to grow before closing the parent. Useful when the parent's description text is itself read by humans before being archived.
- Notify the team that the parent was auto-closed. Add a Post To Channel after the Resolve, with the integration name pulled from
trigger.ticket.subjectNameand the description copied through. - Only auto-close cascades from a specific integration kind. Add a second condition row:
trigger.ticket.kindstring equalscascade. That's redundant for the parent-marker case today (only cascade-parent tickets carrycorrelationId == id), but it's a defence against future grouping kinds the engine may add.
When it doesn't fire
- The cascade never gets a parent. The HDI outage detector only creates a cascade parent above a fanout threshold (default 10 devices in a 10-minute window). Below that, no parent — and nothing for this workflow to act on. Adjust the platform-level outage config if you want a lower threshold.
- The parent is closed before this workflow runs. The engine's own auto-resolver closes the parent when every child recovers. If everyone recovered quickly, the open and the auto-resolve may happen between this workflow's trigger fire and the action — the Resolve Ticket call sees an already-resolved row and returns idempotent OK. No error, just a noop.