Модули интеграции с сервисами отправки SMS нужны для информирования клиентов и сотрудников о любых событиях, возникающих в ходе бизнес-процесса. Например, используя блок Отправить SMS, вы можете настроить автоматическую отправку SMS с данными о статусе заказа для клиентов или с информацией о постановке важных задач для коллег.
Также такие модули можно использовать при настройке двухфакторной аутентификации или авторизации в системе по номеру телефона и одноразовым кодам.
Вы можете воспользоваться готовыми модулями интеграции SMSЦентр и SMSRU или создать пользовательский модуль для работы с другим сервисом.
Создание и настройка модуля интеграции
начало внимание
Создавать и настраивать модули могут только пользователи, включённые в группу Администраторы.
конец внимание
Чтобы создать модуль интеграции с сервисом отправки SMS, выполните следующие действия:
- Перейдите в Администрирование > Модули.
- В правом верхнем углу нажмите кнопку +Модуль и в открывшемся окне выберите опцию Создать.
- Введите название и описание модуля и нажмите кнопку Создать.
- В настройках модуля перейдите на вкладку Методы API и нажмите кнопку Редактировать. Откроется редактор методов.
- Перейдите на вкладку Скрипты и подключите следующие интерфейсы:
// Cтруктура данных для хранения ответа проверки соединения.
interface SMSTestConnectionResult {
success: boolean;
failReason: string;
}
// Cтруктура данных для хранения ответа отправки СМС на номер.
interface SMSSendError {
phone: string;
statusCode?: number;
statusText?: string;
}
- Реализуйте функцию отправки SMS:
async function SMS_SendSMS(phones: string[], msg: string): Promise<SMSSendError[]> {
// содержимое функции
}
- Сохраните и опубликуйте скрипт.
После этого включённый модуль можно использовать для отправки SMS-уведомлений в ходе бизнес-процесса или для авторизации в системе.
Пример интеграции
Рассмотрим подробнее создание модуля на примере интеграции с сервисом SMS Aero. Для интеграции с этим сервисом требуется дополнительно указывать электронную почту, на которую зарегистрирована учётная запись в SMS Aero, а также API-ключ. Эти поля нужно вынести на страницу настройки модуля. Для этого:
- Перейдите на страницу Администрирование > Модули. В правом верхнем углу нажмите кнопку +Модуль, а затем Создать. Укажите название модуля и краткое описание.
- Откройте вкладку Настройки и создайте два строковых поля, в которых будут храниться настройки для подключения к SMS Aero со стороны модуля:
- API key — API-ключ для соединения модуля и сервиса SMS Aero;
- email — электронная почта, на которую зарегистрирована учётная запись в SMS Aero. Используется для авторизации в сервисе.
- Вернитесь на страницу модуля — на ней появятся добавленные в предыдущем пункте поля:
- Перейдите в редактор скриптов: Настройки модуля > Методы API > Скрипты и добавьте в файл следующий код:
// Cтруктура данных для хранения ответа проверки соединения.
interface SMSTestConnectionResult {
success: boolean;
failReason: string;
}
// Cтруктура данных для хранения ответа отправки СМС на номер.
interface SMSSendError {
phone: string;
statusCode?: number;
statusText?: string;
}
const api_key = Namespace.params.data.api_key
const email = Namespace.params.data.email
// Отправить СМС на номера.
async function SMS_sendSMS(phones: string[], msg: string): Promise<SMSSendError[]> {
const smsErrs: SMSSendError[] = []
const authSuccess = await tryAuth()
if (!authSuccess) {
smsErrs.push({ phone: '', statusCode: 401, statusText: 'Unauthorized' })
return smsErrs
}
const phoneListString = phones.join('&numbers[]=')
const res = await fetch(`https://${email}:${api_key}@gate.smsaero.ru/v2/sms/send?numbers[]=${phoneListString}&text=${msg}&sign=SMS Aero`)
if (!res.ok) {
// smsErrs позволяет написать отдельную обработку для каждого номера телефона
smsErrs.push({phone: '', statusCode: res.status, statusText: res.statusText})
return smsErrs
}
return smsErrs
}
async function tryAuth(): Promise<boolean> {
const res = await fetch(`https://${email}:${api_key}@gate.smsaero.ru/v2/auth`)
if (!res.ok) {
return false
}
return true
}
- Сохраните и опубликуйте скрипты.
После включения модуля и заполнения его параметров вы сможете выбрать интеграцию с сервисом SMS Aero при настройке двухфакторной аутентификации, авторизации в системе по номеру телефона и одноразовым кодам или блока Отправить SMS.