Bot Control Center

Управление кампаниями, звонками и инфраструктурой в одном контуре.

AI: ... GPU: ... CALLS: ... CAMPAIGNS: ...
Гость

System status

Операционный срез платформы в реальном времени.

Conversion

loading...

Funnel

loading...

Live failures (24h)

loading...

Active campaigns

Кампания Статус Leads Processed Success Failed

Live calls

Телефон Статус Длительность Результат Кампания

Alerts

    Operator E2E flow

    Единый сценарий: CRM (лиды) → Campaign (preflight/start) → Calls (live) → Export results

    Campaigns

    Операционный центр кампаний с preflight проверкой.

    Фильтры
    Быстрый сценарий: Preflight → Start. Для остановки массового обзвона используйте Stop (требует подтверждения).
    Для полного цикла оператора используйте в строке кампании кнопку Start & Monitor, затем в Calls вкладке экспортируйте результаты.
    Название Статус Базы/группы лидов Leads Processed Success Failed Озвучка Действия

    Управление ресурсами

    Файловая система для промптов/источников и управление векторными RAG-базами.

    Двойной клик ЛКМ по папке — открыть/закрыть. ПКМ — контекстное меню.
    Имя базы Статус Документов/векторов Источники Привязка в кампаниях Действия

    CRM • Лиды

    Загрузка базы, управление статусами и выгрузка.

    Фильтры
    Телефон Имя Email Статус TZ Priority Last call status Attempts KYC База лидов Последний звонок Результат Кампания Действия

    CRM API Documentation

    Полноценный API Reference для интеграции с внешними CRM (AmoCRM, Bitrix24) и internal services.

    Bot Control API Reference v3

    1. Введение, JWT-аутентификация и интеграция

    Base URL: https://<host>/api

    Авторизация: Authorization: Bearer <access_token>

    Auth endpoints

    POST /api/auth/login — получение access + refresh токена
    ПараметрТипОбязательноОписание
    passwordstringДаЕдиный пароль входа в UI
    curl -X POST "https://host/api/auth/login" \
      -H "Content-Type: application/json" \
      -d '{"password":"***"}'
    {"access_token":"ey...","refresh_token":"r...","user":{"email":"user@local"}}
    POST /api/auth/refresh — ротация access token
    ПараметрТипОбязательноОписание
    refresh_tokenstringДаRefresh token из login
    {"refresh_token":"r..."}
    {"access_token":"ey...","refresh_token":"r..."}
    POST /api/auth/logout — завершение refresh session
    ПараметрТипОбязательноОписание
    refresh_tokenstringНетОпционально: конкретная refresh session
    GET /api/auth/me — текущий пользователь
    ПараметрТипОбязательноОписание
    AuthorizationheaderДаBearer access token
    {"user":{"id":"...","email":"user@local"}}

    Интеграция с внешней CRM в 4 шага

    1. Авторизация (/api/auth/login) и получение JWT.
    2. Создание/обновление кампании (/api/crm/campaigns) с ресурсами: prompt_resource_path, rag_db_name.
    3. Импорт лидов (/api/crm/leads/import.csv) или пакетное создание лидов API.
    4. Preflight и запуск: /preflight/start.

    2. CRM API (Лиды и кампании)

    Лиды

    GET /api/crm/leads — список лидов с фильтрацией
    ПараметрТипОбязательноОписание
    limitintНетРазмер страницы
    offsetintНетСмещение
    statusstringНетФильтр статуса лида
    campaign_iduuidНетФильтр по кампании
    qstringНетПоиск по телефону/имени/email
    curl -H "Authorization: Bearer ey..." "https://host/api/crm/leads?limit=100&offset=0&status=new"
    POST /api/crm/leads — создание лида
    ПараметрТипОбязательноОписание
    phone_e164stringДаТелефон в E.164
    first_namestringНетИмя
    last_namestringНетФамилия
    emailstringНетEmail
    attributesobjectНетКастомные поля CRM
    {"phone_e164":"+971500000001","first_name":"Ivan","email":"ivan@crm.local","attributes":{"source":"amocrm","lead_list_name":"UAE_Q2"}}
    PUT /api/crm/leads/{lead_id} и DELETE /api/crm/leads/{lead_id}
    {"status":"in_progress","attributes":{"priority":10}}

    Импорт/экспорт лидов

    POST /api/crm/leads/import.csv — multipart upload. Минимальные колонки: phone_e164 (или phone). Поддерживаются: first_name, last_name, email, status, lead_list_name, priority, timezone, kyc_status.

    GET /api/crm/leads/export.csv — выгрузка текущего состояния лидов.

    Кампании

    POST /api/crm/campaigns — создание кампании
    ПараметрТипОбязательноОписание
    namestringДаНазвание кампании
    statusstringНетdraft/active/paused...
    prompt_resource_pathstringНетПуть к prompt файлу в ресурсной ФС
    rag_db_namestringНетГотовая RAG DB
    lead_list_namesarray[string]НетЦелевая группа лидов
    target_lead_statusesarray[string]НетФильтр статусов лидов
    {
      "name": "UAE Forex May",
      "status": "draft",
      "prompt_resource_path": "prompts/uae_forex_v3.txt",
      "rag_db_name": "uae_kb_main",
      "lead_list_names": ["UAE_Q2"],
      "target_lead_statuses": ["new", "in_progress"]
    }
    PUT /api/crm/campaigns/{campaign_id} — обновление кампании
    {"prompt_resource_path":"prompts/uae_forex_v4.txt","rag_db_name":"uae_kb_v2"}

    Lifecycle Runtime

    GET /api/crm/campaigns/{campaign_id}/preflight — проверка pod/service/provider readiness.

    POST /api/crm/campaigns/{campaign_id}/start — создаёт CampaignRun и очередь CallTask.

    POST /api/crm/campaigns/{campaign_id}/pause — переводит run в paused.

    POST /api/crm/campaigns/{campaign_id}/stop — останавливает run и переводит активные задачи в terminal state.

    3. Аналитика, звонки и webhook callback

    GET /api/runtime/calls — активные/исторические звонки runtime (фильтры: status, campaign_id, only_active).

    GET /api/crm/call-logs/export.csv — экспорт журнала звонков.

    Webhook callback во внешнюю CRM (рекомендуемый контракт)

    ПараметрТипОбязательноОписание
    lead_iduuidДаИдентификатор лида
    call_statusstringДаcompleted/failed/no_answer/busy/canceled
    business_outcomestringДаconnected/voicemail/callback/rejected
    duration_secintНетДлительность звонка
    customer_dataobjectНетИзвлечённые ИИ данные
    transcriptstringНетПолный текст диалога
    {
      "lead_id": "5f0b6f35-54a5-4f54-b835-9e43adfbe001",
      "campaign_id": "fcaef28d-07bb-4f14-8b4f-bfdaf6f61111",
      "duration_sec": 183,
      "call_status": "completed",
      "business_outcome": "connected",
      "customer_data": {
        "customer_name": "Alex Kim",
        "issue": "Просит расчёт доходности и условия вывода",
        "priority": "high",
        "ready_for_escalation": true
      },
      "transcript": "Agent: ... Customer: ..."
    }

    4. Управление ресурсами ИИ (Файлы и RAG)

    Browser FS

    GET /api/resources/files/tree, GET /api/resources/files/content, POST /api/resources/files/folder, POST /api/resources/files/file, PUT /api/resources/files/content, POST /api/resources/files/rename, DELETE /api/resources/files.

    GET /api/resources/files/usage — защита от удаления ресурса, если он используется в активных кампаниях или RAG.

    RAG Module

    GET /api/resources/rag/capabilities — проверка доступности embedding runtime (RunPod pod).

    POST /api/resources/rag/dbs/{db_name}/build — сборка векторной БД.

    {
      "file_paths": ["kb/intro.md", "kb/faq.txt"],
      "overwrite": true
    }

    5. Инфраструктура и единая таблица ошибок

    GET /api/pods, POST /api/pods/create, POST /api/pods/refresh, POST /api/pods/{pod_id}/delete.

    GET /api/services, POST /api/services/{name}/start|stop|restart-hard.

    GET /api/logs/tail.

    Сводная таблица ошибок

    КодКогда возникаетПример JSON
    400Неверный payload / валидация{"detail":"Invalid request payload"}
    401Не передан/просрочен JWT{"detail":"Authentication required"}
    404Сущность не найдена{"detail":"Campaign not found"}
    409Конфликт состояния (ресурс используется){"detail":{"message":"Resource file is used","usage":{"count":2}}}
    503Инфраструктура недоступна (embedding pod не готов){"detail":{"message":"RunPod embedding runtime is not ready"}}

    Унифицированный блок ошибок для endpoint-ов

    {
      "error": {
        "code": "service_unavailable",
        "message": "RunPod embedding runtime is not ready",
        "request_id": "req_01J...",
        "details": {"pod_state": "STARTING"}
      }
    }

    Calls runtime

    Текущий поток звонков и итоговые результаты.

    Сценарий мониторинга: после Start & Monitor фильтр по кампании будет выбран автоматически.
    Телефон Статус Длительность Результат Кампания

    Infrastructure

    Pods + сервисы. Расширенные опции скрыты по умолчанию.

    Загрузка списка GPU…
    Рекомендуемый порядок: Добавить pod → Обновить pods → Синхронизировать балансировщик.
    Advanced GPU / Balancer / Service control
    GPU auto status: loading…
    GPU balancer: loading…
    Pod-centric observability: READY/BUSY/STARTING и fleet occupancy формируются из balancer + readiness.
    Имя ID Статус Ready Busy Endpoint

    Logs & Service Control

    Логи, управление сервисами и мониторинг.

    User Management

    Управление пользователями и ролями. Только ADMIN+.

    Email Username Роль Провайдер Активен Заблокирован Последний вход Действия

    🛠 Setup Wizard

    Первичная настройка интеграций. Введите креды GitHub, RunPod и Twilio.

    Загрузка...

    📞 Телефонные номера

    Номера, купленные на Twilio, с которых совершаются звонки.

    Загрузка...