A periodic timer is useful when you want to repeatedly measure how long it takes for an agent to get back to a customer. After every agent reply, the timer stops and restarts automatically—continually tracking responsiveness throughout the lifecycle of the ticket.
This article shows you how to configure a looping, self-restarting timer using the SweetHawk Timers app in Zendesk.
How It Works (Overview)
The periodic timer runs in a loop:
Timer starts (begin measuring time).
Agent replies → Timer stops.
When the timer stops, a workflow adds a tag to the ticket.
A trigger detects this tag and starts the timer again.
The tag is removed so the cycle can repeat.
This creates an infinite loop of start → stop → start → stop until the ticket is solved.
Important:
You must use a Timers workflow to add the tag after the timer stops.
If you add the tag directly inside the Zendesk stop trigger, both the start and stop triggers may fire simultaneously, causing a race condition and inconsistent behavior. The workflow prevents this.
Step 1 — Create the Timer Workflow
This workflow fires when the timer stops and adds a tag that will retrigger the start condition.
In the SweetHawk Timers app, go to Workflows.
Click Add Workflow.
Set conditions:
When: Timer stops
Set actions:
Add tag:
periodic_update_sla_stopped
Save the workflow.
This workflow ensures the tag is only added after the timer has fully stopped—preventing trigger collisions.
Step 2 — Create the Periodic Timer
Go to the Timers section in the SweetHawk app.
Click Add Timer.
Configure:
Name: e.g., Periodic Update SLA
Description: Measures time between agent replies.
Duration: (e.g., 30 minutes)
Workflow: Select the workflow created in Step 1.
Save the timer.
Step 3 — Create the “Start Timer” Trigger
This trigger runs when the workflow adds the tag, starting the next cycle of the periodic timer.
In the Timers app, next to the timer under Timer definitions, under the Start column click Create trigger.
Conditions
Tags → Contains →
periodic_update_sla_stoppedStatus → Is not → Solved
(Prevents restarting the timer after the ticket is resolved.)
Actions
Start Timer Action:
(This appears automatically when creating a Timers start trigger.)Remove tag:
periodic_update_sla_stopped
(Removes the tag so the next loop can work correctly.)
Save the trigger.
Step 4 — Create the “Stop Timer” Trigger
This trigger fires when an agent responds to the customer.
In the Timers app, next to the timer under Timer definitions, under the Stop column click Create trigger.
Conditions
Comment is → Public
Current user is → Agent
Tags → Does not contain →
periodic_update_sla_stopped
(Prevents the stop trigger from firing due to the workflow loop.)
Actions
Stop Timer: Select the periodic timer.
(This appears automatically when creating a Timers stop trigger.)
Important:
Do not add the tagperiodic_update_sla_stoppedinside this trigger.
The workflow handles that, ensuring no race conditions occur.
Save the trigger.
How the Loop Works
Timer starts.
Agent replies → stop trigger fires → timer stops.
Workflow sees “timer stopped” → adds the
periodic_update_sla_stoppedtag.Start trigger sees the tag → starts the timer again → removes the tag.
Cycle repeats indefinitely.
Optional Enhancements
Once the periodic loop is in place, you can build more logic using Timers workflows:
Warnings before timer ends
e.g., 5 minutes before breach, add a tag or internal noteActions when timer breaches
e.g., notify a manager, escalate priority, apply SLA warningLogging or analytics actions
e.g., create events for reporting based on timer stops/starts
The periodic timer provides a flexible foundation for advanced responsiveness workflows.