Бот для согласования доставки. WA + Bitrix24
МаксимВсем привет!
Чат боты развиваются быстрым темпом, пользователей все больше и больше, поэтому бизнесы начинают использовать их как рабочий инструмент для автоматизации и упрощения взаимодействия с клиентами.
Поэтому за этим ко мне обратился владелец фабрики Стекло24, которому надо было разработать самостоятельную систему с интеграцией Bitrix24 для автоматизации согласования доставки
Для максимального удобства клиента был разработан бот для Telegram и WhatsApp. Основная суть - согласование данных доставки и отправка данных логисту.
Так как это WA, официальное API не доступно, поэтому пришлось искать обходные пути, тестировать различные серые варианты) Подробнее функционал и проблемы расписал ниже 👇
Бюджет проекта: 25000р - разработка, 5000р/3мес - обслуживание
Срок разработки: 7 дней
Интеграция Bitrix24
Когда заказ готов, его переносят в колонку со статусом согласование доставки (на скрине оранжевая колонка). На эту колонку настроен webhook для уведомления сервера. По хуку передаются данные заказа и заказчика, после чего бот предлагает согласовать заказ.

Согласование заказа
Вначале у клиента узнаем удобно ли ему согласовать доставку. Если бот написал в неподходящее время, предлагаем выбрать другую дату.

Так же у одного заказчика может быть несколько заказов, чтобы не запутаться сделали меню. Тут я столкнулся с главной проблемой WA - отсутствие удобного функционала кнопок) К сообщению нельзя прикрепить более 3 кнопок, нельзя редактировать кнопки, поэтому приходится присылать по несколько сообщений в меню. Так же нет клавиатурных кнопок, которые висят постоянно. Поэтому меню вызвать можно только отправив сообщение с ключевым словом (меню, заказы, мои заказы и т.д.).

Первым пунктом подтверждаем адрес доставки, который указан в битриксе изначально. Если требуется изменить адрес, то введенный адрес проверяется с помощью API GoogleMaps - есть ли такой адрес в МСК или МО.

Следующий шаг - выбор даты доставки. Если нет подходящей даты, можно посмотреть другие. Бот автоматически отсекает выходные и праздничные даты.
Тут опять я столкнулся с проблемой кнопок, поэтому пришлось делать выбор даты цифрами.

Далее идет выбор периода времени доставки.

Последний вопрос - нужен ли пропуск логисту для въезда на территорию.
Так же предусмотрен вариант, если клиент не отвечает более 30 минут. Тогда бот предлагает продолжить согласование. Если игнор продолжается более дня, то бот подключает в чат логиста.
В конце каждой ветки диалога результат заносится в битрикс и заявка меняет статус в системе.

В основе бота лежит асинхронный, что дает возможность использования бота большим количеством пользователей без зависаний. Деплой бота реализован на сервере linux.