﻿---
title: Планировщик нагрузки поддержки
description: "Планировщик на Laravel + Filament: текущая загрузка агентов, покрытие смен, прогноз входящего потока и перераспределение обращений."
---

## Что это за сервис

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

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

Первая версия обычно ограничивается экраном текущей нагрузки и ручным перераспределением. Прогноз добавляют, когда накоплено хотя бы несколько недель истории, а автоматические правила — только после того, как старшие смены убедились, что цифры совпадают с реальностью.

## Что он делает

- **Показывает текущую загрузку.** Число открытых обращений, их приоритет и ближайшие сроки по каждому агенту видны на одном экране.
- **Помогает перераспределить очередь.** Старший переносит обращения от перегруженного агента к свободному прямо с экрана нагрузки.
- **Прогнозирует поток.** По истории обращений строится ожидаемое число обращений по часам и дням недели с учётом сезонности.
- **Сравнивает прогноз с покрытием.** Для каждого часа видно, сколько людей нужно и сколько запланировано в смене; разрывы подсвечиваются заранее.
- **Реагирует на выход агента из сети.** Обращения ушедшего агента выносятся старшему на перераспределение или назначаются по правилу.

## Нюансы и особенности

- **Встроенный отчёт — только для чтения.** Отчёты help desk показывают нагрузку по своим данным, но не позволяют соединить её с графиком смен, тарифами клиентов и сразу перераспределить обращения. Если вам нужен только просмотр, стоит начать с них.
- **Нагрузка — не только число обращений.** Одно обращение ключевого клиента с коротким сроком весит больше пяти простых вопросов. Веса по приоритету и тарифу задаются в настройках и проверяются на истории.
- **Прогноз — ориентир, а не обещание.** Простая модель по средним за те же часы прошлых недель часто работает лучше сложной. Её сравнивают с фактом, а точность показывают рядом с прогнозом.
- **Сроки зависят от сегмента.** Ключевые клиенты с четырёхчасовым сроком и обычные с суточным живут в одной очереди, но считаются раздельно. Потребность в людях рассчитывают по самому жёсткому сроку в каждом часе.
- **Переход с таблицы — постепенный.** Существующие данные загружают как начальный набор и сверяют экран с тем, чему старшие уже доверяют. Таблица отмирает сама, когда цифры совпадают.
- **График смен не обязательно строить здесь.** Если смены уже ведутся в отдельной системе, планировщик читает их через API. Составление графика — отдельная задача, см. [график смен](https://wpcraft.ru/kb/stacks/filament/use-cases/operations/shift-scheduling-board.md).
- **Автоматическое перераспределение — осторожно.** Правило «агент не в сети дольше 15 минут» может перекинуть обращения человека, отошедшего на звонок. Начинают с уведомления старшему, автоматику включают после проверки.
- **Доступ.** Агент видит свою нагрузку, старший — смену, руководитель — прогноз и отчёты.

## Как сгенерировать через ИИ-агентов

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

### 1. Данные

```text
Создай модели и миграции для планировщика нагрузки: Agent (пользователь,
группа, статус в сети, время последней активности, максимальная нагрузка),
Ticket (внешний id, агент, приоритет, тариф клиента, срок, статус), Shift
(агент, начало, окончание), LoadWeight (приоритет, тариф, вес),
HourlyForecast (дата, час, ожидаемое число обращений, версия модели).
Добавь фабрики с реалистичными демо-данными за 8 недель.
```

### 2. Экран текущей нагрузки

```text
Сгенерируй Filament-страницу с таблицей агентов текущей смены: статус
в сети, число открытых обращений, взвешенная нагрузка по LoadWeight, ближайший
срок. Подсвечивай агентов выше максимальной нагрузки. Добавь действие
«Перераспределить»: выбрать обращения агента и назначить их другому
агенту той же группы.
```

### 3. Прогноз и покрытие

```text
Сделай фоновую задачу, которая раз в сутки строит HourlyForecast на 14 дней
вперёд по среднему за те же часы и дни недели прошлых 6 недель. Добавь
виджет: по часам ожидаемый поток, нужное число людей при целевой нагрузке
и запланированное по Shift. Часы с нехваткой подсвечивай.
```

Сравните прогноз прошлой недели с фактом и выведите точность рядом с графиком.

### 4. Синхронизация и выход из сети

```text
Сделай фоновую задачу, которая забирает из API help desk открытые обращения
и статусы агентов. Если агент не в сети дольше порога из конфига и у него
есть открытые обращения, отправляй уведомление старшему смены с кнопкой
перехода к перераспределению.
```

### 5. Роли и отчёты

```text
Настрой доступ: агент видит свою нагрузку, старший — свою смену и действие
перераспределения, руководитель — всё, прогноз и экспорт. Добавь отчёт
по неделям: средняя загрузка по агентам и часы с нехваткой людей.
```

## Похожие сценарии

- [Табло SLA первого ответа](https://wpcraft.ru/kb/stacks/filament/use-cases/customer-support/first-response-sla-board.md) — где нехватка людей проявляется первой.
- [Панель приоритизации бэклога](https://wpcraft.ru/kb/stacks/filament/use-cases/customer-support/backlog-prioritization-panel.md) — что брать первым, когда людей не хватает.
- [График смен](https://wpcraft.ru/kb/stacks/filament/use-cases/operations/shift-scheduling-board.md) — составление и согласование самих смен.

## Материалы и источники

- [Refine: Support Capacity Planner](https://refine.dev/use-cases/customer-support/support-capacity-planner/)
- [Filament 4.x: виджеты-графики](https://filamentphp.com/docs/4.x/widgets/charts)
- [Filament 4.x: действия](https://filamentphp.com/docs/4.x/actions/overview)
- [Filament 4.x: уведомления в базе данных](https://filamentphp.com/docs/4.x/notifications/database-notifications)