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 заявок за запуск. |