🎯 Гайд по системным действиям
Полное описание всех доступных действий с их параметрами и результатами.
📋 Содержание
- action_hub (1 действий)
- bot_hub (10 действий)
- event_processor (1 действий)
- scenario_processor (2 действий)
- tenant_hub (11 действий)
action_hub
Описание: Центральный хаб действий для маршрутизации к сервисам
get_available_actions
Описание: Получение всех доступных действий с их метаданными
Входные параметры:
⚙️ Дополнительные параметры
_namespace(string) (опционально) — Кастомный ключ для создания вложенности в_cache. Если указан, данные сохраняются в_cache[_namespace]вместо плоского кэша. Используется для контроля перезаписи при повторных вызовах одного действия. Доступ через{_cache._namespace.field}. По умолчанию данные мержатся напрямую в_cache(плоское кэширование).
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Словарь всех доступных действий с метаданными
Пример использования:
# В сценарии
- action: "get_available_actions"
params:
# Параметры не требуютсяbot_hub
Описание: Центральный сервис для управления всеми ботами
get_bot_info
Описание: Получение информации о боте из базы данных (с кэшированием)
Входные параметры:
bot_id(integer, обязательное, мин: 1) — ID ботаforce_refresh(boolean, опционально) — Принудительное обновление из БД (игнорирует кэш)
⚙️ Дополнительные параметры
_namespace(string) (опционально) — Кастомный ключ для создания вложенности в_cache. Если указан, данные сохраняются в_cache[_namespace]вместо плоского кэша. Используется для контроля перезаписи при повторных вызовах одного действия. Доступ через{_cache._namespace.field}. По умолчанию данные мержатся напрямую в_cache(плоское кэширование).
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
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) — Команды бота
Пример использования:
# В сценарии
- action: "get_bot_info"
params:
bot_id: 123
# force_refresh: boolean (опционально)get_bot_status
Описание: Получение статуса пулинга и активности бота
Входные параметры:
bot_id(integer, обязательное, мин: 1) — ID бота
⚙️ Дополнительные параметры
_namespace(string) (опционально) — Кастомный ключ для создания вложенности в_cache. Если указан, данные сохраняются в_cache[_namespace]вместо плоского кэша. Используется для контроля перезаписи при повторных вызовах одного действия. Доступ через{_cache._namespace.field}. По умолчанию данные мержатся напрямую в_cache(плоское кэширование).
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Данные ответаis_polling(boolean) — Активен ли пулинг: true - активен, false - не активенis_active(boolean) — Активен ли бот из настроек БД: true - активен, false - не активен
Пример использования:
# В сценарии
- action: "get_bot_status"
params:
bot_id: 123get_telegram_bot_info
Описание: Получение информации о боте через Telegram API
Входные параметры:
bot_token(string, обязательное, мин. длина: 1) — Токен бота
⚙️ Дополнительные параметры
_namespace(string) (опционально) — Кастомный ключ для создания вложенности в_cache. Если указан, данные сохраняются в_cache[_namespace]вместо плоского кэша. Используется для контроля перезаписи при повторных вызовах одного действия. Доступ через{_cache._namespace.field}. По умолчанию данные мержатся напрямую в_cache(плоское кэширование).
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
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 запросы
Пример использования:
# В сценарии
- action: "get_telegram_bot_info"
params:
bot_token: "example"set_bot_token
Описание: Установка токена бота. Бот должен быть создан через синхронизацию конфигурации (sync_bot_config). Токен будет проверен автоматически при запуске пулинга
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенантаbot_token(string|None, опционально) — Токен бота (опционально, если не передан - поле не обновляется, если передан null - удаляется)
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
Пример использования:
# В сценарии
- action: "set_bot_token"
params:
tenant_id: 123
# bot_token: string|None (опционально)start_bot
Описание: Запуск бота
Входные параметры:
bot_id(integer, обязательное, мин: 1) — ID бота
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
Пример использования:
# В сценарии
- action: "start_bot"
params:
bot_id: 123stop_all_bots
Описание: Остановка всех ботов
Входные параметры:
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
Пример использования:
# В сценарии
- action: "stop_all_bots"
params:stop_bot
Описание: Остановка бота
Входные параметры:
bot_id(integer, обязательное, мин: 1) — ID бота
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
Пример использования:
# В сценарии
- action: "stop_bot"
params:
bot_id: 123sync_bot
Описание: Синхронизация бота: конфигурация + команды (обертка над sync_bot_config + sync_bot_commands)
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенантаbot_token(string, обязательное, мин. длина: 1) — Токен ботаis_active(boolean, опционально) — Активен ли бот (по умолчанию true)bot_commands(array, опционально) — Список команд для применения (опционально)
⚙️ Дополнительные параметры
_namespace(string) (опционально) — Кастомный ключ для создания вложенности в_cache. Если указан, данные сохраняются в_cache[_namespace]вместо плоского кэша. Используется для контроля перезаписи при повторных вызовах одного действия. Доступ через{_cache._namespace.field}. По умолчанию данные мержатся напрямую в_cache(плоское кэширование).
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Данные ответаbot_id(integer) — ID ботаaction(string) — Действие: created или updated
Пример использования:
# В сценарии
- action: "sync_bot"
params:
tenant_id: 123
bot_token: "example"
# is_active: boolean (опционально)
# bot_commands: array (опционально)sync_bot_commands
Описание: Синхронизация команд бота: сохранение в БД → применение в Telegram
Входные параметры:
bot_id(integer, обязательное, мин: 1) — ID ботаcommand_list(array) — Список команд для применения
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
Пример использования:
# В сценарии
- action: "sync_bot_commands"
params:
bot_id: 123
command_list: []sync_bot_config
Описание: Синхронизация конфигурации бота: создание/обновление бота + запуск пулинга. Если bot_token не передан, используется токен из БД (приоритет конфига)
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенантаbot_token(string, опционально, мин. длина: 1) — Токен бота (опционально, если не передан - используется из БД)is_active(boolean) — Активен ли бот
⚙️ Дополнительные параметры
_namespace(string) (опционально) — Кастомный ключ для создания вложенности в_cache. Если указан, данные сохраняются в_cache[_namespace]вместо плоского кэша. Используется для контроля перезаписи при повторных вызовах одного действия. Доступ через{_cache._namespace.field}. По умолчанию данные мержатся напрямую в_cache(плоское кэширование).
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки (например, ошибки валидации полей)
response_data(object) — Данные ответаbot_id(integer) — ID ботаaction(string) — Действие: created или updated
Пример использования:
# В сценарии
- action: "sync_bot_config"
params:
tenant_id: 123
# bot_token: string (опционально)
is_active: trueevent_processor
Описание: Сервис для обработки событий от пулинга
process_event
Описание: Обработка события от пулинга
Входные параметры:
data(object) — Сырое событие от пулинга
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "process_event"
params:
data: {}scenario_processor
Описание: Сервис для обработки событий по сценариям
process_scenario_event
Описание: Обработка события по сценариям
Входные параметры:
event_type(string, обязательное, мин. длина: 1) — Тип события (message, callback_query, etc.)bot_id(integer, обязательное, мин: 1) — ID бота от которого пришло событие
Выходные параметры:
result(string) — Результат обработки (success/error)error(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "process_scenario_event"
params:
event_type: "example"
bot_id: 123sync_scenarios
Описание: Синхронизация сценариев тенанта: удаление старых → сохранение новых → перезагрузка кэша
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID tenant'а для синхронизации сценариевscenarios(array) — Массив сценариев для синхронизации
Выходные параметры:
result(string) — Результат синхронизации (success/partial_success/error)error(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "sync_scenarios"
params:
tenant_id: 123
scenarios: []tenant_hub
Описание: Сервис для управления конфигурациями тенантов - координатор загрузки данных
get_tenant_status
Описание: Получение статуса тенанта
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенанта
⚙️ Дополнительные параметры
_namespace(string) (опционально) — Кастомный ключ для создания вложенности в_cache. Если указан, данные сохраняются в_cache[_namespace]вместо плоского кэша. Используется для контроля перезаписи при повторных вызовах одного действия. Доступ через{_cache._namespace.field}. По умолчанию данные мержатся напрямую в_cache(плоское кэширование).
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
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) (опционально) — Дата последнего успешного обновления тенантаlast_failed_at(string) (опционально) — Дата последней ошибки при обновлении тенантаlast_error(string) (опционально) — Текст последней ошибки при обновлении тенанта
Пример использования:
# В сценарии
- action: "get_tenant_status"
params:
tenant_id: 123get_tenants_list
Описание: Получение списка всех ID тенантов с разделением на публичные и системные
Входные параметры:
⚙️ Дополнительные параметры
_namespace(string) (опционально) — Кастомный ключ для создания вложенности в_cache. Если указан, данные сохраняются в_cache[_namespace]вместо плоского кэша. Используется для контроля перезаписи при повторных вызовах одного действия. Доступ через{_cache._namespace.field}. По умолчанию данные мержатся напрямую в_cache(плоское кэширование).
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
response_data(object) —tenant_ids(array) — Массив ID всех тенантовpublic_tenant_ids(array) — Массив ID публичных тенантовsystem_tenant_ids(array) — Массив ID системных тенантовtenant_count(integer) — Общее количество тенантов
Пример использования:
# В сценарии
- action: "get_tenants_list"
params:sync_all_tenants
Описание: Синхронизация всех тенантов (сначала pull из GitHub, потом синхронизация всех)
Входные параметры:
Выходные параметры:
result(string) — Результат: success, partial_success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "sync_all_tenants"
params:sync_tenant
Описание: Синхронизация конфигурации тенанта с базой данных (сначала обновляет из GitHub, затем синхронизирует)
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенанта для синхронизации
Выходные параметры:
result(string) — Результат: success, error, timeout, not_founderror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "sync_tenant"
params:
tenant_id: 123sync_tenant_bot
Описание: Синхронизация бота тенанта: pull из GitHub + парсинг + синхронизация
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенанта
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "sync_tenant_bot"
params:
tenant_id: 123sync_tenant_config
Описание: Синхронизация конфига тенанта: pull из GitHub + парсинг + синхронизация
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенанта
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "sync_tenant_config"
params:
tenant_id: 123sync_tenant_data
Описание: Синхронизация данных тенанта: создание/обновление тенанта
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенанта
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "sync_tenant_data"
params:
tenant_id: 123sync_tenant_scenarios
Описание: Синхронизация сценариев тенанта: pull из GitHub + парсинг + синхронизация
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенанта
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "sync_tenant_scenarios"
params:
tenant_id: 123sync_tenant_storage
Описание: Синхронизация storage тенанта: pull из GitHub + парсинг + синхронизация
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенанта
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "sync_tenant_storage"
params:
tenant_id: 123sync_tenants_from_files
Описание: Синхронизация тенантов из списка измененных файлов (универсальный метод для вебхуков и пуллинга)
Входные параметры:
files(array) — Список файлов в формате ["path1", "path2"] или [{"filename": "path"}, ...]
⚙️ Дополнительные параметры
_namespace(string) (опционально) — Кастомный ключ для создания вложенности в_cache. Если указан, данные сохраняются в_cache[_namespace]вместо плоского кэша. Используется для контроля перезаписи при повторных вызовах одного действия. Доступ через{_cache._namespace.field}. По умолчанию данные мержатся напрямую в_cache(плоское кэширование).
Выходные параметры:
result(string) — Результат: success, partial_success, errorresponse_data(object) (опционально) — Данные ответа (synced_tenants, total_tenants, errors)error(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибке
Пример использования:
# В сценарии
- action: "sync_tenants_from_files"
params:
files: []update_tenant_config
Описание: Обновление конфига тенанта (обновляет БД, инвалидирует кэш). Обновляет только переданные поля, остальные не трогает
Входные параметры:
tenant_id(integer, обязательное, мин: 1) — ID тенантаai_token(string|None, опционально) — AI API токен для тенанта (опционально, если не передан - поле не обновляется, если передан null - удаляется)
Выходные параметры:
result(string) — Результат: success, errorerror(object) (опционально) — Структура ошибкиcode(string) — Код ошибкиmessage(string) — Сообщение об ошибкеdetails(array) (опционально) — Детали ошибки
Пример использования:
# В сценарии
- action: "update_tenant_config"
params:
tenant_id: 123
# ai_token: string|None (опционально)