Как отправлять SMS из Битрикс24 и Tilda

от автора

Настройка и интеграция автоматической отправки SMS в ответ на события вроде получения заявки от клиента –– трудоемкая задача, но в этой статье наглядно покажем, как решить ее быстро и просто, и поделимся работающим кодом.

Используя нашу инструкцию, вы сможете отправлять SMS из конструктора сайтов Tilda при появлении новой заявки и из Битрикс24 –– при создании новой задачи.

Регистрация в телеком-сервисе

Прежде всего понадобится сервис для отправки SMS, например, API МТС Exolve. Приветственного бонуса платформы — 300 рублей — хватит на аренду номера и отправку SMS в течение двух месяцев.

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

После регистрации выполните четыре шага:

  1. подтвердите свой номер;

  2. создайте приложение;

  3. арендуйте номер телефона;

  4. получите ключ для доступа по API.

1. Подтверждение своего номера

На главной странице личного кабинета введите в блоке свой номер — вы получите одноразовый код в SMS. Введите этот код. Готово.

2. Создание приложение

Внутри этого приложения можно будет арендовать номер телефона для отправки сообщений и получить API-ключ.

3. Аренда номера телефона

Перейдите в блоке «Номера» внутри созданного приложения по кнопке «Купить». Стоимость аренды — 150 рублей в месяц. Деньги будут списываться с приветственного баланса. Отправлять сообщения или звонить можно только с этого номера. 

Так выглядит личный кабинет после первых трех шагов.

4. Получение API-ключа

Всё настроено. Перейдите внутри приложения в раздел «Ключи» и скопируйте ваш. Его нужно будет вставить в PHP-скрипт на вашем сервере и в Apps Script в Google Sheets при работе с Tilda.

Со стороны API Платформы все готово. Теперь настроим Битрикс24 и Tilda.

Отправка SMS из Битрикс24

Настроим автоматическую отправку SMS-оповещений, когда в CRM создается новая задача по клиенту или обновляется существующая. 

Учтите, что интеграция с внешними системами через вебхуки из Битрикс24 возможны только на платном тарифе или в течение бесплатного периода длительностью 14 дней.

Настройка своего сервера на PHP

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

Сначала вставьте в код свои данные:

  • ключ вебхука от Битрикс24 (выдается в Битрикс24);

  • API-ключ от МТС Exolve (выдается в личном кабинете API Платформы);

  • купленный номер телефона в Exolve (с него будут отправляться SMS);

  • подтвержденный в Exolve номер телефона (это ваш номер, на который вы сможете бесплатно получать сообщения).

<?php $bitrix24_key = 'BITRIX24-WEBHOOK-KEY';//Битрикс выдает автоматически при создании вебхука   function exolve_log($data) { file_put_contents( './' . time() . '_' . rand(1, 9999) . '.txt', var_export( $data, true ) ); }   function exolve_sms($text) { $url = 'https://api.exolve.ru/messaging/v1/SendSMS'; $key = 'MTS-EXOLVE-TOKEN';   $from = 'MTS-EXOLVE-RENTED-PHONE-NUMBER';//7XXXXXXXXXX $to = 'MTS-EXOLVE-APPROVED-PHONE-NUMBER';//7XXXXXXXXXX   $options = [ 'http' => [ 'header' => "Content-Type: application/json\nAuthorization: Bearer " . $key, 'method' => 'POST', 'content' => '{"number":"' . $from . '","destination":"' . $to . '","text":"' . $text . '"}', ], ];   $context = stream_context_create($options); $result = file_get_contents($url, false, $context);   exolve_log( [ 'POST_request' => $options['http']['content'], 'POST_response' => $result, ], ); }   if(!empty($_REQUEST['auth']['application_token']) && $_REQUEST['auth']['application_token'] == $bitrix24_key) { switch ($_REQUEST['event']) { case 'ONTASKADD': exolve_sms('Создана задача. ID задачи:' . $_REQUEST['data']['FIELDS_AFTER']['ID']); break; case 'ONTASKUPDATE': exolve_sms('Задача изменена. ID задачи:' . $_REQUEST['data']['FIELDS_AFTER']['ID']); break; } }

В результате у вас появится адрес вида https://yourdomain.domain/filename.php, на который будут отправляться исходящие вебхуки Битрикс24.

Настройка исходящего вебхука

Это самая простая часть, и займет она всего пару минут. В меню в разделе «Приложения» перейдите в пункт «Разработчикам». В открывшемся списке выберите нижний блок «Другое».

В разделе «Другое» выберите пункт «Исходящий вебхук».

Теперь введите получившуюся ссылку на файл. Поле ввода с токеном приложения Битрикс24 создаст автоматически. Используйте его в коде. И последнее — выберите события, при срабатывании которых будут отправляться SMS. В нашем примере это ONTASKADD и ONTASKUPDATE.

Теперь в пункте меню «Задачи и Проекты» создайте новую задачу.

После создания задачи вы получите SMS с арендованного в МТС Exolve номера. ID задачи будет отличаться.

Отправка SMS из Tilda

Настроим отправку SMS-оповещения о том, что пользователь заполнил и отправил форму. Это работает совершенно бесплатно. 

В конструкторе сайтов Tilda нет готовых модулей для отправки SMS или совершения звонков, и нет возможности настроить исходящие вызовы. Поэтому мы будем сохранять заявки в Google Sheets, так как эта возможность встроена, и далее обрабатывать заявки в Apps Script таблицы.

Подготовка формы в Tilda

Зарегистрируйтесь на бесплатном тарифе площадки и создайте страницу.

На страницу добавьте форму. Мы для удобства и красоты используем BF310N.

В форме настройте поля ввода, текст.

Теперь в настройках сайта в подразделе «Формы» добавьте Google Sheets.

Дайте таблице емкое понятное название и нажмите кнопку «Сохранить».

Запустится процесс с запросом разрешений к вашим Google Sheets. Надо выдать все доступы. В итоге в вашем google-аккаунте автоматически будет создана новая таблица. 

Затем вернитесь к работе с формой и откройте настройки контента. В блоке приема данных из формы, в столбце подключенных сервисов появится созданная Google Sheet. Выберите ее, сохраните изменения и опубликуйте страницу.

Теперь нужно добавить сам код, который будет делать запрос в API Платформу для отправки сообщений.

Добавление кода в Apps Script

Теперь нам нужно настроить отправку SMS-оповещения, когда появляется новая строка в Google Sheets с данными о новой заявке. В меню Extensions перейдите в Apps Script. Откроется новое окно с редактором кода файла code.gs. Вставьте в него наш код:

function sendSMS() { var key = "MTS-EXOLVE-API-KEY"; var URL = "https://api.exolve.ru/messaging/v1/SendSMS"; var param = { "method" : "POST", "headers" : { "Content-Type" : "application/json", "Authorization" : "Bearer " + key }, "payload": JSON.stringify({ "number":"MTS-EXOLVE-RENTED-PHONE-NUMBER", //арендованный номер "destination":"MTS-EXOLVE-YOUR-APPROVED-PHONE-NUMBER", //ваш подтвержденный номер "text":"Новая заявка" //текст сообщения }), }; return UrlFetchApp.fetch(URL, param); }

Должно выглядеть как на скриншоте ниже.

Для отправки SMS скрипт должен автоматически запускаться. Это возможно после создания триггера. Поэтому перейдите в раздел Triggers в Apps Script.

Создайте триггер, выбрав нашу функцию для срабатывания Send и момент срабатывания On change. То есть скрипт будет запускаться при каждом изменении данных в таблице, даже если вы удалили один символ в любой ячейке. Действуйте аккуратнее.

Созданный триггер будет выглядеть вот так:

Тестирование

Проверяем связку отправки заявки и получения SMS. Опубликуйте страницу, заполните и отправьте форму.

После этого отправленная заявка появится в таблице.

Работу скрипта в Apps Script можно проверить в разделе Executions. Если в столбце Status стоит Completed, значит срабатывание прошло без ошибок.

Вот такое SMS вы должны получить с номера телефона, арендованного в Exolve.

К слову, из Tilda вы сможете не только автоматически отправлять SMS. Если подписать договор с МТС Exolve, можно звонить на любые внешние номера, принимать и маршрутизировать входящие звонки, использовать виртуальную АТС.

В Битрикс24 около 150 событий, с которыми можно создать множество комбинаций сценариев и строить свою гибкую систему коммуникаций.


ссылка на оригинал статьи https://habr.com/ru/articles/849238/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *