Skip to main content
Service level agreements (SLAs) commit you to responding to and resolving problems for your customers within a certain time frame. SLAs are attached to a tier, which means every tenant belonging to that tier inherits them.
For TypeScript, the GraphQL SDK gives you a fully typed client for these operations.
Four types of SLA exist:
  • First response time: measured from when a thread is created until the first response is sent.
  • Next response time: measured each time the customer sends a new message, until a user responds.
  • First resolution time: measured from when a thread is created until it is first marked Done.
  • Total resolution time: measured from when a thread is created until it is marked Done. If the thread is reopened, the SLA reopens too, still measured from when the thread was created.
SLAs can be scoped to specific thread priorities or labels, and can either be tracked 24/7 or only during your workspace’s business hours. Resolution time SLAs can also be paused while the thread is in selected statuses. These operations require the following permissions:
  • serviceLevelAgreement:create
  • serviceLevelAgreement:edit
  • serviceLevelAgreement:delete

Create an SLA

Provide exactly one of firstResponseTimeMinutes, nextResponseTimeMinutes, firstResolutionTimeMinutes, or totalResolutionTimeMinutes. To give one tier both a first response and a next response SLA, make separate calls.
Mutation
Variables
For a resolution time SLA, pauseOnStatusDetailTypes lists the thread status types that pause the clock: WAITING_FOR_CUSTOMER, WAITING_FOR_DURATION, WAITING_INDEFINITELY, IN_PROGRESS, THREAD_LINK_UPDATED, and THREAD_DISCUSSION_RESOLVED. It defaults to ["WAITING_FOR_CUSTOMER"] when omitted. Pass an empty array to keep the clock running in every status. The field is rejected on response time SLAs.
Variables for a total resolution time SLA

Update an SLA

Field-level wrapper inputs apply: pass { "value": ... } for the fields you want to update and omit the rest. pauseOnStatusDetailTypes takes { "value": [...] } and only applies to resolution time SLAs.
Mutation
Variables

Delete an SLA

Mutation
Variables