Перейти к содержимому
N1
Интеграции · Bitrix24 · голосовой робот

Автообзвон «застрявших» онлайн-заявок голосовым роботом

Клиент: Финансовая компания, NDA Категория: Интеграции Стек: PHP 8, Bitrix24 D7 и REST, история стадий CRM, REST API голосового робота, webhook, cron, flock Срок: внедрялось поэтапно
Проблема

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

Ограничения

Робот работает кампаниями — своя на каждый шаг заявки; у одного клиента бывает несколько карточек; повторный запуск cron не должен давать второй звонок, а звонить можно только в дневное окно.

Что сделал
  • Cron каждые 15 минут выбирает сделки без движения 30+ минут по штатной истории стадий: смена стадии сбрасывает таймер
  • Карта стадий воронки: каждый шаг заявки ведёт в свою кампанию робота, финальные, отказные и служебные стадии не отправляются; окно звонков 08:00–21:00
  • «Один клиент — один звонок»: карточки сводятся по телефону, в обзвон уходит самая свежая, а негативный исход снимает с обзвона все карточки этого номера
  • Идемпотентность в три слоя: flock от параллельных запусков, поля заказа на сделке и стабильный import_id на стороне робота
  • Вебхук результата звонка находит сделку, пишет исход без затирания полей пустыми значениями и запускает бизнес-процесс; есть тестовый режим на отдельной кампании
  • Логика отбора вынесена в чистые функции без ядра Bitrix и покрыта 66 smoke-проверками
Архитектура
История стадий CRM → Cron: отбор и дедуп → API голосового робота → Вебхук результата → Сделка и бизнес-процесс
Результат

Застрявшие заявки уходят роботу автоматически, без ручного прозвона, и клиент не получает двух звонков по разным карточкам. Каждый прогон пишет в лог причину пропуска по каждой карточке.

Что можно переиспользовать
Отбор «застрявших» сделок по истории стадий Трёхслойная идемпотентность отправки во внешний сервис Дедупликация обзвона по телефону