Для поддержки Developers Map я собрал Telegram-бота, Mini App и операторский интерфейс. Одна из задач — сохранить состояние обращения, когда запрос повторился или Telegram принял ответ, но программа не получила подтверждение.
Запрос может повториться. Оператор может нажать кнопку ещё раз. Telegram может принять сообщение, а соединение оборвётся прежде, чем наша программа узнает об успехе. Пользователь тем временем откроет вторую заявку в том же чате. Никакого злого умысла не требуется: обычная связь умеет организовать небольшой кризис самостоятельно.
От меню к рабочему процессу
Для Developers Map я собрал Telegram-бота, Mini App и операторский интерфейс поддержки. Это отдельный инструмент рядом с основным сервисом; он не делает меня автором Developers Map и не даёт боту права менять пользовательские аккаунты основной платформы.
Этот экран показывает исходный интерфейс поддержки на подготовленных обращениях. Он помогает увидеть рабочее пространство рядом с ботом, а не только его меню.
Обзор поддержки
Архивный интерфейс · демонстрационные данные
Есть утверждённая база ответов на русском и английском, несколько обращений внутри одного чата и вложения в приватном R2. В этой реализации AI-ответы выключены. Пользователь получает предсказуемую поддержку, а не свободное сочинение модели о работе чужого продукта.
Внутри обращения виден демонстрационный разговор. Можно проверить доступные локальные действия оператора; реальные пользователи Telegram ничего из этого демо не получат.
Разговор по обращению
Архивный интерфейс · демонстрационные данные
Сначала событие, затем действие
Входящие события сохраняются в D1. Очередь и периодический обработчик доводят их до координатора чата на Durable Objects. Затем движок обновляет состояние обращения и записывает исходящее действие в outbox — таблицу подготовленных отправок.
Это позволяет связать изменение заявки с намерением отправить сообщение в одной операции базы. Иначе можно получить удивительный промежуточный мир: сообщение человеку уже ушло, а система всё ещё считает, что ничего не произошло. Или наоборот.
У команд Mini App есть устойчивый идентификатор и проверка версии. Повторный запрос узнаётся, а действие над устаревшим состоянием не должно бесшумно перезаписать новую работу оператора.
Самое интересное состояние — «результат неизвестен»
Если внешняя отправка могла состояться, автоматическое повторение способно создать дубль. Поэтому неопределённый исход не выдаётся за обычную ошибку, которую надо немедленно попробовать ещё раз. В таком случае повтор — отдельное решение оператора с пониманием риска.
Это не обещание математически идеальной доставки. Это способ перестать скрывать неопределённость за зелёным индикатором.
Рабочий экземпляр развёрнут для пилота; полная пользовательская приёмка остаётся отдельным этапом. WhatsApp и почта не становятся подключёнными каналами оттого, что они когда-то появились в плане.
Рабочий экземпляр развёрнут для пилота. В демонстрации можно пройти от списка обращений к разговору оператора; полная пользовательская приёмка ещё не завершена. WhatsApp и почта не подключены, AI-ответы в этой реализации выключены.
Связанные истории: Продуктовая концепция Developers Map.






@nevsky_alexander
В Instagram — Дубай без парадного фасада: семья, город, находки и то, что происходит между проектами. В Threads — мысли вслух о дизайне и AI, на YouTube — видео, которым тесно в сторис. Подписывайтесь там, где вам удобнее: будем на связи