Репорты: как строить репорты по кастомным событиям

Репорты
Версия: v2Дата: 15.06.2026

Что считается кастомным событием

Кастомное событие — это любое событие, которое клиент отправляет в CDP через Events API или SDK: order_created, lead_submitted, bonus_spent, product_viewed. Gateway принимает событие по POST /v1/projects/{projectUuid}/events, а тело может содержать произвольные атрибуты в attributes.

Репорты: события проекта
Перед построением отчёта проверьте, что событие видно в справочнике событий проекта.

Пример payload

{
  "nameEvent": "order_created",
  "email": "client@example.com",
  "attributes": {
    "order.amount": "1590",
    "order.status": "paid",
    "order.currency": "RUB",
    "delivery.city": "Moscow"
  }
}

Даже если бизнес-структура сложная, для отчёта важно, чтобы нужные поля стабильно приходили с одинаковыми именами. В текущем DTO attributes — map строк, поэтому глубокие структуры лучше нормализовать в понятные ключи.

Репорты: expression для custom events
Для отчёта используйте имя события и поля, которые появились в доступных метриках.

Как построить отчёт

  1. Откройте «События» и убедитесь, что custom event дошёл.
  2. Опишите событие и атрибуты, чтобы пользователи понимали смысл полей.
  3. Откройте «Репорты» → «Новый отчёт».
  4. Для количества используйте count(order_created).
  5. Для суммы используйте sum(order_created.order.amount), если поле доступно как числовое.
  6. Для фильтра используйте sumIf(order_created.order.amount, order_created.order.status == 'paid').

Что проверять при пустом графике

  • Событие реально есть в event.
  • Имя поля в expression совпадает с тем, что видит builder.
  • Значение суммы приходит числом, а не произвольной строкой.
  • Период отчёта включает время события.

Технически: пользователь работает во frontend через REST в gateway. Внутри CDP используется контур gateway → cdp_report; факты берутся из event, лимиты — из payment, графики рисует frontend/d3js. Пользователю это нужно знать только для диагностики: если UI показывает ошибку, смотрите route, HTTP-статус gateway и связанный сервис.

Репорты: результат по custom events
Результат должен быть воспроизводимым: одно и то же событие попадает и в справочник, и в отчёт.