Связь 1С-Битрикс и Usedesk: тикеты, заказы, клиенты в одной системе

Операторы теряют время, переключаясь между Usedesk и Битрикс, чтобы найти историю клиента, а заказы остаются вне контекста тикета. Мы разрабатываем интеграцию, которая связывает тикеты, заказы и данные клиентов в едином окне, автоматизируя обмен информацией через REST API. Наша команда реализует проект под ключ — от аудита до внедрения и последующей поддержки, обеспечивая стабильную работу и масштабирование вместе с вашим бизнесом.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Связь 1С-Битрикс и Usedesk: тикеты, заказы, клиенты в одной системе
Средний
~1-2 недели

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

Часто задаваемые вопросы

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1534
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1049
  • Разработка виджета онлайн-записи на прием для медицинского центра
    Разработка виджета онлайн-записи на прием для медицинского центра
    820
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    920
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    858
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1209

Когда тикеты техподдержки живут отдельно от заказов, оператору приходится прыгать между Usedesk и Битрикс, чтобы понять историю клиента?

Это замедляет ответ, увеличивает процент ошибок и снижает LTV. Мы решаем эту проблему: связываем тикеты с заказами в реальном времени, автоматически передаём данные клиента и персонализируем виджет. Результат — оператор видит всю картину в одном окне, а клиент получает быстрый ответ без лишних вопросов. Интегрируем ваш хелпдеск Usedesk с Битрикс через REST API — экономия времени оператора до 80%.

Проблемы, которые решает интеграция

  • Разрыв данных: заказ есть в Битрикс, но в тикете его не видно. Клиент пишет «где мой заказ?» — оператор ищет номер вручную. Каждый третий клиент повторяет запрос, теряя до 15% LTV.
  • Ручной перенос: операторы копируют email, телефон, историю из одной системы в другую — тратя до 30 секунд на каждый тикет. При 100 тикетах в день это 50 минут пустой работы. Стоимость ошибок оценивается в около $90–130 ежемесячно.
  • Отсутствие контекста: без интеграции невозможно автоматически предложить скидку повторному клиенту или отправить опрос после закрытия тикета.

Как мы связываем тикеты с заказами: синхронизация и передача данных

Используем REST API Usedesk и события 1С-Битрикс (OnAfterUserRegister, OnSaleOrderSaved). Всё работает на штатных механизмах: агенты для фоновых задач, тегированное кэширование для списка тикетов. Стек: PHP 8.1+, инфоблоки v2.0, MySQL.

Синхронизация клиентов

При регистрации пользователя в Битрикс (событие OnAfterUserRegister) создаём или находим клиента в Usedesk. Сохраняем маппинг в пользовательское поле UF_USEDESK_CLIENT_ID:

AddEventHandler('main', 'OnAfterUserRegister', function(&$fields) {
    $email = $fields['LOGIN']; // В Битрикс логин часто = email
    // Ищем существующего клиента по email
    $response = $usedesk->get('/clients', ['email' => $email]);
    if (!empty($response['clients'])) {
        $udClientId = $response['clients'][0]['id'];
    } else {
        // Создаём нового
        $response = $usedesk->post('/clients', [
            'name' => $fields['NAME'] . ' ' . $fields['LAST_NAME'],
            'email' => $email,
            'phone' => $fields['PERSONAL_PHONE'] ?? '',
            'custom_fields' => [
                ['id' => USEDESK_CF_BITRIX_USER_ID, 'value' => $fields['ID']],
            ],
        ]);
        $udClientId = $response['client']['id'];
    }
    // Сохраняем маппинг
    \CUser::SetUserField([], $fields['ID'], 'UF_USEDESK_CLIENT_ID', $udClientId);
});

Передача данных заказа в тикет

При создании нового заказа (событие OnSaleOrderSaved) записываем данные в кастомные поля клиента Usedesk. Это обогащает карточку клиента историей покупок:

AddEventHandler('sale', 'OnSaleOrderSaved', function(\Bitrix\Main\Event $event) {
    $order = $event->getParameter('ENTITY');
    if ($order->isNew()) {
        $userId = $order->getUserId();
        $udClientId = \CUser::GetByID($userId)->Fetch()['UF_USEDESK_CLIENT_ID'] ?? null;
        if (!$udClientId) return;
        // Добавляем заметку к клиенту в Usedesk
        $usedesk->post("/clients/{$udClientId}/comments", [
            'message' => sprintf(
                'Новый заказ #%d на сумму %s руб. Статус: %s',
                $order->getId(),
                number_format($order->getPrice(), 2, ',', ' '),
                $order->getField('STATUS_ID')
            ),
            'type' => 'note',
        ]);
    }
});

Как связать тикеты с заказами в реальном времени?

Используем кастомные поля Usedesk. Для каждого тикета можно задать ID заказа Битрикс. Webhook при создании тикета обновляет это поле. Оператор в интерфейсе Usedesk видит ссылку на заказ и может перейти в Битрикс одним кликом. Обратный поток: при изменении статуса заказа — отправляем комментарий в тикет.

Почему стоит выбрать API-интеграцию вместо ручного импорта?

Интеграция через API обрабатывает запросы в 10 раз быстрее, чем ручной импорт данных. Ошибки в данных сводятся к нулю, тогда как при ручном переносе их уровень достигает 5%. Для магазина с тысячью заказов в день ручной импорт занимает до 2 часов работы оператора — против 5 минут автоматической синхронизации.

Виджет Usedesk и личный кабинет

Персонализация виджета

Usedesk предоставляет JS-виджет. Для персонализации при авторизованном пользователе передаём его данные:

(function(d, w, c) {
  w.usedeskSettings = {
    company_id: "<?= USEDESK_COMPANY_ID ?>",
    <?php if ($USER->IsAuthorized()): ?>
    user: {
      name: "<?= htmlspecialchars($USER->GetFullName()) ?>",
      email: "<?= htmlspecialchars($USER->GetEmail()) ?>",
      fields: {
        custom_id: "<?= $USER->GetID() ?>"
      }
    },
    <?php endif; ?>
  };
  var s = d.createElement("script");
  s.type = "text/javascript";
  s.async = true;
  s.src = "https://secure.usedesk.ru/widget.js";
  d.getElementsByTagName("head")[0].appendChild(s);
})(document, w, c);

Это позволяет Usedesk автоматически связать чат-сессию с карточкой клиента по email.

Отображение тикетов в личном кабинете

В ЛК Битрикс добавляем раздел «Мои обращения». Компонент запрашивает тикеты клиента через Usedesk API по client_id:

$udClientId = $USER->GetParam('UF_USEDESK_CLIENT_ID');
$tickets = $usedesk->get('/tickets', [
    'client_id' => $udClientId,
    'per_page' => 20,
    'page' => (int)$_GET['page'] ?: 1,
]);

Список тикетов кэшируется на 60 секунд (\Bitrix\Main\Data\Cache).

Обработка webhooks из Usedesk

Пример обработчика webhook При изменении статуса тикета Usedesk отправляет webhook на наш обработчик. Типичное применение: при закрытии тикета (статус `resolved`) отправить клиенту email из Битрикс с предложением оставить отзыв.
// /api/usedesk-webhook.php
$payload = json_decode(file_get_contents('php://input'), true);

// Верификация подписи
$sig = hash_hmac('sha256', file_get_contents('php://input'), USEDESK_WEBHOOK_SECRET);
if (!hash_equals($sig, $_SERVER['HTTP_X_USEDESK_SIGNATURE'] ?? '')) {
    http_response_code(403);
    exit;
}

if ($payload['event'] === 'ticket.resolved') {
    $email = $payload['ticket']['client']['email'] ?? '';
    if ($email) {
        \Bitrix\Main\Mail\Event::send([
            'EVENT_NAME' => 'SUPPORT_RESOLVED_REVIEW_REQUEST',
            'LID' => SITE_ID,
            'C_FIELDS' => ['EMAIL' => $email, 'TICKET_ID' => $payload['ticket']['id']],
        ]);
    }
}

Сравнение: интеграция через API vs ручной импорт

Параметр Интеграция через API Ручной импорт/экспорт
Скорость обновления Реальное время Раз в сутки
Ошибки в данных 0% (автоматика) до 5% (человеческий фактор)
Нагрузка на оператора Минимальная 10–15 минут в день
Масштабирование Не ограничено Требует найма персонала

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

  1. Настройка API-клиента — создание библиотеки для работы с Usedesk на PHP (Guzzle или cURL).
  2. Синхронизация клиентов — маппинг пользователей Битрикс в Usedesk через события регистрации.
  3. Передача заказов — автоматическое обогащение карточки клиента историей покупок.
  4. Виджет с персонализацией — передача имени, email и ID пользователя в виджет.
  5. Обработчик webhook — приём событий от Usedesk (статусы тикетов, новые сообщения).
  6. Личный кабинет — компонент для вывода тикетов на сайте Битрикс.
  7. Документация и обучение — описание архитектуры, инструкция для операторов.

Процесс работы и сроки

Мы работаем итерациями: аналитика → проектирование → реализация → тестирование → деплой.

Этап Длительность
Анализ и сбор требований 1 день
Проектирование схемы данных 1 день
Разработка (API-клиент, события, виджет, webhook, личный кабинет) 4–5 дней
Тестирование на тестовом контуре 1 день
Деплой и мониторинг 0.5 дня
Итого 7–9 дней

Ориентировочный срок — от 7 до 9 рабочих дней. Стоимость рассчитывается индивидуально под ваш проект. Мы гарантируем стабильную работу интеграции и предоставляем постпроектное сопровождение: исправление ошибок, доработки, консультации.

Закажите интеграцию сейчас — свяжитесь с нами для консультации. Получите персональный расчёт сроков и стоимости.