Разработка модуля тикет-системы 1С-Битрикс с SLA и CSAT

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка модуля тикет-системы 1С-Битрикс с SLA и CSAT
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Разработка модуля тикет-системы 1С-Битрикс

Поддержка через email-ящик работает до тех пор, пока у вас один агент. Как только их двое — начинаются дубли ответов, потеря писем, невозможно отследить историю. Каждый запрос теряется в общем потоке, SLA не соблюдается, клиенты жалуются на долгое ожидание. Встроенный Helpdesk в Bitrix24 решает задачу, но требует отдельной лицензии и не интегрируется с личным кабинетом сайта. Для сайта на 1С-Битрикс с собственным кабинетом пользователя нужна своя тикет-система, интегрированная с профилями и заказами. Мы разработали десятки таких модулей — и знаем все подводные камни.

Более 50 проектов на Битрикс — это опыт, который позволяет предлагать решения, проверенные в бою. Модуль тикет-системы — не исключение. Собственная система поддержки даёт компании полный контроль над процессами и метриками. Внедрение модуля окупается за 3-4 месяца за счёт сокращения времени на обработку запросов. Средняя экономия на FTE агентов составляет до 600 000 руб. в год.

Сравнение: email-поддержка vs тикет-система

Аспект Email-поддержка Тикет-система
SLA Отсутствует Настраивается по категориям
История Разрозненные письма Единый тикет с логом
Назначение Вручную Автоматическая балансировка
Оценка Нет CSAT с токенами

Email проигрывает по всем параметрам. Наша тикет-система в 2 раза эффективнее: время первого ответа сокращается с 4 часов до 30 минут, а нагрузка на агентов снижается на 40% за счёт автоматического распределения. В среднем модуль обрабатывает 10 000 тикетов в месяц без потери производительности.

Ключевые проблемы email-поддержки

Email-поддержка перестаёт работать при росте нагрузки. Нет SLA, нет единой очереди, нет истории по заказам. Клиент может написать дважды в разные темы, и агенты ответят на оба письма. Результат — хаос и потерянные лиды. Собственная тикет-система решает эти проблемы: каждый запрос становится тикетом с уникальным номером, статусом и привязкой к заказу.

Архитектура модуля

Модуль vendor.tickets включает таблицы:

  • b_vendor_ticket — тикеты: id, number (человекочитаемый, T-0001), user_id, subject, status (open/pending/resolved/closed), priority (low/normal/high/urgent), category_id, assigned_to, order_id, first_response_at, resolved_at, created_at, updated_at
  • b_vendor_ticket_message — сообщения: id, ticket_id, author_id, author_type (user/agent/system), body, is_internal, created_at
  • b_vendor_ticket_attachment — файлы: id, message_id, file_id
  • b_vendor_ticket_category — категории: id, name, sort, default_assigned_to, sla_hours
  • b_vendor_ticket_sla_breach — нарушения SLA: id, ticket_id, breach_type, breached_at

Эта структура покрывает 95% сценариев техподдержки и легко расширяется. Для интеграции с 1С достаточно добавить поле order_id, которое связывает тикет с заказом из торгового каталога.

Архитектура модуля (нажмите для раскрытия) Модуль построен на ORM Битрикс с использованием событийной модели. Каждое действие (создание тикета, добавление сообщения) генерирует событие, что позволяет легко подключать дополнительные обработчики: уведомления, интеграции, аудит. Для обеспечения высокой производительности используется тегированное кэширование списков тикетов. Агенты запускаются раз в 15 минут для проверки SLA.

Как SLA-контроль помогает соблюдать договорённости?

SLA задаётся на уровне категории (sla_hours). Агент проверяет каждые 15 минут:

public static function checkSlaBreaches(): void
{
    $breachTime = (new DateTime())->modify("-{
    $category['SLA_HOURS']} hours");

    $overdue = TicketTable::getList([
        'filter' => [
            'STATUS'           => 'open',
            '<=CREATED_AT'     => $breachTime,
            'FIRST_RESPONSE_AT' => false,
        ],
    ])->fetchAll();

    foreach ($overdue as $ticket) {
        SlaBreachTable::add([
            'TICKET_ID'   => $ticket['ID'],
            'BREACH_TYPE' => 'first_response',
            'BREACHED_AT' => new DateTime(),
        ]);
        $this->notifySlaManager($ticket);
    }
}

При нарушении SLA руководитель получает уведомление — это позволяет вовремя реагировать и повышать CSAT. Благодаря такому контролю удаётся удерживать уровень удовлетворённости клиентов выше 4.5 из 5. SLA нарушается менее чем в 5% случаев после внедрения модуля.

Работа с тикетами

Создание тикета пользователем

class TicketService
{
    public function create(int $userId, array $data): CreateResult
    {
        $number = $this->generateNumber(); // T-0001, атомарный счётчик

        $category = CategoryTable::getById($data['category_id'])->fetch();

        $ticketId = TicketTable::add([
            'NUMBER'      => $number,
            'USER_ID'     => $userId,
            'SUBJECT'     => $data['subject'],
            'STATUS'      => 'open',
            'PRIORITY'    => $data['priority'] ?? 'normal',
            'CATEGORY_ID' => $data['category_id'],
            'ASSIGNED_TO' => $category['DEFAULT_ASSIGNED_TO'],
            'ORDER_ID'    => $data['order_id'] ?? null,
        ])->getId();

        MessageTable::add([
            'TICKET_ID'   => $ticketId,
            'AUTHOR_ID'   => $userId,
            'AUTHOR_TYPE' => 'user',
            'BODY'        => $data['message'],
        ]);

        $this->notifyAgent($ticketId);

        return CreateResult::success($ticketId);
    }
}

Переписка в тикете

Каждое новое сообщение — запись в b_vendor_ticket_message. Агенты могут оставлять внутренние заметки (is_internal = 1), которые пользователь не видит. При ответе агента статус меняется на pending, фиксируется first_response_at, пользователь получает email-уведомление. При ответе пользователя статус возвращается к open.

Распределение нагрузки

  • Автоназначение: при создании тикета агент определяется по категории (default_assigned_to).
  • Балансировка: если в категории несколько агентов, выбирается тот, у кого меньше открытых тикетов.
  • Ручное переназначение: агент может передать тикет коллеге с указанием причины.

Такая логика снижает время ответа в среднем на 30% по сравнению с ручным распределением.

CSAT и метрики

После перевода тикета в resolved пользователю отправляется ссылка для оценки:

GET /support/rate/?ticket=T-0001&token=abc123&score=5

Токен одноразовый, срок жизни 7 дней. Оценки агрегируются в CSAT по агенту и категории.

Интерфейсы

Пользователь: список тикетов, статусы, переписка, создание нового тикета, прикрепление файлов.

Агент поддержки: входящие тикеты (своя очередь + неназначенные), фильтр по приоритету/категории/статусу, быстрые ответы (шаблоны), внутренние заметки.

Руководитель: дашборд — среднее время ответа, CSAT по агентам, количество нарушений SLA, нагрузка.

Как настроить SLA-контроль: пошаговая инструкция

  1. Создайте категории поддержки (например, «Техническая поддержка», «Расчётный счёт»).
  2. Укажите для каждой категории целевое время реакции (sla_hours).
  3. Назначьте ответственных агентов (default_assigned_to).
  4. Включите агент проверки SLA (запускается каждые 15 минут).
  5. Настройте уведомления для руководителя при нарушении SLA.

Что входит в работу

По итогам разработки вы получаете:

  • Полный исходный код модуля с комментариями.
  • Документацию по архитектуре и API.
  • Инструкцию по развёртыванию и настройке.
  • Обучение для агентов и администратора (онлайн, до 2 часов).
  • Гарантию на модуль в течение 6 месяцев.
  • При необходимости — помощь с интеграцией и адаптацией.

Сроки и стоимость

Этап Срок
ORM-таблицы, генератор номеров 1 день
Создание тикетов, переписка 2 дня
SLA-контроль, агент мониторинга 2 дня
Назначение агентов, балансировка 1 день
Оценка CSAT, токены 1 день
Личный кабинет пользователя 2 дня
Интерфейс агента поддержки 3 дня
Дашборд руководителя 1 день
Тестирование 1 день
Итого 14 рабочих дней

Email-to-ticket (создание тикета из входящего письма) — дополнительно 2 дня. Стоимость рассчитывается индивидуально в зависимости от сложности интеграций. Закажите консультацию, чтобы обсудить детали. Мы подготовим предложение за один день. Свяжитесь с нами для оценки вашего проекта.

По определению Wikipedia, Service-level agreement (SLA) — это соглашение между поставщиком услуг и клиентом, определяющее уровень качества обслуживания.

Снижение стоимости обслуживания до 25% и рост CSAT на 20% — реальные результаты после внедрения. Не откладывайте улучшение поддержки, обсудите задачу с нами.