Для сайтов, ориентированных на поддержку пользователей и обработку запросов, автоматизация управления тикетами значительно повышает эффективность работы. В этой статье разберем, как на WordPress создать и автоматизировать систему тикетов с помощью готовых решений и кастомного кода.
Основные задачи автоматизации системы тикетов в WordPress
Автоматизация управления тикетами обычно включает:
- Автоматическое создание тикетов при получении запросов с сайта или почты.
- Назначение ответственного менеджера или группы для обработки тикета.
- Уведомления по e-mail о новых и обновленных тикетах.
- Установка статусов и приоритетов тикетов.
- Автоматическое закрытие тикетов после определенного времени без активности.
Эти задачи позволяют разгрузить службу поддержки и улучшить клиентский сервис.
Выбор плагина для автоматизации тикетов в WordPress
Существует несколько популярных плагинов, которые позволяют внедрить систему тикетов без глубокого программирования:
1. Awesome Support
Очень гибкий и масштабируемый плагин с возможностью автоматизации и расширения через дополнения. Позволяет создавать разные типы тикетов, назначать агентов, интегрируется с WooCommerce.
2. WP Ticket
Простой в настройке плагин, который обеспечивает базовый функционал тикет-системы. Поддерживает уведомления и разграничение прав.
3. SupportCandy
Отличный вариант для легкой автоматизации с возможностью настройки SLA, автоответов и очередей тикетов.
Все эти плагины поддерживают автоматизацию через встроенные триггеры и правила. Ниже рассмотрим пример кастомного решения для автоматического назначения тикетов.
Пример автоматического назначения ответственного менеджера
Для автоматической маршрутизации тикетов можно использовать хук создания записи с кастомным типом тикета. Предположим, вы создали тип записи ticket для тикетов. Тогда, чтобы автоматически назначать ответственного, добавим следующий код в файл functions.php вашей темы или в кастомный плагин:
function wpticket_assign_ticket_agent( $post_id, $post, $update ) {
if ( $post->post_type !== 'ticket' || $update ) {
return;
}
// Логика назначения ответственного, например, по категории
$categories = wp_get_post_terms( $post_id, 'ticket_category' );
$agent_id = 0;
if ( ! empty( $categories ) ) {
foreach ( $categories as $category ) {
if ( $category->slug === 'billing' ) {
$agent_id = 12; // ID менеджера по платежам
} elseif ( $category->slug === 'technical' ) {
$agent_id = 15; // ID техподдержки
}
}
}
if ( $agent_id ) {
update_post_meta( $post_id, '_wpticket_agent_id', $agent_id );
}
}
add_action( 'wp_insert_post', 'wpticket_assign_ticket_agent', 10, 3 );В этом примере при создании тикета определяется категория и назначается менеджер. Можно адаптировать логику под собственные нужды.
Уведомления и автоматическое закрытие тикетов
Чтобы отправлять уведомления, удобно использовать стандартные хуки WordPress или возможности плагинов. Рассмотрим пример отправки письма ответственному менеджеру при изменении тикета:
function wpticket_notify_agent_on_update( $post_id, $post_after, $post_before ) {
if ( $post_after->post_type !== 'ticket' ) {
return;
}
$agent_id = get_post_meta( $post_id, '_wpticket_agent_id', true );
if ( ! $agent_id ) {
return;
}
$agent = get_userdata( $agent_id );
if ( ! $agent || ! $agent->user_email ) {
return;
}
$subject = 'Обновлен тикет #'.$post_id;
$message = 'Тикет обновлен. Перейдите по ссылке для просмотра: '.get_edit_post_link( $post_id );
wp_mail( $agent->user_email, $subject, $message );
}
add_action( 'post_updated', 'wpticket_notify_agent_on_update', 10, 3 );Для автоматического закрытия тикетов, которые не обновлялись, можно добавить CRON-задачу:
function wpticket_auto_close_tickets() {
$args = [
'post_type' => 'ticket',
'post_status' => 'publish',
'date_query' => [
[
'column' => 'post_modified_gmt',
'before' => '30 days ago',
],
],
'meta_query' => [
[
'key' => '_wpticket_status',
'value' => 'closed',
'compare' => '!=',
],
],
'fields' => 'ids',
];
$tickets = get_posts( $args );
foreach ( $tickets as $ticket_id ) {
update_post_meta( $ticket_id, '_wpticket_status', 'closed' );
// Дополнительно можно отправить уведомление пользователю
}
}
if ( ! wp_next_scheduled( 'wpticket_cron_close_tickets' ) ) {
wp_schedule_event( time(), 'daily', 'wpticket_cron_close_tickets' );
}
add_action( 'wpticket_cron_close_tickets', 'wpticket_auto_close_tickets' );Такой подход помогает поддерживать базу тикетов в актуальном состоянии и снижает нагрузку на поддержку.
Советы по интеграции с WPShop и плагинами для поддержки клиентов
Если вы используете на сайте магазин или сервисы с WPShop, обратите внимание на интеграцию с плагинами, такими как WPRemark для отзывов и поддержки, а также Expert Review для управления экспертными оценками. Это расширяет возможности взаимодействия с пользователями через тикеты и отзывы.
Используйте возможности плагина My Popup для информирования клиентов о статусе их запросов и акциях поддержки.
Итоговые рекомендации по автоматизации тикет-системы
Автоматизация управления тикетами в WordPress — это баланс между готовыми плагинами и кастомными решениями. Используйте плагины для базового функционала с настройками автоматизации, а при необходимости расширяйте функционал через собственные хуки и CRON-задачи.
Обязательно тестируйте уведомления и автоматические процессы на тестовой среде, чтобы избежать ошибок в работе поддержки. Регулярно обновляйте базу знаний и интегрируйте аналитику для оценки эффективности процессов.