Мазмұнға өту
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
  • Қоңырау нәтижесінің webhook-ы мәмілені табады, өрістерді бос мәндермен өшірмей нәтижені жазады және бизнес-процесті іске қосады; бөлек науқанда тест режимі бар
  • Іріктеу логикасы Bitrix ядросынсыз таза функцияларға шығарылып, 66 smoke-тексерумен қамтылған
Архитектура
CRM сатыларының тарихы → Cron: іріктеу және дедупликация → Дауыстық робот API-ы → Нәтиже webhook-ы → Мәміле және бизнес-процесс
Нәтиже

Тұрып қалған өтінімдер қолмен қоңыраусыз роботқа автоматты түрде кетеді, ал клиент әртүрлі карталар бойынша екі қоңырау алмайды. Әр іске қосу журналға әр карта бойынша өткізіп жіберу себебін жазады.

Нені қайта қолдануға болады
Сатылар тарихы бойынша «тұрып қалған» мәмілелерді іріктеу Сыртқы сервиске жіберудің үш қабатты идемпотенттілігі Қоңырауларды телефон бойынша дедупликациялау