Разработка AI-дашборда аналитики контакт-центра (AHT, FCR, CSAT, NPS)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка AI-дашборда аналитики контакт-центра (AHT, FCR, CSAT, NPS)
Средняя
~5 рабочих дней
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Разработка AI-дашборда аналитики контакт-центра (AHT, FCR, CSAT, NPS)

Аналитический дашборд контакт-центра агрегирует метрики из разных источников в единый интерфейс с drill-down по операторам, командам, продуктам, времени суток. AI-компонент добавляет автоматическую диагностику причин изменения метрик.

Ключевые метрики и их источники

from dataclasses import dataclass
from typing import Optional

@dataclass
class ContactCenterMetrics:
    period: str

    # Объёмные метрики
    total_calls: int
    answered_calls: int
    abandoned_calls: int

    # Скоростные метрики
    average_speed_of_answer: float  # ASA (секунды)
    average_handle_time: float      # AHT (секунды)
    average_after_call_work: float  # ACW (секунды)

    # Качественные метрики
    first_call_resolution: float    # FCR (%)
    customer_satisfaction: float    # CSAT (1–5)
    net_promoter_score: float       # NPS (-100..100)
    quality_score: float            # Средний QA score

    # Нагрузочные метрики
    service_level: float            # % звонков за N секунд
    occupancy: float                # % занятости операторов
    agent_utilization: float        # productive time %

    # AI-метрики
    containment_rate: Optional[float] = None  # % закрытых ботом
    deflection_rate: Optional[float] = None   # % отклонённых в self-service
    automation_accuracy: Optional[float] = None

API для дашборда

@app.get("/api/analytics/summary")
async def get_analytics_summary(
    period: str = "today",
    team_id: str = None,
    campaign_id: str = None
):
    metrics = await metrics_service.get_metrics(
        period=period,
        filters={"team_id": team_id, "campaign_id": campaign_id}
    )

    # AI-диагностика аномалий
    anomalies = await anomaly_detector.detect(metrics)

    # Тренды относительно предыдущего периода
    trends = await calculate_trends(metrics, period)

    return {
        "metrics": metrics,
        "anomalies": anomalies,
        "trends": trends,
        "alerts": [a for a in anomalies if a["severity"] == "high"]
    }

AI-диагностика причин изменений

async def diagnose_metric_change(
    metric: str,
    current_value: float,
    previous_value: float,
    context_data: dict
) -> dict:
    """LLM объясняет почему метрика изменилась"""
    change_pct = (current_value - previous_value) / previous_value * 100

    if abs(change_pct) < 5:
        return {"significant": False}

    response = await client.chat.completions.create(
        model="gpt-4o",
        messages=[{
            "role": "system",
            "content": "Ты аналитик контакт-центра. Объясни изменение метрики."
        }, {
            "role": "user",
            "content": f"""
            Метрика: {metric}
            Изменение: {previous_value:.1f} → {current_value:.1f} ({change_pct:+.1f}%)

            Контекст:
            - AHT: {context_data.get('aht_trend')}
            - Staffing: {context_data.get('staffing')}
            - New agents: {context_data.get('new_agents_count')}
            - Recent training: {context_data.get('recent_training')}

            Назови 2–3 вероятные причины. Кратко."""
        }]
    )
    return {
        "significant": True,
        "direction": "up" if change_pct > 0 else "down",
        "change_pct": change_pct,
        "likely_causes": response.choices[0].message.content
    }

React компонент дашборда

const ContactCenterDashboard: React.FC = () => {
  const [metrics, setMetrics] = useState<CCMetrics>();
  const [period, setPeriod] = useState('today');

  return (
    <div className="dashboard-grid">
      <MetricCard title="AHT" value={metrics?.aht} unit="сек" trend={metrics?.trends?.aht} />
      <MetricCard title="FCR" value={metrics?.fcr} unit="%" trend={metrics?.trends?.fcr} />
      <MetricCard title="CSAT" value={metrics?.csat} unit="/5" trend={metrics?.trends?.csat} />
      <MetricCard title="SLA" value={metrics?.service_level} unit="%" trend={metrics?.trends?.sl} />
      <AnomalyAlert anomalies={metrics?.anomalies} />
      <AgentPerformanceTable agents={metrics?.agents} />
      <HourlyCallVolumeChart data={metrics?.hourly_volume} />
    </div>
  );
};

Сроки: базовый дашборд с 10 метриками — 3–4 недели. Полная аналитическая платформа с AI-диагностикой — 2–3 месяца.