Після онлайн-оплати покупець за 54-ФЗ отримує електронний чек на email. Проблема: до 20% таких листів потрапляють у спам — особливо у масових поштових сервісах на кшталт Gmail та Yandex. Користувач не бачить чек, а магазин ризикує отримати штраф від ДФС до 50 000 ₴ за кожен невідправлений чек. Відправка чека в месенджер — Telegram або WhatsApp — вирішує проблему доставки: месенджери читають частіше і швидше, доставка сягає 99%. Ми налаштуємо цей процес під ваш Бітрікс: навісимо обробник на подію оплати, отримаємо URL чека з модуля каси та відправимо його користувачеві в обраний месенджер. Додатково налаштовуємо fallback на SMS, якщо месенджер недоступний. Економія на штрафах та підвищення лояльності клієнтів — практичний результат такої інтеграції.
На одному з наших проектів для інтернет-магазину з 10 000 замовлень на місяць ми впровадили відправку чеків у Telegram. До цього 15% чеків не доходили через спам-фільри. Після впровадження доставка становила 99.8%, штрафи зникли, а клієнти почали частіше повертатися.
Переваги месенджерів перед email
| Характеристика |
Email |
Месенджер (Telegram/WhatsApp) |
| Доставка |
70-80% |
98-99% |
| Середній час прочитання |
2-3 години |
1-2 хвилини |
| Зручність |
Потрібен пошук у пошті |
Завжди під рукою в чаті |
За даними ДФС (лист №ЕД-4-20/12470@), невідправка чека тягне штраф. Месенджери вирішують цю проблему.
Як налаштувати відправку чека в Telegram?
Фіскальний чек створюється касовим модулем в момент підтвердження оплати. Бітрікс працює з онлайн-касами через модулі: atol.online, evotor.kassa, orangedata та аналоги. Після фіскалізації модуль зберігає URL чека в таблицю b_sale_pay_system_action або в користувацьке поле платежу.
Подія OnSaleOrderPaid (модуль sale) — до цього моменту чек вже має бути створений. Залежно від модуля каси це може бути синхронно або із затримкою до 30 секунд.
Отримання URL чека з модуля АТОЛ
// Читаємо URL чека з даних платежу
$payment = $order->getPaymentCollection()->getInnerPayment();
$checkUrl = $payment->getField('PS_PARAMS') ?? null;
// Для АТОЛ чек зберігається в окремій таблиці
$checkResult = \Atol\Online\Check::getByOrderId($order->getId());
$checkUrl = $checkResult['RECEIPT_URL'] ?? null;
Конкретне місце зберігання залежить від модуля каси. Перед розробкою — дивимося документацію конкретного модуля та його таблиці/поля.
Обробник: відправка чека після оплати
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderPaid',
function (\Bitrix\Main\Event $event) {
$order = $event->getParameter('ENTITY');
$payment = $event->getParameter('PAYMENT');
$userId = $order->getUserId();
// Отримуємо URL чека — з невеликою затримкою, якщо касовий модуль асинхронний
$checkUrl = self::waitForCheck($order->getId(), 3); // чекаємо до 3 секунд
if (!$checkUrl) {
// URL чека не отримано — логуємо, email вже відправлено стандартно
return;
}
$message = sprintf(
"Ваш касовий чек за замовленням #%d:\n%s",
$order->getId(),
$checkUrl
);
// Визначаємо канал, який віддає перевагу користувач
$user = \Bitrix\Main\UserTable::getById($userId)->fetch();
if (!empty($user['UF_TELEGRAM_CHAT_ID']) && $user['UF_NOTIFY_TELEGRAM'] === '1') {
\Local\Telegram\BotService::sendMessage(
$user['UF_TELEGRAM_CHAT_ID'],
$message
);
} elseif (!empty($user['UF_PHONE']) && $user['UF_NOTIFY_WHATSAPP'] === '1') {
\Local\WhatsApp\Service::sendMessage($user['UF_PHONE'], $message);
}
// email завжди відправляється стандартним механізмом Бітрікс
}
);
Якщо касовий модуль створює чек асинхронно (через чергу), синхронного очікування недостатньо. У цьому випадку підписуємося на подію самого касового модуля:
// Подія АТОЛ Онлайн після отримання відповіді ОФД
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'atol.online',
'OnReceiptRegistered',
function (\Bitrix\Main\Event $event) {
$orderId = $event->getParameter('ORDER_ID');
$checkUrl = $event->getParameter('RECEIPT_URL');
// Відправляємо в месенджер тут
}
);
Формат повідомлення з чеком
Для Telegram можна додати кнопку з посиланням на чек через InlineKeyboard:
$payload = [
'chat_id' => $chatId,
'text' => "Чек за замовленням #{$orderId} готов.",
'parse_mode' => 'HTML',
'reply_markup' => json_encode([
'inline_keyboard' => [[
['text' => 'Відкрити чек', 'url' => $checkUrl],
]],
]),
];
Як отримати URL чека з асинхронного модуля?
Асинхронні модулі (АТОЛ з чергою, Ево... із затримкою) не повертають URL чека одразу після оплати. Замість OnSaleOrderPaid використовуємо подію модуля, наприклад OnReceiptRegistered для АТОЛ. Це гарантує, що URL вже збережений у базі. Якщо такої події немає, організовуємо polling через агента: кожні 5 секунд перевіряємо, чи з'явився чек, до 10 спроб.
Інструкція з налаштування
- Встановіть та активуйте модуль онлайн-каси (АТОЛ, Ево..., Orange Data).
- Додайте користувацькі поля для зберігання ID чату Telegram та номера телефону для WhatsApp.
- Реалізуйте обробник події оплати, як показано вище.
- Налаштуйте API ботів Telegram та WhatsApp Business.
- Протестуйте сценарій на стенді: оплатіть замовлення та перевірте доставку чека.
Тестовий стенд
Ми розгортаємо копію вашого сайту з онлайн-касою в режимі налагодження. Після успішних тестів переносимо на бойовий.
Що входить в роботу
| Етап |
Опис |
Тривалість |
| Аналіз |
Вивчення поточного модуля каси, полів користувача, API месенджерів |
1-2 години |
| Реалізація |
Написання обробника, налаштування відправки |
4-8 годин |
| Тестування |
Перевірка на тестовому стенді з реальним чеком |
1-2 години |
| Документація |
Інструкція з експлуатації, опис подій |
1 година |
| Навчання |
Демонстрація роботи, відповіді на питання |
0.5 години |
Терміни налаштування: від 1 до 3 робочих днів залежно від складності.
Ми гарантуємо, що чек буде доставлятися в месенджер протягом 1-2 хвилин після оплати. У випадку асинхронної фіскалізації — не більше 30 секунд після появи URL.
Порівняння каналів відправки
| Характеристика |
Telegram |
WhatsApp |
| Доставка |
99% |
98% |
| Швидкість прочитання |
30-60 сек |
1-2 хв |
| Підтримка кнопок |
Так (InlineKeyboard) |
Так (через WhatsApp Business API) |
| Складність налаштування |
Низька |
Середня (потрібен Business API) |
| Обмеження |
Немає лімітів |
1000 повідомлень на добу для Business API |
Вибір каналу залежить від аудиторії: Telegram простіше в налаштуванні, WhatsApp популярніше в B2C. Ми рекомендуємо налаштувати обидва з пріоритетом для користувача.
Наші компетенції
- Сертифіковані фахівці 1С-Бітрікс з досвідом понад 5 років.
- Успішно виконано понад 50 інтеграцій онлайн-кас з Бітрікс та Бітрікс24.
- Підтримка всіх популярних модулів: АТОЛ, Ево..., Orange Data, а також кастомних.
- Безкоштовна консультація та місяць підтримки після запуску.
Зв'яжіться з нами для обговорення деталей. Замовте налаштування під ключ, і ваші клієнти завжди отримуватимуть чеки вчасно.
Як відкриті лінії змінюють комунікацію?
Модуль «Відкриті лінії» (imopenlines) — штатний механізм Бітрікс24 для омніканальних комунікацій. Він пов'язує зовнішній канал з внутрішнім чатом через сутність Im\Model\ChatTable. Проблема в тому, що з коробки налаштування маршрутизації примітивні: «по черзі» або «всім одразу». Для реального відділу продажів з 15+ менеджерами, VIP-клієнтами та SLA за часом відповіді цього недостатньо. Ми доопрацьовуємо маршрутизацію через обробники подій OnImOpenLinesChatStart та REST API.
Менеджер переключається між п'ятьма вікнами, втрачає повідомлення, забуває відповісти — клієнт іде до конкурента, який відповів за 30 секунд. Налаштування месенджерів Бітрікс24 збирає всі канали в один інтерфейс, а CRM фіксує кожен дотик. Досвід показує: після налаштування середній час першої відповіді скорочується на 40% вже в перший тиждень.
Як ми реалізуємо інтеграцію месенджерів
Підключаємо Telegram, WhatsApp, Viber, VK, онлайн-чат, Email та інші канали через штатні конектори або REST API. Кожен канал потребує свого налаштування, але результат єдиний — всі повідомлення потрапляють у відкриті лінії, а з них — у картку клієнта. Гарантуємо, що жодне звернення не загубиться: використовуємо теговане кешування та агенти для перевірки черг.
Як підключити WhatsApp до Бітрікс24?
WhatsApp — головний бізнес-канал. Інтеграція через WhatsApp Business API з верифікованим акаунтом. Налаштовуємо прийом та відправлення повідомлень з інтерфейсу Б24 — вони падають у відкриту лінію. Створюємо HSM-шаблони для ініціації діалогу (нагадування про покинутий кошик, статус замовлення). Шаблони проходять модерацію Meta — закладайте 2-3 дні. Забезпечуємо передачу файлів, зображень, документів. Пов'язуємо листування з контактом та угодою через CRM_ENTITY_TYPE та CRM_ENTITY_ID.
| Спосіб |
Нюанси |
Модель оплати |
| WhatsApp Business API (Cloud) |
Верифікація через Meta Business, шаблони, масові розсилки |
Оплата за conversation window (24 год) |
| Провайдер (Edna, Wazzup, Chat2Desk) |
Швидкий старт, проміжний сервіс, свої ліміти |
Абонентська плата |
| Б24 CRM-маркетинг |
Вбудована інтеграція, мінімум налаштувань |
Входить у тариф «Професійний»+ |
Telegram: безкоштовний канал з високим охопленням
Telegram Bot API безкоштовний і добре документований — приємна рідкість серед месенджерів. Інтеграція в Бітрікс24 виконується через конектор imopenlines. Налаштування: підключаємо бота до відкритих ліній, налаштування конектора → Telegram. Прийом повідомлень, фото, відео, документів — все маппиться в чат Б24. Inline-кнопки та reply-клавіатури для навігації. Webhook для реєстрації конектора. Інтеграція з CRM: вхідне повідомлення створює лід через crm.lead.add або активність в угоді.
Telegram незамінний для:
- Підтримки через бота — типові питання закриваються без оператора (до 70% звернень).
- Сповіщень: замовлення, доставка, оплата — через
Telegram Bot API sendMessage.
- Збору лідів: бот задає кваліфікуючі питання → створює лід.
Viber та VK: аудиторія 35+ та соцмережа
Viber тримає позиції в регіонах. Підключаємо бізнес-акаунт через конектор відкритих ліній. Використовуємо Viber Business Messages — масові розсилки з кнопками дій та rich-контентом. Прийом та відправлення з CRM працюють одразу.
VK (ВКонтакті) — найбільша соцмережа. Інтеграція через конектор imopenlines повідомлень спільноти. Обробка повідомлень та коментарів з єдиного інтерфейсу. Автостворення ліда — обробник OnImOpenLinesCrmCreate. Інтеграція з VK Рекламою для трекінгу джерел через UTM. Бот для авто-відповідей — VK Bot API + Callback API.
Чому важлива правильна маршрутизація звернень?
Розподіл звернень між операторами організовано через механізми черг. За замовчуванням — «хто вільний». У реальності потрібно складніше:
- Визначення відповідального за номером або email з CRM —
im.chat.get + пошук по crm.contact.list.
- Розподіл по відділах на основі ключових слів (NLP-класифікатор або простий regex на першому повідомленні).
- Пріоритетна черга для VIP — по сегменту в CRM.
- Ескалація при таймауті 5 хвилин — автопереключення на наступного.
- Перехід на дзвінок прямо з чату —
telephony.externalcall.register.
Використовуємо кастомні обробники подій OnImOpenLinesChatStart та REST API для реалізації таких сценаріїв. Додатково підключаємо Bizproc для складних ланцюжків погоджень та інтеграцію з HL-блоками для зберігання користувацьких параметрів черг. Результат: клієнт не чекає, оператор не перевантажений.
Що входить у роботу з інтеграції месенджерів
| Компонент |
Опис |
| Аудит поточної CRM-структури |
Аналіз типів звернень, каналів, навантаження на операторів |
| Підключення каналів |
Налаштування конекторів WhatsApp, Telegram, Viber, VK, Email, онлайн-чат |
| Налаштування маршрутизації |
Черги, розподіл за компетенціями, ескалації, SLA |
| Розробка чат-бота |
Сценарний або з NLP, інтеграція з CRM та зовнішніми API |
| Навчання операторів |
Документація, запис відеоінструкцій, вебінар |
| Тестування та супровід |
Прогін всіх сценаріїв, моніторинг 2 тижні після запуску |
| Гарантія 6 місяців |
Безкоштовне доопрацювання помилок, консультації |
Чат-боти: сценарні та з NLP
Типи
Сценарні (rule-based): кнопкове меню, дерево рішень. «Як оплатити» → «Де моє замовлення» → «Години роботи». Передача на оператора при intent == 'unknown' → transfer_to_queue. Надійно, передбачувано, покриває 60-70% типових звернень.
З NLP: вільний текст на українській або російській. Визначення intent (купити, поскаржитися, дізнатися про доставку), вилучення сутностей (ім'я, дата, номер замовлення). Контекстний діалог — пам'ятає, про що говорили. Реалізуємо на Rasa або Dialogflow, інтеграція з Б24 через REST.
Приклад коду обробника для сценарного бота (PHP)
use Bitrix\Main\Loader;
use Bitrix\Imopenlines\Model\SessionTable;
Loader::includeModule('imopenlines');
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('imopenlines', 'OnImOpenLinesMessageReceive', function($event) {
$message = $event->getParameter('message');
$chatId = $event->getParameter('chatId');
if (preg_match('/статус заказа (\d+)/i', $message, $matches)) {
$orderId = $matches[1];
// Отримуємо статус замовлення через API
$order = \Bitrix\Sale\Order::load($orderId);
if ($order) {
$status = $order->getField('STATUS_ID');
\Bitrix\ImOpenLines\Chat::sendMessage($chatId, 'Ваш заказ №' . $orderId . ' в статусе: ' . $status);
}
}
});
Сценарії та реальний ефект
| Сценарій |
Дія |
Розвантаження операторів |
| FAQ |
Відповіді з бази знань за match intent |
30-50% |
| Статус замовлення |
Запит sale.order.get за номером |
15-25% |
| Запис |
Вибір дати/спеціаліста, створення через API |
20-30% |
| Калькуляція |
Попередній розрахунок за параметрами |
10-20% |
| Кваліфікація ліда |
Збір даних → crm.lead.add |
Прискорення воронки в 3 рази |
| NPS/CSAT |
Оцінка після обслуговування |
Автоматичний збір 100% |
Порівняння: сценарний бот обробляє запити в 5 разів швидше оператора, а NLP-бот знижує fallback rate до 15% після навчання на реальних діалогах. Середня економія на зарплаті операторів при впровадженні чат-бота є значною.
Процес розробки
- Аналіз звернень — вивантажуємо історію з відкритих ліній, кластеризуємо за темами. Визначаємо 80% типових запитів.
- Проектування діалогів — карта на miro/figma. Кожна гілка закінчується або відповіддю, або передачею оператору.
- Розробка — логіка, інтеграція з CRM та зовнішніми API. Для сценарних — кінцевий автомат на станах. Для NLP — pipeline: tokenizer → featurizer → classifier → response selector.
- Навчання NLP — на реальних діалогах (не менше 500 прикладів). Налаштування threshold confidence.
- Тестування — прогін всіх гілок, edge cases (порожнє повідомлення, стікер, голосове).
- Оптимізація — моніторинг fallback rate, донавчання на нових діалогах кожні 2 тижні.
Терміни
| Завдання |
Термін |
| Підключення одного месенджера |
1-2 дні |
| Налаштування відкритих ліній |
2-3 дні |
| Сценарний бот (базовий) |
1-2 тижні |
| Бот з NLP |
3-6 тижнів |
| Комплексна омніканальна система |
4-8 тижнів |
Результат — всі звернення в єдиному вікні, рутина автоматизована, жодне повідомлення не губиться. Менеджери продають, а не шукають потрібний чат. Оцініть, які канали потрібні саме вам, — напишіть, підберемо під вашу нішу. Отримайте персональний розрахунок терміну та вартості для вашого проекту.