Для сайтов с поддержкой клиентов и внутренними обращениями важна эффективная система обработки тикетов. Автоматическое распределение тикетов между сотрудниками помогает ускорить ответ, снизить нагрузку и улучшить качество поддержки. В этой статье разберём, как создать такую систему в WordPress, используя собственный код и популярные плагины.
Почему автоматическое распределение тикетов важно
Ручное распределение тикетов может привести к задержкам, ошибкам в назначениях и неравномерной загрузке сотрудников. Автоматизация позволяет:
- Автоматически назначать тикеты ответственным с учётом их занятости или специализации.
- Уменьшить время реакции на запросы.
- Отслеживать эффективность каждого сотрудника.
- Снизить количество пропущенных или забытых тикетов.
Для WordPress существует несколько подходов к реализации: через плагины поддержки или собственные решения на базе кода.
Использование плагина WP Ticket с функцией автоматического распределения
Плагин WP Ticket — популярное решение для создания тикет-системы в WordPress. Он поддерживает автоматическое распределение тикетов через настройки правил.
Основные возможности автоматического распределения в WP Ticket:
- Правила по категории тикета — назначение ответственного сотрудника в зависимости от темы обращения.
- Ротация — равномерное распределение тикетов между группой сотрудников.
- Приоритет — тикеты с высоким приоритетом направляются к более опытным специалистам.
Чтобы включить автоматическое распределение, установите и активируйте плагин, затем перейдите в Настройки > Автоматизация и создайте правила распределения.
Пример настройки правила распределения по категории
Допустим, у вас есть категории тикетов: «Техническая поддержка», «Продажи», «Общие вопросы». Для каждой категории назначим своего ответственного:
- Техническая поддержка — Иван Иванов
- Продажи — Мария Петрова
- Общие вопросы — Служба поддержки
В интерфейсе плагина создайте правило, выберите категорию и ответственного сотрудника. После сохранения при создании тикета с выбранной категорией он автоматически попадёт к нужному сотруднику.
Как реализовать автоматическое распределение тикетов в WordPress своими силами
Если у вас кастомная тикет-система или вы хотите гибкую настройку, можно написать собственный код. Рассмотрим пример функции, которая при создании тикета назначает ответственного по категории.
function wpticket_assign_ticket_responsible($ticket_id) {
$ticket = get_post($ticket_id);
if ($ticket->post_type !== 'wpticket') return;
$categories = wp_get_post_terms($ticket_id, 'wpticket_category');
if (empty($categories) || is_wp_error($categories)) return;
$category_slug = $categories[0]->slug;
$responsibles = array(
'technical-support' => 12, // ID пользователя Ивана Иванова
'sales' => 15, // ID пользователя Марии Петровой
'general' => 18, // ID службы поддержки
);
if (isset($responsibles[$category_slug])) {
$user_id = $responsibles[$category_slug];
update_post_meta($ticket_id, '_wpticket_responsible', $user_id);
// Отправим уведомление сотруднику
wp_mail(
get_userdata($user_id)->user_email,
'Новый тикет назначен вам',
'Вам назначен новый тикет #' . $ticket_id . '. Проверьте систему.'
);
}
}
add_action('wp_insert_post', 'wpticket_assign_ticket_responsible', 10, 1);В этом коде при создании тикета по типу wpticket проверяется его категория и назначается ответственный сотрудник. Для отслеживания ответственного используется метаполе _wpticket_responsible. Также отправляется email-уведомление.
Доработка для ротации сотрудников
Чтобы равномерно распределять тикеты между сотрудниками одной категории, можно хранить счётчик и выбирать пользователя по очереди:
function wpticket_assign_ticket_responsible_rotating($ticket_id) {
$ticket = get_post($ticket_id);
if ($ticket->post_type !== 'wpticket') return;
$categories = wp_get_post_terms($ticket_id, 'wpticket_category');
if (empty($categories) || is_wp_error($categories)) return;
$category_slug = $categories[0]->slug;
$responsibles = array(
'technical-support' => array(12, 13, 14),
'sales' => array(15, 16),
'general' => array(18, 19, 20),
);
if (!isset($responsibles[$category_slug])) return;
$users = $responsibles[$category_slug];
$counter_key = '_wpticket_counter_' . $category_slug;
$counter = (int) get_option($counter_key, 0);
$user_id = $users[$counter % count($users)];
update_post_meta($ticket_id, '_wpticket_responsible', $user_id);
update_option($counter_key, $counter + 1);
wp_mail(
get_userdata($user_id)->user_email,
'Новый тикет назначен вам',
'Вам назначен новый тикет #' . $ticket_id . '. Проверьте систему.'
);
}
add_action('wp_insert_post', 'wpticket_assign_ticket_responsible_rotating', 10, 1);Этот код циклично выбирает ответственного из списка по категории, обеспечивая равномерную загрузку.
Важные советы по настройке и отладке
При создании системы автоматического распределения учтите следующие моменты:
- Обязательно проверяйте корректность типов записей и таксономий, чтобы избежать ошибок.
- Используйте кастомные метаполя для сохранения информации о назначенном сотруднике.
- Организуйте уведомления и отчёты, чтобы сотрудники всегда знали о новых тикетах.
- Тестируйте систему на разных сценариях: создание тикета с разными категориями, массовое создание, редактирование.
- Для удобства можно добавить интерфейс администратора для управления правилами распределения.
Заключение
Автоматическое распределение тикетов в WordPress — важная часть организации поддержки пользователей. Используя плагин WP Ticket или собственные решения на базе кода, вы сможете значительно повысить скорость реакции и качество обслуживания. Приведённые примеры и советы помогут вам создать эффективную систему распределения, адаптированную под ваши задачи.
Подробнее о плагине WP Ticket и его настройках можно узнать на официальной странице WP Shop.