# Escalation & SLA Monitor
URL: /recipes/escalation-sla-monitor
Type: howto
Description: Run every 30 minutes to find open tickets approaching or breaching SLA, then escalate with priority bumps, tags, Slack alerts, and internal notes.
Keywords: escalation & sla monitor, escalation-sla-monitor, recipe, workflow template, workflow builder, zendesk, slack
Run every 30 minutes to find open tickets approaching or breaching SLA, then escalate with priority bumps, tags, Slack alerts, and internal notes.

<Callout type="info">
  **Prerequisites:** Connect **Zendesk**, **Slack** before adding this recipe. See [Integrations](/integrations).
</Callout>

How it works [#how-it-works]

Each box is a block; arrows show the order Stylo runs them, and branch labels show the path taken on each outcome.

<Mermaid
  chart="flowchart TD
  trigger[&#x22;Every 30 Minutes&#x22;]
  search_breaching[&#x22;Find SLA Breaches&#x22;]
  has_breaches[&#x22;Any Breaches?&#x22;]
  loop_tickets[&#x22;For Each Ticket&#x22;]
  already_escalated[&#x22;Already Escalated?&#x22;]
  set_priority[&#x22;Set Priority Urgent&#x22;]
  add_tags[&#x22;Tag Escalated&#x22;]
  assign_escalation[&#x22;Assign Escalation Team&#x22;]
  slack_alert[&#x22;Slack Alert&#x22;]
  internal_note[&#x22;Add Escalation Note&#x22;]
  trigger --> search_breaching
  search_breaching --> has_breaches
  has_breaches -->|&#x22;Breaches Found&#x22;| loop_tickets
  already_escalated -->|&#x22;Escalate&#x22;| set_priority
  set_priority --> add_tags
  add_tags --> assign_escalation
  assign_escalation --> slack_alert
  slack_alert --> internal_note"
/>

Parameters [#parameters]

Set these when you add the recipe to your workspace:

| Parameter             | Type   | Default        |
| --------------------- | ------ | -------------- |
| `sla_hours`           | number | `4`            |
| `slack_channel`       | string | `#escalations` |
| `escalation_group_id` | string | —              |

Blocks used [#blocks-used]

Every block in this recipe, linked to its reference page where one exists:

| Block                                                      | Type                          | What it does                                                               |
| ---------------------------------------------------------- | ----------------------------- | -------------------------------------------------------------------------- |
| [Schedule](/reference/blocks/trigger-schedule)             | `trigger/schedule`            | Trigger workflow on a cron schedule                                        |
| Search Tickets                                             | `zendesk/search-tickets`      | Search for Zendesk tickets                                                 |
| [Condition](/reference/blocks/system-condition)            | `system/condition`            | Branch the workflow based on a boolean expression                          |
| [Loop](/reference/blocks/system-loop)                      | `system/loop`                 | Iterate over items, a fixed count, or while a condition is true            |
| Set Ticket Priority                                        | `zendesk/set-ticket-priority` | Set the priority level on a Zendesk ticket (low, normal, high, or urgent). |
| Add Tags                                                   | `zendesk/add-tags`            | Add tags to a ticket for classification and tracking                       |
| Assign Ticket                                              | `zendesk/assign-ticket`       | Assign a ticket to an agent or group                                       |
| [Send Slack Message](/reference/blocks/slack-send-message) | `slack/send-message`          | Send a message to a Slack channel                                          |
| Add Comment / Reply                                        | `zendesk/add-comment`         | Add a public reply or internal note to a ticket                            |

When to use it [#when-to-use-it]

Use this to enforce response-time commitments. It runs on a schedule, finds open tickets approaching or past their SLA, and escalates them with a priority bump, tags, a Slack alert, and an internal note.

Adapt it [#adapt-it]

This recipe is a starting point. To fit it to your workspace:

* Set the `sla_hours` parameter to your own SLA window.
* Set the `slack_channel` parameter to the channel that should receive escalation alerts.
* Set the `escalation_group_id` parameter to the Zendesk group that owns at-risk tickets.
* Edit the **Search** filters and the schedule interval to match how often you want SLA checks to run.

Related [#related]

* [All recipes](/recipes)
* [Workflow blocks reference](/reference/blocks)
* [Workflow Builder overview](/workflow-builder-overview)
* [Integrations](/integrations)