Разбор
Claude читает твои Google Таблицы и объясняет что происходит: аналитик за 5 рублей в день
Большинство таблиц с данными так и остаются непрочитанными — некому интерпретировать. Python + gspread + Claude: агент читает продажи, трафик и расходы, пишет текстовый вывод на русском. 5 рублей в день вместо штатного аналитика для первичной интерпретации.
У меня есть знакомый — владелец небольшой сети кофеен. Каждый понедельник его операционный директор скидывает Excel с продажами за неделю. Тот открывает, смотрит на числа… и закрывает. Потому что непонятно что с ними делать. Цифры есть, смысла нет.
Это не исключение. Это норма для 90% компаний малого бизнеса.
Таблицы есть у всех. Выводов нет
Данные собираются. Продажи по дням, заявки из рекламы, расходы по статьям, остатки на складе. Всё это оседает в Google Таблицах — аккуратно, по столбцам, иногда с подсветкой.
Проблема не в сборе данных. Проблема в том, что между числами и решением — пропасть. Что значит «продажи 340 000 в апреле»? Хорошо это или плохо? Почему так? Что делать в мае?
Нанять аналитика на 80 000 рублей в месяц ради одной сводной таблицы — перебор. Ждать ежеквартального отчёта от агентства — слишком долго. Разбираться самому каждый понедельник — нет времени.
Агент закрывает ровно это. Не строит дашборды, не заменяет BI-систему. Читает таблицу и пишет по-русски: вот что изменилось, вот почему это тревожно, вот что можно сделать прямо сейчас.
Что конкретно делает агент
Четыре типа анализа — в зависимости от того, что написать в промпте.
| Тип анализа | Что ищет | Пример вывода |
|---|---|---|
| Сравнение периодов | Изменения неделя/неделя, месяц/месяц | «Продажи выросли на 23% — с 280 до 345 тыс. руб. Рост во всех категориях кроме кофе навынос (−8%)» |
| Поиск аномалий | Значения выбивающиеся из паттерна | «Среда 15 апреля: 12 заказов вместо обычных 28–34. Похоже на сбой приёма заказов или проблему с сайтом» |
| Прогноз по тренду | Линейная экстраполяция за 4+ периода | «При текущей динамике в мае выйдете на 370–390 тыс. руб. Если ничего не изменится» |
| Зависимости между столбцами | Корреляции между показателями | «Недели с рекламным бюджетом выше 15 тыс. дают +40% заявок. Три недели без рекламы — провал на 35%» |
Claude не просто выдаёт числа обратно. Он объясняет. «Продажи выросли на 23%» — это не вывод, это констатация. Вывод — «рост в категории “обеды” на 38% совпал с запуском бизнес-ланчей 12 апреля, при этом утренний трафик остался на том же уровне, значит новые клиенты приходят именно на обед, а не конвертируются из завтраков».
Как устроена схема
gspread — это Python-библиотека которая обращается к Google Sheets API. Авторизация через Service Account: создаёшь технический аккаунт в Google Cloud, выдаёшь ему права на таблицу, скачиваешь JSON с ключом. После этого скрипт читает любой лист как двумерный массив.
Python форматирует данные в читаемый текст и передаёт Claude одним запросом. Claude не трогает таблицу — он только читает то что ему дали и пишет вывод. Это простая схема без агентного цикла — предсказуемо, дёшево, достаточно для 80% задач.
Код который работает
import gspread
import anthropic
import requests
import json
from datetime import datetime
# Токены
SERVICE_ACCOUNT_FILE = "service_account.json" # скачать из Google Cloud Console
SPREADSHEET_ID = "YOUR_SPREADSHEET_ID" # из URL таблицы
SHEET_NAME = "Продажи" # название листа
CLAUDE_API_KEY = "YOUR_CLAUDE_KEY"
TELEGRAM_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "YOUR_CHAT_ID"
def read_sheet():
"""Читаем данные из Google Таблицы через Service Account."""
gc = gspread.service_account(filename=SERVICE_ACCOUNT_FILE)
sh = gc.open_by_key(SPREADSHEET_ID)
worksheet = sh.worksheet(SHEET_NAME)
# Все данные включая заголовки
all_data = worksheet.get_all_values()
if len(all_data) < 2:
return None, "Таблица пустая или нет данных"
headers = all_data[0]
rows = all_data[1:]
# Берём последние 30 строк — обычно достаточно для анализа
recent_rows = rows[-30:] if len(rows) > 30 else rows
# Форматируем в читаемый текст для Claude
formatted = f"Заголовки: {', '.join(headers)}\n\nДанные (последние {len(recent_rows)} строк):\n"
for i, row in enumerate(recent_rows, 1):
formatted += f"Строка {i}: {', '.join(row)}\n"
return formatted, None
def analyze_with_claude(data_text, analysis_type="general"):
"""Передаём данные Claude, получаем текстовый анализ."""
client = anthropic.Anthropic(api_key=CLAUDE_API_KEY)
prompts = {
"general": """Ты аналитик данных. Проанализируй эти данные из Google Таблицы.
Напиши структурированный отчёт на русском:
1. Главный тренд (1-2 предложения, конкретные цифры)
2. Тревожные сигналы (если есть — что именно и почему это проблема)
3. Позитивные изменения (конкретно, с числами)
4. Три действия на следующую неделю (конкретные, измеримые)
Пиши кратко и по делу. Никаких общих слов.""",
"comparison": """Ты аналитик. Сравни первую половину данных со второй.
Найди: что выросло (на сколько %), что упало, где аномалии.
Выдай вывод в 4-6 предложений с конкретными числами.""",
"anomaly": """Найди в этих данных аномалии — значения которые сильно отличаются от остальных.
Для каждой аномалии: что именно, насколько отличается от нормы, возможная причина.
Если аномалий нет — скажи об этом прямо."""
}
prompt = prompts.get(analysis_type, prompts["general"])
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1200,
messages=[{
"role": "user",
"content": f"{prompt}\n\nДанные:\n{data_text}"
}]
)
return message.content[0].text
def send_telegram(report_text, sheet_name):
"""Отправляем готовый отчёт в Telegram."""
date_str = datetime.now().strftime("%d.%m.%Y")
message = (
f"📊 <b>Анализ таблицы: {sheet_name}</b>\n"
f"<i>{date_str}</i>\n\n"
f"{report_text}"
)
requests.post(
f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={
"chat_id": CHAT_ID,
"text": message,
"parse_mode": "HTML"
}
)
if __name__ == "__main__":
print(f"Читаем таблицу '{SHEET_NAME}'...")
data, error = read_sheet()
if error:
print(f"Ошибка: {error}")
exit(1)
print("Анализируем через Claude...")
report = analyze_with_claude(data, analysis_type="general")
print("Отправляем в Telegram...")
send_telegram(report, SHEET_NAME)
print("Готово.")Несколько деталей, которые нужно знать до запуска.
Service Account создаётся в Google Cloud Console — это занимает 10 минут. После создания скачиваешь JSON с ключом и шеришь таблицу с email сервис-аккаунта (выглядит как name@project.iam.gserviceaccount.com). Без этого шаринга скрипт получит ошибку 403.
SPREADSHEET_ID — это часть URL таблицы между /d/ и /edit. Для https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/edit идентификатор — 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms.
get_all_values() возвращает все ячейки включая пустые. Если у тебя таблица с 500 строками — передавай Claude последние 30–60, иначе контекст разрастётся и стоимость запроса вырастет пропорционально.
Как выглядит реальный вывод
Вот что Claude написал по таблице с 30 строками данных продаж кофейни (апрель 2026):
+23% Общая выручка за апрель составила 347 200 руб. против 282 100 руб. в марте. Рост произошёл преимущественно за счёт категории «обеды» — плюс 38% к марту.
Тревога Средняя сумма чека в категории «напитки» снизилась с 310 до 268 руб. при том, что число заказов выросло на 11%. Люди приходят чаще, но берут дешевле — возможно, переходят с фирменных позиций на стандартные. Это стоит проверить в разбивке по позициям.
Аномалия 15 апреля (вторник) — 9 заказов, хотя типичное значение для вторника 27–33. Пропуск или сбой CRM, либо было закрыто. На следующей неделе посмотрите лог.
Три действия: (1) разобраться с просадкой среднего чека по напиткам — посмотреть топ-10 позиций апреля vs марта; (2) выяснить что случилось 15 апреля; (3) если обеды растут — проверить достаточность кухонной мощности на май, рост на 38% в тихом месяце может обернуться очередями в мае.
Это не магия и не ИИ-хайп. Это просто первичная интерпретация которую раньше нужно было делать вручную или платить кому-то. Теперь она приходит сама каждое утро в Telegram — пока ты пьёшь кофе.
Есть вопрос по теме?
Разберу вашу ситуацию и предложу конкретный шаг
Как настроить ежедневный запуск
Зайти на console.cloud.google.com, создать новый проект (или использовать существующий), включить Google Sheets API, создать Service Account и скачать JSON с ключом.
console.cloud.google.com → APIs → Sheets API → CredentialsОткрыть таблицу → Поделиться → вставить email сервис-аккаунта (из JSON-файла, поле client_email). Дать права «Читатель» — запись скрипту не нужна.
email из JSON: “client_email”: “name@project.iam.gserviceaccount.com”Три библиотеки: anthropic, gspread, requests. Запустить скрипт вручную — убедиться что данные читаются и отчёт приходит в Telegram.
pip install anthropic gspread requestsНа Linux-сервере — добавить в crontab. В GitHub Actions — workflow с on.schedule (бесплатно для публичных репо и 2000 минут/мес для приватных). Запрос занимает 10–20 секунд.
0 9 * * * python /path/to/analyze_sheets.pyСкрипт легко расширяется: передать несколько листов, сделать один сводный отчёт. Или запускать отдельно для каждой таблицы с разными промптами под разные задачи.
worksheet = sh.worksheet(“Трафик”) # другой листПроверь себя: готов ли ты к агенту?
Насколько тебе нужен этот агент
3 вопроса — поймёшь стоит ли тратить вечер на настройку
Где агент не справится
Честно про ограничения. Claude хорошо интерпретирует то что видит — но он не знает контекст твоего бизнеса. Если в марте продажи упали на 30% потому что был переезд офиса — агент напишет «аномальное падение, проверьте», не зная реальной причины. Это нормально: он сигнализирует, ты объясняешь.
Сложная когортная аналитика, LTV-расчёты, сегментация клиентов по поведению — это не сюда. Для этого нужны BI-инструменты: Looker Studio, Metabase, DataLens от Яндекса. Агент на Claude — для первичного слоя: заметить изменение, назвать размер, сформулировать вопрос.
Ещё один момент: Claude не имеет доступа к историческим данным между запусками. Каждый раз — чистый лист. Если нужно сравнение с прошлым месяцем — передавай оба диапазона в одном запросе.
И последнее: при больших таблицах (тысячи строк) агрегируй данные на стороне Python до отправки. Claude-3-7-Sonnet стоит дороже при росте контекста, а 2 000 строк в одном запросе — это уже заметные деньги.
Тот владелец кофеен, с которого я начал — настроил агент за один вечер. Теперь каждое утро в 9:00 ему приходит сообщение в Telegram. Иногда там написано «всё в норме, тренд положительный». Иногда — «средний чек в среду упал на 18%, посмотрите что происходит». Он говорит что за три месяца раза два это помогло поймать проблему раньше чем она стала дорогой.
Стоит это 80 рублей в месяц.
Есть вопрос по теме?
Разберу вашу ситуацию и предложу конкретный шаг
Источники
AI-агенты · Персональная карта
4 часа потратил — не работает?
Покажу где ты пошёл не туда и как сделать правильно за 2 недели
Получить разбор бесплатно →AI-агенты · 10 мест
Ты работаешь до полуночи — AI-агент будет работать вместо тебя
Покажу какой агент закроет твою главную операционную боль
Узнать свой маршрут →Есть вопрос по теме?
Разберу вашу ситуацию и предложу конкретный шаг
Источники
Читайте также
Часто задаваемые вопросы
- Что умеет Claude-агент для анализа Google Таблиц?
- Агент подключается к Google Sheets API через gspread, читает данные из указанных листов и передаёт их Claude с инструкцией проанализировать. Claude сравнивает периоды, находит аномалии, выделяет тренды и пишет текстовый вывод на русском — конкретно: какой показатель вырос/упал, на сколько процентов, что это значит и что делать.
- Сколько стоит ежедневный анализ данных через Claude API?
- При типичном объёме данных (30–100 строк, один лист) один запрос к Claude Sonnet стоит 1–5 рублей. При ежедневном запуске — 30–150 рублей в месяц. Для еженедельного дайджеста — 4–20 рублей в месяц. Сравните с зарплатой аналитика от 80 000 рублей или агентским аудитом от 15 000 рублей разово.
- Какие типы анализа делает агент?
- Четыре основных: сравнение периодов (неделя к неделе, месяц к месяцу), поиск аномалий (значения выбивающиеся из паттерна), прогноз по тренду (линейная экстраполяция с оговорками), выявление зависимостей между столбцами (например, корреляция расходов на рекламу и числа заявок). Тип анализа задаётся в промпте.
- Нужно ли программировать для настройки?
- Нужен базовый Python: установить pip-зависимости, создать Service Account в Google Cloud Console, скопировать ключ. Весь код — в статье. Если Python пугает, скрипт можно запустить через n8n или Make без кода — те же принципы, визуальный интерфейс.
- Чем агент не заменит настоящего аналитика?
- Агент не строит дашборды, не делает сложную когортную аналитику, не знает контекста бизнеса (почему в марте продажи всегда падают — сезонность или это был форс-мажор). Он хорошо справляется с первичной интерпретацией: заметить изменение, назвать его размер, сформулировать гипотезу. Решение принимает человек.
- Как настроить ежедневную отправку отчёта в Telegram?
- Добавить в скрипт функцию отправки через Telegram Bot API (requests.post к sendMessage). Запустить скрипт по расписанию через cron: '0 9 * * * python /path/to/analyze.py'. На Windows — Task Scheduler. В облаке — GitHub Actions с cron-триггером бесплатно.
Канал «Лёха Маркетолог»
Практика без воды: кейсы, инсайты, разборы. 1–2 поста в неделю.
Пока без комментариев. Будьте первым.