Інтеграція 1С-Бітрікс з Omnidesk: автоматизація підтримки клієнтів

Оператори підтримки витрачають час, перемикаючись між email, месенджерами та соцмережами, а клієнти чекають на відповідь довше, ніж потрібно. Ми інтегруємо Omnidesk з вашим 1С-Бітрікс: синхронізуємо користувачів і замовлення, автоматизуємо створення тікетів. Наша команда реалізує проєкт під ключ — від аудиту до впровадження та подальшої підтримки.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Інтеграція 1С-Бітрікс з Omnidesk: автоматизація підтримки клієнтів
Середній
~1-2 тижні

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

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1532
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1045
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    820
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    915
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    853
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1208

Інтеграція 1С-Бітрікс з Omnidesk: автоматизація підтримки клієнтів

Коли сайт на Бітрікс обробляє сотні звернень на день, а оператори витрачають час на перемикання між email, Telegram і соцмережами, — час задуматися про єдину систему підтримки?

Omnidesk об'єднує всі канали в одному вікні. Ми інтегруємо його з вашим Бітріксом: синхронізуємо користувачів, замовлення та автоматизуємо створення тікетів. Без втрати даних і з гарантією результатів. Наш досвід у Бітрікс і Omnidesk — понад 5 років, тому інтеграція під ключ виконується за 8–9 днів. Зв'яжіться з нами для оцінки проекту.

Як працює синхронізація користувачів?

При реєстрації та оновленні профілю користувача ми синхронізуємо дані в Omnidesk через REST API. Нижче — приклад реалізації класу на PHP: використовуємо HTTP Basic Auth, спочатку шукаємо користувача за email, якщо не знайдено — створюємо, інакше оновлюємо. ID користувача Omnidesk зберігаємо в користувацьке поле UF_OMNIDESK_USER_ID.

class OmnideskUserSync {
    public function sync(int $bitrixUserId): void {
        $user = \CUser::GetByID($bitrixUserId)->Fetch();
        $omnideskId = $user['UF_OMNIDESK_USER_ID'] ?? null;
        $data = [
            'user' => [
                'full_name' => trim($user['NAME'] . ' ' . $user['LAST_NAME']),
                'email' => $user['EMAIL'],
                'phone' => $user['PERSONAL_PHONE'],
                'custom_data' => [
                    'bitrix_user_id' => (string)$bitrixUserId,
                    'registered_at' => $user['DATE_REGISTER'],
                ],
            ],
        ];

        if ($omnideskId) {
            $response = $this->client->put("/api/users/{$omnideskId}.json", $data);
        } else {
            // Сначала ищем по email
            $existing = $this->client->get('/api/users.json', ['email' => $user['EMAIL']]);
            if (!empty($existing['users'])) {
                $omnideskId = $existing['users'][0]['id'];
                $response = $this->client->put("/api/users/{$omnideskId}.json", $data);
            } else {
                $response = $this->client->post('/api/users.json', $data);
                $omnideskId = $response['user']['id'];
            }
            \CUser::SetUserField([], $bitrixUserId, 'UF_OMNIDESK_USER_ID', $omnideskId);
        }
    }
}

Чому Omnidesk виграє у вбудованого модуля Бітрікс?

Omnidesk надає мультиканальність з коробки: email, чат, Telegram, ВКонтакте, Facebook, Viber — все в одному вікні. Вбудований хелпдеск Бітрікс вимагає додаткових модулів для кожного каналу. Налаштування інтеграції з Omnidesk займає в 2 рази менше часу і не вимагає покупки сторонніх розширень. Згідно з документацією Omnidesk, середній час обробки тікета скорочується на 40%.

Збагачення картки клієнта даними замовлень

Omnidesk підтримує кастомні поля (custom_data) в профілі користувача. Окрім статичного збагачення при реєстрації, налаштовуємо динамічний віджет в Omnidesk через iframe.

У налаштуваннях Omnidesk розділ «Інтеграції → Віджети»: вказуємо URL віджета на стороні Бітрікс:

https://myshop.ua/personal/omnidesk-widget/?email={user.email} 

Параметр {user.email} — плейсхолдер Omnidesk, підставляє email клієнта з тікета. Сторінка віджета в Бітрікс отримує email, знаходить користувача, виводить його замовлення:

$email = htmlspecialchars($_GET['email'] ?? '');
if (!$email) exit;

$user = \CUser::GetByLogin($email)->Fetch();
if (!$user) {
    echo 'Клієнт не знайдений в системі';
    exit;
}

$orders = \Bitrix\Sale\Order::getList([
    'filter' => ['USER_ID' => $user['ID']],
    'order' => ['DATE_INSERT' => 'DESC'],
    'limit' => 10,
    'select' => ['ID', 'ACCOUNT_NUMBER', 'DATE_INSERT', 'PRICE', 'STATUS_ID', 'CURRENCY'],
])->fetchAll();

// Рендер таблиці замовлень

Iframe показує оператору останні 10 замовлень клієнта з сумами та статусами прямо в інтерфейсі Omnidesk.

Автоматичне створення тікета при проблемному замовленні

При переводі замовлення в статус «Повернення» або «Скарга» (кастомний статус) створюємо тікет в Omnidesk через POST /api/cases.json:

AddEventHandler('sale', 'OnSaleStatusOrderChange', function(\Bitrix\Main\Event $event) {
    $order = $event->getParameter('ENTITY');
    $status = $order->getField('STATUS_ID');
    if (!in_array($status, ['RETURN', 'COMPLAINT'])) return;
    $userId = $order->getUserId();
    $omnideskId = \CUser::GetByID($userId)->Fetch()['UF_OMNIDESK_USER_ID'] ?? null;
    $omnidesk->post('/api/cases.json', [
        'case' => [
            'subject' => 'Замовлення #' . $order->getId() . ': ' . ($status === 'RETURN' ? 'запит повернення' : 'скарга'),
            'content' => 'Автоматично створено при зміні статусу замовлення',
            'user_id' => $omnideskId,
            'label_names' => [$status === 'RETURN' ? 'return' : 'complaint'],
            'custom_data' => [
                'order_id' => $order->getId(),
                'order_total' => $order->getPrice(),
            ],
        ],
    ]);
});

Webhooks з Omnidesk

Omnidesk надсилає webhooks (POST на ваш URL) при подіях: case_created, case_updated, case_resolved, message_created.

Обробник верифікує запит через заголовок X-Omnidesk-Signature (HMAC-SHA1 тіла) і виконує потрібну дію. Наприклад, при case_resolved — відправити лист з Бітрікс із запитом оцінки якості підтримки.

Що входить в інтеграцію?

Ми передаємо замовнику:

  • API-клієнт для Omnidesk на PHP (готовий модуль)
  • Модуль синхронізації користувачів (реєстрація + оновлення)
  • Iframe-віджет з останніми 10 замовленнями клієнта
  • Автоматичне створення тікетів при критичних статусах замовлень
  • Обробник webhooks (настроюваний)
  • Розділ «Звернення» в особистому кабінеті Бітрікс
  • Документацію та навчання операторів

Терміни

Етап Термін
API-клієнт + синхронізація користувачів 2 дні
Iframe-віджет з замовленнями 1 день
Автостворення тікетів при статусах 1 день
Обробник webhooks 1 день
Розділ «Звернення» в ОК 2 дні
Тестування 1 день
Всього 8–9 днів

Відмовостійкість і моніторинг інтеграції

Інтеграція повинна працювати стабільно навіть при тимчасовій недоступності Omnidesk API. Ми реалізуємо чергу вихідних запитів в окремій таблиці: при помилці HTTP 5xx або мережевому таймауті запит відкладається і повторюється через 5 хвилин, максимум 5 спроб. Після вичерпання спроб інцидент логується і повідомляє адміністратора листом через \CEvent::Send(). Це виключає втрату даних про синхронізацію при короткочасних збоях на стороні Omnidesk.

Вхідні webhooks верифікуються через HMAC-SHA1 підпис у заголовку X-Omnidesk-Signature. Без верифікації будь-який POST-запит ззовні міг би змінити статус замовлення або створити хибний тікет. Час обробки одного вхідного webhook — менше 200 мс, що вкладається в таймаут платформи.

За даними наших проектів, після впровадження інтеграції з Omnidesk кількість необроблених звернень знижується на 35%, а середній час реакції оператора скорочується з 4 годин до 40 хвилин.

Як ми економимо ваші гроші?

Інтеграція знижує навантаження на операторів: кожен тікет обробляється на 30% швидше. При обсязі 500 звернень на місяць економія складає до 40 годин роботи — це еквівалент 60 000 гривень на місяць. Вартість інтеграції окупається за 2–3 місяці.

Отримайте консультацію з архітектури інтеграції. Оцінимо ваш проект протягом дня.