Перейти к содержимому

Табло SLA первого ответа

Табло для дежурной смены поддержки, на котором видно, сколько времени осталось до первого ответа клиенту по каждому открытому обращению. Это первый экран старшего смены: какие обращения нарушат обещанный срок в ближайший час и кто должен ответить.

Без табло сроки первого ответа живут внутри нескольких почтовых ящиков и чатов, и ни одна система не показывает их вместе. Нарушение обнаруживается постфактум, в отчёте или в жалобе клиента. Старший в начале смены собирает картину вручную, а обращения, пришедшие в ночь или выходные, получают ответ позже, чем обещано договором.

Табло обычно появляется, когда сроки ответа записаны в договорах с клиентами и их нарушение стоит денег или репутации.

  • Показывает обратный отсчёт в строке. У каждого обращения виден срок первого ответа, оставшееся время и цвет состояния — без открытия карточки.
  • Считает срок по правилам договора. Срок зависит от приоритета и тарифа клиента и учитывает рабочие часы и праздники, если договор так предусматривает.
  • Фиксирует нарушение автоматически. Когда срок прошёл, обращение получает статус «Нарушен», а время нарушения сохраняется для отчёта.
  • Позволяет действовать с табло. Назначить ответственного или взять обращение себе можно прямо из строки.
  • Даёт сводку по смене. Доля ответов в срок по приоритетам, каналам и сменам видна за день и неделю.
  • Первый ответ нужно определить. Автоответ «мы получили ваше письмо» обычно не считается. Какое событие закрывает срок — первый публичный ответ агента, звонок, сообщение в чате — фиксируют в правилах до запуска.
  • Рабочие часы и пауза. Если договор считает срок только в рабочее время, календарь и часовой пояс клиента хранят как настройки. Срок вычисляют при поступлении обращения и сохраняют, а пересчитывают только при смене приоритета, с записью в журнал.
  • Канал не влияет на логику. Письмо, чат и форма на сайте сходятся в одну очередь; срок зависит от приоритета и тарифа, а не от источника.
  • Help desk часто уже считает SLA. Zendesk, Freshdesk и Help Scout умеют политики SLA и базовые представления. Отдельное табло оправдано, когда обращения идут из нескольких систем, сроки прописаны в договорах в вашей CRM или нужна сводка, которую help desk не строит. Данные при этом читают через API или ночную синхронизацию, а не переносят.
  • Контекст клиента в строке. Тариф и признак ключевого клиента видны до чтения темы письма, иначе срочное обращение крупного клиента теряется в общем потоке.
  • Роли ограничивают на сервере. Агент по умолчанию видит свои открытые обращения, старший — всю смену с фильтром по агентам. Ограничение действует и в табло, и в выгрузке.
  • Порог «скоро нарушение» — настройка. Жёлтый цвет за 30 минут или за четверть срока — решение руководителя, его калибруют по опыту, а не зашивают в код.

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным Filament 4.x. Отправляйте их по одному и проверяйте результат каждого шага.

Создай модели и миграции для табло первого ответа: Ticket (источник, внешний id,
канал, клиент, приоритет, время поступления, срок первого ответа, время
первого ответа, признак нарушения, ответственный), SlaPolicy (приоритет,
тариф, срок в минутах, только рабочие часы да/нет), BusinessCalendar (часовой
пояс, рабочие часы по дням, праздники). Добавь фабрики с демо-данными.
Напиши сервис, который при поступлении обращения вычисляет срок первого ответа
по SlaPolicy и BusinessCalendar и сохраняет его в записи. При смене
приоритета срок пересчитывается, а старое и новое значение пишутся в журнал.
Покрой расчёт тестами: ночь, выходные, праздник, смена приоритета.

Проверьте тест, где обращение пришло в пятницу вечером при политике «только рабочие часы».

Сгенерируй Filament-ресурс для Ticket в виде табло открытых обращений без
первого ответа: оставшееся время, цвет состояния (в норме, скоро нарушение
по порогу из конфига, нарушен), приоритет, тариф, канал, ответственный.
Сортировка — по сроку. Добавь действия «Взять себе» и «Назначить» в строке
и автообновление таблицы раз в минуту.
Сделай фоновую задачу, которая забирает новые обращения и события первого
ответа из API help desk без дублей. Отдельная задача каждую минуту помечает
обращения с истекшим сроком как нарушенные, сохраняет время нарушения
и отправляет уведомление старшему смены.
Настрой доступ: агент видит свои обращения, старший — всю смену, руководитель —
всё и экспорт. Добавь виджеты: доля ответов в срок за день и неделю по
приоритетам и каналам, число нарушений по сменам.