Note

We've packed up and moved from Confluence to Discourse to bring you a better, more interactive space. Out of courtesy we didn't migrate your user account so - you will have to signup again

The Exalate team will be on holiday for the coming days - returning Jan 4
Enjoy & stay safe

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »


A service level agreement, or SLA policy, is an agreed upon measure of the response and resolution times that your support team delivers to your customers.

For example, you can define an agreement where you respond to urgent tickets in 10 minutes and want to resolve them within a couple of hours.


In this post, we will be integrating SLA information from Zendesk with a plugin named Time to SLA which is available on Jira and makes tracking SLA's easy. In this use-case we will be Starting/Pausing/Ending SLA' based on statuses. It's also possible to do it with custom date fields and even comments. SLA's can even be differentiated by priority or narrowing down the scope using JQL functions.


Apart from this we will also be syncing over the below mentioned SLA metrics to a custom field in Jira  :

  • Latest Comment added at
  • Reply Time
  • First Resolution Time
  • Full Resolution Time
  • Agent Wait Time
  • Requester Wait Time
  • On Hold Time
  • Solved At

THE SCRIPTS


Zendesk Outgoing Sync :

Zendesk Outgoing Sync
def response = httpClient.get("/api/v2/tickets/${ticket.id}/metrics")

def latest_comment_added_at = ("${response.ticket_metric.latest_comment_added_at}")
replica."latest_comment_added_at" = latest_comment_added_at

def reply_time_in_minutes = ("${response.ticket_metric.reply_time_in_minutes}")
replica."reply_time_in_minutes" = reply_time_in_minutes

def first_resolution_time_in_minutes = ("${response.ticket_metric.first_resolution_time_in_minutes}")
replica."first_resolution_time_in_minutes" = first_resolution_time_in_minutes

def full_resolution_time_in_minutes = ("${response.ticket_metric.full_resolution_time_in_minutes}")
replica."full_resolution_time_in_minutes" = full_resolution_time_in_minutes

def agent_wait_time_in_minutes = ("${response.ticket_metric.agent_wait_time_in_minutes}")
replica."agent_wait_time_in_minutes" = agent_wait_time_in_minutes

def requester_wait_time_in_minutes = ("${response.ticket_metric.requester_wait_time_in_minutes}")
replica."requester_wait_time_in_minutes" = requester_wait_time_in_minutes

def on_hold_time_in_minutes = ("${response.ticket_metric.on_hold_time_in_minutes}")
replica."on_hold_time_in_minutes" = on_hold_time_in_minutes

def solved_at = ("${response.ticket_metric.solved_at}")
replica."solved_at" = solved_at

replica.status       = issue.status