Как я автоматизировал бронирование устройств с помощью нейросети, n8n и Пачки
# Как я автоматизировал бронирование устройств с помощью нейросети, n8n и Пачки
Уровень сложности: Простой
Время на прочтение: 4 мин
Охват и читатели: 13K
**или почему теперь любой менеджер может стать разработчиком**
## Введение
Привет! Я руководитель проектов в IT-компании. Знаете, как это бывает: в голове куча идей, а руки не доходят до самых простых, но жизненно важных вещей. У нас, например, постоянно возникала проблема с бронированием тестовых устройств.
Разработчики берут модули, уходят в работу с головой, а потом… просто забывают вернуть. И начинается:
> — Ребята, а кто сейчас использует БАС? Может, кто-то заканчивает?
>
> — МЦП вообще никто не видел пару недель! Кто его забрал?
Пытались вести таблицы, списки в Excel – всё рассыпалось. Информация устаревала мгновенно, кто-то забывал обновить, а в итоге всегда находился модуль, потерявшийся в недрах офиса. Это не просто раздражало, а реально тормозило работу всей команды.
И тогда я подумал: «Хватит! Нужно что-то менять.» Но я не программист. Изикн, я даже пару лет назад с опаской относился к слову «API». И тут я вспомнил о нейросетях и no-code инструментах. Мне захотелось доказать себе и коллегам, что автоматизировать рутину может не только человек с красным дипломом по информатике.
## Почему нейросети и no-code? Возможности, о которых вы не знали.
Дело в том, что раньше, чтобы автоматизировать процесс, нужно было писать код. Много кода. И ещё нужно было найти человека, который этот код напишет, поддержит и будет в него вносить изменения. А это время, деньги и потенциальные конфликты в команде.
Сейчас всё изменилось. Появились инструменты, которые позволяют автоматизировать задачи без единой строчки кода. Эти инструменты называются no-code и low-code. Они работают по принципу визуального конструктора: ты собираешь логику процесса из готовых блоков, как в детском LEGO.
И нейросети здесь играют роль умного помощника. Они могут генерировать код, переводить человеческий язык в машинный и даже помогать отлаживать сложные процессы.
Я хотел создать что-то простое, понятное и, самое главное, работающее. И выбрал для этого три инструмента:
— **n8n** – мощная no-code/low-code платформа для автоматизации всего, что угодно. Она как швейцарский нож для автоматизации. Подробнее о n8n
— **Пачка** – российская платформа для командной работы, аналог Slack. Мы активно используем Пачку для общения внутри команды, и я решил сделать её центром управления бронированием устройств. Официальный сайт Пачки
— **OpenRouter** – платформа, которая предоставляет доступ к различным нейронным моделям через единый API. Главное – она позволяет бесплатно использовать некоторые модели, что было очень кстати для тестового проекта. Ссылка на OpenRouter
## Первые шаги: от страшного JSON до первой победы.
Признаюсь честно, когда я впервые увидел JSON, у меня закружилась голова. Эти скобки, кавычки, ключи… Я чувствовал себя первобытным человеком, которому показали компьютер. А что такое webhooks, и как вообще работает API – это были тайные знания, доступные избранным.
Но я не сдался. Начал с малого. Просто хотел, чтобы бот мог отправить сообщение в Пачку из n8n. Звучит тривиально, но для меня это был настоящий прорыв. Я читал документацию, смотрел туториалы на YouTube, спрашивал совета у коллег. И нейросети!
Документация по Пачке, скажем так, не блещет подробностями. Зато ChatGPT (и другие модели через OpenRouter) помогал мне решать проблемы гораздо быстрее. Я просто показывал нейросети скриншоты ошибок, куски кода, объяснял, что хочу сделать, и она предлагала варианты решения.
Я спрашивал: «Как правильно составить JSON, чтобы отправить сообщение в Пачку?» И нейросеть терпеливо объясняла мне структуру данных. Я показывал ей код, который не работает, и она указывала на ошибки. Это было как заниматься с репетитором, который всегда под рукой.
После нескольких часов мучений и экспериментов, я наконец-то добился своей цели. В Пачке появилось сообщение: «Hello, World!». Это была моя первая победа в мире автоматизации. И эта маленькая победа придала мне уверенности и вдохновила на дальнейшие свершения.
## Первый MVP: успех, который обернулся проблемой.
Первая версия бота была очень простой. Она умела:
— **Показывать список доступных устройств**.
— **Бронировать устройство**.
— **Снимать бронь**.
Всё работало как часы, пока у нас было всего 10 тестовых модулей. Я реализовал это с помощью простого списка кнопок в Пачке. Пользователь нажимает на кнопку с названием устройства – бот бронирует его на его имя. Вроде бы гениально!
Но, как говорится, счастье любит тишину. Коллеги узнали о моем изобретении и стали просить добавить все 35 модулей в систему. И тут всё пошло наперекосяк.
Оказалось, что Пачка имеет ограничение на количество кнопок в одном сообщении – всего 30. А у меня было 35 устройств. Архитектура, над которой я так долго работал, попросту рухнула.
Зато я получил ценный урок: автоматизация должна быть масштабируемой. То есть, она должна работать не только для 10 устройств, но и для 100, и для 1000. Иначе это будет просто временное решение, которое рано или поздно перестанет работать.
## Решение: страницы и временные таблицы – путь к стабильности.
Чтобы обойти ограничение Пачки, я решил разбить список устройств на страницы. На каждой странице будет отображаться не более 30 устройств. Пользователь сможет листать страницы с помощью кнопок «Далее» и «Назад».
Но как сохранить состояние пользователя, чтобы он знал, на какой странице находится?
Сначала я попробовал использовать встроенную ChatMemory в n8n. Но она оказалась недостаточно надежной. Данные иногда терялись, а это приводило к сбоям в работе бота.
После долгих экспериментов и поисков, я пришел к выводу, что нужно использовать более надежное хранилище данных – базу данных. И выбрал PostgreSQL, потому что она была нам уже знакома.
Я создал временную таблицу в PostgreSQL с таким названием и структурой:
«`sql
CREATE TABLE temp_user_modules (
user_id BIGINT NOT NULL,
message_id BIGINT NOT NULL,
total_pages INT NOT NULL,
current_page INT NOT NULL,
id TEXT NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);
«`
Эта таблица позволяет хранить информацию о текущей странице просмотра устройств для каждого пользователя. Когда пользователь запрашивает список устройств, бот сначала проверяет, есть ли у него уже запись в этой таблице. Если есть – он показывает ему ту страницу, на которой он остановился. Если нет – он показывает первую страницу.
Когда пользователь переходит на другую страницу, бот обновляет информацию в таблице. А если пользователь не использует бота в течение определенного времени, бот автоматически удаляет его запись из таблицы, чтобы не засорять базу данных.
Это решение оказалось гораздо более надежным и масштабируемым, чем использование ChatMemory. Теперь бот мог обрабатывать любое количество устройств без каких-либо проблем.
## Архитектура интерфейса: один столбец – хаос, три – порядок.
Я понял, что простого списка устройств недостаточно. Нужно, чтобы интерфейс был максимально удобным и интуитивно понятным для пользователей.
И тогда я решил сделать два разных представления:
— **Общий список устройств**. Он отображает все устройства в одном столбце, с указанием названия, срока брони и имени пользователя, который забронировал устройство. Этот список нужен для того, чтобы получить полное представление о том, какие устройства сейчас доступны, а какие заняты.
— **Список свободных устройств**. Он отображает только свободные устройства, в трех столбцах. Это позволяет пользователям быстрее и проще выбрать нужное устройство.
Я реализовал переключение между этими представлениями с помощью кнопок в Пачке. Пользователь может нажать на кнопку «Показать все устройства», чтобы увидеть полный список, или на кнопку «Показать свободные устройства», чтобы увидеть только доступные устройства.
## Когда нейросеть стала моим коллегой: понимание естественного языка.
Но самая большая магия началась, когда я добавил в n8n AI-агента. Этот агент умеет обрабатывать не только четко заданные команды, но и “человеческие” фразы.
Например, раньше, чтобы забронировать устройство, пользователю нужно было написать: «Забронировать БИС-М-1». А теперь он может просто написать: «Мне нужен БИС-М-1», или «Зарезервируй БИС-М-1», или даже «БИС-М-1, пожалуйста». И бот всё поймет!
Это стало возможным благодаря использованию нейронных сетей через OpenRouter. Я настроил нейросеть так, чтобы она преобразовывала естественный язык пользователя в структурированный JSON-запрос, который понимает n8n.
Это оказалось неожиданно удобно. Пользователям больше не нужно думать о том, какую команду нужно написать. Они просто говорят с ботом, как с живым человеком.
И знаете что? Это действительно работает! Коллеги в восторге от бота. Они говорят, что он сэкономил им кучу времени и нервов.
## Автоматизация напоминаний: больше никаких просроченных броней.
Я не остановился на достигнутом. Решил добавить еще одну полезную функцию – автоматические напоминания о скором окончании срока брони.
Я настроил задачу в n8n, которая каждое утро в 9:00 проверяет таблицу с бронированием устройств. Если срок брони заканчивается завтра, бот отправляет пользователю напоминание. Если срок брони уже прошел, бот автоматически снимает бронь.
Это позволило нам полностью исключить ситуацию, когда устройство остается забронированным, но фактически не используется. Теперь все устройства всегда доступны для работы.
## Что в итоге умеет бот: полный контроль над ресурсами.
Сегодня бот умеет:
— **Показывать все устройства**.
— **Выводить список свободных устройств**.
— **Показывать устройства, забронированные конкретным пользователем**.
— **Бронировать и снимать бронь**.
— **Продлевать бронирование**.
— **Уведомлять пользователей о скором окончании срока брони**.
— **Автоматически освобождать устройства, если срок брони прошел**.
Если нейросеть не понимает запрос пользователя, он автоматически дублируется мне. Это позволяет мне корректировать промты и обучать систему.
Это как постоянный процесс обучения. Чем больше пользователи общаются с ботом, тем лучше он их понимает.
## Что изменилось в работе команды: эффективность на новом уровне.
После запуска бота мы перестали тратить время на поиск потерянных устройств. Теперь всегда понятно, кто и когда работает с каким устройством.
Если устройство ушло в ремонт, сотрудник просто бронирует его на себя. Когда устройство возвращается, он снимает бронь.
Никаких Excel-таблиц. Никаких уточнений «а где мой блок?». Всё в одном месте – в Пачке.
Это не просто автоматизация. Это изменение культуры работы. Теперь мы ценим время и ресурсы. Мы стараемся использовать их максимально эффективно.
## Личные выводы: нейросети – это не страшно, это круто.
Для меня это был не просто проект, а настоящий вызов. Я никогда раньше не занимался автоматизацией. Я не знал, что такое JSON, webhooks и API.
Но я не побоялся попробовать. И у меня получилось!
Я доказал себе и коллегам, что автоматизировать процессы может не только программист. Нужно просто иметь немного системного мышления, желание учиться новому и верного помощника – нейросеть.
— **Нейросети действительно снижают порог входа.** Даже если вы не знаете, как писать код, вы можете использовать нейросети, чтобы генерировать код, отлаживать процессы и решать сложные задачи.
— **Чтобы делать автоматизации, не нужно быть программистом.** Достаточно понимать логику процессов и иметь немного технической грамотности.
— **Но нужно уметь думать архитектурно.** Нейросеть может помочь вам реализовать ваши идеи, но она не может придумать их за вас.
— **Главное – начать, ошибаться и дорабатывать.** Не бойтесь экспериментировать и пробовать новые подходы. Ошибки – это неизбежная часть процесса обучения.
Я начал с того, что не знал, что такое JSON, а закончил тем, что создал систему, которая работает автономно и помогает всей команде. Это просто невероятно!
## Что дальше? Планы на будущее.
Коллеги уже предложили сделать очередное улучшение – добавить очередь на бронирование устройств. Это позволит планировать работу заранее и избегать конфликтов.
И это, кажется, следующая итерация нашей автоматизации. Мы планируем добавить возможность бронировать устройства на определенное время, а не просто на день. Мы также хотим добавить интеграцию с системой управления проектами, чтобы автоматизировать процесс распределения задач между разработчиками.
## Финал: будущее за автоматизацией и нейросетями.
Сегодня я уверен, что будущее разработки – это не код, а мышление. Код – это всего лишь инструмент. А мышление – это то, что позволяет нам решать проблемы, создавать новые решения и делать мир лучше.
Если вы менеджер, инженер или просто человек, которому надоело делать всё вручную – попробуйте. Нейросети действительно дают возможность создавать инструменты под себя, без боли и бесконечных согласований.
И знаете, это чертовски вдохновляет. 🙂 Это ощущение, когда ты создаешь что-то полезное и видишь, как это облегчает жизнь другим людям, – бесценно. И это возможно, даже если вы не программист.
Если у Вас есть вопросы по применению нейросетей в бизнесе обратитесь к нейроконсультанту https://t.me/raisovich_bot
Отправить комментарий