Install
npx skillscat add dengineproblem/agents-monorepo/openclaw-standalone-skills-fb-onboarding Install via the SkillsCat registry.
Онбординг нового клиента
Первый скилл для запуска после подключения нового клиента.
Проведи пользователя через настройку — спрашивай шаг за шагом, не всё сразу.
Когда запускать
При первом обращении клиента или по команде "настроить рекламу", "онбординг", "начать".
Проверь заполнен ли config — если пустой, запусти этот скилл автоматически:
SELECT fb_access_token, fb_ad_account_id FROM config WHERE id = 1;Если fb_access_token IS NULL — клиент не настроен, начни онбординг.
Шаг 1: Приветствие
👋 *Добро пожаловать в OpenClaw!*
Я — AI-агент для управления Facebook рекламой.
Давай настроим всё, чтобы я мог работать с твоим рекламным кабинетом.
Мне понадобится:
1. Facebook Access Token (долгоживущий)
2. ID рекламного аккаунта (act_...)
3. ID страницы Facebook
4. Информация о направлениях рекламы
Начнём? Отправь мне свой *Facebook Access Token*.Шаг 2: Facebook Access Token
Пользователь отправляет токен. Проверь что он рабочий:
curl -s "https://graph.facebook.com/v23.0/me?access_token={TOKEN}" | head -c 500Если ответ содержит "name": — токен рабочий. Сохрани:
UPDATE config SET fb_access_token = '{TOKEN}', updated_at = NOW() WHERE id = 1;Ответь:
✅ Токен работает! Аккаунт: {name}
Теперь отправь *ID рекламного аккаунта* (формат: act_XXXXXXXXX).
Его можно найти в Facebook Ads Manager → Настройки → ID аккаунта.Если ошибка — попроси прислать другой токен, объясни как получить.
Шаг 3: Рекламный аккаунт (Ad Account ID)
Пользователь присылает act_.... Проверь доступ:
curl -s "https://graph.facebook.com/v23.0/{AD_ACCOUNT_ID}?fields=name,currency,timezone_name,account_status&access_token={TOKEN}"Если доступен — сохрани:
UPDATE config SET fb_ad_account_id = '{AD_ACCOUNT_ID}', updated_at = NOW() WHERE id = 1;Из ответа API определи:
currency→ сохрани в config если отличается от KZTtimezone_name→ сохрани если отличается от Asia/Almaty
UPDATE config SET currency = '{CURRENCY}', timezone = '{TIMEZONE}', updated_at = NOW() WHERE id = 1;Ответь:
✅ Рекламный аккаунт подключён!
📋 Аккаунт: {name}
💱 Валюта: {currency}
🕐 Часовой пояс: {timezone}
Теперь нужен *ID Facebook страницы*. Отправь его (число) или ссылку на страницу.Шаг 4: Facebook Page ID
Пользователь присылает ID страницы или ссылку. Если ссылка — извлеки ID:
curl -s "https://graph.facebook.com/v23.0/{PAGE_ID}?fields=name,id&access_token={TOKEN}"Сохрани:
UPDATE config SET fb_page_id = '{PAGE_ID}', updated_at = NOW() WHERE id = 1;Также получи Page Access Token для Lead Gen:
curl -s "https://graph.facebook.com/v23.0/{PAGE_ID}?fields=access_token&access_token={TOKEN}"UPDATE config SET fb_page_access_token = '{PAGE_ACCESS_TOKEN}', updated_at = NOW() WHERE id = 1;Ответь:
✅ Страница подключена: {page_name}
Теперь настроим направления рекламы. Расскажи:
1. Какие виды рекламы ты запускаешь?
• WhatsApp (лиды через WhatsApp)
• Lead Forms (формы лидов Facebook)
• Instagram Traffic (трафик на Instagram)
• Site Leads (лиды на сайт через пиксель)
• App Installs (установки приложения)
2. По каким городам/регионам?
3. Какой допустимый CPL (стоимость лида) для каждого направления?
4. Дневной бюджет на каждое направление?Шаг 5: Направления (Directions)
На основе ответа пользователя создай направления. Для каждого:
INSERT INTO directions (name, objective, daily_budget_cents, target_cpl_cents, is_active)
VALUES (
'{name}', -- например "Алматы WhatsApp"
'{objective}', -- whatsapp | lead_forms | instagram_traffic | site_leads | app_installs
{daily_budget_cents}, -- бюджет в центах ($10 = 1000)
{target_cpl_cents}, -- целевой CPL в центах ($3 = 300)
true
)
ON CONFLICT DO NOTHING;Типичные направления:
- "Алматы WhatsApp" → objective: whatsapp, target_cpl: $3-5
- "Астана Lead Forms" → objective: lead_forms, target_cpl: $2-4
- "Весь КЗ Instagram" → objective: instagram_traffic, target_cpl: $1-3
Ответь после создания:
✅ Направления созданы!
{Таблица направлений: name | objective | budget | target CPL}
Если нужно добавить/изменить направления — скажи.Шаг 6: Telegram (опционально)
📱 Хочешь получать отчёты в Telegram?
Если да — отправь мне:
1. Bot Token (создай бота через @BotFather)
2. Chat ID (свой или группы)
Если нет — просто скажи "пропустить".Если пользователь присылает:
UPDATE config SET
telegram_bot_token = '{BOT_TOKEN}',
telegram_chat_id = '{CHAT_ID}',
updated_at = NOW()
WHERE id = 1;Проверь отправкой тестового сообщения:
curl -s "https://api.telegram.org/bot{BOT_TOKEN}/sendMessage" \
-d chat_id="{CHAT_ID}" \
-d text="✅ OpenClaw подключён! Отчёты будут приходить сюда." \
-d parse_mode=MarkdownШаг 7: Target CPL по умолчанию
🎯 Какой CPL считать целевым *по умолчанию* (для новых направлений)?
Сейчас: $3.00
Отправь число в долларах (например 2.5) или скажи "ок" чтобы оставить $3.UPDATE config SET default_target_cpl_cents = {CENTS}, updated_at = NOW() WHERE id = 1;Шаг 8: Итоговая проверка
Проверь всё и покажи сводку:
SELECT
fb_access_token IS NOT NULL as has_token,
fb_ad_account_id,
fb_page_id,
telegram_bot_token IS NOT NULL as has_telegram,
timezone,
currency,
default_target_cpl_cents
FROM config WHERE id = 1;SELECT name, objective, daily_budget_cents, target_cpl_cents, is_active
FROM directions ORDER BY name;Ответь:
🎉 *Настройка завершена!*
*Facebook:*
✅ Токен: подключён
✅ Аккаунт: {ad_account_id}
✅ Страница: {page_id}
*Направления:*
{Список направлений с бюджетами}
*Telegram:* {подключён / не настроен}
*Часовой пояс:* {timezone}
*Валюта:* {currency}
*Целевой CPL:* ${target_cpl}
*Что дальше?*
• "Покажи дашборд" — текущие метрики
• "Создай кампанию" — запуск новой кампании
• "Запусти скоринг" — оценка текущих адсетов
• "Утренний отчёт" — сводка за вчераВажно
- Не запрашивай все данные сразу — спрашивай по одному шагу
- Если пользователь не знает где взять токен/ID — объясни пошагово
- Валидируй каждое значение через API перед сохранением
- Если что-то не работает — предложи альтернативу или помощь
- Не сохраняй невалидированные токены