Telegram-бот генератор договоров: как мы сократили 3 часа работы до 2 минут на виллах Бали
Управляющая компания с 25+ виллами на Бали — это десятки договоров каждый месяц. Арендаторы, собственники, инвесторы — у каждого свой тип документа, свои условия, свои реквизиты. Раньше каждый договор собирался вручную: менеджер открывал шаблон в Google Docs, копировал данные из переписки, заполнял поля, форматировал, проверял, конвертировал в PDF, отправлял клиенту. На один документ уходило от 30 минут до трёх часов. Ошибки были нормой: неверная дата, чужие реквизиты, неправильная вилла. Мы решили это автоматизировать — и создали Telegram-бот генератор договоров, который закрывает задачу за 2 минуты.
Почему ручное составление договоров убивало бизнес
Когда бизнес небольшой — одна-две виллы, несколько аренд в месяц — ручная работа с договорами терпима. Но когда портфель вырастает до 25+ объектов, операционная нагрузка растёт непропорционально. Каждая вилла — это отдельный договор аренды с гостями, договор управления с собственником, иногда инвестиционный договор. Плюс сезонные изменения условий, продления, допсоглашения.
Типичная картина до автоматизации: менеджер получает заявку на аренду виллы. Нужно подготовить договор. Он открывает папку с шаблонами, находит нужный, открывает прошлый договор на эту виллу, копирует реквизиты, вносит новые даты и данные арендатора, проверяет цены с актуальным прайсом, форматирует документ, отправляет на проверку юристу (или себе же, но завтра), конвертирует в PDF и отправляет клиенту. Минимум 40 минут, если всё идёт гладко.
На практике гладко шло редко. Менеджеры ошибались в датах, вставляли старые цены, забывали обновить имя арендатора после копирования предыдущего договора. Договор с именем "Иван" уходил клиенту "Мария" — и это не шутка, это реальный случай. Клиенты отказывались подписывать, приходилось переделывать. Иногда подписывали не глядя — что ещё хуже с точки зрения юридических рисков.
Три главные боли ручного документооборота:
- Время: от 30 минут до 3 часов на один договор
- Ошибки: неверные данные из-за копипасты, несогласованность версий шаблонов
- Контроль: непонятно, какие договоры действуют, когда истекают, кто ответственный
Отдельная проблема — отслеживание сроков. Договор аренды подписан на год. Через 11 месяцев нужно предложить продление — но кто об этом помнит? В лучшем случае менеджер ставил напоминание в телефоне. В худшем — узнавал об истечении договора уже после того, как гость уехал без подписанного продления.
Задача: от шаблона до готового DOCX за 2 минуты
Когда мы сформулировали требования к системе, получился список из шести обязательных пунктов:
- Принимать данные о вилле, арендаторе и условиях через удобный интерфейс — без сложных форм и обучения
- Автоматически подставлять правильный шаблон в зависимости от типа договора
- Генерировать готовый документ — DOCX и PDF — без ручного редактирования
- Отправлять документ прямо в Telegram менеджеру или клиенту
- Хранить историю всех договоров с возможностью поиска по вилле, арендатору или дате
- Автоматически уведомлять об истекающих договорах заранее
Точкой входа выбрали Telegram — потому что вся команда уже работала в нём, и добавление ещё одного бота не требовало изменения привычек. Никаких новых приложений, никакого дополнительного обучения.
Архитектура решения: Python, PostgreSQL и Telegram API
Технический стек
В основе системы — Telegram-бот на Python с использованием библиотеки python-telegram-bot. Это зрелая библиотека с хорошей документацией, поддержкой асинхронного кода и всеми нужными инструментами для создания диалоговых сценариев (ConversationHandler).
Для генерации документов используется python-docx — библиотека для работы с форматом DOCX. Она позволяет программно заполнять шаблоны Word, сохраняя всё форматирование: жирный текст, таблицы, колонтитулы, подписи. Шаблонные переменные в документе помечаются специальными плейсхолдерами — например, {{tenant_name}}, {{villa_code}}, {{start_date}} — и бот заменяет их реальными данными через Jinja2.
Все данные хранятся в PostgreSQL. База содержит таблицу villa_contracts с полным набором полей: идентификатор договора, код виллы, тип контракта, данные сторон, даты начала и окончания, статус, ответственный менеджер. На момент запуска в базе уже было 46 активных договоров по 25+ виллам.
Как работает диалог с ботом
Пользователь запускает бота командой /start или /newcontract. Бот начинает серию вопросов — пошагово, по одному. Это важно: не форма с десятками полей сразу, а живой диалог. Менеджер отвечает на вопрос, получает следующий. Весь процесс занимает 1,5-2 минуты.
Типичный сценарий для договора аренды:
- Тип договора — бот показывает инлайн-кнопки: Аренда / Управление / Собственник / Инвестор. Одно нажатие.
- Выбор виллы — менеджер вводит код виллы или выбирает из списка. Бот сам подтягивает адрес, количество спален и базовую стоимость из базы данных.
- Данные арендатора — имя, паспортные данные, гражданство, контакты. Для иностранных арендаторов бот уточняет язык договора.
- Период аренды — даты въезда и выезда. Бот автоматически рассчитывает количество ночей и итоговую стоимость.
- Финансовые условия — стоимость за ночь или за период, размер депозита, условия оплаты.
- Особые условия — дополнительные услуги, ограничения, пожелания. Это опциональный шаг.
- Подтверждение — бот показывает сводку всех данных. Менеджер проверяет и нажимает "Сгенерировать".
После подтверждения бот за несколько секунд генерирует DOCX-файл, конвертирует его в PDF через LibreOffice (запуская его в headless-режиме) и отправляет оба файла в чат. Готово — можно пересылать клиенту или распечатывать для подписи.
Шаблонизация: как устроены шаблоны договоров
Шаблоны хранятся в виде DOCX-файлов с плейсхолдерами в стиле Jinja2. Это решение оказалось удобнее, чем хранить шаблоны в Google Sheets или базе данных — юрист может редактировать шаблон в привычном Word, не трогая код.
Переменные в шаблоне выглядят так: {{ tenant_full_name }}, {{ villa_address }}, {{ contract_start_date }}, {{ total_amount_idr }}. Для условного контента используются блоки: например, раздел про депозит отображается только если депозит указан в условиях.
Технический стек генератора договоров:
- Python 3.11 — основной язык
- python-telegram-bot 20.x — работа с Telegram API, ConversationHandler
- python-docx — чтение и запись DOCX шаблонов
- Jinja2 — шаблонизация переменных в документах
- PostgreSQL — хранение договоров и данных о виллах
- LibreOffice headless — конвертация DOCX в PDF
- asyncio — асинхронная обработка запросов
Четыре типа договоров: что генерирует бот
Система покрывает все юридические отношения управляющей компании — с арендаторами, собственниками объектов и инвесторами. Каждый тип договора имеет свой шаблон, свой набор вопросов в диалоге и свои обязательные поля.
Договор аренды (Tenant Agreement)
Самый частый тип — краткосрочная или долгосрочная аренда виллы гостем. Документ включает: полные данные арендатора и арендодателя, описание виллы (адрес, количество спален и ванных, оснащение), точные даты въезда и выезда, стоимость аренды в индонезийских рупиях и/или долларах США, размер и условия возврата депозита, правила проживания (количество гостей, домашние животные, мероприятия), порядок check-in и check-out, ответственность за ущерб.
Для иностранных гостей договор генерируется на двух языках — русском и английском — в одном документе. Это снимает часто возникающий вопрос "а можно получить версию на английском?".
Договор управления (Management Agreement)
Этот документ регулирует отношения между управляющей компанией и собственником виллы. Он фиксирует: предмет договора и полные характеристики объекта, размер комиссии управляющей компании (стандартно 15% от выручки), перечень услуг (маркетинг, бронирование, уборка, техобслуживание, отчётность), права и обязанности каждой стороны, порядок финансовой отчётности и выплат собственнику, срок договора и условия расторжения.
Договор управления — один из самых длинных и юридически сложных. Раньше его подготовка занимала 2-3 часа даже у опытного менеджера. Сейчас бот генерирует его за 2 минуты диалога и несколько секунд обработки.
Договор с собственником (Owner Agreement)
Используется при подключении нового объекта к платформе. Фиксирует права собственности, полномочия управляющей компании на заключение договоров от имени владельца, порядок доступа к объекту, условия страхования и ответственности. По структуре схож с management agreement, но ориентирован на первичное оформление отношений.
Инвестиционный договор (Investor Agreement)
Самый специфичный тип — для инвесторов, вкладывающих средства в виллу или проект. Включает: описание объекта инвестирования, сумму и форму инвестиций, прогнозируемую доходность и её расчёт, график выплат (ежемесячно, ежеквартально), механизм выхода инвестора из проекта, условия расторжения и форс-мажоры. Этот документ требует особой точности — малейшая ошибка в цифрах или условиях может иметь серьёзные юридические последствия. Поэтому для инвестиционных договоров добавлен дополнительный шаг подтверждения и отправка копии ответственному менеджеру.
Двуязычные договоры: русский и английский в одном документе
Бали — международное направление. Среди арендаторов вилл — россияне, европейцы, американцы, австралийцы. Для русскоязычных арендаторов договор генерируется на русском. Для иностранцев — на английском. Для смешанных случаев (например, русская семья, но деловой партнёр хочет английскую версию) бот может сгенерировать двуязычный документ: каждый пункт на обоих языках.
Это решалось через хранение двух версий каждого шаблона — tenant_ru.docx и tenant_en.docx — плюс комбинированный tenant_bilingual.docx, где текст идёт параллельно на двух языках. При генерации бот выбирает нужный шаблон на основе языковых предпочтений, указанных в диалоге.
Важный момент: все суммы в договоре указываются в нескольких валютах — индонезийских рупиях (IDR) как основная валюта, плюс эквивалент в долларах США или российских рублях для удобства арендатора. Курс конвертации бот подтягивает из актуальной таблицы в базе данных, которая обновляется ежедневно.
Интеграция с CRM и базой данных вилл
Бот не работает в изоляции — он интегрирован с центральной базой данных управляющей компании. Это означает, что менеджеру не нужно вводить данные о виллах вручную при каждом договоре.
Данные о виллах
В PostgreSQL хранится полная информация по каждому объекту: код виллы, официальное название, точный адрес, количество спален и санузлов, максимальная вместимость, фотографии, базовая стоимость аренды по сезонам (high season / low season), реквизиты собственника, контактный менеджер. Когда менеджер указывает код виллы в боте, все эти данные автоматически подставляются в шаблон договора.
Синхронизация с CRM
После генерации договора данные автоматически записываются в CRM — создаётся запись о новом контракте с привязкой к объекту и клиенту. Это исключает ситуацию, когда договор подписан, но в системе учёта о нём нет записи. Менеджер может запросить историю договоров по любой вилле прямо в боте командой /contracts [villa_code].
Интеграция с PostgreSQL как центральным мозгом управления позволила сделать бот частью единой информационной экосистемы, а не очередным изолированным инструментом.
Автоматический мониторинг истекающих договоров
Одна из самых ценных функций системы — не генерация, а контроль за уже существующими договорами. Каждую ночь в 9:00 по балийскому времени запускается плановая задача (cron), которая проверяет все активные договоры в базе и выявляет те, что истекают в ближайшие 60 дней.
Логика уведомлений многоуровневая:
- 60 дней до окончания — предварительное уведомление ответственному менеджеру: "Договор с виллой X истекает через 2 месяца. Стоит связаться с арендатором для обсуждения продления."
- 30 дней до окончания — повторное напоминание с более высоким приоритетом. Если менеджер ещё не отметил договор как "в процессе продления", система ежедневно напоминает.
- 14 дней до окончания — срочное уведомление. Бот предлагает прямо из чата сгенерировать новый договор или допсоглашение о продлении.
- День истечения — финальное уведомление с пометкой о необходимости срочного действия.
Когда система запустилась, она сразу обнаружила договоры, требующие внимания: вилла 26# — истекает через 36 дней, вилла 03# — через 58 дней. Менеджеры об этих датах просто не помнили. Без автоматического мониторинга оба договора могли закончиться тихо, без продления.
Похожий принцип проактивных уведомлений мы применяем и в других системах — например, в автоматическом мониторинге финансов для 16 вилл, где бот ежедневно присылает финансовую сводку без какого-либо участия менеджера.
Результаты: цифры и реальный эффект
Экономия времени
Главный результат — радикальное сокращение времени на документооборот. До внедрения бота среднее время подготовки одного договора составляло 40-180 минут в зависимости от типа и сложности. После — 2 минуты на диалог с ботом плюс несколько секунд на генерацию.
При объёме в 15-20 договоров в месяц (аренда + управление + разовые инвестиционные) экономия составляет примерно 20-30 часов менеджерского времени ежемесячно. Это почти целая рабочая неделя, которую сотрудники теперь тратят на работу с клиентами, а не на заполнение форм.
Качество документов
Ошибки в договорах упали до нуля. Точнее — до того уровня, который определяется качеством данных, вводимых менеджером. Если менеджер правильно ввёл данные арендатора, договор будет правильным. Больше нет ошибок из-за копипасты, забытых полей или использования устаревшего шаблона.
Все договоры генерируются из единого актуального шаблона. Когда юрист обновляет условия (например, меняет формулировку про ответственность за ущерб), правка происходит один раз в шаблоне — и все последующие договоры автоматически используют новую версию.
Контроль и прозрачность
Менеджер видит полную картину: какие договоры активны, по каким виллам, на каких условиях, когда истекают. Раньше эта информация была разбросана по папкам Google Drive, личным компьютерам и памяти сотрудников.
Собственники вилл стали получать своевременные уведомления о статусе их объектов. Это повысило доверие и снизило количество входящих звонков с вопросом "а что там с нашим договором?".
Итоги внедрения Telegram-бота генератора договоров:
- Время создания договора: с 40-180 минут до 2 минут
- Ошибки в документах: сведены к нулю
- Договоры под управлением: 46 активных для 25+ вилл
- Экономия в месяц: 20-30 часов менеджерского времени
- Мониторинг истечения: автоматически за 60/30/14 дней
- Языки договоров: русский, английский, двуязычный формат
Как это масштабируется: от 25 вилл к 100+
Один из вопросов, который возникает у собственников бизнеса при знакомстве с этим кейсом: а что будет, когда портфель вырастет? Ответ: ничего принципиально не изменится — система масштабируется без доработок.
Добавление новой виллы в систему занимает 5 минут: нужно создать запись в таблице вилл в PostgreSQL с базовыми данными объекта. После этого бот автоматически включает новую виллу в список при генерации договоров. Добавление нового типа договора чуть сложнее — нужно подготовить шаблон DOCX и описать набор вопросов для диалога — но это разовая работа на несколько часов.
Telegram-боты легко выдерживают нагрузку в сотни одновременных пользователей. При масштабировании до 100+ вилл единственное, что потребует внимания — это мощность базы данных PostgreSQL, но это стандартная задача горизонтального масштабирования.
Похожую логику масштабируемости мы применяем во всей экосистеме наших инструментов. Например, система мониторинга AI-агентов тоже построена так, чтобы добавление новых агентов не требовало ручных настроек.
Что можно адаптировать для вашего бизнеса
Описанное решение создавалось под конкретные нужды управляющей компании на Бали, но принципы применимы к любому бизнесу, где регулярно создаются однотипные документы.
Кому это подходит
Telegram-бот генератор договоров будет полезен:
- Агентства недвижимости — договоры купли-продажи, аренды, комиссионные соглашения
- Event-компании — договоры на организацию мероприятий с кастомными условиями
- Фрилансеры и агентства — типовые договоры на оказание услуг, NDA, договоры с подрядчиками
- Логистические компании — договоры перевозки, экспедирования, хранения
- Медицинские клиники — информированные согласия, договоры на обслуживание
- Образовательные организации — договоры на оказание образовательных услуг
Общий критерий: у вас есть 2+ типа документов, которые создаются регулярно на основе похожей структуры, но с разными данными. Если это так — автоматизация через бота даст значимый эффект.
Что нужно для внедрения
Минимальный набор для запуска генератора договоров через Telegram:
- Шаблоны договоров в формате DOCX с размеченными переменными
- База данных с данными об объектах или клиентах (PostgreSQL, MySQL, Google Sheets)
- Сервер для хостинга бота (VPS от $5-10/месяц вполне достаточно)
- Telegram-бот, зарегистрированный через @BotFather
- Разработчик на Python или готовность работать с нами
Типичный срок разработки такого бота с нуля — 2-4 недели в зависимости от количества типов договоров и сложности интеграций. Окупается за первый-второй месяц за счёт сэкономленного рабочего времени.
Уроки и выводы: что работает, а что нет
За время эксплуатации системы мы собрали несколько важных практических наблюдений.
Что сработало лучше ожидаемого
Диалоговый интерфейс вместо форм. Мы рассматривали вариант веб-формы для ввода данных договора, но остановились на Telegram-диалоге. Правильное решение: менеджеры приняли бот мгновенно, потому что интерфейс привычный. Не нужно открывать браузер, логиниться, искать нужную форму.
Инлайн-кнопки для выбора вилл. Вместо того чтобы просить вводить код виллы вручную, бот показывает список активных объектов кнопками. Это снизило количество ошибок при вводе и ускорило диалог.
Автозаполнение из базы данных. Когда менеджер выбирает виллу, бот сразу показывает данные объекта и просит подтвердить — это создаёт ощущение, что система "умная" и экономит время.
Что пришлось доработать
Конвертация в PDF. Первая версия использовала облачный сервис для конвертации DOCX в PDF. Это создавало задержки и зависимость от стороннего сервиса. Перешли на LibreOffice headless — конвертация занимает 3-5 секунд прямо на сервере.
Отмена и редактирование. Первая версия не позволяла вернуться назад и исправить предыдущий ответ. Менеджеры жаловались: ошибся в имени на шаге 3 — нужно начинать заново с шага 1. Добавили команду /back и возможность редактировать любой ответ перед финальным подтверждением.
Сохранение черновиков. Если менеджера отвлекают в процессе заполнения, прогресс теряется. Добавили автосохранение черновика каждые 2 шага — можно вернуться к незавершённому договору через команду /drafts.
Уведомления о дубликатах. Система начала генерировать похожие договоры для одних и тех же людей — менеджеры иногда запускали процесс дважды. Добавили проверку: перед генерацией бот ищет существующие активные договоры с тем же арендатором на ту же виллу и предупреждает.
Главный вывод
Автоматизация документооборота — один из самых быстро окупаемых проектов для малого и среднего бизнеса. Не потому что дорогой или сложный, а наоборот: потому что простой в реализации и сразу даёт измеримый результат. Менеджеры перестают тратить часы на рутину и начинают работать с клиентами. Руководитель видит всю документацию в одном месте. Клиенты получают правильные документы быстро.
Telegram — идеальная платформа для такого рода инструментов в командах до 50 человек. Нет затрат на разработку отдельного приложения, нет необходимости обучать сотрудников новому интерфейсу. Бот живёт там, где команда уже работает.
Если вам интересна автоматизация договорного документооборота для вашего бизнеса — напишите нам в Telegram. Расскажем, как это работает на практике и что потребуется для внедрения именно в вашем случае.