Автоматично обаждане от гласов робот по „заседнали“ онлайн заявки
Клиентите започваха онлайн заявка и спираха на някоя от стъпките — регистрация, доходи, данни за автомобила, подписване. Мениджърите не смогваха да се обадят на всеки ръчно, а изпращането на всички подред към робота би означавало повторни обаждания до един и същ човек и обаждания до хора, които вече са се отказали.
Роботът работи с кампании — отделна за всяка стъпка на заявката; един клиент може да има няколко карти; повторното стартиране на cron не бива да води до второ обаждане, а обаждания са разрешени само в дневен прозорец.
- Cron на всеки 15 минути избира сделки без движение от 30+ минути по стандартната история на етапите: смяната на етапа нулира таймера
- Карта на етапите на фунията: всяка стъпка от заявката води към своя кампания на робота, крайните, отказните и служебните етапи не се изпращат; прозорец за обаждания 08:00–21:00
- „Един клиент — едно обаждане“: картите се обединяват по телефон, за обаждане се изпраща най-новата, а негативен изход сваля от обаждане всички карти с този номер
- Идемпотентност на три нива: flock срещу паралелни стартирания, полета на поръчката в сделката и стабилен import_id на страната на робота
- Уебхукът за резултата от обаждането намира сделката, записва изхода, без да изтрива полета с празни стойности, и стартира бизнес процес; има тестов режим с отделна кампания
- Логиката за подбор е изнесена в чисти функции без ядрото на Bitrix и е покрита с 66 smoke проверки
Заседналите заявки отиват към робота автоматично, без ръчно обаждане, и клиентът не получава две обаждания по различни карти. Всеки прогон записва в лога причината за пропускане на всяка карта.