Оперативка для MAX
Чат-бот и мини-приложение, которые подключают учётную систему малого бизнеса (1С, МойСклад, Битрикс24) к мессенджеру MAX: события из ERP приходят сотрудникам в чат, счета и заявки согласовываются кнопкой, клиент видит статус заказа по ссылке. Рабочее название, команда может переименовать.
1. Рамки, которые задаёт хакатон
Ниже факты из официальных правил (ред. 21.08.2026) и сайта. Детальное Задание по треку придёт на почту только 15 сентября, поэтому концепция должна оставаться гибкой в деталях, но твёрдой в архитектуре.
| Правило | Что это значит для нашего проекта |
|---|---|
| Продукт — чат-бот или мини-приложение для MAX (п. 1.6). Мини-приложения живут только внутри бота. | Нужен бот в любом случае. Мини-приложение делаем как «рабочий стол» поверх бота, а не отдельный сайт. |
| Участники — только студенты очной формы, 18+, команда 3–4 человека (разд. 4, 5). | Сотрудники компании, не являющиеся студентами, в команду не входят. Их роль — менторы и «пилотный заказчик». |
| Запрещён Продукт, воспроизводящий решение с прошлого хакатона MAX (октябрь–ноябрь 2025) хотя бы одного участника (п. 9.6). | Проверить, что никто из команды не сдавал похожее в прошлом сезоне. Иначе доработка не считается новым продуктом. |
| Запрещено использовать результат генеративного ИИ «в виде окончательного решения Задания» (п. 9.5). | ИИ можно применять как инструмент и как одну из функций, но продукт не должен быть «обёрткой над LLM». Ядро — интеграция и процессы. |
| Исключительное право на код остаётся у участников как соавторов (п. 12.1–12.2). Продукты финалистов передаются ООО «МАХ» на рассмотрение (п. 9.9). Аккаунт бота и его настройки контролирует ООО «МАХ» (п. 12.3). | Не вносить в репозиторий проприетарный код компании. Пишем с чистого листа, компания даёт экспертизу, тестовые базы и сценарии. |
| Управлять ботом после хакатона могут только юрлица, ИП и самозанятые (п. 9.8). На время хакатона доступ даёт организатор. | Свой аккаунт разработчика MAX не обязателен. Если компания захочет забрать продукт после, бот заводится заново от её юрлица. |
| Продукты команд, не прошедших в финал, деактивируются через неделю (п. 8.4.2). | Держать всё в своём репозитории и на своём хостинге, чтобы демо не зависело от аккаунта хакатона. |
| Продукт должен пройти проверку на обязательные требования Задания до оценки (п. 10.3). | 15 сентября первым делом составить чеклист обязательных требований и вести его до сдачи. |
2. Как считают баллы, и что из этого следует
На онлайн-этапе техника весит больше продукта. Это редкость для хакатонов и главный аргумент в пользу интеграционной темы: критерий «корректность интеграции и обмена данными» существует буквально под наш проект.
Онлайн-этап: продуктовая оценка, 40%
| Критерий | Вес | Наш ответ |
|---|---|---|
| Потенциал масштабирования | 35% | Адаптерная архитектура: одна платформа, любая ERP. Тысячи компаний на 1С и МойСклад. |
| Пользовательская ценность | 25% | Сценарии из реальной практики компании, с цифрами «сколько часов в неделю экономит». |
| UX/UI и удобство | 20% | Согласование в два тапа из чата, мини-приложение на MAX UI. |
| Обоснованность и целостность | 15% | Одна сквозная история: событие в ERP → уведомление → действие → запись обратно в ERP. |
| Качество презентации | 5% | Видео-демо 3 минуты плюс питч-дек. |
Онлайн-этап: техническая оценка, 60%
| Критерий | Вес | Наш ответ |
|---|---|---|
| Работоспособность и полнота функционала | 30% | Все заявленные сценарии реально работают на тестовых данных, без «заглушек в демо». |
| Корректность интеграции и обмена данными | 20% | Двусторонний обмен с живым API, идемпотентность, повторы при сбоях, журнал синхронизации. |
| Техническая реализация и архитектура | 20% | Явный интерфейс адаптера, очередь событий, разделение бота, API и веб-части. |
| Стабильность и обработка ошибок | 10% | ERP недоступна → пользователь видит понятное сообщение, событие не теряется. |
| Безопасность и работа с данными | 10% | Проверка подписи initData, токены ERP в зашифрованном виде, роли, аудит действий. |
| Документация и комплектность | 10% | README, схема архитектуры, описание API адаптера, инструкция по развёртыванию. |
Платформенный бонус +0,15 балла начисляется за расширенное использование возможностей MAX (п. 10.8). Условия придут в Задании, но в нашей архитектуре заранее заложены: deep links, callback-кнопки, запрос контакта, сканер QR, шаринг в чаты, хранилище устройства.
В финале расклад меняется: 40% техника, 60% защита. В защите 25% весит потенциал тиражирования и 15% сценарий запуска и внедрения. Здесь компания как реальный пилотный заказчик даёт то, чего у студенческих команд обычно нет: живого клиента и план внедрения.
3. Идея продукта
Проблема
В малом бизнесе учётная система есть, а доступ к ней есть у одного-двух человек. Владелец узнаёт о просроченной оплате из отчёта раз в неделю, менеджер ждёт, пока директор «зайдёт в 1С и согласует счёт», а клиент звонит, чтобы узнать, отгрузили ли заказ. Все эти люди уже сидят в мессенджере, но мессенджер ничего не знает о том, что происходит в ERP.
Решение
«Оперативка» ставит между ERP и MAX слой интеграции. Он подписывается на события в учётной системе, превращает их в сообщения с кнопками нужным людям и записывает результат действия обратно. Мини-приложение даёт то, что не помещается в чат: списки, карточки документов, сводку дня, настройку подключения.
Роли и сценарии
| Роль | Сценарий в MAX | Что происходит в ERP |
|---|---|---|
| Владелец, директор | Утром приходит «сводка дня»: касса, дебиторка, что ждёт согласования. Счёт на оплату согласуется кнопкой прямо в сообщении. | Документ меняет статус, в нём появляется отметка «согласовал такой-то через MAX, дата». |
| Менеджер по продажам | Открывает мини-приложение, находит контрагента, создаёт заказ из шаблона, отправляет клиенту ссылку на статус. | Создаётся заказ покупателя, генерируется deep link со ссылкой на документ. |
| Кладовщик, исполнитель | Получает задачу «собрать заказ №1042», сканирует QR с накладной через сканер MAX, жмёт «Готово». | Заказ переходит в статус «собран», склад резервирует остатки. |
| Клиент компании | Переходит по ссылке из счёта, бот показывает статус заказа и сумму к оплате, уведомляет об отгрузке. | Только чтение: статус и документы по одному заказу, без доступа к остальному. |
| Администратор | В мини-приложении подключает ERP по токену, выбирает события, привязывает сотрудников к ролям через запрос контакта. | Проверяется доступ к API, ставится вебхук или запускается опрос изменений. |
Почему не «чат с ERP через ИИ». Такой продукт быстро собирается и эффектно выглядит, но попадает под п. 9.5 и не даёт баллов за интеграцию. Разумный компромисс: свободный вопрос к сводке («сколько отгрузили за неделю?») как одна дополнительная функция на этапе Should, а не как ядро.
4. Что даёт платформа MAX
Собрано из документации dev.max.ru. Проверить на актуальность 15 сентября вместе с Заданием, документация обновляется.
| Возможность | Детали и ограничения | Где используем |
|---|---|---|
| Bot API, вебхуки | REST на platform-api2.max.ru, токен бота, не более 30 запросов в секунду. Для продакшена только HTTPS-вебхук, self-signed сертификаты не принимаются. Long polling для отладки, одновременно с вебхуком нельзя. | Приём команд и нажатий на кнопки, отправка уведомлений. |
| Кнопки и callback | Инлайн-клавиатуры под сообщением, событие при нажатии. | «Согласовать / Отклонить / Открыть» под каждым событием. |
| Deep links | https://max.ru/<bot>?start=<payload> до 128 символов для бота, ?startapp=<payload> до 512 символов для мини-приложения. Только латиница, цифры, дефис, подчёркивание. | Ссылка клиенту на статус заказа, приглашение сотрудника в компанию. |
| Мини-приложение | Статический HTTPS-сайт, подключается в кабинете бота, запускается кнопкой в чате или по deep link. Bridge: https://st.max.ru/js/max-web-app.js, объект window.WebApp. | Списки документов, карточки, сводка, настройки. |
| initData и проверка | Строка параметров запуска подписана HMAC-SHA256 на токене бота. Проверять на сервере, клиенту не доверять. | Авторизация в API без отдельного логина. |
| Методы bridge | requestContact (телефон), openCodeReader (QR), shareMaxContent, sendData, openLink, BackButton, DeviceStorage, SecureStorage, HapticFeedback, getLaunchContext. В веб-версии MAX часть методов не работает: хранилища, биометрия, haptic, шаринг. | Привязка сотрудника по телефону, сканирование накладных, отправка карточки заказа в чат. |
| Готовые библиотеки | Официальные SDK для TypeScript/JavaScript и Go, есть Go-фреймворк с обработкой команд и callback. | Бэкенд на TypeScript, чтобы бот и мини-приложение делили типы. |
| Отладка | Встроенного DevTools в клиенте MAX нет. Отлаживать через веб-версию и логирование на сервер. | Заложить журнал ошибок фронта с первого дня. |
| MAX UI | Библиотека компонентов в стиле мессенджера, раздел dev.max.ru/ui. | Интерфейс мини-приложения, чтобы выглядел «родным». |
5. Архитектура
Три слоя, каждый заменяем независимо. Ключевая мысль для жюри: MAX и ERP не знают друг о друге, между ними единая модель событий и документов.
Интерфейс адаптера
Это то, что показывает «потенциал масштабирования» в коде, а не на слайде. Любая новая ERP подключается реализацией одного интерфейса.
interface ErpAdapter {
id: 'moysklad' | '1c-odata' | 'bitrix24' | 'demo';
connect(credentials): Promise<ConnectionInfo>; // проверка доступа
subscribe(events: EventKind[]): Promise<void>; // вебхук или опрос
pull(since: Cursor): Promise<ErpEvent[]>; // резерв, если вебхуков нет
getDocument(kind, id): Promise<Document>; // счёт, заказ, накладная
listDocuments(kind, filter): Promise<Document[]>;
apply(action: Approve | Reject | SetStatus | Comment): Promise<Result>;
summary(date): Promise<DailySummary>; // касса, дебиторка, очередь
}
Сквозной поток на примере счёта
- Менеджер создаёт счёт в МойСклад. Вебхук прилетает в адаптер, тот нормализует его в событие
invoice.created. - Маршрутизатор находит правило «счета свыше 100 000 согласует директор» и кладёт задачу в очередь.
- Bot Gateway отправляет директору сообщение с суммой, контрагентом и кнопками «Согласовать», «Отклонить», «Открыть».
- Директор жмёт «Согласовать». Callback уходит в маршрутизатор, адаптер меняет статус документа и пишет комментарий с автором и временем.
- Менеджер получает уведомление и по кнопке «Поделиться» отправляет клиенту ссылку на статус через
shareMaxContent. - Если ERP недоступна, событие остаётся в очереди, пользователю приходит «не удалось записать, повторим», повтор по экспоненте, всё в журнале синхронизации.
6. Граница между компанией и командой
Не переносить в проект код компании. Продукт хакатона по правилам принадлежит участникам как соавторам, передаётся организаторам на рассмотрение и живёт в аккаунте под контролем ООО «МАХ». Проприетарные коннекторы, маппинги и клиентские данные компании там оказаться не должны.
Что компания даёт легально и полезно:
- Экспертизу: какие события в ERP реально важны, как выглядит согласование у клиентов, где чаще всего ломается обмен.
- Тестовую базу 1С с опубликованным OData и обезличенными данными. Это превращает «адаптер 1С» из заглушки в живую интеграцию.
- Роль пилотного заказчика для раздела «сценарий запуска и внедрения» в финале: письмо о заинтересованности, план пилота на одном клиенте.
- Менторство по архитектуре обмена без участия в написании кода продукта.
Заодно это честный тест гипотезы для самой компании: если студенты за 15 дней собирают рабочий канал «ERP → мессенджер» на открытых API, это продукт, который компания может предлагать клиентам после хакатона, заведя бота от своего юрлица.
7. Объём MVP на 15 дней
| Приоритет | Функция | Зачем |
|---|---|---|
| Must | Бот: подключение компании, привязка сотрудника по телефону, уведомления о событиях, согласование кнопками | Ядро сквозного сценария, 30% техоценки за функционал. |
| Must | Живой адаптер МойСклад с вебхуками и записью статуса обратно | Критерий «корректность интеграции», 20%. |
| Must | Мини-приложение: сводка дня, список документов на согласование, карточка документа, настройки подключения | UX/UI 20% продуктовой оценки, платформенный бонус. |
| Must | Проверка initData, роли, шифрование токенов, аудит действий, журнал синхронизации | Безопасность 10%, стабильность 10%. |
| Must | README, схема, инструкция по развёртыванию, docker-compose, тестовая компания с данными | Документация 10%, проверяющие должны запустить сами. |
| Should | Адаптер 1С по OData на тестовой базе компании | Доказательство масштабируемости на самой распространённой ERP. |
| Should | Ссылка клиенту на статус заказа через deep link, сканер QR для кладовщика, шаринг карточки в чат | Платформенный бонус, «вау» в демо. |
| Should | Конструктор правил «какое событие кому» в мини-приложении | Показывает, что продукт настраивается без программиста. |
| Won't | Адаптер Битрикс24, оплата счетов из MAX, вопросы к данным на естественном языке, многоязычность | Заявляем в дорожной карте, в MVP не делаем. |
8. План: кто и когда
9. Чеклист сдачи
- Репозиторий с лицензией и историей коммитов всех участников, без секретов в коде.
- README: что это, для кого, как запустить за 10 минут через docker-compose, тестовые учётки.
- Схема архитектуры и описание интерфейса адаптера, список поддерживаемых событий.
- Работающий бот в MAX с тестовой компанией и данными, к которым есть доступ у проверяющих.
- Видео 3 минуты: сквозной сценарий от события в ERP до записи обратно.
- Презентация: проблема, решение, архитектура, масштабирование, план внедрения с пилотным заказчиком, команда.
- Чеклист обязательных требований Задания, отмеченный по пунктам.
10. Риски и открытые вопросы
| Риск | Как снижаем |
|---|---|
| Задание 15 сентября задаст требования, не совпадающие с концепцией | Архитектура универсальная: тот же маршрутизатор событий подходит для заявок на субсидии, найма, задач. Меняем сценарии, не ядро. |
| Доступ к боту и кабинету MAX выдаёт организатор, сроки неизвестны | Первые дни разрабатывать на long polling и локально, вебхук включить, как только появится доступ. |
| Тестовая база 1С не появится вовремя | Адаптер 1С реализуем по спецификации OData на тестовых данных, честно помечаем как «проверен на заглушке». |
| Нет DevTools в клиенте MAX | Журнал ошибок фронта на сервер с первого дня, отладка через веб-версию. |
| Кто-то из команды участвовал в прошлом сезоне с похожей темой | Спросить до регистрации. Если да, тема должна отличаться существенно. |
| Подготовительная работа до 15 сентября | Правила не запрещают изучать документацию и заводить аккаунты. Основной код продукта пишем внутри этапа, чтобы не было вопросов по п. 9.6 и духу правил. |
| Трактовка п. 9.5 про генеративный ИИ | Уточнить у организаторов в чате участников, можно ли использовать ИИ-ассистенты при написании кода. До ответа считать, что ИИ-функции в продукте должны быть второстепенными. |
Источники
- Сайт хакатона MAX: треки, даты, призы.
- Официальные правила хакатона 2026 (PDF, ред. 21.08): разделы 4, 5, 8, 9, 10, 11, 12.
- Документация Bot API MAX: вебхуки, лимиты, deep links.
- Подключение мини-приложения и MAX Bridge.
- Новость на Хабре о сезоне 2026 и итоги сезона 2025: победители трека «Эффективность» делали календарь встреч с ИИ-ассистентом.