🎯 System Actions Guide
Note: This guide is being translated. Some parts may still be in Russian or incomplete.
Complete description of all available actions with their parameters and results.
📋 Table of Contents
- action_hub (1 actions)
- bot_hub (10 actions)
- event_processor (1 actions)
- scenario_processor (2 actions)
- tenant_hub (11 actions)
action_hub
Description: Центральный хаб действий для маршрутизации к сервисам
get_available_actions
Description: Получение всех доступных действий с их метаданными
Input Parameters:
⚙️ Additional Parameters
_namespace(string) (optional) — Custom key for creating nesting in_cache. If specified, data is saved in_cache[_namespace]instead of flat cache. Used to control overwriting on repeated calls of the same action. Access via{_cache._namespace.field}. By default, data is merged directly into_cache(flat caching).
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Словарь всех доступных действий с метаданными
Usage Example:
# In scenario
- action: "get_available_actions"
params:
# Parameters not requiredbot_hub
Description: Центральный сервис для управления всеми ботами
get_bot_info
Description: Получение информации о боте из базы данных (с кэшированием)
Input Parameters:
bot_id(integer, required, min: 1) — ID ботаforce_refresh(boolean, optional) — Принудительное обновление из БД (игнорирует кэш)
⚙️ Additional Parameters
_namespace(string) (optional) — Custom key for creating nesting in_cache. If specified, data is saved in_cache[_namespace]instead of flat cache. Used to control overwriting on repeated calls of the same action. Access via{_cache._namespace.field}. By default, data is merged directly into_cache(flat caching).
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Данные ответаbot_id(integer) — ID ботаtelegram_bot_id(integer) — ID бота в Telegramtenant_id(integer) — ID тенантаbot_token(string) — Токен ботаusername(string) — Username ботаfirst_name(string) — Имя ботаis_active(boolean) — Активен ли ботbot_command(array) — Команды бота
Usage Example:
# In scenario
- action: "get_bot_info"
params:
bot_id: 123
# force_refresh: boolean (optional)get_bot_status
Description: Получение статуса пулинга и активности бота
Input Parameters:
bot_id(integer, required, min: 1) — ID бота
⚙️ Additional Parameters
_namespace(string) (optional) — Custom key for creating nesting in_cache. If specified, data is saved in_cache[_namespace]instead of flat cache. Used to control overwriting on repeated calls of the same action. Access via{_cache._namespace.field}. By default, data is merged directly into_cache(flat caching).
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Данные ответаis_polling(boolean) — Активен ли пулинг: true - активен, false - не активенis_active(boolean) — Активен ли бот из настроек БД: true - активен, false - не активен
Usage Example:
# In scenario
- action: "get_bot_status"
params:
bot_id: 123get_telegram_bot_info
Description: Получение информации о боте через Telegram API
Input Parameters:
bot_token(string, required, min length: 1) — Токен бота
⚙️ Additional Parameters
_namespace(string) (optional) — Custom key for creating nesting in_cache. If specified, data is saved in_cache[_namespace]instead of flat cache. Used to control overwriting on repeated calls of the same action. Access via{_cache._namespace.field}. By default, data is merged directly into_cache(flat caching).
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Данные ответаtelegram_bot_id(integer) — ID бота в Telegramusername(string) — Username ботаfirst_name(string) — Имя ботаis_bot(boolean) — Флаг, что это ботcan_join_groups(boolean) — Может ли бот присоединяться к группамcan_read_all_group_messages(boolean) — Может ли бот читать все сообщения в группахsupports_inline_queries(boolean) — Поддерживает ли бот inline запросы
Usage Example:
# In scenario
- action: "get_telegram_bot_info"
params:
bot_token: "example"set_bot_token
Description: Установка токена бота. Бот должен быть создан через синхронизацию конфигурации (sync_bot_config). Токен будет проверен автоматически при запуске пулинга
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенантаbot_token(string|None, optional) — Токен бота (опционально, если не передан - поле не обновляется, если передан null - удаляется)
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
Usage Example:
# In scenario
- action: "set_bot_token"
params:
tenant_id: 123
# bot_token: string|None (optional)start_bot
Description: Запуск бота
Input Parameters:
bot_id(integer, required, min: 1) — ID бота
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
Usage Example:
# In scenario
- action: "start_bot"
params:
bot_id: 123stop_all_bots
Description: Остановка всех ботов
Input Parameters:
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
Usage Example:
# In scenario
- action: "stop_all_bots"
params:stop_bot
Description: Остановка бота
Input Parameters:
bot_id(integer, required, min: 1) — ID бота
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
Usage Example:
# In scenario
- action: "stop_bot"
params:
bot_id: 123sync_bot
Description: Синхронизация бота: конфигурация + команды (обертка над sync_bot_config + sync_bot_commands)
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенантаbot_token(string, required, min length: 1) — Токен ботаis_active(boolean, optional) — Активен ли бот (по умолчанию true)bot_commands(array, optional) — Список команд для применения (опционально)
⚙️ Additional Parameters
_namespace(string) (optional) — Custom key for creating nesting in_cache. If specified, data is saved in_cache[_namespace]instead of flat cache. Used to control overwriting on repeated calls of the same action. Access via{_cache._namespace.field}. By default, data is merged directly into_cache(flat caching).
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Данные ответаbot_id(integer) — ID ботаaction(string) — Действие: created или updated
Usage Example:
# In scenario
- action: "sync_bot"
params:
tenant_id: 123
bot_token: "example"
# is_active: boolean (optional)
# bot_commands: array (optional)sync_bot_commands
Description: Синхронизация команд бота: сохранение в БД → применение в Telegram
Input Parameters:
bot_id(integer, required, min: 1) — ID ботаcommand_list(array) — Список команд для применения
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
Usage Example:
# In scenario
- action: "sync_bot_commands"
params:
bot_id: 123
command_list: []sync_bot_config
Description: Синхронизация конфигурации бота: создание/обновление бота + запуск пулинга. Если bot_token не передан, используется токен из БД (приоритет конфига)
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенантаbot_token(string, optional, min length: 1) — Токен бота (опционально, если не передан - используется из БД)is_active(boolean) — Активен ли бот
⚙️ Additional Parameters
_namespace(string) (optional) — Custom key for creating nesting in_cache. If specified, data is saved in_cache[_namespace]instead of flat cache. Used to control overwriting on repeated calls of the same action. Access via{_cache._namespace.field}. By default, data is merged directly into_cache(flat caching).
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Данные ответаbot_id(integer) — ID ботаaction(string) — Действие: created или updated
Usage Example:
# In scenario
- action: "sync_bot_config"
params:
tenant_id: 123
# bot_token: string (optional)
is_active: trueevent_processor
Description: Сервис для обработки событий от пулинга
process_event
Description: Обработка события от пулинга
Input Parameters:
data(object) — Сырое событие от пулинга
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "process_event"
params:
data: {}scenario_processor
Description: Сервис для обработки событий по сценариям
process_scenario_event
Description: Обработка события по сценариям
Input Parameters:
event_type(string, required, min length: 1) — Тип события (message, callback_query, etc.)bot_id(integer, required, min: 1) — ID бота от которого пришло событие
Output Parameters:
result(string) — Результат обработки (success/error)error(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "process_scenario_event"
params:
event_type: "example"
bot_id: 123sync_scenarios
Description: Синхронизация сценариев тенанта: удаление старых → сохранение новых → перезагрузка кэша
Input Parameters:
tenant_id(integer, required, min: 1) — ID tenant'а для синхронизации сценариевscenarios(array) — Массив сценариев для синхронизации
Output Parameters:
result(string) — Результат синхронизации (success/partial_success/error)error(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "sync_scenarios"
params:
tenant_id: 123
scenarios: []tenant_hub
Description: Сервис для управления конфигурациями тенантов - координатор загрузки данных
get_tenant_status
Description: Получение статуса тенанта
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенанта
⚙️ Additional Parameters
_namespace(string) (optional) — Custom key for creating nesting in_cache. If specified, data is saved in_cache[_namespace]instead of flat cache. Used to control overwriting on repeated calls of the same action. Access via{_cache._namespace.field}. By default, data is merged directly into_cache(flat caching).
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
response_data(object) — Данные ответаbot_is_active(boolean) — Активен ли бот тенанта из настроек БД (флаг is_active в БД)bot_is_polling(boolean) — Активен ли пулинг бота тенанта (запущен ли процесс пулинга)bot_is_webhook_active(boolean) — Активен ли вебхук бота тенанта (установлен ли вебхук через Telegram API)bot_is_working(boolean) — Работает ли бот тенанта (пулинг ИЛИ вебхуки активны). Показывает реальный статус работы ботаlast_updated_at(string) (optional) — Дата последнего успешного обновления тенантаlast_failed_at(string) (optional) — Дата последней ошибки при обновлении тенантаlast_error(string) (optional) — Текст последней ошибки при обновлении тенанта
Usage Example:
# In scenario
- action: "get_tenant_status"
params:
tenant_id: 123get_tenants_list
Description: Получение списка всех ID тенантов с разделением на публичные и системные
Input Parameters:
⚙️ Additional Parameters
_namespace(string) (optional) — Custom key for creating nesting in_cache. If specified, data is saved in_cache[_namespace]instead of flat cache. Used to control overwriting on repeated calls of the same action. Access via{_cache._namespace.field}. By default, data is merged directly into_cache(flat caching).
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
response_data(object) —tenant_ids(array) — Массив ID всех тенантовpublic_tenant_ids(array) — Массив ID публичных тенантовsystem_tenant_ids(array) — Массив ID системных тенантовtenant_count(integer) — Общее количество тенантов
Usage Example:
# In scenario
- action: "get_tenants_list"
params:sync_all_tenants
Description: Синхронизация всех тенантов (сначала pull из GitHub, потом синхронизация всех)
Input Parameters:
Output Parameters:
result(string) — Результат: success, partial_success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "sync_all_tenants"
params:sync_tenant
Description: Синхронизация конфигурации тенанта с базой данных (сначала обновляет из GitHub, затем синхронизирует)
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенанта для синхронизации
Output Parameters:
result(string) — Результат: success, error, timeout, not_founderror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "sync_tenant"
params:
tenant_id: 123sync_tenant_bot
Description: Синхронизация бота тенанта: pull из GitHub + парсинг + синхронизация
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенанта
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "sync_tenant_bot"
params:
tenant_id: 123sync_tenant_config
Description: Синхронизация конфига тенанта: pull из GitHub + парсинг + синхронизация
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенанта
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "sync_tenant_config"
params:
tenant_id: 123sync_tenant_data
Description: Синхронизация данных тенанта: создание/обновление тенанта
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенанта
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "sync_tenant_data"
params:
tenant_id: 123sync_tenant_scenarios
Description: Синхронизация сценариев тенанта: pull из GitHub + парсинг + синхронизация
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенанта
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "sync_tenant_scenarios"
params:
tenant_id: 123sync_tenant_storage
Description: Синхронизация storage тенанта: pull из GitHub + парсинг + синхронизация
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенанта
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "sync_tenant_storage"
params:
tenant_id: 123sync_tenants_from_files
Description: Синхронизация тенантов из списка измененных файлов (универсальный метод для вебхуков и пуллинга)
Input Parameters:
files(array) — Список файлов в формате ["path1", "path2"] или [{"filename": "path"}, ...]
⚙️ Additional Parameters
_namespace(string) (optional) — Custom key for creating nesting in_cache. If specified, data is saved in_cache[_namespace]instead of flat cache. Used to control overwriting on repeated calls of the same action. Access via{_cache._namespace.field}. By default, data is merged directly into_cache(flat caching).
Output Parameters:
result(string) — Результат: success, partial_success, errorresponse_data(object) (optional) — Данные ответа (synced_tenants, total_tenants, errors)error(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибке
Usage Example:
# In scenario
- action: "sync_tenants_from_files"
params:
files: []update_tenant_config
Description: Обновление конфига тенанта (обновляет БД, инвалидирует кэш). Обновляет только переданные поля, остальные не трогает
Input Parameters:
tenant_id(integer, required, min: 1) — ID тенантаai_token(string|None, optional) — AI API токен для тенанта (опционально, если не передан - поле не обновляется, если передан null - удаляется)
Output Parameters:
result(string) — Результат: success, errorerror(object) (optional) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (optional) — Детали ошибки
Usage Example:
# In scenario
- action: "update_tenant_config"
params:
tenant_id: 123
# ai_token: string|None (optional)