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

После отправки счета бот ждет 3 дня, это период для оплаты счёта. Через 3 дня он запрашивает статус оплаты в банке.
Если счёт оплачен, пишет об этом в чат и благодарит клиента за оплату.

Если счёт не оплачен, напоминает об оплате. И снова ждет 3 дня. Этот цикл он повторяет до тех пор, пока счёт не будет оплачен.

После оплаты он отправляет в чат «Отчёты» сообщение, чтобы я или моя команда могла пометить в системе, что оплата получена.

Весь процесс работы бота
Путь общения в реальном проекте
Самое прекрасное, что я в этот чат даже не заглядывал и все произошло автоматически.

Отправление акта
За неделю до отправки следующего счёта он отправляет акт по текущему периоду.

После отправляет в группу «Отчёты» задачу отправить акт клиенту в ЭДО.

Хранение данных
Все данные хранятся в базе данных. Группы, их счета, даты проверки статуса счета, акты. Всё хранится в базе данных бота.
Особенности решения
Когда я задумывал бота, он казался мне простым. Но на деле как всегда подвезли вагон и маленькую тележку деталей. Каждая трансформировалась в фичу.
Добавление в группу из бота
Чтобы бот отправлял сообщение его нужно добавить в группу. С добавлением в группу есть рутина: добавить бота, дать ему права. Мелочь, но бесит.
Я сделал так, чтобы при добавлении его в группу он уже мог писать сообщения и был админом.
Сообщение в одно время и по будням
Я увидился, когда увидел отправленный счёт от бота в субботу в 4:30 утра. Сразу понял, где ошибся при разработке и пошел переделывать. Теперь бот пишет в 12:00 по мск и только в будние дни.
Отправка раз в несколько месяцев
Клиенты оплачивают счета раз в месяц, раз два месяца, раз в три месяца. А бот был настроен только на ежемесячные.
Теперь бот при настройке спрашивает периодичность отправки счёта.
Планы
- Отправка в личку. Некоторые клиенты не смотрят в группе, им надо в личку кидать счета, чтобы они их оплатили. Но для этого им надо будет один раз зайти в бота и забыть. При настройке группы можно добавить настройку, дублировать ли в личку.
- Отправка нескольких счетов. Сейчас отправка счетов идет по одному. Но у некоторых клиентов есть по две услуги. Это надо как-то решать. Можно конечно разбить на 2 дня, но тогда бот будет слишком часто долбить сообщениями в группу.