Анализ воронок, подписчиков и рассылок в Senler (чат-боты VK через senler.ru/api). Используй когда пользователь просит посмотреть аналитику Senler-канала, найти проблемные шаги в воронке, посчитать конверсию, разобрать рассылки, сегментировать подписчиков или присвоить им теги. Работает через OAuth access_token, выдаваемый собственным приложением Senler.
Resources
5Install
npx skillscat add atomachinskiy/claude-skill-senler Install via the SkillsCat registry.
Senler — AI-аналитик и AI-сегментатор для VK чат-ботов
Скилл подключается к Senler API (senler.ru/api) и даёт AI-агенту доступ к аналитике и управлению подписчиками в канале Senler. Использует OAuth-flow через приложение, созданное в кабинете Senler пользователем.
Когда использовать
- Drop-off / падение трафика по шагам воронки
- Карта всех сценариев в канале с маркировкой статуса (активные / копии / пустые)
- Источники подписок и отписок
- Read rate рассылок по сценариям
- Список подписчиков с фильтром по боту или тегу
- Сегментация молчунов и присвоение им тегов
- Сводная аналитика для отчёта клиенту
Prereqs
jq(brew install jq)~/.claude/secrets/senler-app.json— OAuth-приложение Senler (client_id,client_secret,redirect_uri)~/.claude/skills/senler/config/.env—SENLER_ACCESS_TOKEN,SENLER_GROUP_ID,SENLER_V=2
Полная инструкция подключения для нового пользователя — config/setup-guide.md.
Если у пользователя нет access_token — запусти мастер:
bash ~/.claude/skills/senler/scripts/senler-oauth-setup.shОн интерактивно проведёт через все 5 шагов OAuth-flow, обменяет code на токен, сохранит .env. Запасной ручной путь описан в config/setup-guide.md.
ВАЖНО: что МОЖНО и что НЕЛЬЗЯ через Senler API
✅ Через API ДОСТУПНО
Чтение (полная аналитика):
bots/get— список всех воронок канала (ID, название, статус, дата создания, теги)bots/getSteps <bot_id>— структура шагов одной воронки (ID, название, тип, lead_inc)subscribers/count— общее число подписчиковsubscribers/get— список подписчиков (с фильтром по боту/группе/периоду), пагинация по 100subscribers/statSubscribe— события подписок/отписок с источникомsubscribers/statCount— агрегаты подписок/отписок за периодdeliveries/stat— лог отправленных сообщений (вплоть до 2000 за один paginated запрос) сis_read,errordeliveries/statCount— агрегаты по рассылкамutms/statSubscribe/utms/statCount— UTM-атрибуция (если UTM настроены в подписной странице)groups/get— информация о канале (имя, VK external_id, workspace_id)subscribers/groups/get— список тегов/групп подписчиков
Управление подписчиками (write):
subscribers/add— добавить нового подписчикаsubscribers/setData— обновить данные подписчикаsubscribers/setGroup— присвоить тег / группу подписчикуsubscribers/groups/create— создать новую группу/тег для сегментацииbots/addSubscriber <bot_id>— запустить подписчика по конкретной воронкеbots/delSubscriber <bot_id>— выкинуть подписчика из конкретной воронки
❌ Через API НЕДОСТУПНО (только в UI Senler)
- ❌ Создавать новых ботов / воронок (нет
bots/create) - ❌ Редактировать шаги в существующих ботах — нельзя изменить текст сообщения, кнопки, триггеры (нет
bots/setSteps,bots/updateStep) - ❌ Создавать / редактировать рассылки (нет
broadcasts/create,deliveries/create) - ❌ Создавать триггеры на события сообщества
- ❌ Читать точный текст сообщения внутри шага — API возвращает только название шага и его тип, не контент
Реальный сценарий использования
AI читает данные → находит проблемное место (молчуны, отписавшиеся, не дошедшие до продажи) → создаёт им тег через subscribers/groups/create + subscribers/setGroup → пользователь в UI Senler запускает re-engagement рассылку по этому тегу → AI читает результат и сравнивает с предыдущим.
То есть скилл = AI-аналитик + AI-сегментатор. Создание ботов и запуск кампаний остаётся за командой в UI.
Роутер задач
| Задача | Скрипт | Пример |
|---|---|---|
| Sanity-check конфига | senler-subscribers-count.sh |
«Проверь работает ли Senler» |
| Карта всех ботов канала | senler-bots-list.sh |
«Какие воронки у меня в Сенлер?» |
| Структура одной воронки | senler-bot-steps.sh <bot_id> |
«Покажи шаги воронки 123» |
| Список подписчиков | senler-subscribers-list.sh [--bot ID] |
«Кто подписан на воронку X?» |
| UTM-источники | senler-utms-stats.sh [--from --to] |
«Откуда подписчики приходят?» |
| Статистика рассылок | senler-deliveries-stat.sh |
«Как зашли последние рассылки?» |
| Любой raw-запрос API | senler-call.sh <method> [params] |
Когда нужен метод не из списка |
Как вызывать
bash ~/.claude/skills/senler/scripts/SCRIPT_NAME.sh ARGSОбщие флаги: --json (сырой JSON), --full (без обрезки 30 строк).
Типичные сценарии
«Сделай drop-off по моей воронке X»
senler-bots-list.sh→ найтиbot_idнужной воронкиsenler-bot-steps.sh <bot_id>→ посмотреть структуру + lead_inc на каждом шаге- Попросить Claude интерпретировать данные с маркетинговой точки зрения
«Откуда подписчики приходят?»
bash ~/.claude/skills/senler/scripts/senler-utms-stats.sh --from 2026-04-01 --to 2026-04-30Если ответ пустой — UTM-метки в подписной странице не настроены, надо настроить в UI Senler.
«Найди молчунов на шаге N в воронке X и поставь им тег»
# 1. Найти подписчиков
bash scripts/senler-call.sh subscribers/get bot_id=123 step_id=abc count=100
# 2. Создать тег
bash scripts/senler-call.sh subscribers/groups/create name="Молчуны после шага N"
# 3. Присвоить найденным
bash scripts/senler-call.sh subscribers/setGroup vk_user_id=123456 group_id=NEW_TAG_ID«Что-то нестандартное (метод не из списка)»
bash ~/.claude/skills/senler/scripts/senler-call.sh <ANY_METHOD> param=valuesenler-call.sh — универсальный raw-вызов любого Senler API метода с уже подставленным auth.
Ограничения
- Лимит count: максимум 100 на запрос. Для больших выгрузок (1000+ подписчиков) пагинируем через
offset. - Один токен = один канал. Если у пользователя несколько каналов в Senler — токен на каждый отдельно. В
.envза раз один. - Токен бессрочный (живёт до отзыва пользователем),
client_secretнужен только при первичном обмене кода на токен. - Rate limit — Senler не публикует, скилл ставит задержку ~0.35с между запросами. Для больших выгрузок (10К+ подписчиков) использует пагинацию.
- Текст сообщений в шагах НЕ доступен — только название и тип шага.
Файлы скилла
~/.claude/skills/senler/
├── SKILL.md # этот файл
├── config/
│ ├── .env.example # шаблон конфига
│ ├── .env # реальный конфиг (gitignored)
│ └── setup-guide.md # пошаговая инструкция подключения
├── scripts/
│ ├── _common.sh # обёртка POST → senler.ru/api/
│ ├── senler-subscribers-count.sh # sanity-check + total subs
│ ├── senler-bots-list.sh # все воронки канала
│ ├── senler-bot-steps.sh # шаги одной воронки
│ ├── senler-subscribers-list.sh # пагинация подписчиков
│ ├── senler-utms-stats.sh # UTM-источники
│ ├── senler-deliveries-stat.sh # статистика рассылок
│ └── senler-call.sh # raw-вызов любого метода
└── cache/ # кеш (если используется)