# Смарт-процесс как безопасная прокладка в Битрикс24

> Как принять результаты внешнего сервиса прозвона в Битрикс24 без входящего вебхука: смарт-процесс-«Перемещатель» и бизнес-процесс, который двигает лиды.

- Авторство: Автор: Максим [human]
- Текст написал Максим. ИИ исправил только опечатки и пунктуацию, смысл и стиль автора не менялись.
- Опубликовано: 2024-08-05
- Теги: Битрикс24, безопасность
- Адрес: https://dgtor.blog/posts/smart-process-as-proxy/

От заказчика получено задание: нужно в сервис по прозвону отправлять заявки через API, после чего сервис будет по API возвращать результат.

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

А вот обратно, если дадим вебхук от Битрикс24, то получаем дыру в безопасности размером со вселенную.

Какие есть варианты?

- Написать промежуточный скрипт. Но тут те же яйки, только в профиль. Хук с опасными правами будем хранить на своей стороне. Отказ.
- Сделать CRM-форму в Б24, на которую по API с сервиса будет идти отправка данных. Достаточно номера телефона, в настройках формы будем объединять дубликаты. А на нужную стадию поставим триггер на заполнение формы. Выполняем.

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

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

Потренировали на браке — полное фиаско: лид как был в браке, так и остаётся, а в CRM создаётся новый лид.

Что делать? Писать обработчик… и тут вспомнил идею Максима Белого про использование смарт-процесса как прокладки между CRM и внешним сервисом.

Создал СП «Перемещатель» вида Список с включёнными бизнес-процессами и с одним дополнительным полем «Тип действия» типа Строка (чтобы было проще).

> Вообще частая история, когда вначале приходит одно ТЗ «Все успешные будем перемещать в точку Х», а через неделю апгрейд «Неуспешные в Y», и ещё через два дня «Хорошо бы Y делить на Z и G и… по тем, что в Х, ставить задачу».

В название СП будем передавать ID лида, в поле «Тип действия» W — для успешных, L — для брака и что ещё душе угодно для других статусов.

![Форма создания элемента смарт-процесса «Перемещатель» с двумя полями: «Название» и «Тип действия»](./sp-element-form.png)

Форма создания элемента в СП.

Далее используем БП, срабатывающий на создание.

![Бизнес-процесс «Исполнитель» на смарт-процессе: по результату ветка «Успех» запускает «Дозвонились», ветка «Провал» — «В ТоталБрак», затем пауза в один день и удаление элемента](./sp-bp-executor.png)

БП «Исполнитель» на СП, работает на создание. Элементы СП удаляю через сутки для чистоты Б24.

Который будет запускать БП на лиде.

![Бизнес-процесс на лиде: в ветке «Дозвонились» сначала ставится задача «Связаться», потом статус меняется на «Дозвонились»](./lead-bp.png)

Тут всё просто: ставим задачу и меняем статус. Всегда в такой последовательности, иначе статус поменяется, БП умрёт, задачу мы не получим.

Тестим, работает. Перекрестим — пусть приносит деньги заказчику, а мне очередная статуэтка «Костыль недели».
