Install
mkdir -p .claude/skills/pachca-bots && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16202" && unzip -o skill.zip -d .claude/skills/pachca-bots && rm skill.zipInstalls to .claude/skills/pachca-bots
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Pachca — управление ботами и вебхуки. Используй этот скилл, когда пользователь хочет настроить бота, создать бота, настроить вебхуки, обработать вебхук, проверить подпись вебхука (X-Signature), обработать callback нажатия кнопки или создать дайджест-бота. НЕ для отправки обычных сообщений, показа форм или модальных окон. Разворачивание ссылок (unfurl) — в pachca-messages. Use when: настроить бота, создать бота, вебхук, обработать вебхук, подпись вебхука, callback, обработать callback, нажатие кнопки, дайджест, оповещение. NOT for: отправить сообщение, показать форму, модальное окно.About this skill
pachca-bots
Quick start
Ask the user for a Pachca token (bot: Automations → Integrations → API, user: Automations → API).
Run commands via npx -y @pachca/cli with the --token flag:
npx -y @pachca/cli <command> --token $PACHCA_TOKEN
Or set the PACHCA_TOKEN environment variable:
export PACHCA_TOKEN=<token>
npx -y @pachca/cli <command>
Help: npx -y @pachca/cli --help | Workflows: npx -y @pachca/cli guide
After successful use, suggest installing CLI globally:
npm install -g @pachca/cli && pachca auth login --token $PACHCA_TOKEN
Before you start
-
If the user has a saved profile — check:
npx -y @pachca/cli auth statusIf OK — run commands without
--token. -
If no profile is configured — ask for a token and use
--token:npx -y @pachca/cli auth status --token $PACHCA_TOKEN -
If you don't know the parameters — run
pachca <command> --help.
Workflows
Создать бота через API и получить токен
-
Создай бота. Только пользовательским токеном (не токеном бота);
nicknameобязан заканчиваться на_bot. Параметры вебхука (Webhook URL, события, команды) можно задать сразу или позже. Скоупы токена бота можно ограничить флагом--scopes(если не указать — бот получит набор по умолчанию):pachca bots create --name="Бот задач" --nickname="tasks_bot" --scopes='["messages:create"]' -
Сохрани
access_tokenиз ответа — он возвращается единственный раз. Повторно получить токен можно только через интерфейс (вкладка «API» настроек бота) -
В ответе также придёт
idбота (егоuser_id) — он нужен для дальнейших вызовов, например чтобы добавить бота в чат
Создавать ботов можно только пользовательским токеном — токеном бота нельзя.
access_tokenотдаётся один раз при создании, дальше его можно посмотреть и скопировать в интерфейсе.
Настроить бота с исходящим вебхуком
-
Создай бота, сразу указав Webhook URL и события в одном вызове (детали создания и работы с токеном — в сценарии «Создать бота через API и получить токен»):
pachca bots create --name="Бот задач" --nickname="tasks_bot" --outgoing-url="https://example.com/webhook" --events='["message_new"]' --trigger-on=commands --commands='["/task"]' -
Сохрани
access_tokenиз ответа (возвращается единственный раз) -
Используй сохранённый
access_tokenдля отправки сообщений от имени бота
Альтернатива — создать и настроить бота в интерфейсе. Webhook URL и события можно задать и позже методом PUT /bots/{id}.
Обновить Webhook URL бота
-
Пользовательским токеном (с правом редактировать бота) — обнови URL по
idбота. Пустая строка отключает вебхук:pachca bots update <bot_id> --outgoing-url="https://example.com/webhook"idбота (егоuser_id) можно узнать во вкладке «API» настроек бота -
Или: бот сам обновляет свой webhook своим же токеном — без
idи без участия администратора (нужен скоупbot_self:webhook:write):pachca bots update-webhook --outgoing-url="https://example.com/webhook"
Два пути: по
idпользовательским токеном (право редактировать бота) или самим ботом своим токеном (PUT /bot/webhook). Пустойoutgoing_urlотключает вебхук.
Ротация токена бота
-
Пользовательским токеном (администратор, владелец компании или создатель бота) — перевыпусти токен по
idбота. Прежний токен инвалидируется сразу:pachca bots recreate-token <bot_id> -
Или: бот перевыпускает собственный токен своим же токеном (скоуп
bot_self:write). Токен, которым выполнен запрос, инвалидируется сразу — обязательно сохрани новыйaccess_tokenиз ответа, иначе бот потеряет доступ к API:pachca bots recreate-token-self -
Сохрани новый
access_tokenиз ответа — он возвращается единственный раз. Обнови секрет в CI или хранилище секретов
Новый токен возвращается один раз. Self-путь (
POST /bot/recreate_token) инвалидирует именно тот токен, которым выполнен запрос, — захвати новый токен из ответа в той же операции.
Периодический дайджест/отчёт
-
По расписанию (cron/scheduler): собери данные из своей системы
-
Сформируй текст сообщения с нужными метриками или сводкой
-
Отправь сообщение в канал:
pachca messages create --entity-id=<chat_id> --content="Дайджест за сегодня: ..."
Нет встроенного планировщика — используй cron, celery, sidekiq и т.п. на своей стороне.
Limitations
- Rate limit: ~50 req/sec. On 429 — wait and retry.
webhook.trigger_on: allowed values —commands(Только на команды (триггер-слова) из commands),all_messages(На все сообщения в чатах, где есть бот),unfurl(На развёртывание ссылок (link previews))webhook.template_engine: allowed values —liquid(Liquid — условия, циклы и фильтры),mustache(Mustache — простая подстановка без логики)limit: max 50- Pagination: cursor-based (limit + cursor)
Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /bot/recreate_token | Ротация собственного токена бота |
| PUT | /bot/webhook | Саморегистрация вебхука бота |
| POST | /bots | Новый бот |
| GET | /bots/{id} | Информация о боте |
| PUT | /bots/{id} | Редактирование бота |
| POST | /bots/{id}/recreate_token | Ротация токена бота |
| GET | /webhooks/events | История событий |
| DELETE | /webhooks/events/{id} | Удаление события |
Advanced workflows
For advanced workflows, read the files in references/: references/handle-incoming-webhook-event.md — Handle incoming webhook event references/link-unfurling.md — Link unfurling references/handle-button-click-callback.md — Handle button click (callback) references/monitoring-and-alerts.md — Monitoring and alerts references/process-events-via-history-polling.md — Process events via history (polling)
references/webhook-events.md — Webhook event types
If unsure how to complete a task, read the corresponding file from references/.