Хакатон MAX 2026 · трек «Эффективный бизнес» · рабочая концепция

Оперативка для MAX

Чат-бот и мини-приложение, которые подключают учётную систему малого бизнеса (1С, МойСклад, Битрикс24) к мессенджеру MAX: события из ERP приходят сотрудникам в чат, счета и заявки согласовываются кнопкой, клиент видит статус заказа по ссылке. Рабочее название, команда может переименовать.

Формат: бот + мини-приложение Разработка: 15–30 сентября 2026 Команда: 3–4 студента очной формы Приз за 1 место в треке: 500 000 ₽

1. Рамки, которые задаёт хакатон

Ниже факты из официальных правил (ред. 21.08.2026) и сайта. Детальное Задание по треку придёт на почту только 15 сентября, поэтому концепция должна оставаться гибкой в деталях, но твёрдой в архитектуре.

Регистрация и отбор
до 13.09
Тест после регистрации, дальше проходят 2500 лучших. Трек фиксируется при регистрации и не меняется.
Онлайн-этап
15 дней
15–30 сентября: разработка и сдача Продукта с презентацией. В финал не менее 35 команд по всем трекам.
Финал
29.10
Очная защита в Казани, Kazan Digital Week. Дорога и проживание за счёт организаторов.
ПравилоЧто это значит для нашего проекта
Продукт — чат-бот или мини-приложение для 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 linkshttps://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 без отдельного логина.
Методы bridgerequestContact (телефон), 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 не знают друг о друге, между ними единая модель событий и документов.

Клиент MAX
Чат с ботомУведомления, кнопки согласования, команды, deep links для клиентов.
Мини-приложениеReact + MAX UI, статика на HTTPS. Авторизация через initData.
→
Бэкенд «Оперативки»
Bot GatewayВебхук MAX, разбор команд и callback, отправка сообщений с учётом лимита 30 rps.
API мини-приложенияПроверка HMAC initData, роли, выдача документов из единой модели.
Маршрутизатор событийОчередь событий ERP → правила «кому и что отправить» → действия обратно в ERP. Идемпотентность по ключу события.
ХранилищеPostgreSQL: компании, пользователи, привязки, журнал синхронизации, аудит. Токены ERP зашифрованы.
→
Учётные системы
Адаптер МойСкладJSON API, вебхуки на изменение документов. Основной живой адаптер для демо.
Адаптер 1ССтандартный OData-интерфейс. Живой, если у компании есть тестовая база с публикацией; иначе адаптер с тестовыми данными.
Адаптер Битрикс24REST и исходящие вебхуки. Кандидат на Should.

Интерфейс адаптера

Это то, что показывает «потенциал масштабирования» в коде, а не на слайде. Любая новая 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>;                // касса, дебиторка, очередь
}

Сквозной поток на примере счёта

  1. Менеджер создаёт счёт в МойСклад. Вебхук прилетает в адаптер, тот нормализует его в событие invoice.created.
  2. Маршрутизатор находит правило «счета свыше 100 000 согласует директор» и кладёт задачу в очередь.
  3. Bot Gateway отправляет директору сообщение с суммой, контрагентом и кнопками «Согласовать», «Отклонить», «Открыть».
  4. Директор жмёт «Согласовать». Callback уходит в маршрутизатор, адаптер меняет статус документа и пишет комментарий с автором и временем.
  5. Менеджер получает уведомление и по кнопке «Поделиться» отправляет клиенту ссылку на статус через shareMaxContent.
  6. Если ERP недоступна, событие остаётся в очереди, пользователю приходит «не удалось записать, повторим», повтор по экспоненте, всё в журнале синхронизации.

6. Граница между компанией и командой

Не переносить в проект код компании. Продукт хакатона по правилам принадлежит участникам как соавторам, передаётся организаторам на рассмотрение и живёт в аккаунте под контролем ООО «МАХ». Проприетарные коннекторы, маппинги и клиентские данные компании там оказаться не должны.

Что компания даёт легально и полезно:

Заодно это честный тест гипотезы для самой компании: если студенты за 15 дней собирают рабочий канал «ERP → мессенджер» на открытых API, это продукт, который компания может предлагать клиентам после хакатона, заведя бота от своего юрлица.

7. Объём MVP на 15 дней

ПриоритетФункцияЗачем
MustБот: подключение компании, привязка сотрудника по телефону, уведомления о событиях, согласование кнопкамиЯдро сквозного сценария, 30% техоценки за функционал.
MustЖивой адаптер МойСклад с вебхуками и записью статуса обратноКритерий «корректность интеграции», 20%.
MustМини-приложение: сводка дня, список документов на согласование, карточка документа, настройки подключенияUX/UI 20% продуктовой оценки, платформенный бонус.
MustПроверка initData, роли, шифрование токенов, аудит действий, журнал синхронизацииБезопасность 10%, стабильность 10%.
MustREADME, схема, инструкция по развёртыванию, docker-compose, тестовая компания с даннымиДокументация 10%, проверяющие должны запустить сами.
ShouldАдаптер 1С по OData на тестовой базе компанииДоказательство масштабируемости на самой распространённой ERP.
ShouldСсылка клиенту на статус заказа через deep link, сканер QR для кладовщика, шаринг карточки в чатПлатформенный бонус, «вау» в демо.
ShouldКонструктор правил «какое событие кому» в мини-приложенииПоказывает, что продукт настраивается без программиста.
Won'tАдаптер Битрикс24, оплата счетов из MAX, вопросы к данным на естественном языке, многоязычностьЗаявляем в дорожной карте, в MVP не делаем.

8. План: кто и когда

Бэкенд и интеграцииМаршрутизатор событий, адаптер МойСклад, затем 1С. Самая тяжёлая роль, желательно два человека при команде из четырёх.
Бот и мини-приложениеBot Gateway на официальном TS SDK, React + MAX UI, bridge, initData. Отвечает за то, как продукт выглядит в клиенте MAX.
Продукт, данные, документацияТестовые данные, сценарии, README и схемы, видео и питч, чеклист обязательных требований Задания. При необходимости тестирование.
до 13.09
Регистрация всех, отборочный тест, выбор трека «Эффективный бизнес». Завести аккаунт МойСклад, запросить у компании тестовую базу 1С с OData, прочитать документацию MAX, договориться о хостинге с HTTPS.
15.09
Задание получено. Разобрать обязательные требования и условия платформенного бонуса, скорректировать список Must, зафиксировать модель событий и интерфейс адаптера.
16–19.09
Скелет. Бот отвечает на команды через вебхук, мини-приложение открывается и проходит проверку initData, адаптер МойСклад читает документы. Первый сквозной поток «событие → сообщение».
20–24.09
Ядро. Согласование с записью обратно в ERP, правила маршрутизации, сводка дня, карточки в мини-приложении, обработка недоступности ERP, аудит.
25–27.09
Should и полировка. Адаптер 1С, deep link для клиента, QR, шаринг. Заморозка функционала вечером 27-го.
28–29.09
Сдача. Тесты на чистом развёртывании по README, видео-демо, презентация, проверка чеклиста обязательных требований.
30.09
Резервный день. Только исправления, отправка до дедлайна организатора.

9. Чеклист сдачи

10. Риски и открытые вопросы

РискКак снижаем
Задание 15 сентября задаст требования, не совпадающие с концепциейАрхитектура универсальная: тот же маршрутизатор событий подходит для заявок на субсидии, найма, задач. Меняем сценарии, не ядро.
Доступ к боту и кабинету MAX выдаёт организатор, сроки неизвестныПервые дни разрабатывать на long polling и локально, вебхук включить, как только появится доступ.
Тестовая база 1С не появится вовремяАдаптер 1С реализуем по спецификации OData на тестовых данных, честно помечаем как «проверен на заглушке».
Нет DevTools в клиенте MAXЖурнал ошибок фронта на сервер с первого дня, отладка через веб-версию.
Кто-то из команды участвовал в прошлом сезоне с похожей темойСпросить до регистрации. Если да, тема должна отличаться существенно.
Подготовительная работа до 15 сентябряПравила не запрещают изучать документацию и заводить аккаунты. Основной код продукта пишем внутри этапа, чтобы не было вопросов по п. 9.6 и духу правил.
Трактовка п. 9.5 про генеративный ИИУточнить у организаторов в чате участников, можно ли использовать ИИ-ассистенты при написании кода. До ответа считать, что ИИ-функции в продукте должны быть второстепенными.

Источники