Перейти к содержанию

SLA

Цели SLA говорят, как быстро заявка должна получить первый ответ и как быстро её нужно решить. Helpdesk Pro ведёт отсчёт по каждой заявке, к которой применяется политика, показывает сотрудникам, сколько осталось, предупреждает до пропуска цели и записывает каждое нарушение для отчётов.

SLA предназначен для сотрудников. Клиенты никогда не видят срок, нарушение или политику: ни в портале, ни в своих письмах, ни через API или MCP, ни в поиске.

Политики

Политика — пара целей и заявки, к которым они применяются. Настройте их в рабочей области в разделе Automation → SLA, для этого нужно helpdesk-pro.settings. Любой с доступом к рабочей области может их читать.

  • First response: рабочие минуты от поступления заявки до первого публичного ответа сотрудника. Заметка не считается, как и ответ клиента.
  • Resolution: рабочие минуты до решения или закрытия заявки. Время ожидания клиента не считается.

Любую цель можно оставить пустой; у политики должна быть хотя бы одна.

Политика применяется к заявке, когда заявка соответствует её условиям. Каждое условие — список проектов, приоритетов или типов. Заявка должна совпасть с одной записью каждого непустого списка, а пустой список совпадает со всем, поэтому политика без условий совпадает с каждой заявкой.

Политики проверяются в порядке, в котором их перечисляет Automation → SLA, и побеждает первое совпадение. Перемещайте политику вверх или вниз через меню строки. Одну политику можно отметить как default: она применяется к любой заявке, с которой не совпала другая. Отключённая политика пропускается. У заявки, с которой ничего не совпало, нет SLA.

Типичная настройка — одна политика на приоритет, начиная с самого срочного, с обычной по умолчанию:

Политика Условия Первый ответ Решение
Urgent приоритет urgent 30 минут 4 часа
High приоритет high 2 часа 1 день
Standard (по умолчанию) нет 8 часов 3 дня

Рабочие часы

Политика считает свои цели в рабочих часах или круглосуточно, когда их нет. У набора рабочих часов есть:

  • часовой пояс (имя IANA, например Europe/London). Расписание и праздники в этом часовом поясе, что бы ни использовали сервер или смотрящий.
  • недельное расписание: диапазоны времени по дням в 24-часовом формате. День без диапазона закрыт. Несколько диапазонов дают обеденный перерыв (09:00–12:00, 13:00–17:30). Диапазон, конец которого не позже начала, идёт через полночь: 22:00–06:00 в понедельник покрывает ночь понедельника до 06:00 вторника. 24:00 — конец дня.
  • праздники: даты, когда закрыт весь день, включая ранние часы ночной смены, начавшейся вечером накануне. Ежегодный праздник повторяется в тот же месяц и день каждый год.

Дни, которые теряют или получают час при переходе на летнее время, считают реально прошедшее время. Цель в 8 рабочих часов, поставленная в 16:00 пятницы при расписании 09:00–17:00 по будням, истекает в 16:00 понедельника.

Рабочие часы, используемые политикой, удалить нельзя; сначала переведите политику на другие часы.

Отсчёт

У каждой заявки, к которой применяется политика, одни часы. Они идут, пока заявка в активной категории статуса (new, open, waiting on us), приостанавливаются, пока она ждёт клиента, и останавливаются, когда её решили или закрыли. Обе цели измеряются по одним часам.

  • Первый ответ наступает, когда часы прошли цель первого ответа. Его выполняет первый публичный ответ сотрудника.
  • Решение наступает, когда часы прошли цель решения.

Когда клиент отвечает и заявка возвращается в open, часы продолжают с места остановки, поэтому время ожидания не засчитывается против команды. Срок существует, только пока часы идут; приостановленная заявка вместо этого показывает, сколько осталось.

Открытая снова заявка тоже продолжает: у заявки, решённой через 3 часа из 8-часовой цели, при возвращении остаётся 5 часов. Нарушение, случившееся до решения заявки, остаётся нарушением.

Когда меняются приоритет, тип или проект заявки, политики сопоставляются заново, а сроки пересчитываются с переносом уже потраченного времени. Повышение заявки до urgent через 20 минут при 30-минутной цели urgent оставляет 10 минут. Если новая цель уже исчерпана, заявка нарушает её сразу.

Когда меняется политика или набор рабочих часов, каждая живая заявка сопоставляется заново в фоне (задание sla.recompute). Решённые и закрытые заявки сохраняют запись, с которой завершили. Заявка, впервые получающая политику таким образом, измеряется с момента создания за вычетом времени ожидания клиента.

Предупреждения и нарушения

  • Цель, до которой осталось меньше времени предупреждения (sla.warning_minutes, по умолчанию 60), один раз вызывает предупреждение.
  • Цель, срок которой наступил невыполненной, один раз нарушается. Нарушение отмечается моментом наступления срока и остаётся в заявке для отчётов.

Оба события находит задание sla.scan каждую минуту и сразу, когда изменение переносит срок в прошлое. Каждое уведомляет:

  • исполнителя сразу (после обычного льготного периода для почты) или
  • когда никто не назначен — каждого сотрудника, работающего с проектом, в его следующем пакете.

Уведомления следуют уровню и настройкам почты каждого человека (Уведомления). Уведомления SLA считаются адресованными человеку, поэтому уровень aimed по умолчанию отправляет их по почте. Нарушение, найденное задним числом, потому что заявку уже ответили или решили, записывается, но не уведомляет.

Предупреждение или нарушение, вызванное изменением настройки, тоже записывается, но не уведомляет. Когда вы добавляете первую политику в занятую службу поддержки или сокращаете цель, заявки, которые теперь просрочены, показываются как Breached или Due soon и учитываются в отчётах, но колокольчик не звонит и письмо не уходит, поэтому изменение не заваливает всех сразу. С этого момента часы каждой заявки уведомляют как обычно.

Цель короче времени предупреждения предупреждает сразу, как только начинается её отсчёт. Установите sla.warning_minutes в 0, чтобы отправлять только нарушения.

В рабочей области

  • All tickets показывает значок срока у каждой открытой заявки, срок которой наступает в течение суток («in 2h», «35m late»), с точным сроком при наведении.
  • Чипы Breached и Due soon фильтруют список, считая по всему результату, и сохраняются в сохранённом представлении, как любой другой фильтр. Breached включает заявки, решённые после нарушения; добавьте фильтр статуса, чтобы видеть только открытые.
  • Сортировка Due soonest ставит просроченные заявки первыми, затем ближайший срок, затем заявки без срока.
  • Панель SLA заявки показывает политику, обе цели с их сроками, приостановлены ли часы и выполнена или нарушена каждая цель.
  • Automation → SLA перечисляет политики в порядке сопоставления и наборы рабочих часов. Каждый открывается в своём редакторе (#/setup/sla/<id>, #/setup/sla-hours/<id>), который спрашивает перед уходом с несохранёнными изменениями. Без helpdesk-pro.settings экраны только для чтения.

SLA также работает в правилах: An SLA target is due soon и An SLA target is breached — триггеры, а SLA state и SLA target — условия.

Настройки

На вкладке SLA настроек плагина:

Ключ По умолчанию Что делает
sla.enabled true Вести часы SLA по заявкам. При выключении ничего не отслеживается, рабочая область не показывает SLA, а сканирование ничего не делает; политики и часы остаются как есть.
sla.warning_minutes 60 За сколько до наступления срока отправляется предупреждение. 0 не отправляет предупреждений.

API и MCP

Для чтения нужно helpdesk-pro.desk; для изменения — helpdesk-pro.settings.

Маршрут Право Тело Ответ
GET /helpdesk-pro/sla/policies desk Политики в порядке сопоставления, каждая {id, name, description, enabled, is_default, position, conditions: {project_ids, priorities, kinds}, first_response_minutes, resolution_minutes, business_hours_id, business_hours, open_tickets}, и meta: {enabled, warning_minutes}
POST /helpdesk-pro/sla/policies settings {name, description, enabled, is_default, conditions, first_response_minutes, resolution_minutes, business_hours_id} 201 с политикой. Приоритеты принимают 0–3 или их имена.
POST /helpdesk-pro/sla/policies/reorder settings {ids}: каждый id политики один раз 204
GET /helpdesk-pro/sla/policies/{id} desk Политика
PATCH /helpdesk-pro/sla/policies/{id} settings Любое поле тела создания Политика
DELETE /helpdesk-pro/sla/policies/{id} settings 204. Её заявки сопоставляются с другими политиками.
GET /helpdesk-pro/sla/business-hours desk Каждый набор {id, name, timezone, schedule: {mon: [{start, end}], …, sun: []}, holidays: [{date, name, yearly}], policies}
POST /helpdesk-pro/sla/business-hours settings {name, timezone, schedule, holidays} 201 с набором
GET /helpdesk-pro/sla/business-hours/{id} desk Набор
PATCH /helpdesk-pro/sla/business-hours/{id} settings Любое поле тела создания Набор
DELETE /helpdesk-pro/sla/business-hours/{id} settings 204 или 409, пока набор использует политика
GET /helpdesk-pro/tickets/{id}/sla desk SLA заявки (ниже) или null, когда ни одна политика не применяется

SLA заявки, также в extra.sla в каждой полезной нагрузке заявки для сотрудников:

{
  "policy": {"id": 1, "name": "Urgent"},
  "business_hours": {"id": 1, "name": "Office", "timezone": "Europe/London"},
  "state": "due_soon",
  "next_due_at": 1790000000,
  "breached_at": null,
  "paused": false,
  "paused_since": null,
  "first_response": {"status": "pending", "target_minutes": 30, "due_at": 1790000000, "met_at": null, "breached_at": null, "remaining_minutes": null},
  "resolution": {"status": "pending", "target_minutes": 240, "due_at": 1790012600, "met_at": null, "breached_at": null, "remaining_minutes": null}
}

state — breached, due_soon или null. status цели — pending, paused (remaining_minutes говорит, сколько осталось), met, breached, stopped (решена без первого ответа) или none (у политики нет такой цели). Список заявок принимает от сотрудников sla=breached,due_soon и sort=due.

Инструменты MCP: list_sla_policies, get_sla_policy, create_sla_policy, update_sla_policy, delete_sla_policy, reorder_sla_policies, list_business_hours, get_business_hours, create_business_hours, update_business_hours, delete_business_hours и get_ticket_sla.

Задания

Задание Что делает
sla.scan Каждую минуту: отмечает и уведомляет о наступивших предупреждениях и нарушениях. Не планируется, пока sla.enabled выключен.
sla.recompute После изменения политики или рабочих часов: сопоставляет каждую живую заявку заново и пересчитывает её сроки, по 200 заявок за запуск.