Задача
Обменник валют пришёл с задачей увести заявки из личной переписки в бота.
Курс до этого публиковали в канале руками по несколько раз в день, клиент писал оператору, тот считал сумму в калькуляторе и называл её в чате.
Сценарий просили простой - человек открывает бота, видит актуальный курс, сам считает сумму, оставляет заявку, а оператор её подтверждает.
Отдельно оговорили, что подтверждение остаётся за живым человеком, автоматических выплат в боте быть не должно.
Что сделал
Базовый курс тянется из внешнего источника, наценка процентом по каждому направлению задаётся в админке, там же курс ставится руками.
Калькулятор считает в обе стороны - ввёл сумму, которую отдаёт, увидел сколько получит, и наоборот.
Курс в заявке фиксируется на пятнадцать минут, таймер виден прямо в сообщении, по истечении бот пересчитывает и просит подтвердить новую цифру.
Готовая заявка падает оператору в рабочий чат с кнопками подтвердить и отклонить, статус сразу уходит клиенту.
Двойное нажатие оператора или клиента больше не плодит две сделки - заявка блокируется по статусу на уровне базы.
Результат
Заявки съехали из переписки в один список - у каждой видно направление, сумму, зафиксированный курс и время создания.
Месяц работы дал порядка трёхсот заявок в боте, повторные клиенты заходят в него сами, минуя личку оператора.
Заказчику остались исходники, админка и короткая инструкция по смене наценок и лимитов.