Bot Control Center
Управление кампаниями, звонками и инфраструктурой в одном контуре.
System status
Операционный срез платформы в реальном времени.
Active campaigns
| Кампания | Статус | Leads | Processed | Success | Failed |
|---|
Live calls
| Телефон | Статус | Длительность | Результат | Кампания |
|---|
Alerts
Operator E2E flow
Campaigns
Операционный центр кампаний с preflight проверкой.
Фильтры
| Название | Статус | Базы/группы лидов | Leads | Processed | Success | Failed | Озвучка | Действия |
|---|
Управление ресурсами
Файловая система для промптов/источников и управление векторными RAG-базами.
| Имя базы | Статус | Документов/векторов | Источники | Привязка в кампаниях | Действия |
|---|
CRM • Лиды
Загрузка базы, управление статусами и выгрузка.
Фильтры
| Телефон | Имя | Статус | TZ | Priority | Last call status | Attempts | KYC | База лидов | Последний звонок | Результат | Кампания | Действия |
|---|
CRM API Documentation
Полноценный API Reference для интеграции с внешними CRM (AmoCRM, Bitrix24) и internal services.
1. Введение, JWT-аутентификация и интеграция
Base URL: https://<host>/api
Авторизация: Authorization: Bearer <access_token>
Auth endpoints
POST /api/auth/login — получение access + refresh токена
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| password | string | Да | Единый пароль входа в 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_token | string | Да | Refresh token из login |
{"refresh_token":"r..."}
{"access_token":"ey...","refresh_token":"r..."}
POST /api/auth/logout — завершение refresh session
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| refresh_token | string | Нет | Опционально: конкретная refresh session |
GET /api/auth/me — текущий пользователь
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| Authorization | header | Да | Bearer access token |
{"user":{"id":"...","email":"user@local"}}
Интеграция с внешней CRM в 4 шага
- Авторизация (
/api/auth/login) и получение JWT. - Создание/обновление кампании (
/api/crm/campaigns) с ресурсами:prompt_resource_path,rag_db_name. - Импорт лидов (
/api/crm/leads/import.csv) или пакетное создание лидов API. - Preflight и запуск:
/preflight→/start.
2. CRM API (Лиды и кампании)
Лиды
GET /api/crm/leads — список лидов с фильтрацией
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| limit | int | Нет | Размер страницы |
| offset | int | Нет | Смещение |
| status | string | Нет | Фильтр статуса лида |
| campaign_id | uuid | Нет | Фильтр по кампании |
| q | string | Нет | Поиск по телефону/имени/email |
curl -H "Authorization: Bearer ey..." "https://host/api/crm/leads?limit=100&offset=0&status=new"
POST /api/crm/leads — создание лида
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| phone_e164 | string | Да | Телефон в E.164 |
| first_name | string | Нет | Имя |
| last_name | string | Нет | Фамилия |
| string | Нет | ||
| attributes | object | Нет | Кастомные поля 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 — создание кампании
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| name | string | Да | Название кампании |
| status | string | Нет | draft/active/paused... |
| prompt_resource_path | string | Нет | Путь к prompt файлу в ресурсной ФС |
| rag_db_name | string | Нет | Готовая RAG DB |
| lead_list_names | array[string] | Нет | Целевая группа лидов |
| target_lead_statuses | array[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_id | uuid | Да | Идентификатор лида |
| call_status | string | Да | completed/failed/no_answer/busy/canceled |
| business_outcome | string | Да | connected/voicemail/callback/rejected |
| duration_sec | int | Нет | Длительность звонка |
| customer_data | object | Нет | Извлечённые ИИ данные |
| transcript | string | Нет | Полный текст диалога |
{
"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
Текущий поток звонков и итоговые результаты.
| Телефон | Статус | Длительность | Результат | Кампания |
|---|
Infrastructure
Pods + сервисы. Расширенные опции скрыты по умолчанию.
Advanced GPU / Balancer / Service control
| Имя | ID | Статус | Ready | Busy | Endpoint |
|---|
Logs & Service Control
Логи, управление сервисами и мониторинг.
User Management
Управление пользователями и ролями. Только ADMIN+.
| Username | Роль | Провайдер | Активен | Заблокирован | Последний вход | Действия |
|---|
🛠 Setup Wizard
Первичная настройка интеграций. Введите креды GitHub, RunPod и Twilio.
Загрузка...
📞 Телефонные номера
Номера, купленные на Twilio, с которых совершаются звонки.
Загрузка...