Разработка AI-системы предиктивного набора номера (Predictive Dialer)

Колл-центр тратит до 40% времени операторов на ожидание соединения, а средний agent utilization составляет 60–70%. Предиктивный дайлер (англ. [predictive dialer](https://en.wikipedia.org/wiki/Predictive_dialer)) решает эту проблему — при условии правильно настроенного алгоритма и ML-модели. Мы разра

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    714
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1006

Колл-центр тратит до 40% времени операторов на ожидание соединения, а средний agent utilization составляет 60–70%. Предиктивный дайлер (англ. predictive dialer) решает эту проблему — при условии правильно настроенного алгоритма и ML-модели. Мы разрабатываем AI-системы предиктивного набора, которые повышают productive talk time до 90% и удерживают abandoned calls в пределах 3%. Окупаемость такой системы — 6–12 месяцев за счёт роста утилизации операторов. Получите консультацию по оптимизации обзвона: оценим потенциал роста и подготовим КП.

Алгоритм предиктивного набора

from dataclasses import dataclass from typing import Callable import asyncio import numpy as np @dataclass class DialerMetrics: active_calls: int available_agents: int avg_call_duration: float avg_answer_rate: float avg_ring_time: float abandonment_rate: float = 0 class PredictiveDialer: MAX_ABANDONMENT_RATE = 0.03 PACING_ADJUSTMENT_STEP = 0.05 def __init__(self): self.pacing_factor = 1.2 self.metrics_window = [] def calculate_calls_to_initiate(self, metrics: DialerMetrics) -> int: available = metrics.available_agents - metrics.active_calls if available <= 0: return 0 predicted = int(available * self.pacing_factor / metrics.avg_answer_rate) if metrics.abandonment_rate > self.MAX_ABANDONMENT_RATE: self.pacing_factor = max(1.0, self.pacing_factor - self.PACING_ADJUSTMENT_STEP) elif metrics.abandonment_rate < self.MAX_ABANDONMENT_RATE * 0.5: self.pacing_factor = min(3.0, self.pacing_factor + self.PACING_ADJUSTMENT_STEP) return max(0, predicted - metrics.active_calls) async def run_dialing_loop(self, contacts: list[dict], get_metrics: Callable[[], DialerMetrics], initiate_call: Callable[[dict], None]): contact_index = 0 while contact_index < len(contacts): metrics = await get_metrics() calls_to_make = self.calculate_calls_to_initiate(metrics) for _ in range(calls_to_make): if contact_index >= len(contacts): break contact = contacts[contact_index] if await self.should_call(contact): await initiate_call(contact) contact_index += 1 await asyncio.sleep(1) 

ML-предикция answer rate

class AnswerRatePredictor: FEATURES = [ "hour_of_day", "day_of_week", "previous_attempts", "last_contact_days", "phone_type", "timezone_offset", "segment", ] def predict_answer_probability(self, contact: dict, now: datetime) -> float: features = self.extract_features(contact, now) return self.model.predict_proba([features])[0][1] 

ML-модель обучается на исторических логах звонков: минимум 50 000 записей для стабильной работы. Используем градиентный бустинг (CatBoost/LightGBM) — он даёт прирост answer rate на 15–20% по сравнению с эвристиками. Feature engineering включает не только перечисленные признаки, но и скользящие метрики по оператору: средняя длительность разговора за последний час, частота перезвонов.

Как алгоритм избегает нарушения норм abandoned rate?

FCC ограничивает процент брошенных звонков — не более 3%. Наш алгоритм динамически регулирует pacing factor на основе текущего abandonment rate. Если показатель превышает 3%, коэффициент снижается, чтобы уменьшить количество одновременных звонков. Если показатель ниже 1.5%, коэффициент увеличивается, максимизируя продуктивность. Такая адаптация гарантирует соблюдение регуляторных требований без ручной настройки. В случае сбоя телеметрии алгоритм автоматически переходит в консервативный режим (pacing factor = 1.0).

Почему важна ML-предикция answer rate?

Answer rate — вероятность ответа контакта. Её точное предсказание позволяет набирать ровно столько номеров, чтобы занятые операторы не ждали. Мы используем градиентный бустинг (CatBoost/LightGBM) и исторические данные для обучения модели с признаками времени дня, дня недели, истории попыток и сегмента клиента. Это даёт прирост answer rate на 15–20% по сравнению с простыми правилами и снижает количество незавершённых вызовов. В продакшене модель переобучается еженедельно с автоматическим откатом на предыдущую версию при просадке метрик.

Сравнение типов дайлеров

Характеристика Preview Dialer Progressive Dialer Predictive Dialer (наш)
Ожидание оператора + (оператор видит профиль) – (автоматический набор после освобождения) – (набор до освобождения)
Утилизация операторов 40–60% 70–80% 85–95%
Abandoned calls 0% 1–2% <3%
Сложность ML нет низкая высокая

Predictive dialer в среднем в 1,5 раза увеличивает productive talk time по сравнению с progressive dialer и в 2 раза — по сравнению с preview dialer — при соблюдении abandoned rate <3%.

Ключевые метрики для бизнеса

Метрика До внедрения После внедрения
Agent utilization 60–70% 85–95%
Abandoned calls 5–10% <3%
Productive talk time 30–40% 60–70%
Среднее время ожидания оператора 10–15 сек 1–2 сек

Процесс разработки

  1. Аналитика: сбор требований, аудит текущей инфраструктуры, замеры метрик (talk time, abandon rate, answer rate).
  2. Проектирование: архитектура системы, выбор стека (Python, asyncio, PostgreSQL + Redis, Kafka для очередей), проектирование ML-пайплайна.
  3. Разработка: реализация алгоритма предиктивного набора, обучение ML-модели, интеграция с CRM и IP-телефонией (Asterisk, FreeSWITCH).
  4. Тестирование: симуляция нагрузки, A/B-тестирование с контрольной группой.
  5. Деплой: контейнеризация (Docker, Kubernetes), мониторинг (Prometheus, Grafana), развёртывание на bare-metal или облаке.
  6. Поддержка: SLA 99.9%, доработка модели по результатам эксплуатации.

Что входит в работу

  • Разработка алгоритма предиктивного набора и ML-модели.
  • Интеграция с вашей телефонией и CRM.
  • Документация (архитектура, API, инструкция по эксплуатации).
  • Обучение операторов и администраторов.
  • Гарантийная поддержка 6 месяцев.

Экономия от внедрения составляет 30–50% операционных затрат на обзвон за счёт роста утилизации операторов. FCC regulations on autodialers

Метрики компании

Мы — команда AI-инженеров с 5+ годами опыта в продакшене. Реализовали 20+ проектов для колл-центров в банковской и телеком-отраслях.

Сроки

Базовый predictive dialer с простыми правилами — от 6 до 8 недель. Полноценная система с ML-оптимизацией (предсказание answer rate, time-to-call) — 3–4 месяца. Стоимость рассчитывается индивидуально.

Закажите аудит текущих метрик — оценим потенциал роста productive talk time и подготовим коммерческое предложение. Свяжитесь с нами для консультации.