Флагманский гайд

AI-анализ email-обращений: методика на стыке Яндекс.Метрики и Claude Code

Классический email-трекинг отвечает на вопрос «откуда пришло обращение». AI-слой отвечает на вопросы, которые раньше требовали ручного аналитика: значим ли email на фоне звонков, форм и мессенджеров, почему один источник даёт качественные обращения, а другой — пустые, какие сегменты визитов предшествуют письму, что написать в ответ с учётом пути пользователя. Здесь — как я собираю это на уже имеющемся стеке: Logs API Метрики, PostgreSQL и Claude Code, без новых платных сервисов.

AI-анализ email-обращений: методика на стыке Яндекс.Метрики и Claude Code

Гайд — методическое дополнение к подходу оценки email-трекинга, который я закладываю в Майкор-аудит. Параллельно в AI-лаборатории melanina.ru выйдет практический разбор: как я настраивала этот пайплайн на данных одного клиента, с конкретными промптами и фрагментами SQL.

Что добавляет AI-слой к классическому трекингу

Трекер из основной методики даёт структурированную таблицу: обращение, источник, ClientID, UTM. Этого достаточно для подсчёта конверсий по каналам, но не для понимания причин различий. AI-анализ работает поверх этой таблицы и закрывает три разрыва.

Разрыв Классический трекинг AI-слой поверх
Качество обращения Все email равны — считается только факт Классифицирует обращение по тексту и пути: целевое / спам / нецелевое / прогрев
Поведение до контакта UTM последнего визита Анализ всей цепочки визитов из Logs API: какие страницы, сколько касаний, какой паттерн
Объяснение различий каналов «Канал A конвертит 12%, B — 4%» Гипотезы о причинах разницы на основе паттернов поведения и текста обращений

Методологическая граница. AI генерирует гипотезы и классификации, а не истину. Любой вывод модели о причинах различий между каналами — это предположение для проверки экспериментом или ручной валидацией, а не основание сразу перекраивать бюджет. Это прямое следствие ограничения «атрибуция ≠ причинность» из основной методики Майкор-аудита.

Архитектура: данные → хранилище → Claude Code → отчёт

Архитектура состоит из четырёх этапов и переиспользует то, что у меня уже развёрнуто на проекте: трёхслойную модель данных и PostgreSQL-парсер. AI-слой не вводит новой инфраструктуры — это скрипты и агенты Claude Code, работающие поверх существующего хранилища.

  1. Сбор. Событийный трекер пишет обращения, Logs API Метрики отдаёт визиты по ClientID.
  2. Хранилище. PostgreSQL: таблица обращений плюс сырые визиты, связанные по ClientID.
  3. AI-анализ. Claude Code читает выборку из базы, классифицирует и ищет паттерны.
  4. Отчёт. Структурированный вывод: сегменты, гипотезы, рекомендации с пометкой достоверности.

Принцип, на котором держится вся методика: сырые данные собираются детерминированным кодом, а AI применяется только там, где нужна интерпретация неструктурированного — тексты писем, паттерны путей. Считать конверсии и суммы AI не должен, это работа SQL.

Схема разделения ответственности: слева код считает агрегаты и цифры, справа AI интерпретирует тексты и паттерны
Разделение ответственности: код (SQL, Python) считает агрегаты, конверсии, суммы, дедупликацию — детерминированно и проверяемо. AI (Claude) классифицирует тексты обращений, выделяет поведенческие паттерны, формулирует гипотезы и черновики ответов. Там, где цифра — она только из базы, AI её не выдумывает, а получает на вход.

Источники данных Яндекс.Метрики

Для AI-анализа нужны два потока из Метрики, оба привязываются к обращению через ClientID.

Источник Что даёт Как использую в AI-анализе
Logs API (визиты) Полная цепочка визитов по ClientID: страницы, длительность, источники, устройство Реконструкция пути пользователя до письма — вход для анализа паттернов
Reporting API Агрегаты по всем целям и источникам Объёмы обращений по типам (email, звонок, форма) для кросс-канального разреза и контекст для интерпретации
Цели (reachGoal) Факт email-обращения, привязанный к визиту Якорь, к которому подтягиваются визиты до и после
Офлайн-конверсии Связь обращения со сделкой и суммой Метка качества: целевым считаю обращение, ставшее сделкой

Logs API отдаёт данные с задержкой и за ограниченный период — выгрузку делаю регулярно и складываю в PostgreSQL. AI работает уже с накопленным хранилищем, а не дёргает API на каждый запрос.

Отчёт Яндекс.Метрики Конверсии: список целей сайта с целью Клик по email и достижениями за период
Цель «Клик по email» в Яндекс.Метрике melanina.ru рядом с другими конверсионными целями: переходы в Telegram, на страницу контактов, в каталог. Цифры достижений и доли — точка, с которой начинает работать AI-слой.
Детальный отчёт по цели Клик по email с разбивкой по источникам трафика
Детализация цели «Клик по email» по источникам трафика. На этом уровне классический трекинг останавливается — AI-слой работает дальше, доставая из каждого визита цепочку касаний и сравнивая источники по доле целевых обращений.

Задачи, которые решает AI-анализ

4.1. Кросс-канальный анализ: email на фоне других обращений

Прежде чем разбирать email по источникам трафика, отвечаю на верхнеуровневый вопрос: значим ли email-канал на фоне звонков, форм и мессенджеров вообще. Это два разных вопроса. Первый — «стоит ли заниматься email-каналом» (сравнение типов обращений между собой). Второй — «какой источник приносит email» (атрибуция внутри канала). Сначала первый, потом второй — иначе можно оптимизировать источники для канала, который сам по себе маргинален.

AI-слой здесь даёт то, чего голый учёт не умеет: размечает обращения всех типов по единым категориям качества и сравнивает каналы коммуникации на равных. Не «звонков 200, писем 80», а «целевых звонков 60%, целевых писем 30%». Картина значимости канала после такой разметки меняется.

От этого зависит, что считает код, а что — человек. Кросс-канальный анализ корректен, только когда обращения разных типов сведены в одно хранилище и размечены одинаково. На практике встречаются три ситуации.

Где лежат данные по типам Как делаю кросс-канальный разрез
Все типы в одной CRM или базе Идеальный случай. SQL сводит обращения всех типов в одну таблицу, AI классифицирует по единым категориям, сравнение каналов полностью детерминировано по объёмам.
Email и формы — свои, звонки — внешний коллтрекинг Звонки выгружаю из коллтрекинга в то же PostgreSQL по расписанию, привожу к общей схеме. Если выгрузки нет — беру долю звонков как агрегат из коллтрекинга и передаю AI как факт, тексты звонков в классификацию не идут.
Каждый тип в своём сервисе, общего хранилища нет Самый частый случай (см. 4.1.1). Кросс-канальный разрез по объёмам делаю вручную, AI применяю только внутри тех типов, что доступны как тексты. Не выдаю сравнение каналов за точное, если источники несопоставимы.

Принцип тот же, что и во всей методике: объёмы и доли — из данных (SQL или ручная сводка проверяемых цифр), а AI приводит обращения к единым категориям качества. Если какой-то тип обращений недоступен как структурированные данные, AI не достраивает его по догадке — это помечается как пробел в данных.

4.1.1. Когда каждый тип обращений в своём сервисе: рабочий процесс

Самая частая реальность: письма в почте, формы у своего трекера, звонки в коллтрекинге, мессенджеры в виджете или CRM. Единого хранилища нет. Возникают две независимые проблемы: объёмы по типам несопоставимы (разные системы по-разному считают «обращение», период и дедупликацию) и тексты для классификации разрознены. Основной подход для этой ситуации — ручная сводка объёмов плюс AI-классификация по доступным текстам. Он не требует интеграций и даёт ответ на главный вопрос «значим ли email» уже в первом периоде.

  1. Сводка объёмов. Раз в период выписать число обращений по каждому типу из его системы за один и тот же период в одну таблицу: email, звонок, форма, мессенджер. Свести к общему пониманию «обращения» (исключить пропущенные звонки и спам, если их не считаем лидами).
  2. Доля канала. Посчитать share_email = email / сумма всех типов. Это живая проверка значимости по данным, а не по прикидке. Применить пороги: <3% маргинальный, 3–10% заметный, >10% значимый.
  3. AI по доступным текстам. Выгрузить тексты тех типов, что реально доступны (обычно email и формы), и прогнать через классификатор по единым категориям качества. Сравнить долю целевых там, где тексты есть.
  4. Честная пометка пробелов. Типы без текстов (например, звонки без расшифровок) участвуют в сравнении только по объёму, но не по качеству. Это прямо помечается в отчёте — сравнение каналов по качеству неполное.

Ограничения, которые держу в голове. Ручная сводка трудозатратна и не автоматизируется — это плата за отсутствие интеграций. Объёмы из разных систем сопоставимы лишь приблизительно: дедупликацию «один человек написал и позвонил» приходится делать глазами, а определение «обращения» в каждой системе своё. Поэтому выводы минимальной стратегии — это ориентир для решения «заниматься ли email вообще», а не точная атрибуция.

Куда расти потом. Если ручная сводка становится регулярной рутиной, следующий шаг — свести типы обращений в единую нормализованную таблицу в PostgreSQL (поля: время, канал, ClientID, ключ дедупликации, текст, статус сделки), куда каждый сервис выгружается по расписанию. Тогда и объёмы, и качество считаются детерминированно по всем каналам. Это целевое состояние, к которому ведёт трёхслойная архитектура Майкор-аудита, но переход оправдан только когда объёмы и частота анализа окупают интеграцию с каждым сервисом.

4.2. Классификация качества обращений

Модель размечает входящие письма по категориям: целевой запрос, запрос КП, спам или реклама, нецелевое обращение, информационный вопрос. Те же категории применяются и к другим типам обращений (расшифровки звонков, тексты форм и сообщений), что и делает возможным кросс-канальное сравнение из 4.1. Это снимает главную слабость голого трекинга — он считает все обращения одинаковыми. После классификации конверсия по каналам и источникам пересчитывается уже по целевым обращениям, и картина меняется.

4.3. Анализ поведенческих паттернов до обращения

На вход подаются цепочки визитов из Logs API для обращений, ставших сделками, и для пустых. Модель ищет различия: число касаний, типы просмотренных страниц, временной паттерн. Результат — гипотезы вида «целевые письма приходят после просмотра страницы с ценами и повторного визита», которые затем проверяются на данных.

4.4. Сегментация источников с объяснением

Вместо сухой таблицы «источник — конверсия» AI группирует источники и предлагает интерпретацию различий. Выполняется после кросс-канального разреза (4.1) и только для каналов, прошедших порог значимости. Интерпретация маркируется как гипотеза и сопровождается указанием, на каком объёме данных она построена.

4.5. Черновики ответов с учётом контекста

Зная путь пользователя (что смотрел, какой источник), модель готовит черновик ответа менеджеру: на какие страницы человек заходил, что вероятно его интересует. Это ускоряет обработку, но отправляет ответ всегда человек — AI только готовит черновик.

Конвейер на Claude Code: настройка и память

Сборка повторяет подход к структурированной памяти проектов: основной контекст, накопленные выводы и журнал инцидентов лежат в отдельных файлах внутри проекта. Ниже — структура под задачу анализа обращений.

В контекст проекта обязательно кладу:

  • Схему таблиц PostgreSQL (поля обращений, визитов, связь по ClientID)
  • Жёсткое правило: все числа берутся из результата SQL, не вычисляются моделью
  • Категории классификации обращений (фиксированный список, чтобы разметка была сопоставимой между запусками)
  • Порог достаточности данных: ниже скольких обращений выводы помечаются как ненадёжные
  • Требование маркировать каждый вывод о причинах как гипотезу

Этапы одного запуска анализа:

  1. Выгрузка. Скрипт регулярно тянет визиты из Logs API в PostgreSQL.
  2. Подготовка выборки. SQL отбирает обращения за период и подтягивает к ним цепочки визитов. AI получает уже готовую структуру, а не сырой API.
  3. Анализ. Claude Code классифицирует обращения, сопоставляет паттерны целевых и пустых, формулирует гипотезы.
  4. Отчёт. Структурированный вывод плюс обновление накопленных наблюдений по каналам.

Промпты агентов и контроль галлюцинаций

Анализ разбивается на узкие роли — это снижает риск, что модель «придумает» закономерность. По аналогии с пайплайном Researcher → Writer → Reviewer здесь работают три роли.

Агент Вход Задача Запрет
Классификатор Тексты обращений Разметить по фиксированным категориям Не считать статистику
Аналитик путей Цепочки визитов плюс метки качества Найти различия в паттернах, дать гипотезы Не утверждать причинность; помечать как гипотезу
Ревьюер Выводы аналитика плюс агрегаты из SQL Проверить, что каждый вывод опирается на данные и достаточный объём Вычёркивать необоснованные утверждения

Защита от галлюцинаций цифр. Главный риск AI-аналитики — модель «округляет» или придумывает числа. Решение архитектурное: все агрегаты вычисляет SQL, а агенту они передаются как факты во входных данных. Ревьюер сверяет любое число в отчёте с переданными агрегатами и вычёркивает то, чего нет в источнике. Это тот же принцип верификатора, что в пайплайне Майкор-аудита.

В промпте каждого агента жёстко закреплено четыре правила: любой вывод о причине — это гипотеза с явной пометкой; числа, которых нет во входных данных, использовать запрещено; при малой выборке (меньше 30 наблюдений) к выводу добавляется пометка «низкая достоверность: N=…»; предлагать менять бюджет агенту запрещено — он предлагает только то, что стоит проверить.

Стоимость, окупаемость и границы применимости

AI-слой добавляет к стоимости владения две статьи: разовую разработку конвейера и переменную стоимость токенов на анализ. Поскольку анализ запускается периодически (раз в неделю или месяц), а не на каждое обращение, расход на модель невелик и масштабируется с объёмом.

Статья Характер Замечание
Разработка конвейера Разовая (CAPEX) Поверх существующего PostgreSQL и парсера — дешевле, чем с нуля
Токены на анализ Переменная Зависит от объёма обращений; пакетная обработка раз в период, не на каждое письмо
Поддержка промптов Периодическая Пересмотр категорий и правил при изменении ниши

Когда AI-слой не оправдан. Если базовый email-трекинг не прошёл пороги основной методики (мало обращений, доля <3%) — AI-слой тем более не нужен: интерпретировать нечего, а на малых N выводы недостоверны. AI-анализ имеет смысл только когда поток обращений достаточен для классификации и сравнения сегментов, то есть начиная с десятков целевых обращений в период.

Где AI-слой даёт наибольшую отдачу. B2B с дорогими сделками и неоднородными обращениями: там разметка качества и анализ путей экономят время менеджеров и уточняют, какие каналы дают целевые, а не любые письма. Чем выше чек и разнороднее поток — тем выше отдача интерпретации поверх голых цифр.

Документ дополняет основной подход к оценке целесообразности email-трекинга. AI применяется только для интерпретации неструктурированных данных; все количественные показатели вычисляются детерминированным кодом и верифицируются перед включением в отчёт. Архитектура переиспользует существующий стек: Logs API Яндекс.Метрики, PostgreSQL, Claude Code со структурированной памятью проектов.

Если хотите проверить, готов ли ваш стек к AI-анализу обращений, запишитесь на аудит — я начинаю с проверки целостности данных и показываю, что нужно закрыть в первую очередь.

Валентина Меланина

Хотите обсудить свой проект?

Помогу с разработкой, аналитикой и AI-видимостью вашего сайта

Если у вас есть задача — от внедрения разметки и аналитики до полной переработки сайта — напишите, обсудим объём и подход.