Как мы объединили 14 источников данных в единый JSON и автоматизировали создание презентаций для клиента
- Sarov+

- 23 hours ago
- 3 min read
А узнать больше можно в нашем видео:
С чем пришёл клиент
Клиент вёл данные по каждой яхте вручную: собирал информацию из разных систем, сводил всё в Excel и на его основе заполнял презентационные шаблоны — цифру за цифрой, вручную. Итогом стал файл с 20 таблицами и около 14 различными источниками данных. Источники делились на несколько групп.
Первая — Google Analytics сайта клиента, откуда брались данные по чартеру и продажам яхт.
Вторая — внешние маркетинговые платформы: MLS, SWT, UW, YATCO, EBI, каждая из которых хранила свою версию информации по яхтам.
Третья — CRM, где велись лиды, письма и события.
Четвёртая — социальные сети: Facebook, Instagram, Instagram Stories, Twitter, LinkedIn.
Единого источника правды не существовало. Чтобы получить полную картину по одной яхте, нужно было вручную обойти несколько вкладок Excel, найти нужные данные и собрать их воедино.
Бизнес-запрос и постановка задачи
Клиент сформулировал задачу чётко: нужен единый структурированный датасет по каждой яхте, чтобы не приходилось каждый раз вручную компилировать данные из разных источников. Конечная цель — автоматическая генерация Canva-презентации на основе этих данных.
Таким образом, перед нами стояло две задачи.
Первая — собрать все данные в один источник.
Вторая — на основе этого источника автоматически генерировать готовую презентацию.
Анализ и декомпозиция
Когда нам передали этот Excel, стало понятно, что работы предстоит немало. Мы разбили все источники на логические группы и начали исследовать каждый из них в порядке приоритетности для клиента: сначала CRM с лидами и письмами, затем внешние платформы, потом Google Analytics.
Для каждого источника мы изучали доступные API, оценивали возможные подходы к интеграции — Azure Function, плагины, Power Automate Flow — и определяли логику агрегации данных по яхте. Ключевым вызовом оказалось то, что разные источники хранили разные наборы данных об одной и той же яхте, а названия яхт могли повторяться. Поэтому в качестве основного идентификатора был выбран ID из CRM, а для сопоставления данных между источниками применялись дополнительные фильтры — например, длина яхты.
По итогам анализа стало понятно, как должна выглядеть финальная JSON-структура.
Архитектура решения
В основу архитектуры легла одна Azure Function с модульным подходом: каждый источник данных реализован как отдельный сервис внутри функции. Это означает, что сбой в одном сервисе не затрагивает остальные.
Каждый сервис содержит собственную логику трансформации данных под конкретный источник, после чего все данные агрегируются в единый JSON по ID яхты из CRM. Итоговый JSON сохраняется в Azure Blob Container — этот вариант клиент выбрал из нескольких предложенных, поскольку он не требовал дополнительной настройки аутентификации, как в случае с SharePoint.
Социальные сети были вынесены за пределы основной Azure Function и реализованы отдельно: клиент ведёт данные по соцсетям в Excel, отдельная утилита парсит этот файл и передаёт данные в Canva.
Результаты: Power BI и автогенерация презентаций
На основе сформированного JSON клиент самостоятельно построил Power BI-дашборд: выбираешь яхту из CRM — и получаешь полную аналитику по ней с фильтрацией по письмам, медиа и событиям. Такой отчёт можно показывать инвесторам, брокерам и партнёрам.
Вторая часть проекта — автоматическая генерация Canva-презентаций — сейчас находится в стадии реализации. В CRM на карточке яхты появилась кнопка Canva. Пользователь выбирает шаблон, указывает период — и нажимает Generate. Через 20 секунд в системе появляется новая запись с двумя ссылками: на просмотр и на редактирование. Данные из JSON автоматически подставляются в плейсхолдеры на каждом слайде — включая изображения. Ничего заполнять вручную не нужно.
Заключение
Этот проект — наглядный пример того, как правильно выстроенная архитектура данных меняет операционную реальность бизнеса. Клиент получил единый источник правды по каждой яхте, полную автоматизацию сбора и обработки данных, прозрачную аналитику в Power BI и готовую презентацию без единого ручного действия.
Модульный подход на Azure Functions оказался оптимальным решением: он обеспечивает гибкость при подключении новых источников и устойчивость системы в целом. А интеграция с Canva API открывает возможности, которые ещё недавно казались нереализуемыми в связке с CRM.



Comments