В современных системах поддержки клиентов важно не только получать тикеты, но и грамотно распределять их среди сотрудников. Ручное распределение занимает много времени и приводит к задержкам в ответах. В этой статье мы подробно разберем, как создать автоматическое распределение тикетов в WordPress, используя пользовательский код и популярные плагины, а также рассмотрим примеры решений и лучшие практики.
Почему автоматическое распределение тикетов важно
Автоматизация распределения тикетов помогает оптимизировать работу службы поддержки, повышает скорость реакции и качество обслуживания. Это особенно актуально при большом количестве заявок и распределенной команде сотрудников. Автоматизация позволяет:
- Равномерно распределять нагрузку между сотрудниками;
- Назначать тикеты согласно специализации или доступности;
- Сокращать время ожидания ответа клиента;
- Отслеживать эффективность работы каждого сотрудника.
Именно поэтому реализация автоматического распределения — важный элемент любой тикет-системы на WordPress.
Популярные плагины для управления тикетами с автоматическим распределением
Для начала рассмотрим плагины, которые поддерживают автоматическое распределение или позволяют его реализовать с помощью настроек и дополнений.
1. Awesome Support
Один из самых популярных бесплатных плагинов для поддержки клиентов с расширяемым функционалом. В платных дополнениях есть возможность настроить правила автоматического назначения тикетов по категориям или агентам.
Подробнее и покупка: Awesome Support на WPSHOP
2. WP Support Plus Responsive Ticket System
Еще один мощный плагин с поддержкой распределения тикетов. Позволяет создавать правила и назначать тикеты на основе тегов, категории или приоритетов.
Подробнее: WP Support Plus на WPSHOP
3. Обратите внимание на Expert Review
Хотя плагин Expert Review предназначен для отзывов и рейтингов, его архитектура и примеры кода можно адаптировать для создания кастомных статусов и распределения внутри собственной системы тикетов.
Подробнее: Expert Review на WPSHOP
Пример реализации автоматического распределения тикетов в коде
Если вы создаете собственную систему тикетов или хотите расширить существующую, можно внедрить функцию, которая будет автоматически назначать тикеты на сотрудников по очереди (round robin) или по заданным правилам.
Рассмотрим пример простого round robin распределения:
function wpticket_assign_ticket_to_agent($ticket_id) {
// Список ID сотрудников (агентов поддержки)
$agents = array(5, 6, 7); // заменить на реальные ID пользователей
// Получаем последний назначенный ID агента из опций
$last_agent_id = get_option('wpticket_last_assigned_agent', 0);
// Находим индекс последнего агента в массиве
$last_index = array_search($last_agent_id, $agents);
// Определяем индекс следующего агента
$next_index = ($last_index === false || $last_index == count($agents) - 1) ? 0 : $last_index + 1;
$next_agent_id = $agents[$next_index];
// Обновляем опцию с ID последнего назначенного агента
update_option('wpticket_last_assigned_agent', $next_agent_id);
// Назначаем тикет на выбранного агента
update_post_meta($ticket_id, '_assigned_agent', $next_agent_id);
}
// Хук для автоматического назначения при создании тикета
add_action('wp_ticket_created', 'wpticket_assign_ticket_to_agent');В этом примере функция wpticket_assign_ticket_to_agent вызывается при создании нового тикета (предполагается, что срабатывает хук wp_ticket_created - его нужно реализовать или адаптировать под вашу систему). Функция циклично назначает тикеты на агентов из массива.
В реальном проекте список агентов можно получать динамически, например, из ролей пользователей:
function wpticket_get_agents() {
$users = get_users(array(
'role' => 'support_agent',
'fields' => 'ID'
));
return $users;
}Как расширить распределение: фильтры и приоритеты
Автоматическое распределение может учитывать не только очередность, но и:
- Приоритет тикета (высокий, средний, низкий);
- Категорию или тему обращения;
- Загруженность каждого агента (количество активных тикетов);
- Специализацию или компетенции сотрудников.
Пример фильтрации по категории тикета:
function wpticket_assign_ticket_by_category($ticket_id) {
$category = get_post_meta($ticket_id, '_ticket_category', true);
$agents_by_category = array(
'billing' => array(5, 6),
'technical' => array(7, 8),
);
if (!isset($agents_by_category[$category])) {
// Назначаем по умолчанию
$agents = array(5,6,7,8);
} else {
$agents = $agents_by_category[$category];
}
// Логика выбора агента (round robin или минимальная загрузка)
// ...
// Пример: просто берем первого агента
$agent_id = $agents[0];
update_post_meta($ticket_id, '_assigned_agent', $agent_id);
}
add_action('wp_ticket_created', 'wpticket_assign_ticket_by_category');Такой подход позволяет гибко настраивать логику распределения и повышать эффективность поддержки.
Как отслеживать и уведомлять агентов о новых назначениях
После назначения тикета важно уведомить ответственного сотрудника. Можно использовать стандартные уведомления WordPress или отправлять email с помощью wp_mail.
function wpticket_notify_agent($ticket_id) {
$agent_id = get_post_meta($ticket_id, '_assigned_agent', true);
if (!$agent_id) return;
$user_info = get_userdata($agent_id);
if (!$user_info) return;
$to = $user_info->user_email;
$subject = 'Новый тикет назначен вам';
$message = 'Вам назначен новый тикет #' . $ticket_id . '. Пожалуйста, проверьте панель поддержки.';
wp_mail($to, $subject, $message);
}
add_action('wp_ticket_created', 'wpticket_notify_agent');Таким образом, агент сразу получает уведомление и может оперативно начать работу.
Рекомендации для внедрения автоматического распределения
При реализации автоматического распределения учтите:
- Тестируйте логику на тестовом окружении, чтобы избежать ошибок в рабочей системе;
- Обрабатывайте исключения — например, если агент недоступен или уволился;
- Добавьте возможность ручного переназначения тикета;
- Ведите лог распределения для аудита;
- Используйте пользовательские роли и метаданные для гибкой настройки.
Для удобства управления рассмотрите возможность интеграции с плагинами, которые расширяют функционал тикет-системы и поддерживают автоматизацию (например, Expert Review или WP Support Plus).