top of page
Search

Автоматизация маркетинговой отчётности и генерация презентаций в яхтенном бизнесе: технический кейс

  • Writer: Sarov+
    Sarov+
  • 2 days ago
  • 4 min read

Современный яхтенный бизнес — это не только престиж и роскошь, но и сложная операционная машина, требующая чёткого контроля над маркетинговыми показателями. Когда руководство компании запрашивает ежемесячный отчёт по каждой яхте в портфеле, а данные разбросаны по четырём разным источникам, задача перестаёт быть тривиальной. В этой статье мы расскажем о том, как выстроили полноценную цепочку автоматизации — от сбора данных до готовой Canva-презентации, которая генерируется буквально в один клик прямо из CRM.

 

А узнать больше можно в нашем видео: 

 

Контекст: что такое Central Agency и зачем нужен отчёт

 

Прежде чем говорить о технической реализации, важно понять предметную область. Владелец яхты, который хочет её продать или сдать в аренду, как правило, обращается к профессиональному брокеру. Между владельцем и брокерской компанией заключается специальный договор, по которому компания становится Central Agency для этой яхты, конкретный брокер — Central Agent, а сама яхта получает статус Central Agency listing.

Именно в таком контексте руководство компании поставило задачу: создать ежемесячный маркетинговый отчёт с ключевыми перформанс-метриками по каждой Central Agency. Требования включали:

  • количество лидов по яхте из CRM;

  • веб-сайт-аналитику — просмотры страниц, среднее время на странице;

  • сводные данные по MLS (Multiple Listing Services) — специализированным порталам для публикации яхтенных листингов;

  • email-маркетинг KPI: доставленные письма, открытия, клики, open rate;

  • social media KPI: количество постов, вовлечённость, охваты;

  • данные по ивентам (яхт-шоу) и пресс-релизам.

 

Архитектура источников данных

 

Проанализировав требования, мы определили четыре ключевых источника данных, из которых необходимо было собирать информацию.

  1. Dataverse стал основным источником: здесь хранятся данные о лидах, маркетинговые активности, ивенты и пресс-релизы. Это центральное хранилище операционной информации компании.

  2. SharePoint использовался для хранения MLS-выгрузок. Ответственный сотрудник ежемесячно загружает туда файлы, после чего логика автоматически подхватывает их и включает в результирующий файл.

  3. Azure-таблица хранила выгрузку из Google Analytics — детальную веб-аналитику по сайту компании: какие страницы открывались, сколько времени пользователи проводили на страницах яхт, из каких стран и с каких устройств заходили.

  4. Algolia — Search-as-a-Service решение, в котором компания хранит информацию о статьях. Мы использовали этот источник для получения данных о публикациях, в которых упоминались конкретные яхты, — как на сайте компании, так и в рассылках.

 

JSON-файл как основа решения

 

Объединив данные из всех четырёх источников, мы пришли к выводу, что оптимальным форматом результирующего файла будет JSON. Выбор был обусловлен тем, что с файлом должна была работать вторая команда разработчиков, преимущественно пишущих на Python, а JSON широко поддерживается всеми основными языками программирования и удобен для передачи по сети.

Файл генерируется Azure-функцией на C# с Timer Trigger и обновляется ежедневно. Структура JSON включает следующие ключевые узлы:

  • Leads — количество лидов из Dataverse, разделённых на Sales и Charter, с ID Central Agency в качестве ключа;

  • Navigator.ml — данные по двум специализированным рассылкам: Yacht Navigator (для Sales) и Lifestyle Navigator (для Charter), отправляемым раз в месяц широкой аудитории;

  • Yacht Emails — аналитика по каждому маркетинговому письму за прошедший месяц: доставленные, открытые, клики и другие метрики;

  • Website Sales / Website Charter — веб-аналитика раздельно для Sales и Charter яхт: открытия страниц, клики, география и устройства пользователей;

  • MLS-узлы — четыре узла с данными о views и impressions по каждой Central Agency на различных листинговых платформах;

  • Events — метаданные по ивентам с привязкой к конкретным яхтам. Например, если на Monaco Yacht Show физически присутствовала яхта Alfa Nero, эта связь фиксируется здесь;

  • Articles — публикации из Algolia и упоминания в Navigator-рассылках;

  • Press Releases — массив объектов с метаданными по пресс-релизам из CRM.

 

От JSON к Power BI: генерация CSV-файлов

 

JSON-файл является лишь промежуточным звеном. Непосредственным источником данных для Power BI отчёта служат CSV-файлы, которые генерирует вторая команда на основе нашего JSON. Такой подход упрощает импорт и трансформацию данных в семантической модели отчёта.

Схема взаимодействия выглядит следующим образом: наша Azure-функция с Timer Trigger генерирует JSON-файл, после чего автоматически триггерит функцию второй команды. Та, в свою очередь, на основе JSON создаёт набор CSV-файлов, которые напрямую поступают в Power BI. Итоговый отчёт содержит пять вкладок: Overview, Social Media, Email, Media Events и AI Insights.

Данные по Social Media в JSON-файл не включались — они собираются отдельной логикой через Sprout Social API, которая агрегирует все публикации за прошедший месяц и передаёт их в общий пайплайн обработки.

 

Автоматическая генерация Canva-презентации

 

Второй крупной задачей в рамках проекта стала автоматическая генерация маркетинговых презентаций. Требование было простым: пользователь открывает запись Central Agency в CRM, нажимает кнопку, выбирает отчётный период — и получает готовую презентацию.

В основе решения лежит Canva Data Autofill — инструмент, позволяющий создать шаблон презентации и разметить в нём DataFields: текстовые элементы слайдов, которые будут автоматически подменяться актуальными данными при каждой генерации.

Для реализации этого функционала мы разработали две Azure-функции.

  • Первая функция (HTTP Triggered) инициирует генерацию. Она принимает из CRM параметры — TemplateId, ReportingPeriod и другие, — получает access token, запрашивает у Canva API модель презентации со всеми DataFields, наполняет её данными и триггерит специальный endpoint. В ответ Canva возвращает JobID, который сохраняется в таблице Dataverse — Canva Presentations — вместе с остальными метаданными.

  • Вторая функция (Timer Trigger, запускается каждую минуту) отслеживает статус запущенных задач. Она запрашивает из Dataverse все записи со статусом In Progress и проверяет их статус через Canva API. Если статус становится Success, функция записывает в Dataverse все полученные URL-ы — view URL, edit URL, thumbnail URL — и отправляет пользователю in-app уведомление о готовности презентации. В случае ошибки логируется её причина для последующего анализа.

 

Заключение

 

Описанное решение демонстрирует, как грамотно выстроенная архитектура данных позволяет трансформировать разрозненную информацию из четырёх источников в полноценный аналитический инструмент. Интеграция Dataverse, SharePoint, Azure, Algolia и Canva API в единый пайплайн дала команде возможность не только видеть ключевые маркетинговые показатели в Power BI, но и генерировать готовые клиентские презентации буквально в один клик. Именно такой подход — когда технические решения напрямую закрывают бизнес-потребности — и отличает по-настоящему эффективную автоматизацию.

 
 
 

Comments


Power Platform logo

Подписывайся на наши ресурсы.

  • Telegram
  • LinkedIn
  • Facebook
  • Twitter
  • YouTube
  • Instagram

© 2035 by The Pop Show. Powered and secured by Wix

bottom of page