Backend на Python · вебхуки → amoCRM и Битрикс24
Интеграционный хаб заявок
Заявки приходят из десятка мест, и каждое присылает их по-своему: Tilda — формой, интернет-магазин — заказом с подписью, Директ и VK — лид-формами, АТС — событием звонка. Часть теряется, часть дублируется, а когда CRM на минуту ложится, заявки пропадают молча. Хаб принимает всё в одну точку, чистит, оценивает и отдаёт в CRM через очередь — так, что ни одна заявка не теряется и не создаётся дважды. Здесь у вас своя песочница на сутки: настоящий сервис на Python, свои адреса вебхуков и имитации двух CRM, которые можно сломать.
Сценарий: Обжарочная «Зерно» — вымышленная: опт для кофеен и офисов, интернет-магазин, реклама в Директе, VK и на Авито, звонки и почта. Менеджеры и клиенты тоже вымышлены.

Открыть демо
Песочница создаётся одной кнопкой и живёт сутки. Квиз, виджет и голосовая заявка из того же браузера отправят заявки в неё сами, а бот заявок — после перехода по ссылке из песочницы.
Приложение работает в браузере: на сервер ничего не отправляется.
Что показывает демо
Как попробовать
Создайте песочницу
На вкладке «Источники» — адреса вебхуков и ключи. Нажмите «Прислать пример» у Tilda, Директа или звонков — увидите запрос в формате сервиса и ответ хаба.
Пришлите настоящую заявку
Пройдите квиз или оставьте телефон в виджете — заявка придёт в песочницу сама. Или напишите боту заявок по ссылке из песочницы.
Посмотрите путь заявки
Вкладка «Заявка»: как хаб очистил телефон, определил регион, оценил заявку, какое правило выбрало менеджера и когда сделка появилась в CRM.
Сломайте CRM
На вкладке «Доставка» включите amoCRM «Ошибка 500», а Битрикс24 — «Таймаут», и пришлите пару заявок: хаб повторит, ничего не потеряет и не создаст дублей.
Без платных нейросетей
Хаб настоящий: сервис на Python (FastAPI, SQLAlchemy, PostgreSQL) на этом же сервере принимает вебхуки, ведёт очередь и повторы. Вместо аккаунтов amoCRM и Битрикс24 — их имитации с теми же методами и ответами, включая сбои. Оценка и маршрутизация — правила, без нейросетей. Песочница и её заявки удаляются через сутки.
Демо работает без API-ключей OpenAI, YandexGPT или GigaChat. Там, где рабочая система обращается к модели, стоит локальная заглушка с тем же интерфейсом — поэтому демо бесплатно, всегда доступно и ничего не выдумывает.
Что будет в рабочем проекте
- Настоящие amoCRM и Битрикс24: OAuth-приложение или входящий вебхук, свои поля, воронки и пользователи
- Подключение источников в их кабинетах: Tilda, WooCommerce, Директ, VK, Авито, АТС, почтовый ящик
- Уведомления менеджеру в Telegram или Max о горячих заявках и о том, что CRM не принимает заявки
- Отчёт по источникам: сколько заявок, дублей и сделок принесла каждая реклама
- Мониторинг очереди и алерты, бэкапы базы, журнал запросов на месяц
Стек
- Все демо по стеку:
- Python
- React
- TypeScript
- Python 3.14
- FastAPI
- SQLAlchemy 2 (async)
- PostgreSQL
- Alembic
- httpx
- SSE
- Docker
- React 19
- TypeScript
- Zustand
Основано на
Книги и дисциплины, идеи из которых работают в этом демо.
Книга · Райан Дэй
Прикладные API для искусственного интеллекта и Data Science
Заявки из двенадцати источников приходят через API и вебхуки и приводятся к одному виду, а не выгружаются файлами.
Книга · Алексей Васильев
Программирование на Python в примерах и задачах
Заявки доставляются в CRM параллельно, с повторами, когда CRM недоступна.
Книга · Р. С. Бухарев
Серверные приложения на Python, Django, Flask и FastAPI
Хаб заявок на асинхронном FastAPI: вебхуки двенадцати источников, у каждого своя защита — подпись HMAC, токен или строка подтверждения.
Книга · Эндрю Таненбаум, Херберт Бос
Современные операционные системы
Доставка в CRM идёт асинхронно и параллельно: пока одна CRM не отвечает, остальные заявки не ждут.
Дисциплина · ВМК МГУ
Базы данных
Очередь доставки в PostgreSQL на SELECT … FOR UPDATE SKIP LOCKED, миграции Alembic, проверка дублей за 30 дней.
Дисциплина · ВМК МГУ
Операционные системы
Хаб заявок работает в Docker на Linux, а доставка в CRM идёт фоновыми задачами параллельно с приёмом заявок.
Дисциплина · ВМК МГУ
Разработка на Python
Хаб заявок: FastAPI, асинхронный SQLAlchemy 2, Alembic и httpx.
Комментарий от разработчика
Антон Гончаров
Разработчик ИИ-систем · Python
Для бизнеса
- Ни одна заявка не теряется, даже когда CRM на минуту недоступна: хаб повторит доставку сам.
- Повторное обращение не плодит сделки — оно дописывается к старой и остаётся у того же менеджера.
- Сайт, реклама, звонки, почта и боты — в одной точке и в одном формате; видно, какая реклама приносит заявки.
Для разработчиков
- FastAPI, асинхронная SQLAlchemy 2 и PostgreSQL. Вебхук принимает, чистит и сохраняет заявку, а в CRM она уходит через очередь — источник не ждёт CRM.
- Очередь — на SELECT … FOR UPDATE SKIP LOCKED, без Redis и брокера: повторы от 5 секунд до 5 минут, потом очередь недоставленных.
- У каждого источника свой адаптер к общему виду заявки и своя проверка: подпись HMAC, токен или строка подтверждения.
Советы
Совет 01
Принимайте вебхук быстро, а тяжёлую работу делайте потом: отправитель не обязан ждать вашу CRM.
Совет 02
Закладывайте защиту от дублей с первого дня: повторные запросы бывают у всех, а дубли — у тех, кто о них не подумал.
Нужен такой же для вашего бизнеса?
Расскажите о задаче — отвечу, что из демо подойдёт вам, сколько это займёт и что понадобится с вашей стороны.
Другие демо в этом разделе
Все демо- работает
Веб-приложение · распознавание речи · нейросеть в браузере
Голосовая заявка
Клиент наговаривает заявку голосом, а менеджер получает готовую карточку: имя, компания, телефон, бюджет, сроки, задача и оценка — горячий лид или нет. Речь распознаёт Whisper прямо в браузере.
- React
- TypeScript
- Нейросеть в браузере
- работает
Веб-приложение · звонок в браузере · распознавание и синтез речи
Голосовой оператор доставки
Робот принимает заказы по телефону вместо администратора: слушает, переспрашивает, проверяет адрес по зонам доставки, считает сумму и читает заказ перед подтверждением. Звонок идёт прямо в браузере — кнопка «Позвонить», без номера телефона.
- React
- TypeScript
- Нейросеть в браузере
- работает
Веб-приложение · распознавание речи · контроль отдела продаж
Речевая аналитика звонков
Звонок отдела продаж превращается в расшифровку по ролям, оценку по скрипту и заполненную карточку сделки: клиент, контакты, интерес, озвученная цена, следующий шаг и задача менеджеру. Речь распознаёт Whisper прямо в браузере.
- React
- TypeScript
- Нейросеть в браузере
- работает
Веб-приложение · документы · DOCX и PDF
Генератор КП и договора
Менеджер заполняет анкету сделки — покупатель, товары, скидка, НДС, — а коммерческое предложение, договор поставки и счёт собираются на листе A4 на глазах. На выходе — Word, PDF или JSON.
- React
- TypeScript
- работает
Веб-приложение · B2B · КП в PDF
Конфигуратор цены
Менеджер собирает заказ на все окна квартиры: тип, размер, створки на схеме, профиль, стеклопакет и цвет. Правила производства проверяются сразу, скидки и рассрочка считаются сами, КП с номером уходит в PDF.
- React
- TypeScript
- работает
Веб-приложение · финансы · сравнение
Ипотечный калькулятор
Пять программ банков на одном экране: какие подходят клиенту и почему остальные нет. Льготная ставка от застройщика, дифференцированный платёж, досрочное погашение, нагрузка на доход и налоговый вычет.
- React
- TypeScript
- работает
Веб-приложение · смета · PDF
Калькулятор сметы ремонта
Размеры комнат превращаются в площади пола, стен и потолка, а те — в работы по этапам. Работа и материалы отдельно, срок по выработке бригады, график оплаты и версии сметы для торга с клиентом.
- React
- TypeScript
- работает
Веб-приложение · витрина · чекаут · заказы
SPA-каталог на React
Магазин целиком в браузере: поиск с подсказками и исправлением раскладки, фасеты с живыми счётчиками, ссылки на любой фильтр, избранное, корзина с промокодом и чекаут с выбором слота доставки. Заказы видны в «Моих заказах» со статусами, их можно повторить или отменить.
- React
- TypeScript
- работает
Машинное обучение на Python · работает в браузере
Аналитика отзывов с маркетплейсов
Отзывы с Wildberries, Ozon и Яндекс Маркета через API продавца: модели scikit-learn определяют тональность и о чём пишут покупатели, тревога поднимается в первую неделю всплеска жалоб, новые темы находятся сами, а ответ уходит обратно через API площадки. Модели обучаются прямо в браузере.
- Python
- React
- TypeScript
- работает
Виджет для сайта · нативный JS · одна строка
Виджет AI-консультанта
Консультант для любого сайта, который ставится одной строкой: отвечает по базе знаний со ссылкой на источник, собирает заявку и зовёт оператора. Написан на чистом JavaScript без фреймворков — весь виджет 21 КБ в gzip.
- Нативный JS
- работает
Виджет для сайта · нативный JS · заявки
Квиз-форма заявки
Квиз вместо длинной формы: шесть вопросов с ветвлением, в конце — расчёт по прайсу. Менеджер получает заявку с оценкой «горячая / тёплая / холодная» и источником рекламы, а вкладка «Аналитика» показывает, на каком шаге уходят люди.
- Нативный JS
