Автоматическая генерация PDF-презентаций из CRM: кейс разработки
Разработали движок, который собирает характеристики, фотографии и планировки в PDF. Подключили CRM, фирменные шаблоны и режим white label.

Проект под NDA. Название заказчика и конфиденциальные детали не раскрываются.
Мы разработали сервис автоматической генерации PDF-презентаций из данных CRM и сайта. Он получает характеристики объекта недвижимости, фотографии и планировки, проверяет материалы и собирает документ, который можно отправить клиенту. Решение поддерживает фирменное оформление и нейтральный режим white label.
Наша работа включала общий движок вёрстки, шаблоны для разных типов недвижимости, API для интеграций и эксплуатационную часть сервиса. Целью было встроить подготовку презентаций в существующий рабочий процесс и обеспечить единое оформление документов при разном составе исходных данных.
Задача: автоматизировать подготовку презентаций
В недвижимости документы регулярно нужны для продажи, аренды, переговоров с инвесторами и работы с партнёрами. При ручной сборке сотрудник переносит характеристики из системы, обновляет цену, выбирает фотографии, размещает планировки и проверяет страницы.
Если сведения об объекте меняются, документ приходится собирать заново или редактировать вручную. Оформление может различаться в зависимости от того, кто готовил презентацию. Мы поставили задачу передавать данные в сервис и получать готовый PDF по единому шаблону, сохраняя возможность использовать документ в разных каналах работы.
Как мы построили генератор PDF-презентаций
Определили два способа получения данных
Мы предусмотрели интеграцию с сайтом и прямую работу с CRM. В первом сценарии сервис получает сведения об объекте из базы. Во втором CRM передаёт характеристики через API вместе со ссылками на изображения или загруженными файлами. Планировки могут поступать в формате PDF.
Оба сценария используют общий механизм подготовки документа. Это позволяет подключать генерацию к рабочему инструменту сотрудников и не переносить те же сведения вручную в редактор презентаций.
Разработали общий движок вёрстки
В основе решения — движок, который распределяет текст, характеристики, фотографии и планировки по страницам A4. Мы предусмотрели разные типы объектов: квартиры, жилые комплексы, дома, офисы, склады и торговые помещения. Состав документа зависит от категории недвижимости и доступных материалов.
Основная задача вёрстки — учитывать содержание. Объекты различаются набором характеристик, длиной описания и количеством изображений. Мы построили автоматическое распределение контента по страницам, чтобы выпуск презентации не требовал ручной настройки каждого документа.
Подготовили изображения и планировки
Перед генерацией сервис проверяет входные данные и оптимизирует изображения. Для обработки фотографий и PDF-планировок мы использовали Pillow и PyMuPDF. Этот этап связывает исходные материалы с требованиями итогового документа и подготавливает их к дальнейшей вёрстке.
HTML, CSS и JavaScript описывают шаблоны и размещение контента. Playwright и Chromium преобразуют подготовленную вёрстку в PDF. Такой процесс позволяет использовать один механизм сборки для разных типов презентаций.
Вынесли генерацию в очередь
Обработка изображений и выпуск PDF могут занимать время, поэтому мы реализовали фоновую генерацию. После передачи данных задача ставится в очередь. Когда документ готов, CRM может получить статус и скачать результат.
Для эксплуатации предусмотрели ограничения нагрузки, восстановление очереди после перезапуска и автоматическую очистку временных файлов. Эти механизмы важны для сервиса, который используется регулярно и получает задания от подключённых систем.
Фирменный шаблон и white label
Мы реализовали два режима оформления. Фирменная презентация содержит шапку, контакты, информацию о компании и QR-коды. Нейтральный режим white label сохраняет структуру и визуальный стиль документа, отключая фирменные блоки, контакты, ссылки и QR-коды.
Это позволяет использовать один движок для прямого общения с клиентом и других каналов работы, где требуется нейтральная презентация. Логика сборки данных и подготовки страниц остаётся общей.
Какие сложности мы решали
Разный состав материалов. У одного объекта много фотографий и подробное описание, у другого — небольшой набор характеристик и планировка. Мы связали состав презентации с доступными данными и типом недвижимости.
Переносы между страницами. Автоматическая генерация документов требует управления вёрсткой: текст и изображения должны распределяться по страницам последовательно. Для этого мы реализовали общий механизм размещения контента и преобразование подготовленного HTML в PDF.
Несколько источников данных. Сайт и CRM передают сведения разными способами. Общий API и этап проверки позволяют использовать единый процесс генерации для обоих сценариев.
Работа под регулярной нагрузкой. Мы отделили приём запроса от подготовки файла, добавили очередь и механизмы её восстановления. Для клиентов предусмотрели индивидуальные API-токены и разграничение доступа.
Технологический стек
API и управление генерацией мы реализовали на Python и Flask. PDF собирается из HTML-шаблонов через Playwright и Chromium, а изображения и планировки обрабатываются с помощью Pillow и PyMuPDF. Данные и готовые документы хранятся в базе данных и S3-совместимом хранилище. Генерация выполняется в фоне; серверная инфраструктура обеспечивает обработку запросов, автоматический запуск и восстановление сервиса после сбоя.
Для подключения внешних систем мы подготовили описание API в OpenAPI и примеры запросов. Это делает интеграцию самостоятельной частью решения: разработчик CRM может передать материалы, проверить состояние задачи и получить готовую презентацию.
Результат: выпуск документов из существующей системы
Мы создали работающий сервис, который формирует презентации недвижимости по единому шаблону и позволяет запускать их подготовку из CRM или сайта. Сотруднику доступен готовый PDF, а перенос характеристик и размещение материалов выполняются в процессе генерации.
Тот же подход можно использовать для коммерческих предложений, каталогов и отчётов, которые собираются из структурированных данных. Для другой задачи потребуется определить состав документа, источники сведений и правила вёрстки.
Обсудим автоматизацию ваших документов
Если сотрудники регулярно переносят информацию из системы в шаблон, можем разобрать этот процесс в рамках создания цифрового продукта или помочь вашей команде с архитектурой интеграции. Генерация документов также может стать инструментом корпоративного ИИ-ассистента, который запускает нужный сценарий из диалога.