Как заявки с сайта сразу попадают к менеджерам в MAX
Даниил Кулешов, фулстек-разработчик ·
Письмо на почту и колокольчик в админке ждут, пока менеджер их откроет, а клиент за это время может позвонить конкурентам. Мессенджер у менеджера всегда под рукой.
В интернет-магазине кондиционеров КлиматТех каждая заявка с сайта приходит в рабочую группу менеджеров в MAX.
Что приходит менеджеру
Сайт принимает два вида заявок: заказ из корзины и обратный звонок. По каждой в группу приходит сообщение:
- Заказ: номер, товары с количеством и суммой, остаток на складе по каждой позиции и итог. Если товара нет на складе, пометка стоит прямо в строке.
- «Крупный»: заказ от 150 000 ₽, чтобы его взяли первым.
- «Повторная заявка»: с этого телефона уже обращались: номер и статус прошлой заявки. Сам телефон в сообщение не попадает.
- Обратный звонок: страница сайта, с которой оставили заявку, и пометка, если клиент задал вопрос.
- Кнопки: «Связались», у заказа ещё «Ждёт оплаты», и «Открыть в админке».
Почему в чате нет имени и телефона клиента
В MAX уходят только номер заявки, товары и суммы. Имя, телефон и текст клиента остаются на сервере сайта: менеджер открывает их в админке по кнопке. Персональные данные не расходятся по телефонам сотрудников, а сроки хранения контролирует сайт: старые заявки он сам удаляет или обезличивает. Так проще соблюдать 152-ФЗ.
Статус меняется прямо из чата
Менеджер перезвонил клиенту и нажал «Связались». Статус в админке меняется, а группа видит, кто взял заявку, и двое не позвонят одному клиенту. Кнопками статус двигается только вперёд, отменить заявку можно только в админке.
Кнопки и команды работают только у сотрудника, который привязал свой MAX в админке. Ссылка для привязки одноразовая и действует 10 минут, а один аккаунт MAX привязан только к одному сотруднику. Если сотрудника отключили в админке, бот сразу перестаёт выполнять его команды.
Группа и личка: кому что приходит
Бот пишет в два места. В общую группу идёт всё, что касается заявок: это работа всей команды. В личку идёт то, что нужно одному человеку и только мешало бы в общем чате.
В группу менеджеров
- Новые заявки с кнопками, как описано выше.
- Смена статуса: кто и на какой статус перевёл заявку, из чата или из админки.
- Напоминание. Если заявка больше рабочего часа без реакции, бот пишет об этом в группу. Рабочие часы задаются в админке: ночью и в выходные бот не беспокоит.
- Утренняя сводка в начале рабочего дня: сколько звонков и заказов пришло за ночь (в понедельник за выходные) и на какую сумму, какие заявки ждут реакции, какие заказы больше рабочего дня ждут оплаты, каких товаров из заказов в работе не стало на складе или они сняты с продажи.
В группе менеджеры переписываются между собой, поэтому бот не встревает в разговор и отвечает только на команды: /new (новые заявки), /overdue (без реакции больше суток) и /today (заявки за сегодня).
В личку сотруднику
- Привязка. Сотрудник нажимает «Привязать MAX» в админке и переходит в бота по одноразовой ссылке. После этого бот знает его по имени.
- Меню. В личке бот отвечает на любое сообщение меню с кнопками «Новые», «Просроченные», «Сегодня», так что набирать команды не нужно. Ответ появляется на месте меню, и чат не засоряется.
В личку администратору
- Недельный отчёт по понедельникам: сколько было заявок, сколько выполнено и на какую сумму, сколько отменено, среднее время реакции в рабочих часах, сколько заявок прождали дольше суток.
- Синхронизация с поставщиком не прошла или прошла частично. У поставщика появились новые категории или склады.
- Цена ниже закупки: список товаров, где цена на сайте стала ниже закупочной, со ссылками на карточки в админке.
- Сотрудники: кто добавил или отключил пользователя админки.
- Безопасность: кто-то перебирает пароли к админке (логин и IP) или с одного адреса идёт поток заявок, похожий на спам. Тревога о переборе паролей повторяется не чаще раза в 15 минут, о спаме не чаще раза в час, чтобы бот не завалил личку сообщениями.
Отчёт и алерты приходят каждому активному администратору, который привязал MAX. Если один из них заблокировал бота, остальные всё равно получат сообщение. Те же уведомления дублируются в колокольчике админки.
Если MAX недоступен
Заявка всё равно сохраняется и видна в админке: сбой мессенджера её не ломает. Ошибка с одним сообщением не мешает отправить остальные.
Как это устроено
- Бот подключён к серверу сайта (NestJS) через официальный API MAX. События (нажатия кнопок и команды) приходят на сервер вебхуком с секретным ключом.
- Сообщение собирается из заявки по белому списку полей: имя, телефон и комментарий клиента в него не передаются вовсе.
- Напоминания и сводки работают по расписанию на сервере: заявки без реакции проверяются каждые 15 минут.
- Сертификат Минцифры нужен только для MAX. Сервер MAX подписан российским корневым сертификатом, которого нет в стандартном наборе Node.js. Сайт доверяет ему только в запросах к MAX, а не во всём исходящем трафике.
Что нужно, чтобы сделать так же
- Профиль на платформе MAX для партнёров: организация, ИП или самозанятый, с верификацией. Бот создаётся из этого профиля и проходит модерацию.
- Рабочая группа менеджеров в MAX, куда добавлен бот.
- Заявки должны сохраняться на сервере сайта. Если сейчас они уходят только на почту, начинать нужно с приёма заявок.
- Правила: с какой суммы заказ считается крупным, рабочие часы, кому приходит недельный отчёт.