{{ error }}
{{ success }}

Дашборд

{{ stats.total_today }}
Звонков сегодня
{{ stats.inbound_today }}
Входящих
{{ stats.outbound_today }}
Исходящих
{{ fmtDuration(stats.avg_duration) }}
Средняя длительность
{{ stats.resolved_today }}
Успешные
{{ stats.errors_today }}
Ошибки
Последние звонки
📭
Пока нет звонков
IDТелефонНапр.СтатусИтогВремя
#{{ c.id }}{{ c.phone || '—' }} {{ dirLabel(c.direction) }} {{ statusLabel(c.status) }} {{ outcomeLabel(c.outcome) }} {{ fmtDateFull(c.created_at) }}

AI Агенты

🤖
Агентов пока нет
{{ a.name }} {{ a.is_active ? 'активен' : 'выключен' }}
{{ a.description || 'Без описания' }}
Язык
{{ a.language }}
Провайдер
{{ a.voice_provider }}
Голос
{{ a.voice_id || '—' }}
Модель
{{ a.model }}
{{ testResult.msg }}

Звонки

📭
Звонков не найдено
IDДатаТелефонНапр.СтатусСделкаДлит.ИтогКратко
#{{ c.id }} {{ fmtDateFull(c.created_at) }} {{ c.phone || '—' }} {{ dirLabel(c.direction) }} {{ statusLabel(c.status) }} {{ c.keepin_agreement_id || '—' }} {{ fmtDuration(c.duration_seconds) }} {{ outcomeLabel(c.outcome) }} {{ c.summary || '—' }}
Звонок #{{ currentCall.id }} {{ dirLabel(currentCall.direction) }} {{ statusLabel(currentCall.status) }}
Телефон
{{ currentCall.phone || '—' }}
Агент
{{ currentCall.agent_name || '—' }}
Провайдер
{{ currentCall.provider || '—' }}
Начат
{{ fmtDateFull(currentCall.started_at) }}
Завершён
{{ fmtDateFull(currentCall.ended_at) }}
Длительность
{{ fmtDuration(currentCall.duration_seconds) }}
Итог
{{ outcomeLabel(currentCall.outcome) }}
Тональность
{{ currentCall.sentiment || '—' }}
KeepinCRM
Сделка
{{ currentCall.keepin_agreement_id || '—' }}
Клиент
{{ currentCall.keepin_client_id || '—' }}
Синхр.
{{ currentCall.keepin_synced_at ? fmtDateFull(currentCall.keepin_synced_at) : 'нет' }}
Резюме
{{ currentCall.summary }}
Классификация
Итог
{{ currentCall.outcome_label || '—' }}
Причина
{{ currentCall.call_reason_label || '—' }}
ТТН
{{ currentCall.ttn_number || (currentCall.ttn_created ? 'создана' : '—') }}
Качество и изменения
Оценка AI
{{ currentCall.quality_score }}/100
Риски
{{ qualityFlags(currentCall.quality_flags_json) || 'нет' }}
Изменения заказа AI:
{{ changeType(ch.change_type) }} · {{ ch.confirmed_by_customer ? 'подтверждено клиентом' : 'без подтверждения' }} · {{ fmtDateFull(ch.created_at) }}
Оценка менеджера
Диалог
Транскрипт
Действия ({{ callTools.length }})
Нет сообщений
{{ roleLabel(m.role) }} · {{ m.tool_name }}
{{ m.content || (m.tool_name ? ('→ ' + m.tool_name) : '') }}
{{ transcriptText }}
Транскрипт пуст
Действий не было
ToolOKВремя
{{ t.tool_name }} {{ t.success ? 'ok' : 'err' }} {{ fmtDateFull(t.created_at) }}

Поиск в KeepinCRM

Сделки
Клиенты
Ничего не найдено
IDНазваниеКлиентТелефонСтатус
{{ ag.id }} {{ ag.title || ag.name || '—' }} {{ contactOf(ag).name || '—' }} {{ contactOf(ag).phone || '—' }} {{ ag.status || ag.state || '—' }}
Ничего не найдено
IDИмяТелефонEmail
{{ cl.id }} {{ cl.person || cl.name || '—' }} {{ clientPhone(cl) }} {{ clientEmail(cl) }}

Настройки

Статус интеграций
KeepinCRM
{{ integrations.keepin ? 'настроено' : 'не настроено' }}
OpenAI Realtime
{{ integrations.openai ? 'настроено' : 'не настроено' }}
Телефония
{{ integrations.voice ? (integrations.voice.provider + (integrations.voice.configured ? ' · ok' : ' · нет')) : '—' }}
API-ключи задаются в .env на сервере и не отображаются здесь из соображений безопасности.
Общие настройки

Логи действий (tool calls)

🧾
Логов нет
IDЗвонокToolАргументыOKОшибкаВремя
#{{ l.id }} {{ l.call_id ? ('#'+l.call_id) : '—' }} {{ l.tool_name }} {{ l.arguments }} {{ l.success ? 'ok':'err' }} {{ l.error || '' }} {{ fmtDateFull(l.created_at) }}

Live-звонки

🎧
Сейчас активных звонков нет
📞 {{ c.phone || '—' }} {{ statusLabel(c.status) }}
#{{ c.id }}
Агент
{{ c.agent_name || '—' }}
Сделка
{{ c.keepin_agreement_id || '—' }}
Направление
{{ dirLabel(c.direction) }}
Последние реплики:
{{ roleLabel(m.role) }}
{{ m.content }}
Изменения заказа: {{ liveSnapshot.changes.length }}

Кампании обзвона

📣
Кампаний пока нет
IDНазваниеТипАгентСтатусНомера
#{{ c.id }}{{ c.name }} {{ campaignType(c.type) }} {{ c.agent_name || '—' }} {{ campaignStatus(c.status) }} {{ c.done_numbers }}/{{ c.total_numbers }}
{{ currentCampaign.name }} {{ campaignStatus(currentCampaign.status) }}
Тип
{{ campaignType(currentCampaign.type) }}
Агент
{{ currentCampaign.agent_name || '—' }}
{{ n }}
{{ campaignCallStatus(s) }}
ТелефонСделкаСтатусПопыткиСлед. попыткаИтог
{{ n.phone }}{{ n.agreement_id || '—' }} {{ campaignCallStatus(n.status) }} {{ n.attempts }} {{ n.next_attempt_at ? fmtDateFull(n.next_attempt_at) : '—' }} {{ n.last_outcome_code ? outcomeLabel(n.last_outcome_code) : '—' }}

База товаров

{{ productStats.total || 0 }}
Всего товаров
{{ productStats.in_stock || 0 }}
В наличии
{{ productStats.with_photo || 0 }}
С фото
Последний импорт: {{ fmtDateFull(productStats.last_import) }}
📦
Товаров не найдено. Импортируйте XML.
SKUНазваниеКатегорияЦенаНаличие
{{ p.sku }}{{ p.name }} {{ p.category || '—' }} {{ p.price ? (p.price + ' ' + (p.currency||'UAH')) : '—' }} {{ stockLabel(p.stock_status) }}
Лог импортов
Импортов ещё не было
ДатаФайлВсегоСозданоОбновленоОшибки
{{ fmtDateFull(l.created_at) }} {{ l.filename || '—' }} {{ l.total }}{{ l.created_count }} {{ l.updated_count }}{{ l.errors }}

Правила допродаж

Например: к power bank → кабель; к микроскопу → набор препаратов. AI предлагает по этим правилам.
Правил пока нет
Базовый SKU→ Допродажа SKUПриоритетКомментарийАктивно
{{ r.base_sku }}
{{ r.base_name }}
{{ r.upsell_sku }}
{{ r.upsell_name }}
{{ r.priority }} {{ r.comment || '—' }} {{ r.active?'да':'нет' }}

Качество звонков

Нет оценённых звонков
IDТелефонИтогОценка AIРискиРевьюДата
#{{ c.id }}{{ c.phone || '—' }} {{ c.outcome_label || outcomeLabel(c.outcome_code) }} {{ c.quality_score!=null ? c.quality_score+'/100' : '—' }} {{ qualityFlags(c.quality_flags_json) }} {{ c.manager_review_status }} {{ fmtDateFull(c.created_at) }}