Настройка интеграции с SMS.RU

Инструкция описывает настройку отправки SMS через SMS.RU в CRM 4DEV через механизм базовых интеграций.

Связанная задача: CRM4DEV-1472.

1. Что делает интеграция

Интеграция позволяет отправлять SMS из CRM через SMS.RU:

При активной настройке SMS.RU типовой механизм отправки SMS перенаправляется в новый модуль Дев_ОтправкаSMSЧерезSMSRU, который работает с API sms.ru по HTTPS и JSON.

2. Предусловия

Перед настройкой проверьте:

  1. В базе есть элемент SMS.RU в справочнике Дев_БазовыеИнтеграции.
  2. У элемента SMS.RU заполнен Вид = SMS.RU.
  3. У элемента заполнены реквизиты НастройкиJSON и КомандыJSON.
  4. В конфигурации присутствует общий модуль Дев_ОтправкаSMSЧерезSMSRU.
  5. Пользователь имеет права на настройку сторонних сервисов и актуальных интеграций.

Если НастройкиJSON и КомандыJSON пустые, значит обработчик обновления 0.9.37.42 не отработал или не попал в базу. В этом случае заполните шаблоны вручную по разделу ниже.

3. Шаблон базовой интеграции

Откройте:

СервисСторонние сервисыБазовые интеграцииSMS.RU

Проверьте:

НастройкиJSON

В реквизит НастройкиJSON вставьте:

[
  {
    "Ключ": "ApiId",
    "Представление": "api_id",
    "Тип": "Строка",
    "ЗначениеПоУмолчанию": "",
    "Отображение": ""
  },
  {
    "Ключ": "Login",
    "Представление": "Логин (номер телефона)",
    "Тип": "Строка",
    "ЗначениеПоУмолчанию": "",
    "Отображение": ""
  },
  {
    "Ключ": "Password",
    "Представление": "Пароль",
    "Тип": "Строка",
    "ЗначениеПоУмолчанию": "",
    "Отображение": ""
  },
  {
    "Ключ": "ИмяОтправителя",
    "Представление": "Имя отправителя",
    "Тип": "Строка",
    "ЗначениеПоУмолчанию": "",
    "Отображение": ""
  },
  {
    "Ключ": "ТестовыйРежим",
    "Представление": "Тестовый режим (test=1)",
    "Тип": "Булево",
    "ЗначениеПоУмолчанию": false,
    "Отображение": ""
  },
  {
    "Ключ": "ПереводитьВТранслит",
    "Представление": "Переводить кириллицу в транслит",
    "Тип": "Булево",
    "ЗначениеПоУмолчанию": false,
    "Отображение": ""
  }
]

КомандыJSON

В реквизит КомандыJSON вставьте актуальный шаблон без кнопки тестовой SMS:

[
  {
    "Ключ": "ПроверитьПодключение",
    "Представление": "Проверить подключение",
    "Подсказка": "Запрос auth/check к sms.ru.",
    "АлгоритмКлиент": "Результат = Дев_ОтправкаSMSЧерезSMSRU.ПроверитьАвторизациюПоСсылкеИнтеграции(Объект.Ссылка); Сообщить(Результат.Описание);",
    "СопоставлениеПользователей": false,
    "НоваяСтрока": false
  },
  {
    "Ключ": "УзнатьБаланс",
    "Представление": "Узнать баланс",
    "Подсказка": "Запрос my/balance к sms.ru.",
    "АлгоритмКлиент": "Результат = Дев_ОтправкаSMSЧерезSMSRU.ПроверитьБалансПоСсылкеИнтеграции(Объект.Ссылка); Сообщить(Результат.Описание);",
    "СопоставлениеПользователей": false,
    "НоваяСтрока": false
  },
  {
    "Ключ": "ЗарегистрироватьWebhook",
    "Представление": "Зарегистрировать webhook",
    "Подсказка": "callback/add — регистрирует URL приема статусов sms.ru.",
    "АлгоритмКлиент": "Результат = Дев_ОтправкаSMSЧерезSMSRU.ЗарегистрироватьWebhookПоСсылкеИнтеграции(Объект.Ссылка); Сообщить(Результат.Описание);",
    "СопоставлениеПользователей": false,
    "НоваяСтрока": true
  }
]

Нажмите Записать.

Важно: если метод ЗарегистрироватьWebhookПоСсылкеИнтеграции отсутствует в текущей версии базы, кнопка webhook может не работать. Для первичной проверки интеграции достаточно кнопок Проверить подключение и Узнать баланс.

4. Создание актуальной интеграции

Откройте:

СервисСторонние сервисы → карточка SMS.RU

Создайте или откройте актуальную интеграцию SMS.RU.

Заполните:

ПолеЧто указать
Адрес интеграцииУникальное значение, например smsru_prod, smsru_test, smsru_crm4dev_1472_test
ПодключеноВключить
api_idAPI-ключ из личного кабинета sms.ru или тестовый ключ из Jira CRM4DEV-1472
ЛогинНе обязателен, если заполнен api_id
ПарольНе обязателен, если заполнен api_id
Имя отправителяЗаполнить, если имя согласовано в sms.ru
Тестовый режим (test=1)Включить для безопасной проверки без реальной отправки
Переводить кириллицу в транслитВключать только если нужен транслит

Нажмите OK или Записать.

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

5. Проверка подключения

После записи карточки откройте ее заново и выполните проверки.

Проверить подключение

Нажмите Проверить подключение.

Ожидаемый результат:

Подключение к sms.ru установлено.

Если появляется ошибка авторизации, проверьте api_id. Если api_id заполнен, логин и пароль не используются.

Узнать баланс

Нажмите Узнать баланс.

Ожидаемый результат:

Баланс sms.ru: <число> руб.

Если баланс получен, значит:

6. Проверка отправки SMS

Безопасная проверка без реальной отправки

  1. В карточке SMS.RU включите Тестовый режим (test=1).
  2. Откройте партнера или контрагента с телефоном.
  3. Нажмите Отправить SMS.
  4. Введите текст, например Проверка CRM4DEV-1472.
  5. Выполните отправку.

Ожидаемый результат:

Реальная отправка

  1. Снимите флаг Тестовый режим (test=1).
  2. Убедитесь, что баланс положительный.
  3. Проверьте номер телефона получателя.
  4. Если используется Имя отправителя, убедитесь, что оно согласовано в sms.ru.
  5. Отправьте SMS через карточку партнера/контрагента или через документ СообщениеSMS.

Ожидаемый результат:

7. Регламентная отправка

Для отправки документов СообщениеSMS через очередь должен быть включен регламент:

АдминистрированиеРегламентные заданияОтправкаSMS

Проверка:

  1. Создайте документ СообщениеSMS.
  2. Заполните адресата и текст.
  3. Проведите документ.
  4. Запустите или дождитесь выполнения регламента ОтправкаSMS.

Ожидаемый результат:

8. Статусы доставки

Статусы могут обновляться двумя способами.

Webhook

Если реализован и зарегистрирован webhook, sms.ru сам присылает статус на endpoint CRM.

Ожидаемый URL имеет вид:

<АдресВнешнегоСервераWebhook>/hs/restapi_v1/smsru/callback

Проверка webhook выполняется кнопкой Зарегистрировать webhook, если метод доступен в текущей версии базы.

Fallback-регламент

Если webhook не используется или callback был пропущен, статусы обновляет регламент:

ОбновлениеСтатусовДоставкиSMS

Он опрашивает sms.ru через sms/status.

9. Частые проблемы

В базовой интеграции пустые НастройкиJSON и КомандыJSON

Причина: не отработал обработчик обновления 0.9.37.42 или изменение не попало в базу.

Что сделать:

  1. Проверить версию ИБ.
  2. Проверить наличие обработчика УПДК_ОбновлениеИнформационнойБазы.ПерейтиНаВерсию_0_9_37_42.
  3. Временно заполнить JSON вручную из этой инструкции.
  4. Зафиксировать дефект миграции, если автозаполнение должно было выполниться.

Ошибка Адрес интеграции должен быть уникальным

Причина: в Дев_АктуальныеИтеграции уже есть запись с таким адресом.

Что сделать:

Кнопки не появились

Что проверить:

  1. Заполнен ли КомандыJSON в базовой интеграции.
  2. Записана ли базовая интеграция после вставки JSON.
  3. Открыта ли актуальная интеграция именно по шаблону SMS.RU.
  4. Закрыта и открыта ли форма заново после изменения шаблона.

Проверить подключение работает, но SMS не приходит

Проверьте:

Реальная отправка уходит не через SMS.RU

Проверьте:

  1. В актуальной интеграции включен флаг Подключено.
  2. Активна именно SMS.RU-интеграция.
  3. В журнале регистрации есть событие Отправка SMS (Дев_ОтправкаSMSЧерезSMSRU).
  4. Нет старой активной настройки SMS4B, которая перехватывает сценарий.

10. Минимальный чек-лист после настройки

ПроверкаОжидаемый результат
Базовая интеграция SMS.RU записанаВид = SMS.RU, JSON заполнены
Актуальная интеграция записанаОшибки уникальности адреса нет
Проверить подключениеПодключение успешно
Узнать балансПоказан баланс sms.ru
Отправка с test=1Ошибки нет, деньги не списаны
Реальная отправка без test=1SMS доставлена на телефон
Документ СообщениеSMSСохраняет результат отправки
Регламент ОтправкаSMSОбрабатывает исходящие SMS
Статусы доставкиОбновляются webhook или fallback-регламентом