Как мы сэкономили клиенту деньги на смс: рабочее решение для отправки заявок из Битры в Телеграм

Рассказываем (и даем примеры кода), как отправлять заявки с сайта на Битриксе сразу в Тг-чат. Готового решения у самого Битрикса нет. А мы сэкономили клиенту деньги, которые он отдавал за смс-ки из Битрикса, ускорили обработку заявок и заодно дали инструмент контроля руководителю.

Как мы сэкономили клиенту деньги на смс: рабочее решение для отправки заявок из Битры в Телеграм

Когда менеджер где-то «в полях», а с сайта падает заявка и нужно на нее ответить, никакой пуш в CRM его не догонит. А отправить СМС стоит денег, и чем заявок больше, тем больше зарабатывает провайдер (а компания платит). Мы написали для клиента модуль и интегрировали его в Телеграм-бота, который помогает собирать заявки с сайта на Битриксе. А больше и не надо: оперативная обработка заявки в этом бизнесе — почти гарантированный заказ.

Содержание

Что за бизнес

«РТК Альянс» — крупнейший аутстафф-подрядчик Москвы и МО. У компании 1300 разнорабочих, каждого из которых она «продает» за 3500₽/сутки и выше — на склады, стройки, муниципальные работы. Почитать о том, как работает этот бизнес, можно в нашем лонгриде «Это деньги сразу»: владелец крупнейшего аутстаффа Москвы о том, как продавать 1300 рабочих за 4,5 млн ₽ в день».

Люди — новое золото: заказов много, дневные ставки растут, и на рынке много компаний, желающих заработать на тренде. Наш клиент конкуренции не боится, но рекламой не пренебрегает. Здесь мы рассказали, как завоевали его доверие, настроив рекламу и снизив стоимость клика в 5 раз. С тех пор развиваем SEO — попутно решая проблемы, до которых можем дотянуться.

В чем была проблема

В силу специфики бизнеса заказчику важно, чтобы менеджеры быстро реагировали на полученные заявки. Казалось бы, что сложного? А то, что менеджеры, принимающие звонки, далеко не всегда находятся в офисе, а чаще «в полях», и вариант с отправкой писем на почту или пушей в CRM не очень удобен.

Большинство лидов звонят напрямую.

Есть и те, кто оставляет заявки на сайте: заказывает услугу или обратный звонок. Критически важной становится скорость обработки. Потенциальный заказчик просто не может (и не будет) ждать день, да что там день — несколько часов, пока ему перезвонят. Он закажет услугу у конкурента.

Как решали проблему до нас

Клиент использовал популярное и понятное решение: сотрудники получали информацию о заявках смс-кой на телефон, но у этого способа были свои минусы. Главный — за это нужно платить.

Так, у клиента контракт с Билайн, и каждое сообщение обходится ему в 5,25 рублей. Здесь вы можете посмотреть расценки всех операторов. Перейдя на Мегафон или МТС, за сами смс-ки клиент платил бы меньше, но экономию «съедала» бы абонентская плата.

Если телефонов несколько — умножаем сумму на количество телефонов. Итого, 100 вовремя переданных менеджерам заявок в месяц обойдутся клиенту в 5000+ рублей.

Кроме того, вариант с отправкой смс-сообщений был неудобен с точки зрения управленческого контроля. Во-первых, когда смс-ка улетает, руководитель не знает, увидели ли ее менеджеры, перезвонили ли по заявке. Благодаря решению, которое мы предложили, эта проблема просто не возникает. Во-вторых, необходимо следить за расходованием бюджета: когда на балансе нет денег, смс не приходят.

Что мы предложили и сделали: спойлер

Заказчик хотел найти более удобное и дешевое решение для своей задачи, и идея с получением всех заявок в общую группу в Телеграме ему понравилась. У заказчика сайт на Битриксе, а готового удачного решения из коробки у Битрикса нет, поэтому мы реализовали свое.

Подчеркнем, нет такого решения, которое мы считаем удачным. При желании вы найдете соответствующий аддон, но он год не обновлялся, не подходит владельцам младших тарифов и не балует пользователей идеальной работой (или хотя бы инструкцией).

Мы сделали следующее:

  • написали удобный модуль;
  • установили его и настроили;
  • создали группу, куда вступили менеджеры клиента;
  • добавили в группу бота;
  • передали права владельца заказчику.

Теперь все заявки с сайта разбираются менеджерами из общей группы в Тг. Руководитель может мгновенно менять администраторов и состав команды. Менеджеры могут давать оперативный фидбэк по обработанным лидам.

Благодаря интеграции с Телеграмом процесс передачи заявок из Битрикса напрямую менеджерам для клиента абсолютно бесплатен.

Срок реализации: 2 рабочих дня, включая отладку и тестирование.

Почему это важно? Потому что мы работаем по почасовой модели, и каждый рабочий час нашего специалиста — это деньги клиента. В переводе с бизнесового на человеческий, клиент получил на руки инструмент, который быстро окупится.

Что и как делали: в деталях и с кодом

Как работает модуль

Для решения задачи был разработан модуль telegram_notification, который отслеживает почтовые события в Битриксе и автоматически пересылает их содержимое в Телеграм-чат. Алгоритм и принципы работы модуля следующие.

1. Регистрация модуля в системе Битрикс

Модуль регистрируется через класс CModule, что делает его доступным для управления из административной панели Битрикса.

2. Отправка сообщений в Телеграм

Настраивается Telegram-бот и указывается ID чата, в который будут отправляться уведомления.

3. Обработка почтовых событий Битрикса

Модуль отслеживает события OnBeforeEventSend и отправляет соответствующие сообщения в Телеграм.

4. Настройка через административный интерфейс

Администраторы сайта могут:

  • включать или отключать модуль;
  • настраивать токен Телеграм-бота и ID чата для отправки сообщений (строго говоря, речь о первичных настройках, которые нет смысла менять каждый раз, — но при желании это возможно);
  • выбирать почтовые события, при которых требуется отправка уведомлений в Телеграм, например, заполнение определенных веб-форм;
  • настраивать параметры прокси для работы в условиях ограниченного доступа к интернету.

5. Использование прокси

Для обеспечения работы модуля в сетях с ограниченным доступом к интернету и обхода блокировок предусмотрена возможность использования прокси-сервера, что увеличивает гибкость и надежность работы.

Код для умелых

1. Регистрация событий

При установке модуля регистрируется обработчик событий, реагирующий на событие OnBeforeEventSend и вызывающий метод getEventSend:

use Bitrix\Main\EventManager; $eventManager = EventManager::getInstance(); $eventManager->registerEventHandler( 'main', 'OnBeforeEventSend', $this->MODULE_ID, '\Telegram\Notice\Main', 'getEventSend' );

2. Обработка почтовых событий

Метод getEventSend проверяет активность модуля и корректность почтового события. Если условия выполнены, модуль отправляет сообщение в Телеграм:

public static function getEventSend(&$arFields, &$arTemplate) { if (Config::isModuleActive() && in_array($arTemplate['EVENT_NAME'], Config::getMailEvents(), true)) { try { $message = self::prepareMessage($arTemplate['MESSAGE'], $arFields); (new Sending())->sendMessage($message); } catch (\Exception $e) { Debug::logError($e->getMessage(), 'getEventSend', 'telegram-log'); } } } protected static function prepareMessage($template, $fields) { $message = htmlspecialchars_decode(strip_tags($template)); foreach ($fields + self::getSiteParams() as $key => $value) { $message = str_replace("#{$key}#", $value, $message); } return $message; }

3. Настройки модуля

Административная панель Битрикса позволяет легко настраивать ключевые параметры модуля:

$fields = [ 'module_active' => $_POST['module_active'] ?? '0', 'token' => $_POST['token'] ?? '', 'chat_id' => $_POST['chat_id'] ?? '', 'mail_events' => $_POST['mail_events'] ?? [], 'use_proxy' => $_POST['use_proxy'] ?? '0', 'proxy_url' => $_POST['proxy_url'] ?? '', 'proxy_port' => $_POST['proxy_port'] ?? '', 'proxy_user' => $_POST['proxy_user'] ?? '', 'proxy_pass' => $_POST['proxy_pass'] ?? '', ];

В настройках модуля пользователь может выбрать почтовые события, по которым нужно делать отправку.

Как мы сэкономили клиенту деньги на смс: рабочее решение для отправки заявок из Битры в Телеграм

4. Отправка сообщения в Телеграм

Для отправки сообщений в Telegram используется API запрос, выполненный через cURL:

public function apiRequest($method, $parameters = []) { $ch = curl_init(); $url = sprintf('%s%s/%s', $this->apiBaseUri, $this->apiKey, $method); $options = [ CURLOPT_URL => $url . '?' . http_build_query($parameters), CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, ]; if (Config::isProxyEnabled()) { $proxy = Config::getProxySettings(); $options += [ CURLOPT_PROXY => $proxy['url'], CURLOPT_PROXYPORT => $proxy['port'], CURLOPT_PROXYUSERPWD => "{$proxy['user']}:{$proxy['pass']}", ]; } curl_setopt_array($ch, $options); $result = curl_exec($ch); curl_close($ch); return $result; }

Проблемы и их решения

Проблема №1: ошибки.

На начальных этапах возникали ошибки при отправке сообщений через API Telegram. Для решения мы внедрили систему логирования и обработки исключений, что позволило избегать критических сбоев и реагировать на ошибки своевременно.

Проблема №2: кодировка.

Время от времени сообщения искажались из-за неправильной кодировки. Для устранения этой проблемы мы добавили механизм обработки текста перед отправкой.

Что в итоге

Модуль был успешно интегрирован на сайт клиента и полностью отвечает всем его пожеланиям. Теперь все данные, отправляемые через веб-формы, моментально попадают в специальный Телеграм-чат, что повысило скорость обработки заявок и улучшило клиентский сервис.

Как мы сэкономили клиенту деньги на смс: рабочее решение для отправки заявок из Битры в Телеграм

Для удобства клиента мы написали понятную инструкцию, которую можно впредь использовать для самостоятельной настройки модуля и отправки сообщений в другой Телеграм-чат, если понадобится.

Как мы сэкономили клиенту деньги на смс: рабочее решение для отправки заявок из Битры в Телеграм

Как видите, мы умеем решать задачи комплексно и экономить деньги клиента.

1616
33
Начать дискуссию