Отправка массовых SMS-рассылок, обработка почтовых событий через SMS-транспорт, SMS-уведомления магазина, обработка входящих SMS, оплата посредством SMS.
В маркетплейсе 1С-Битрикс доступно обновление модуля «SMS4B - СМС для бизнеса». Сегодня я расскажу вам о новом функционале в версии 1.8.2.
Кратко о новом функционале модуля:
Отправка SMS на агентах.
Отправка отложенных рассылок.
Загрузка статусов отправленных SMS.
Загрузка входящих SMS.
Компонент «Контакты по SMS».
События модуля:
загружен финальный статус — FinalStatus;
загружена входящая SMS — LoadIncoming;
до принятия SMS на отправку — BeforeSmsSend;
после принятия SMS на отправку — AfterSmsSend.
Изменения в отправке SMS
В модуле отправка SMS выполняется двумя способами:
на хите;
на агентах (рекомендуется).
Чтобы отправку SMS перевести на агенты в настройках модуля SMS4B необходимо:
Указать «Отправлять SMS на агентах». Если агенты работают на хитах, тогда необходимо перевести агенты на cron (инструкция).
Задать параметр «Количество передаваемых сообщений за один запуск агента». Параметр необходимо подбирать исходя из объема отправляемых SMS. Агент запускается каждые 5 минут.
Добавлена возможность отправлять отложенные SMS. Дата старта рассылки не ограничена.
Для дополнения функционала модуля используйте методы для отправки SMS доступные в классе Csms4b:
Список параметров arPhonesMessages - массив c телефонами и текстами SMS вида array("номер телефона" => "текст"). sender - символьное имя, заказанное в личном кабинете на сайте www.sms4b.ru.
Ошибки В случае ошибки выбрасывает исключение Sms4bException.
Список параметров arPhonesMessages - массив c телефонами и текстами SMS вида array("номер телефона"=>"текст"). sender - символьное имя, заказанное в личном кабинете на сайте www.sms4b.ru. dateStart - дата старта рассылки. dateActual - дата актуальности рассылки (момент прекращения попыток доставки).
Ошибки В случае ошибки выбрасывает исключение Sms4bException.
Пример
try {
$sms4b = new Csms4b();
$arPhonesMessages = [
'79781234567' => 'Текст первой СМС',
'79789876543' => 'Текст второй СМС',
];
$sender = 'SMS4B-Test';
$dateStart = new \DateTime('2019-08-20 10:00');
$dateFinish = new \DateTime('2019-08-20 18:00');
$sms4b->sendDelayedSms($arPhonesMessages, $sender, $dateStart, $dateFinish);
} catch (\Rarus\Sms4b\Exceptions\Sms4bException $e) {
//обработка ошибки
AddMessage2Log($e->getMessage());
}
Статусы отправленных SMS
Для отправленных SMS добавлены статусы. SMS может находится в статусе:
создана — SMS еще не передана на сервис;
отправляется — SMS передана на сервис;
доставлено — SMS доставлена абоненту;
не доставлено — SMS не доставлена абоненту;
отвергнуто — сервис не принял SMS, причина указывается в столбце результат отправки.
Загрузка входящих SMS
Для приема входящих SMS необходимо арендовать цифровой номер в личном кабинете. Поступившие на номер входящие SMS загружаются на сайт крон-скриптом каждые 15 минут.
Изменения в событиях модуля
Обработчики для событий OnBeforeSmsSend и OnAfterSmsSend будут выполнятся если в настройках модуля SMS4B указано «Обрабатывать старые события модуля».
В новой версии модуля добавлены события:
FinalStatus — загружен финальный статус SMS;
LoadIncoming — загружено входящее SMS;
BeforeSmsSend — до принятия SMS на отправку;
AfterSmsSend — после принятия SMS на отправку.
Событие FinalStatus
Модуль запускает обработчики события FinalStatus после изменения статуса SMS на «доставлено» или «не доставлено». Событие FinalStatus может быть использовано:
для уведомления менеджера о недоставленной SMS;
если SMS не доставлена, то отправить клиенту email.
Пример
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('rarus.sms4b', 'FinalStatus', 'finalStatusHandler');
/**
* @param Rarus\Sms4b\Sendings\Messages\Message $message
* @param Rarus\Sms4b\Sendings\Messages\Status $status
*/
function finalStatusHandler($message, $status) {
if ($status->isNotDelivered()) {
//уведомление клиента по почте
}
Событие LoadIncoming
Обработчики события LoadIncoming запускаются после загрузки входящего SMS. Событие может быть использовано для информирования менеджеров о входящем SMS.
Обработчики события BeforeSmsSend запускаются до принятия SMS на отправку. Событие BeforeSmsSend может быть использовано для изменения параметров рассылки: номер телефона, текст SMS, отправитель.
Обработчик должен возвращать массив вида array("номер телефона" => "текст"). Если обработчик ничего не возвращает, то SMS не будет отправлена.
Компонент позволяет посетителю сайта отправить себе SMS с контактной информацией сайта, на котором он находится. Компонент можно разместить в разделе «Контакты». Посетитель вводит свой мобильный номер и нажимает кнопку «Получить контакты по SMS» и получает SMS с контактами. В результате клиент всегда может связаться с вами и поделится контактами с друзьями.
Чтобы настроить компонент перейдите в настройки модуля SMS4B и укажите:
текст SMS-сообщения;
ограничение количества отправок SMS на один номер. (для предотвращения СПАМа);
номера на которые не распространяется ограничение на количество отправок (опционально).
Продолжаем улучшать наш модуль, и сегодня я расскажу вам о новом функционале в версии 1.5.1.
Вкратце:
Отправка SMS из списка заказов.
Новые события для модуля интернет-магазин.
Новые события для блока CRM.
События для телефонии.
Давайте рассмотрим все новинки детально и с примерами.
Новые возможности для модуля «Интернет-магазин»
Добавлена возможность рассылки SMS напрямую из списка заказов (на номера выбранных/отсортированных заказов) Можно использовать как стандартные шаблоны (аналогичные почтовым), так и создать собственные в настройках модуля.
Добавлена возможность отправки SMS при смене статуса отгрузки.
Добавлена возможность использовать макрос #ORDER_ID# в качестве номера телефона получателя (подхватывается телефон, указанный в заказе).
Отправка SMS пользователям
Появилась возможность отправлять SMS из списка пользователей в административной панели.
При выборе свойства, в котором хранится мобильный телефон, теперь можно указывать логин пользователя.
Новые события для блока задач:
Оповещения по SMS о наступления контролькой точки по задаче.
Оповещения по SMS о добавлении нового комментария к задаче.
Добавлена возможность настройки отправки сообщений по блоку задач для отдельных рабочих групп или без рабочих групп.
Новые события для блока CRM:
Детализирована отправка для разных статусов лида и стадий сделки — для каждого отдельного статуса своя настройка.
Добавлена возможность оповещения о Делах CRM (встречи/звонки) по SMS.
Телефония:
Уведомление о пропущенном звонке.
Автоответчик по SMS.
Дополнительные улучшения
Добавлена настройка "Активность" — возможность отключения модуля в настройках.
Добавлена возможность не удалять SMS-шаблоны модуля.
Добавлена возможность запрета отправки в ночное время.
В списке отправленных SMS теперь есть развернутое сообщение об ошибках.
Всем привет! Продолжаем улучшать наш модуль, и сегодня я расскажу вам о новом функционале в версии 1.3.0.
Отправка SMS из бизнес-процессов
Самый простой случай уже был реализован Антоном Долганиным. Мы проработали основные сценарии использования и добавили еще три активити. Сейчас мы поддерживаем:
Отправка на конкретный номер (было).
Отправка пользователю.
Отправка лиду.
Отправка контакту.
Каждое активити работает со своей предметной областью и “умеет” найти телефон и отправить SMS-сообщение. И еще напишет об этом в лог самого бизнес-процесса.
Отправка на конкретный номер. Все просто.
Отправка пользователю. Указываете пользователя, указываете свойство, в котором хранится телефон.
Отправка лиду. Выбираем лид и указываем свойство с телефоном, способ отправки.
Отправка контакту. Выбираем контакт и указываем свойство с телефоном, способ отправки.
Блок CRM Добавили поддержку событий для контактов/лидов/сделок и дел в CRM.
Полезные мелочи Фильтрация задач по группам и поддержка событий о КТ и новом комментарии.
Быстрые ссылки к шаблонам SMS-сообщений.
Режим отладки. Запись отладочных сообщений при отправке СМС. Лог предназначен для технических специалистов для быстрого диагностирования проблем.
Развитие функционала У нас запланированы еще минимум 2 версии модуля, которые планируем выпустить до конца этого квартала. Сейчас в планах развитие функционала по блокам CRM (детальные шаблоны для разных статусов лидов/сделок) и магазина (отправка СМС прямо из списка заказов).
Если у вас есть готовые сценарии — пишите нам, и мы постараемся включить их в ближайшие обновления.
Продолжаем улучшать наш модуль и сегодня я расскажу вам о новой возможности, которой посвящен этот релиз.
Добавлен конструктор СМС событий. Конструктор позволяет на основе любого почтового события отправить СМС.
В редакции "Бизнес" по умолчанию более 65 почтовых событий — это все можно отслеживать по SMS.
Настройка СМС событий
В настройках модуля есть вкладка “Настроить СМС событие”, где перечислены все типы почтовых событий.
Есть быстрый поиск по типу события или названию. По клику переходим к редактированию СМС события.
Для примера создадим СМС событие на отправку сообщения из обратной связи. Допустим нам надо отправлять СМС как пользователю, который написал сообщение, так и администратору сайта.
Доступные макросы - макросы, которые можно использовать в шаблоне СМС. Телефон. Здесь доступна гибкая настройка:
Можно указать просто номер. Например 7926*******.
Можно указать макрос, где хранится этот телефон. Например #PHONE#
Можно указать макрос с ID пользователя или его email. Будет осуществлен поиск мобильного телефона в следующем порядке - Телефон (PERSONAL_PHONE), Мобильный (PERSONAL_MOBILE), Рабочий (WORK_PHONE)
Текст СМС, которое отправляется пользователю - думаю тут и так все понятно. Это СМС будет отправлено за номер указанный в поле Телефон.
Текст СМС, которое будет отправлено администратору сайта - вводим шаблон СМС. Телефоны администратора берутся с вкладки “Настройка для сайта”. Можно задать один или несколько номеров.
Если шаблон СМС не заполнен, то и СМС отправляться не будет.
Вот и все, ничего сложного нет, не правда ли?
На заметку В поле телефон, вы можете указать номер вашего сотрудника, который отвечает на вопросы из формы обратной связи. Шаблон СМС для администратора оставляете пустым. Тогда при новом обращении через форму обратной связи ответственный сотрудник будет получать СМС. Ни одно обращение не останется без внимания!
Специально для обратной связи мы разработали отдельный модуль, который будет доступен уже через неделю =).
Тестируем
Как это работает
После заполнения формы идет отправка письма на основе почтового события FEEDBACK_FORM. Модуль перехватывает отправку письма и на основе шаблона СМС события отправляет СМС.
Посмотреть отправленные СМС можно в админ панеле Сервисы-> SMS4B -> Отправленные
С простым примером понятно, но как можно использовать еще?
Отправка результатов веб-форм по СМС
Для того, чтобы была возможность отправлять СМС при заполнении веб-формы, надо в ее настройках включить галочку “Отправлять результаты по email:” и создать почтовый шаблон. (письмо с результатами должно уходить).
Указываем в настройках, что результаты надо отправлять на email и настраиваем почтовый шаблон.
Переходим в настройки модуля SMS4B и находим нужный тип почтового события. В моем случае это FORM_FILLING_SIMPLE_FORM_1 (Заполнена web-форма "SIMPLE_FORM_1" )
Настраиваем СМС событие. Опять в примере будем отправлять СМС как пользователю, так и администратору сайта.
Недавно столкнулся со следующей задачей: При выполнении бизнес-процесса некоторых пользователей необходимо уведомлять о новых заданиях по СМС (не путаем задачи и задания).
Решение:
Для пользователей, вводим отдельную группу.
Навешиваем обработчик на добавление задания.
Если ответственный состоит в группе, то отправляем ему СМС.
Подробнее остановимся на дополнительных параметрах отправки СМС
Дата начала - тут понятно, дата когда СМС будет отправлена. Можно сразу, а можно и через час.
Дата актуальности - время, в течение которого наш сервис будет пытаться доставить СМС.
Разрешенный интервал отправки - Время, когда СМС может быть доставлено. Если мы разрешаем интервал с 8.00-20.00, а СМС будет отправлено в 22.00, то доставится оно в 8.00 следующего дня. Очень удобно, чтоб не получать СМС ночью =)
пс. Думаю скоро подобный функционал появится в нашем модуле из коробки.
Сам код, размещаем в init.php.
// отправка СМС при добавлении задания
AddEventHandler("bizproc", "OnTaskAdd", Array("MyClass", "OnTaskAdd"));
class MyClass{
function OnTaskAdd($ID, $arFields)
{
CModule::IncludeModule("rarus.sms4b");
global $SMS4B;
$groupID = 13; //ИД группы, для которой включено оповещение по СМС в бизнес процессах
$arFields["USERS"] = (array)$arFields["USERS"];
//достави всех пользователей группы
$filter = Array(
"GROUPS_ID" => Array($groupID)
);
$rsUsers = CUser::GetList(($by="ID"), ($order="asc"), $filter);
while ($arUser = $rsUsers->Fetch())
{
$arUserGroup[] = $arUser["ID"];
}
//посмотрели кому из них надо отправить СМС
$sendSmsm = array_intersect($arFields["USERS"], $arUserGroup);
//Достали мобильные телефоны
foreach ($sendSmsm as $userID)
{
$arPhones[] = $SMS4B->SearchUserPhone($userID);
}
//отправили СМС
if (count($arPhones) > 0 )
{
$text = $arFields["NAME"];
$SMS4B->SendSmsPack(
$text,
$arPhones,
false,
date("Y-m-d H:i:s", getmicrotime()+10), //дата начала отправки. +10сек от текущего момента
date("Y-m-d H:i:s", getmicrotime()+60*60*24), //дата актуальности - сутки
"IU" //разрешенный интервал отправки. с 8-00 до 20-00
);
}
}
}
Настроить категории обращений, указать для них ответственных и тему письма
Уведомлять ответственных по e-mail и СМС
Прикреплять файлы к сообщению
Задать уникальные настройки для каждого сайта
В настройках модуля вы указываете email и телефон ответственного по умолчанию. Все сообщения из формы обратной связи, где не указан тип обращения будут отправляться этому человеку.
В настройках модуля можно указать тип обращения, ответственного пользователя и тему письма. В этом случае обращение попадет к ответственному сотруднику.
В составе модуля два шаблона формы обратной связи. Первый шаблон всплывающей формы, второй - статическая форма. Посмотреть примеры форм можно на demo- странице после установки модуля.
Дополнительно к email оповещениям можно настроить СМС оповещение. Номер телефона берется из карточки пользователя - рабочий тел (WORK_PHONE). Ни одно обращение не останется без внимания!
Думаю данный модуль отлично подойдет для небольших проектов, где еще рано внедрять модуль “Техподдержка”, но уже требуется разделение обращений по категориям.
Андрей, не могли бы по всем вашим модуля такие посты складировать где-нибудь в Базе Знаний в вашем кабинете? Или уже есть? Чтобы под рукой в случае чего было.
Иногда у клиентов возникают потребности, которые трудно решить типовыми возможностями sms-модуля “SMS4B.ru” и возникает необходимость доработать функционал модуля под конкретные нужды заказчика. Сегодня мы делимся таким примером. У заказчика сайт с информацией о продаже подержанных автомобилей, на котором одни клиенты могут разместить объявление, а другие его найти и приобрести автомобиль. Заказчик хочет создать дополнительный платный сервис для покупатели автомобилей - sms уведомление о появлении нового объявления по нужной покупателю модели автомобиля и заданному диапазону цен. Это позволит покупателю оперативно отследить новое объявления по выгодной цене и первым отреагировать на него, а продавцу быстро продать автомобиль. После общения с клиентом мы детализировали требования:
Если пользователь хочет получать SMS уведомления о новых объявлениях - он должен оплатить услугу SMS информирования. Услуга включает разное количество SMS.
Ценой за каждый пакет SMS можно управлять из административного раздела сайта.
Приобретенное количество SMS становится внутренним балансом пользователя - с него автоматически снимаются SMS за каждое уведомление о новом объявлении.
Пользователь может выбрать интересные ему модели автомобилей, год выпуска, интервал цен - проще говоря сделать гибкий фильтр на уведомления.
При покупке услуги SMS информирования, администратор сайта поучает SMS о такой покупке.
При изменении подписки, тоже идет SMS-ка администратору.
Чтобы избежать недопонимания, мы прорабатываем сценарии использования и вместе с заказчиком его проходим:
Пользователь переходит в раздел подписки на SMS-уведомления.
Принимает соглашение получать уведомления.
Вводит номер мобильного телефона.
Видит свой баланс SMS и может купить один из пакетов (определенное количество) SMS на сайте. Приобретенные SMS зачисляются на внутренний счет пользователя, а администратору сообщается об этом SMS-кой.
Подписывается на те категории и год выпуска автомобилей, о которых хочет получать уведомления.
Указывает интервал цен, выше и ниже которых автомобили его уже не интересуют.
Сообщение об изменении профиля отправляется администратору SMS-кой, чтобы он был в курсе клиентской активности.
При поступлении нового автомобиля через форму добавления на сайте от пользователя или при добавлении нового авто на сайт администратором, происходит автоматическая рассылка об этом товаре.
Пользователь получает уведомление о новом авто, с его баланса списывается такое количество SMS, сколько занимает сообщение о новом авто.
Условия получения SMS о новом авто:
Пользователь согласен получать уведомления.
Указал номер мобильного телефона.
Имеет положительный баланс.
Приступаем к выполнению задачи
Регистрируемся на сайте sms4b
1) Заказчик регистрируется на сайте www.sms4b.ru. 2) Заказывает себе символьное имя, от которого будет производить рассылку.
3) Пополняет баланс SMS при помощи доступных систем оплаты.
4) Идем в каталог решений и устанавливаем модуль на сайт.
5) Настраиваем подключение к сервису.
Настраиваем сайт клиента
1) Создаем тип инфоблока «SMS-уведомления». Все данные мы будем хранить в ИБ это типа.
2) Тарифные планы храним в ИБ «Тарифы SMS». Указываем название, количество СМС и стоимость.
3) Создаем инфоблок «Подписчики». Элементы - фильтр для каждого пользователя, подписавшегося на рассылку, свойства - привязка к пользователю, множественная привязка к категориям товаров, ценовой предел.
4) Используем пользовательские поля для хранения баланса SMS и согласия пользователя получать SMS.
Форма подписки на SMS рассылку
Автоматическая рассылка SMS-уведомлений о новом товаре Независимо от того, добавляет администратор новое авто или это делает пользователь через форму добавления на сайте, происходит автоматическая рассылка. Вешаем обработчик на добавление элемента инфоблока, в котором фильтруем подписчиков по полям добавляемого авто. По свойствам добавленного элемента инфоблока происходит автоматическая генерация SMS сообщения. Тело SMS сообщения формируем из отдельного почтового шаблона, заменяя подготовленные макросы. Отправляем каждому попавшему в фильтр подписчику SMS-ку о новом авто. После отправки снимаем с подписчиков ровно столько SMS, сколько занимает результирующее сообщение (учет количества частей SMS).
Список подписчиков
Основная цель страницы - дать администратору сводную информацию о подписчиках SMS-уведомлений с удобным поиском.
Отправленные SMS
Можно увидеть, что было отправлено пользователям в админке: «Сервисы» >> «SMS4B» >> «Отправленные»
Дополнительные уведомления для администратора Текст SMS для администратора формируем из почтового шаблона.
Вместо заключения Обращение клиента превратилось в интересную задачу, которая решена и мы получили еще одного довольного клиента. Связаться с нами вы всегда можете через форму обратной связи на нашем сайте.
Сервис sms4b.ru сообщает о выходе релиза новой версии 1.1.0 модуля для 1С-Битрикс. Данный модуль позволяет расширить функционал сайта под управлением CMS «1С-Битрикс: Управление сайтом», «1С-Битрикс: Корпоративный портал» и других продуктов, созданных на платформе 1С-Битрикс. Что нового?
Поддержка многосайтовости, что дает возможность задать индивидуальные настройки модуля для каждого сайта, используя единую CMS 1С-Битрикс.
Более гибкая настройка обработки событий магазина. Теперь можно указывать, при каких событиях и изменениях статуса заказа отправлять клиенту СМС.
Дублирование СМС на номер администратору при заданных событиях и изменениях статуса заказа. Отдельные шаблоны сообщений для администратора и клиента сайта.
Поддержка резервного сервиса СМС рассылок и новая опция, использование которой позволяет информировать администратора сайта о недоступности основного сервиса СМС рассылок по e-mail.
Обработка событий задач для «1С-Битрикс: Корпоративный портал». Теперь можно настроить условия отправки СМС-сообщения при добавлении, удалении, редактировании задачи в соответствии с ее приоритетом.
Поддержка многосайтовости Теперь для каждого сайта можно задать индивидуальные настройки модуля в рамках использования единой CMS 1С-Битрикс:
Можно выбрать имя отправителя сообщения по умолчанию.
Включить транслитерацию СМС.
Указать код свойств магазина, где хранится телефон покупателя.
Для интернет магазина можно указать список событий и изменений статуса заказа, при которых необходимо отправлять СМС клиенту.
Отдельно указать номер телефона администратора.
Настроить список событий, при наступлении которых отправляется СМС на телефон администратора.
Более гибкая настройка обработки событий магазина Теперь можно указывать, при каких событиях и изменениях статуса заказа отправлять клиенту СМС выборочно.Дублирование СМС на номер администратору
Появилась возможность задать номер (номера) администратора отдельно для дублирования отправки СМС при указанных событиях и изменениях статуса заказа.При этом можно для администратора использовать шаблоны сообщений отличные от шаблонов для клиентов сайта.Поддержка резервного сервиса СМС рассылок Если основной сервис СМС рассылок не доступен, модуль автоматически подключится к резервному сервису. В общих настройках добавлена опция, включение которой, позволяет информировать администратора сайта о недоступности основного сервиса СМС рассылок по e-mail.
Обработка событий задач для «1С-Битрикс: Корпоративный портал». Теперь можно настроить условия отправки СМС-сообщения при добавлении, удалении, редактировании задачи в соответствии с ее приоритетом.
Иногда функционала модуля SMS4B не хватает на все надобности пользователей. Как расширить его функционал?
Скорей всего все Ваши проблемы может решить добавление пары строк в файл init.php.
Итак, задача, нужно добавить дополнительное уведомление по sms администратору о смене заказа.
Заходим в /bitrix/php_interfaces/init.php(если его нет, то создаем). И пишем простой код.
AddEventHandler("sale", "OnSaleStatusOrder", "MyOnSaleStatusOrder");
function MyOnSaleStatusOrder($ID, $val)
{
if (CModule::IncludeModule("rarus.sms4b"))
{
global $SMS4B;
//текст SMS
$text = "У заказа №".$ID." поменялся статус заказа";
//на какой номер отправляется SMS
$adminPhoneNumber = "79037976505";
$SMS4B->SendSms($text, $adminPhoneNumber);
}
}
Ну а дальше сколько Вам фантазии хватит. Спасибо за внимание.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».