Repo for hackathonsrus
Наша система внедряется в воронку продаж менеджера (CRM система) и автоматически собирает и отправляет на сервер данные клиента, которые проходят через обученную ML модель, где по результатам создаются новые лиды, которые автоматически распределяются и отправляются в компании-партнеры.
Основная идея проекта: полностью автоматизированный сервис, создающий новые лиды на основе текущих лидов.
Команда разработчиков обучает ML модель на данных клиентов, собранных за последние годы работы компании. Далее происходит настройка и внедрение системы в воронку продаж CRM (например в виде триггера на последних стадиях работы с клиентом: в момент перехода клиента к стадии успешной сделки или отказа).
Обучение модели происходит по принципу, указанному в матрице по портретам клиентов. Предполагается, что в базе данных будут только 0 и 1, где 1 - услуга по которой пришел клиент. Далее на основе этой базы данных, модель предлагает рекомендации по каждому из клиентов, основываясь на гибридной модели рекомендаций, которая использует сразу два метода рекомендаций User-based и Item-based.
Совпадение кросс-услуг между компаниями происходит на основе данных матрицы кросс-услуг, составленной первоначально вручную.
Матрица кросс-услуг
С этого момента система работает автоматически.
В момент, когда лид попадает на последнюю стадию, активируется триггер и происходит передача карточки клиента на сервис.
Карточка клиента проходит процесс валидации (конвертация данных в удобный для модели формат,
проверка полноты информации для корректной работы ML модели и пр).
В случае, если валидация прошла успешно, данные по клиенту записываются в БД Pending, где они ожидают дальнейшей обработки.
Раз в N-минут происходит процесс изъятия данных из БД Pending и отправка их в ML модель.
Схема работы ML модели
Модель возвращает список из рекомендаций для клиента а также выдает вероятности, с которой эта услуга подойдет клиенту. В результате работы ML модели мы получаем обновленную БД Processed, в которой хранятся все вероятности сделки того или иного лида, по тому или иному продукту.
Раз в N-минут, данные из БД Processed проходят этап отбора наиболее релевантного продукта для клиента. Здесь же происходит разрешение конфликтов между схожими продуктами компаний-партнеров с применением показателей:
- конверсия релевантных лидов в оплату;
- ARPPU (этот показатель эксперты обозначили как важный с точки зрения целевого роста).
Как только процесс отбора релевантного продукта будет завершен, совокупные данные по клиенту, выбранному продукту и компании, которой будет отдан лид, записываются в БД Waiting, где будут ожидать отправки выбранной компании.
Раз в N-минут, данные из БД Waiting собираются в формат, приемлемый для той или иной компании, и отправляются компаниям, где уже на стороне интеграции происходит распределение между менеджерами.
Раз в N-дней будет происходить дообучение ML-модели на основе обратной связи. То есть в ML-модель будут загружаться два типа новых поступающих данных:
- Новый лид
- Новые сделки
На основе данных происходит дообучение:
- Когда в базе данных добавляется новый клиент, модель рассчитывает рекомендации уже на основе своего существующего алгоритма.
- Новые сделки значат, что менеджер предложил клиенту какую-то услугу, и тогда он либо воспользовался ей (в таблицу ставится 1), либо нет (в таблицу ставится -1). В случае, если менеджеру вновь понадобится узнать рекомендации для этого клиента, то модель заново рассчитает для него рекомендации.
При этом предполагается реализовать следующие фичи, увеличивающие ценность продукта:
- тонкая настройка потребностей (обновление портрета клиента, уточнение Job Story, JTBD, CJM). За счет этого модель будет дообучаться по параметрам потребностей, и на основе логики создавать новые связки услуг в рамках матрицы кросс-услуг в процессе дообучения;
- анализ истории поиска клиента с помощью браузеров (использование cookies, не противоречит закону о защите прав потребителя) и, на основе этого анализа, выдача рекомендации;
- настройка объема выдачи релевантных предложений путем изменения вручную минимального значения вероятности - рейтинга, к примеру, если были выбраны все релевантные лиды с рейтингом более 80 баллов, то возможно понизить порог до 78, но при этом нужно быть более внимательными в продажах и к обратной связи службы поддержки (не допустить спам).
В рамках этой реализации, мы рекомендуем компаниям, которые не используют CRM системы, внедрить в процесс продаж какую-либо CRM систему и использовать преимущество автоматизации нахождения новых лидов при помощи нашего сервиса.
Преимущества этого подхода:
- автоматизация рабочих процессов приведет к экономии времени менеджеров по продажам, что приведет к сокращению затрат на персонал, что в конечном итоге приведет компанию к увеличению прибыли;
- увеличение конверсии за счет сбора и анализа данных по воронке продаж;
- настройка и повышение эффективности рекламных компаний на основе данных машинного обучения.
В случае, если компания не может интегрировать наш сервис или CRM в принципе, мы будем предлагать визуальную часть
для ручной работы с нашей системой. Интерфейс пользователя предусматривает поля в зависимости от роли пользователя
в соответствии со схемой организации прав доступа в рамках группы компаний-партнеров.
Схема организации прав доступа
Наш продукт предполагает микросервисную архитектуру для равномерного распределения нагрузки по всем этапам. Этот метод также позволит нам изолировать и унифицировать части сервиса (центр валидации данных, центр непосредственного общения с клиентом и пр.), что в дальнейшем даст возможность для масштабирования с меньшими усилиями и затратами, как денежными, так и временнЫми.
Система будет безопасна как для компаний, так и для клиентов, так как мы не планируем хранить конфиденциальную информацию,
а будем сохранять в базах данных нашей системы только обезличенные данные, которые нужны для работы ML модели
(возраст клиента, общий доход в месяц и пр.) и будет связывать клиента по связке ID и названию компании.
Например: во время начальной валидации мы отбрасываем все конфиденциальные данные (или изначально их не выгружаем) и
делаем связку client_id - parent_company. В самом конце, во время отправки нового лида, в случае, если был рекомендован
продукт компании, отправившей лид, мы просто отдаем связку id - related_product и создаем в CRM новый лид с ссылкой на клиента.
Если же рекомендован продукт компании-партнера, мы запрашиваем уже все нужные дополнительные данные у компании, отправившей лид,
надежно упаковываем все данные и отправляем в компанию-партнер.
В этом случае всем компаниям, внедрившим нашу систему, нужны API для безопасной передачи конфиденциальных данных,
так как средства коммуникации вроде email ненадежны.
Конечный пользователь входит в чат-бот Telegram по QR-коду, который формируется индивидуально под каждую компанию, внедрившую нашу систему. При первом запуске конечный пользователь подтверждает согласие на получение, обработку и обмен персональными данными. Это поможет снизить юридические риски обмена информацией между компаниями-партнерами.
Информацию чат-бот передает обезличено и рассказывает о релевантном продукте и/или реферальной системе без конфиденциальной и финансовой информации о клиенте. То есть мы не отправляем общие рассылки в чат-бот, а отправляем релевантные предложения для клиента, при их наличии (история сообщений у каждого пользователя будет своя).
При этом конечному пользователю будет рассказано о преимуществах реферальной системы (рекламный баннер в чате). Для повышения ценности чат-бота, клиентам будет предлагается участвовать в реферальной системе по всем компаниям-партнерам:
- кэшбэк на карты, выпущенные Экспобанком, при покупке услуг у компаний партнеров;
- накопление баллов "экспобалл" (аналог "Сберспасибо") и оплата ими части услуг компаний партнеров,*
- оценка качества обслуживания и обратная связь (оставить отзыв); **
- опросы и анкетирование пользователей для подразделений маркетинга и продакт-менеджмента;
- скидки по конкретной услуге компании-партнера;
- скидки по бандлам (bundle) — продажи одним комплектом, когда несколько взаимодополняющих услуг продаются вместе, предложения формируются на стадии первичного касания пользователем - например, «Вместе дешевле» и показать размер экономии.
-
- необходимо создание базы данных по подсчету бонусов "экспобалл" при успешной конверсии в оплату, при этом настройки реферальной системы будет продиктована регулированием затрат на лидогенерацию: сколько компании готовы начислить бонусов за их услугу исходя их логики экономии на стоимости привлечения лида со стороны и увеличения retention клиента. ** - возможность голосового ввода, распознавания и всегда эмоционально корректного общения с конечным пользователем.
Архитектура прототипа проекта (MVP)
- Происходит проверка прав менеджера;
- На вход системе поступают данные о клиенте (в формате Excel таблицы);
- Происходит валидация данных: проверка наличия важных полей для работы ML модели, проверка наличия пользователя в базе данных для исключения лишней нагрузки на сервис (если такой пользователь уже был обработан, возвращается сохраненные данные обработки, при отсутствии дообучения модели с момента последней проверки);
- Данные пользователя сохраняются в системе;
- Происходит обработка данных клиента ML моделью;
- Обработанные данные сохраняются в базе данных;
- После получения результата работы ML модели, данные обрабатываются и упаковываются для дальнейшей отправки менеджеру;
- Происходит проверка наличия возможности отправки релевантного предложения через Telegram бота;
- Происходит отправка данных менеджерам данной/других компаний (через интеграцию или на фронтенд) сообщение (пуш, смс или emai) с предложением релевантной услуги.
- В CRM срабатывает триггер, которой запускает процесс отправки данных клиента на сторону нашего сервиса;
- Данные приходят и отправляются на валидацию;
- Если данные валидны, они записываются в DB Pending и ожидают, когда их заберет ML модель для анализа и подбора релевантных услуг;
- ML модель забирает данные, анализирует их и отправляет результат в DB Processed;
- Бэкенд забирает данные из DB Processed, обрабатывает их на конкурентность (Conflict Resolving Center), где выбирает наиболее подходящий продукт, и записывает данные в DB Waiting;
- Готовые данные забираются из DB Waiting через Leads Sending Center, упаковываются и отправляются в компанию в качестве нового лида (если компания-получатель та же, откуда пришел лид, то отправляем данные, что у нас есть, если это другая компания, то запрашиваем конфиденциальные данные по клиенту у компании-отправителя и отправляем все вместе в компанию-получатель);
Чтобы запустить итоговый сервис, нужно открыть консоль, скачать этот репозиторий:
git clone https://github.com/hackathonsrus/expohack_kaktusi_18.git
Зайти в папку репозитория:
cd expohack_kaktusi_18
Установить зависимости для корректной работы программы (нужен установленный язык Python и менеджер пакетов pip):
pip install -r requirements.txt
Ввести команду запуска программы:
make dev
Запустится сайт по адресу: http://127.0.0.1:5000/ Здесь вы можете ввести тестовые логин (iv@gmail.com) и пароль (IV1) и протестировать систему, передав ей наш тестовый файл
Все полезные материалы можно найти в materials,
Весь код лежит в папке app,
Визуальная (фронтенд) часть MVP здесь.