[Разработка] · 1 мин чтения

AI-дашборд для клиента: автоотчёты с инсайтами

AI-дашборд для клиента: автоотчёты с инсайтами

Каждую пятницу приходит сообщение от клиента: «Ну как там сайт?». Вы открываете GA4, Яндекс.Метрику, Search Console, смотрите цифры, формулируете текст — и час жизни ушёл. Умножьте на 10 клиентов и 52 недели. Это 520 часов в год на ручную работу, которую можно полностью автоматизировать.

В этой статье — конкретная схема: собираем метрики из нескольких источников, прогоняем через промпт к Claude или GPT-4o, получаем человекочитаемый инсайт и отправляем клиенту в Телеграме или на почту.

Что болит у клиента (и у вас)

Клиент не понимает цифры. Ему неинтересно, что «bounce rate составил 64,3%». Ему важно: стало лучше или хуже, почему, что делать. Именно это и генерирует AI.

Для вас проблема в другом: собрать данные из 5 источников, свести в таблицу, написать текст — это механическая работа без творческой ценности. Её надо делегировать скрипту.

Источники данных

Минимальный набор для большинства бизнес-сайтов:

Источник Что берём API/инструмент
Google Analytics 4 Сессии, конверсии, источники трафика GA4 Data API
Яндекс.Метрика Визиты, отказы, цели Metrika API v1
Google Search Console Клики, показы, средняя позиция Search Console API
PageSpeed Insights LCP, CLS, INP, общий балл PSI API (бесплатно)
UptimeRobot / BetterStack Время доступности, инциденты REST API

Для e‑commerce добавляем:

  • Данные из CRM (новые заказы, выручка за неделю)
  • Данные рекламных кабинетов (Яндекс.Директ, VK Реклама) — CPL, ROAS

Архитектура пайплайна

Cron (каждое воскресенье 08:00)
  → Сборщик метрик (Python / n8n)
    → Агрегация в JSON
      → AI-промпт (Claude API / OpenAI)
        → Форматирование отчёта
          → Отправка (Telegram Bot / Email)

Два варианта реализации: n8n (no-code, быстрее стартовать) и Python-скрипт (гибче, дешевле при масштабе).

Вариант 1: n8n

Если вы уже используете n8n — это самый быстрый путь. Создаёте workflow:

  1. Schedule Trigger — каждое воскресенье в 8 утра
  2. HTTP Request — запрос к GA4 Data API (POST https://analyticsdata.googleapis.com/v1beta/properties/{id}:runReport)
  3. HTTP Request — Яндекс.Метрика (https://api-metrika.yandex.net/stat/v1/data)
  4. HTTP Request — PageSpeed (https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=...)
  5. Code node — агрегация всех данных в один JSON объект
  6. HTTP Request → Claude API или OpenAI
  7. Telegram node — отправка клиенту

Из минусов: n8n на бесплатном тарифе ограничен по исполнениям. На self-hosted (Docker) — без ограничений, ~500 руб/мес на VPS.

Вариант 2: Python-скрипт

Больше контроля, проще отлаживать, проще запускать через cron на сервере.

import httpx
import json
from datetime import datetime, timedelta
from anthropic import Anthropic

client = Anthropic()

def collect_pagespeed(url: str) -> dict:
    api_url = f"https://www.googleapis.com/pagespeedonline/v5/runPagespeed"
    r = httpx.get(api_url, params={"url": url, "strategy": "mobile"})
    data = r.json()
    cats = data["lighthouseResult"]["categories"]
    return {
        "performance": round(cats["performance"]["score"] * 100),
        "lcp": data["lighthouseResult"]["audits"]["largest-contentful-paint"]["displayValue"],
        "cls": data["lighthouseResult"]["audits"]["cumulative-layout-shift"]["displayValue"],
    }

def generate_insight(metrics: dict) -> str:
    prompt = f"""
Ты — аналитик веб-студии. Клиент получит этот отчёт напрямую.
Пиши на русском, деловым языком, без технического жаргона.
Объём: 150-200 слов.

Данные за неделю:
{json.dumps(metrics, ensure_ascii=False, indent=2)}

Напиши:
1. Главный вывод (одно предложение)
2. Что выросло / упало и почему (предположение)
3. Одна конкретная рекомендация на следующую неделю
"""
    message = client.messages.create(
        model="claude-opus-4-5",
        max_tokens=400,
        messages=[{"role": "user", "content": prompt}]
    )
    return message.content[0].text

Полный скрипт с отправкой в Телеграме — ещё ~80 строк. Запускается через crontab -e:

0 8 * * 0 /usr/bin/python3 /opt/reports/weekly_report.py >> /var/log/reports.log 2>&1

Промпт для AI: принципы

Сырые данные в промпт не помогут. Важно дать контекст:

Клиент: интернет-магазин женской одежды, Москва
Основная цель сайта: продажи (цель «purchase» в GA4)
Сезонность: март — начало весеннего сезона, рост спроса ожидаем

Данные прошлой недели vs позапрошлой:
- Сессии: 1240 → 1380 (+11%)
- Конверсия: 2.1% → 1.8% (-14%)
- Средняя позиция (GSC): 18.4 → 16.1 (улучшение)
- PageSpeed mobile: 62 → 58 (ухудшение)

Хороший промпт включает: профиль клиента, контекст сезонности, дельты (не абсолюты), приоритет метрик для этого бизнеса.

Что отправлять разным типам бизнеса

Лендинг / услуги:

  • Заявки/звонки (конверсии) — главное
  • Источники трафика
  • Позиции по ключевым запросам

Интернет-магазин:

  • Транзакции, выручка, средний чек
  • Брошенные корзины
  • ROAS рекламных кампаний

Корпоративный сайт:

  • Время на сайте, глубина просмотра
  • Страницы с высоким отказом
  • Прирост органического трафика

Реальные цифры

Время на постройку пайплайна: 4 – 6 часов (Python) или 2 – 3 часа (n8n).

Ежемесячные расходы:

  • Claude API (claude-opus‑4 – 5, 10 клиентов x 4 отчёта): ~$3 – 5
  • VPS для cron/n8n: 300 – 500 руб
  • PageSpeed, GSC, Metrika API: бесплатно

Итого: ~700 руб/мес за полную автоматизацию vs 40+ часов ручного труда.

Пример: сырые данные vs AI-инсайт

Сырые данные:

sessions: 1240, bounce_rate: 67.3, goal_completions: 22,
pagespeed_mobile: 58, avg_position: 18.4

AI-инсайт:

На этой неделе сайт посетили 1240 человек, из которых 22 оставили заявку — это хороший результат для марта. Однако 67% посетителей уходят после первой страницы, что выше нормы. Скорость загрузки на мобильных снизилась до 58 баллов — это может быть причиной. Рекомендую проверить, не появились ли новые тяжёлые изображения на главной, и оптимизировать их до следующей недели.

Разница очевидна. Клиент понимает второй вариант без объяснений.

$ ./contact --new-project

Есть задача? Обсудим

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами
Используем для работы сайта и аналитики посещаемости. Подробнее
Принять
Отказаться