Любой BPO на Asterisk живёт с одним и тем же незаметным кризисом: клиенты требуют доказательств, что вы укладываетесь в SLA, руководителю операций нужна картина по всем кампаниям в реальном времени, а операторам — мгновенная обратная связь по своим показателям. При этом большинство BPO до сих пор обходится вечерними выгрузками в Excel или самодельными дашбордами в Grafana, на сборку которых ушло 200 часов.
В этом руководстве разберём по шагам, как построить аналитическую инфраструктуру для аутсорсингового колл-центра на Asterisk — от контроля SLA по каждому клиенту до автоматических отчётов, оценки работы операторов и оптимизации выручки.
Чем аналитика BPO отличается от внутреннего колл-центра
Внутренний колл-центр считает метрики для одной организации. BPO ведёт сразу несколько клиентов, и у каждого по-своему устроено:
| Параметр | Внутренний колл-центр | BPO |
|---|---|---|
| Цели по SLA | Один набор целей | Свои по каждому клиентскому договору |
| Конфигурация очередей | Единые очереди | Раздельные очереди под каждую кампанию |
| Распределение операторов | Фиксированные команды | Общие операторы на несколько кампаний |
| Отчётность | Внутренние дашборды | Отчёты для клиента + внутренняя операционка |
| Биллинг | Не применяется | За минуту, за звонок или за рабочее место |
| Изоляция данных | Один арендатор | Мультиарендность со строгими границами |
| Комплаенс | Одна нормативная рамка | Несколько (зависит от отрасли клиента) |
Из этой сложности вырастают требования к аналитике, которые обычные средства мониторинга просто не закрывают. Большинство решений для Asterisk рассчитаны на одного арендатора. BPO же нужна многомерная аналитика, которая одновременно режет данные по клиенту, кампании, очереди и периоду.
12 KPI, которые обязан считать каждый BPO (и что они значат на практике)
KPI для клиента (то, что уходит в отчёты)
Эти метрики напрямую влияют на удовлетворённость клиента и продление контракта:
| KPI | Формула | Цель для BPO | Почему это важно |
|---|---|---|---|
| Service Level | Звонки, принятые за X секунд ÷ Всего звонков × 100 | По договору (обычно 80/20 или 80/30) | Главная метрика SLA. За невыполнение — штрафы. |
| Средняя скорость ответа (ASA) | Общее время ожидания ÷ Принятые звонки | < 30 секунд | Показатель качества, видимый клиенту |
| Процент потерянных звонков | Потерянные ÷ Все входящие × 100 | < 5% | Индикатор упущенной выручки |
| Решение с первого звонка (FCR) | Решено с первого раза ÷ Всего звонков × 100 | > 70% | Экономия затрат и лояльность |
| Среднее время обработки (AHT) | (Разговор + Удержание + ACW) ÷ Всего звонков | Зависит от кампании | Определяет себестоимость звонка |
| CSAT | Средняя оценка в опросе после звонка | > 4.0/5.0 | Метрика удержания клиента |
Операционные KPI (внутреннее управление BPO)
| KPI | Формула | Цель для BPO | Почему это важно |
|---|---|---|---|
| Загрузка оператора | (Время обработки ÷ Время в системе) × 100 | 75-85% | Оптимизация выручки на рабочее место |
| Соблюдение расписания | Время по графику ÷ Запланированное время × 100 | > 95% | Точность планирования персонала |
| Себестоимость звонка | Общие затраты кампании ÷ Обработанные звонки | Зависит | Рентабельность контракта |
| Выручка на место в час | Выручка кампании ÷ (Операторы × Часы) | Смотреть динамику | Метрика здоровья бизнеса |
| Occupancy | Время обработки ÷ (Время обработки + Свободное время) × 100 | 80-90% | Планирование мощностей |
| Shrinkage | Непродуктивное время ÷ Оплаченное время × 100 | < 30% | Реальная доступная мощность |
Формула рентабельности BPO
Margin per campaign = (Revenue per seat hour × Seats × Hours) - (Agent cost + Infrastructure + Overhead)
Считайте это ежедневно. Если маржа кампании опускается ниже 15%, разбирайтесь сразу: либо просела загрузка операторов, либо ползёт вверх AHT, либо контракт пора пересматривать.
Архитектура очередей под несколько клиентов в Asterisk
Фундамент BPO-аналитики — грамотная сегментация очередей. Вот архитектура, готовая к продакшену:
Соглашение об именовании очередей
; Format: {client}_{campaign}_{type}
; Examples:
[acme_sales_inbound] ; Acme Corp - Sales - Inbound
[acme_support_inbound] ; Acme Corp - Support - Inbound
[globex_billing_inbound] ; Globex Inc - Billing - Inbound
[globex_collections_outbound] ; Globex Inc - Collections - Outbound
queues.conf — настройка под нескольких клиентов
; === Client: Acme Corp ===
; Contract: 80/20 SLA, max 3 min wait
[acme_sales_inbound]
strategy = rrmemory
timeout = 15
retry = 5
maxlen = 50
servicelevel = 20
weight = 2
announce-frequency = 30
announce-holdtime = once
monitor-format = wav
eventwhencalled = vars
eventmemberstatus = yes
[acme_support_inbound]
strategy = leastrecent
timeout = 20
retry = 5
maxlen = 30
servicelevel = 30
weight = 1
; === Client: Globex Inc ===
; Contract: 80/30 SLA, max 5 min wait
[globex_billing_inbound]
strategy = rrmemory
timeout = 20
retry = 5
maxlen = 40
servicelevel = 30
weight = 1
[globex_collections_outbound]
strategy = linear
timeout = 25
retry = 3
maxlen = 0Назначение операторов через penalty
; agents.conf or queue members
; Shared agents across campaigns with skill-based routing
; Agent 101: Primary Acme Sales, Secondary Globex Billing
member => SIP/101,1,Agent101,SIP/101 ; Acme Sales (penalty 1 = primary)
member => SIP/101,3,Agent101,SIP/101 ; Globex Billing (penalty 3 = overflow)
; Agent 102: Primary Globex, Secondary Acme
member => SIP/102,1,Agent102,SIP/102 ; Globex Billing (primary)
member => SIP/102,3,Agent102,SIP/102 ; Acme Sales (overflow)SQL-запросы для аналитики по нескольким клиентам
Все запросы работают со стандартными CDR/queue_log Asterisk в PostgreSQL (или в MySQL с небольшими правками).
1. Дашборд SLA по клиентам в реальном времени
-- Real-time SLA compliance per client (today)
WITH queue_clients AS (
SELECT
CASE
WHEN queuename LIKE 'acme_%' THEN 'Acme Corp'
WHEN queuename LIKE 'globex_%' THEN 'Globex Inc'
WHEN queuename LIKE 'initech_%' THEN 'Initech LLC'
ELSE 'Unknown'
END AS client,
queuename,
event,
data1::int AS wait_time,
time
FROM queue_log
WHERE time >= CURRENT_DATE
AND event IN ('CONNECT', 'ABANDON', 'EXITWITHTIMEOUT')
),
sla_calc AS (
SELECT
client,
COUNT(*) FILTER (WHERE event = 'CONNECT') AS answered,
COUNT(*) FILTER (WHERE event = 'CONNECT' AND wait_time <= 20) AS answered_in_sla,
COUNT(*) FILTER (WHERE event IN ('ABANDON', 'EXITWITHTIMEOUT')) AS abandoned,
COUNT(*) AS total_calls,
ROUND(AVG(wait_time) FILTER (WHERE event = 'CONNECT'), 1) AS avg_speed_answer,
MAX(wait_time) AS max_wait
FROM queue_clients
GROUP BY client
)
SELECT
client,
total_calls,
answered,
abandoned,
ROUND(100.0 * answered_in_sla / NULLIF(answered, 0), 1) AS sla_pct,
ROUND(100.0 * abandoned / NULLIF(total_calls, 0), 1) AS abandon_pct,
avg_speed_answer AS asa_seconds,
max_wait AS longest_wait
FROM sla_calc
ORDER BY client;2. Работа операторов в разрезе кампаний
-- Which agents are most productive across which campaigns?
SELECT
agent,
CASE
WHEN queuename LIKE 'acme_%' THEN 'Acme Corp'
WHEN queuename LIKE 'globex_%' THEN 'Globex Inc'
ELSE 'Other'
END AS client,
COUNT(*) FILTER (WHERE event = 'CONNECT') AS calls_handled,
ROUND(AVG(data2::int) FILTER (WHERE event = 'COMPLETECALLER'
OR event = 'COMPLETEAGENT'), 0) AS avg_talk_time,
ROUND(AVG(data1::int) FILTER (WHERE event = 'CONNECT'), 0) AS avg_wait_given,
COUNT(*) FILTER (WHERE event = 'RINGNOANSWER') AS missed_calls
FROM queue_log
WHERE time >= CURRENT_DATE - INTERVAL '7 days'
AND event IN ('CONNECT', 'COMPLETECALLER', 'COMPLETEAGENT', 'RINGNOANSWER')
GROUP BY agent, client
ORDER BY client, calls_handled DESC;3. Почасовая тепловая карта кампании
-- Call volume and SLA by hour per campaign (for staffing optimization)
SELECT
EXTRACT(HOUR FROM time) AS hour,
queuename AS campaign,
COUNT(*) AS total_calls,
COUNT(*) FILTER (WHERE event = 'CONNECT') AS answered,
COUNT(*) FILTER (WHERE event = 'ABANDON') AS abandoned,
ROUND(100.0 * COUNT(*) FILTER (WHERE event = 'CONNECT' AND data1::int <= 20)
/ NULLIF(COUNT(*) FILTER (WHERE event = 'CONNECT'), 0), 1) AS sla_pct,
ROUND(AVG(data1::int) FILTER (WHERE event = 'CONNECT'), 0) AS asa
FROM queue_log
WHERE time >= CURRENT_DATE
AND event IN ('CONNECT', 'ABANDON', 'EXITWITHTIMEOUT')
GROUP BY hour, campaign
ORDER BY campaign, hour;4. Выручка и рентабельность по кампаниям
-- Campaign profitability analysis (requires billing config table)
WITH campaign_billing AS (
-- Replace with your actual billing rates
SELECT 'acme_sales_inbound' AS queue, 0.85 AS rate_per_minute, 'per_minute' AS model
UNION ALL
SELECT 'globex_billing_inbound', 1.20, 'per_minute'
UNION ALL
SELECT 'initech_support_inbound', 15.00, 'per_call'
),
call_stats AS (
SELECT
queuename,
COUNT(*) FILTER (WHERE event IN ('COMPLETECALLER', 'COMPLETEAGENT')) AS completed_calls,
SUM(data2::int) FILTER (WHERE event IN ('COMPLETECALLER', 'COMPLETEAGENT')) AS total_talk_seconds
FROM queue_log
WHERE time >= DATE_TRUNC('month', CURRENT_DATE)
AND event IN ('COMPLETECALLER', 'COMPLETEAGENT')
GROUP BY queuename
)
SELECT
cs.queuename AS campaign,
cs.completed_calls,
ROUND(cs.total_talk_seconds / 60.0, 0) AS total_minutes,
cb.model AS billing_model,
CASE
WHEN cb.model = 'per_minute' THEN ROUND(cs.total_talk_seconds / 60.0 * cb.rate_per_minute, 2)
WHEN cb.model = 'per_call' THEN cs.completed_calls * cb.rate_per_minute
END AS estimated_revenue
FROM call_stats cs
JOIN campaign_billing cb ON cs.queuename = cb.queue
ORDER BY estimated_revenue DESC;5. Оповещение о нарушении SLA у клиента
-- Detect campaigns at risk of SLA breach (rolling 30-minute window)
WITH rolling AS (
SELECT
queuename,
COUNT(*) FILTER (WHERE event = 'CONNECT' AND data1::int <= 20) AS in_sla,
COUNT(*) FILTER (WHERE event = 'CONNECT') AS answered,
COUNT(*) FILTER (WHERE event = 'ABANDON') AS abandoned
FROM queue_log
WHERE time >= NOW() - INTERVAL '30 minutes'
AND event IN ('CONNECT', 'ABANDON', 'EXITWITHTIMEOUT')
GROUP BY queuename
)
SELECT
queuename AS campaign,
ROUND(100.0 * in_sla / NULLIF(answered, 0), 1) AS current_sla,
abandoned,
CASE
WHEN 100.0 * in_sla / NULLIF(answered, 0) < 70 THEN 'CRITICAL'
WHEN 100.0 * in_sla / NULLIF(answered, 0) < 80 THEN 'WARNING'
ELSE 'OK'
END AS status
FROM rolling
WHERE answered > 0
ORDER BY current_sla ASC;Автоматическая отчётность для клиентов
Клиенты BPO ждут регулярных отчётов. Вот как их автоматизировать:
Структура еженедельного отчёта
В каждом клиентском отчёте должны быть такие разделы:
- —Краткая сводка — выполнение SLA, общее число звонков, ключевые моменты
- —Выполнение Service Level — график SLA по дням, план против факта
- —Анализ объёма звонков — распределение по часам, пики, тренды
- —Работа операторов — лучшие и худшие, рекомендации по обучению
- —Метрики качества — FCR, CSAT, доля переводов
- —Рекомендации — предложения по улучшению, основанные на данных
Формирование отчётов через SQL
-- Weekly executive summary for client report
SELECT
DATE(time) AS report_date,
COUNT(*) FILTER (WHERE event IN ('CONNECT', 'ABANDON')) AS total_offered,
COUNT(*) FILTER (WHERE event = 'CONNECT') AS total_answered,
COUNT(*) FILTER (WHERE event = 'ABANDON') AS total_abandoned,
ROUND(100.0 * COUNT(*) FILTER (WHERE event = 'CONNECT')
/ NULLIF(COUNT(*) FILTER (WHERE event IN ('CONNECT', 'ABANDON')), 0), 1) AS answer_rate,
ROUND(100.0 * COUNT(*) FILTER (WHERE event = 'CONNECT' AND data1::int <= 20)
/ NULLIF(COUNT(*) FILTER (WHERE event = 'CONNECT'), 0), 1) AS sla_pct,
ROUND(AVG(data1::int) FILTER (WHERE event = 'CONNECT'), 0) AS avg_wait_sec,
ROUND(AVG(data2::int) FILTER (WHERE event IN ('COMPLETECALLER', 'COMPLETEAGENT')), 0) AS avg_talk_sec
FROM queue_log
WHERE queuename LIKE 'acme_%'
AND time >= CURRENT_DATE - INTERVAL '7 days'
AND event IN ('CONNECT', 'ABANDON', 'COMPLETECALLER', 'COMPLETEAGENT')
GROUP BY DATE(time)
ORDER BY report_date;Bash-скрипт для автоматических PDF-отчётов
#!/bin/bash
# generate_client_report.sh — Run weekly via cron
# Requires: psql, python3, wkhtmltopdf
CLIENT="acme"
WEEK_START=$(date -d "last monday" +%Y-%m-%d)
WEEK_END=$(date -d "last sunday" +%Y-%m-%d)
REPORT_DIR="/var/reports/${CLIENT}/${WEEK_START}"
mkdir -p "$REPORT_DIR"
# Extract data
psql -h localhost -U asterisk -d asterisk_cdr -t -A -F',' \
-c "SELECT DATE(time), COUNT(*) FILTER (WHERE event='CONNECT'),
COUNT(*) FILTER (WHERE event='ABANDON'),
ROUND(AVG(data1::int) FILTER (WHERE event='CONNECT'),0)
FROM queue_log
WHERE queuename LIKE '${CLIENT}_%'
AND time BETWEEN '${WEEK_START}' AND '${WEEK_END}'
GROUP BY DATE(time) ORDER BY 1" \
> "${REPORT_DIR}/daily_stats.csv"
echo "Report generated: ${REPORT_DIR}"
# Convert to PDF, email to client contactПять дашбордов, без которых BPO не обойтись
1. Wallboard SLA по клиентам (реальное время)
Зачем: большой экран, на котором видно живой статус SLA по всем клиентам.
| Виджет | Содержание | Обновление |
|---|---|---|
| Карточки SLA по клиентам | Текущий % SLA с зелёным/жёлтым/красным | Каждые 10 секунд |
| Глубина очереди | Сколько абонентов ждёт в каждой кампании | В реальном времени |
| Самое долгое ожидание | Текущий максимум времени ожидания | В реальном времени |
| Сетка статусов операторов | Свободен / В разговоре / ACW / Не в сети | В реальном времени |
| Счётчик потерянных | Скользящее число потерь за 30 минут | Каждую минуту |
2. Операционный дашборд кампаний
Зачем: взгляд руководителя операций для перераспределения ресурсов между кампаниями.
| Виджет | Содержание |
|---|---|
| Таблица сравнения кампаний | SLA, ASA, AHT, загрузка бок о бок |
| Матрица распределения операторов | Кто из операторов на какой кампании |
| Оповещения о перегрузке | Кампании, которым нужны дополнительные операторы |
| Почасовой прогноз против факта | Прогнозируемый и фактический объём звонков |
Устали угадывать, что происходит в очередях?
Astervis даёт 30+ реалтайм-графиков, KPI операторов и CRM-интеграцию для вашего Asterisk PBX. On-premise. Установка за 5 минут. От $119/мес flat — без ограничения на операторов.
3. Рейтинг операторов
Зачем: живой рейтинг операторов, который подстёгивает результат.
| Виджет | Содержание |
|---|---|
| Топ-10 операторов (по звонкам) | Рейтинг по количеству за сегодня |
| Лидеры по качеству | Лучший FCR, самый короткий AHT |
| Флаги для наставничества | Операторы с высокой долей переводов или долгим ACW |
| Учёт входов и перерывов | Текущий статус и время в каждом состоянии |
4. Финансовый дашборд
Зачем: взгляд CFO/CEO на рентабельность BPO.
| Виджет | Содержание |
|---|---|
| Выручка по кампаниям | Выручка с начала месяца по каждому клиенту |
| Динамика себестоимости звонка | Линия тренда за 30 дней |
| Маржа по кампаниям | Выручка минус затраты на операторов и инфраструктуру |
| Эффективность загрузки | Выручка на оплаченный час работы оператора |
5. Дашборд клиентского портала
Зачем: дашборд только для чтения, который вы даёте клиенту по защищённой ссылке.
| Виджет | Содержание |
|---|---|
| График выполнения SLA | SLA по дням за текущий месяц |
| Тренды объёма звонков | Почасовые и дневные паттерны |
| Метрики качества | Динамика FCR, CSAT, AHT |
| Ключевые моменты | Автоматические комментарии к изменениям |
Три подхода к BPO-аналитике на Asterisk
Подход 1. Собрать самому (Grafana + PostgreSQL)
Трудозатраты: 120-200 часов на первичную настройку, 10-20 часов в месяц на поддержку
Что понадобится:
- —PostgreSQL с таблицами CDR и queue_log
- —Grafana с источником данных PostgreSQL
- —Собственные SQL-запросы под каждый дашборд
- —Ролевой доступ для изоляции клиентов
- —Скрипты формирования отчётов по расписанию
Плюсы: полная кастомизация, нет платы за каждого оператора Минусы: гигантские трудозатраты разработки, хрупкость, отсутствие поддержки, каждый новый клиент требует ручной работы
Подход 2. QueueMetrics
Трудозатраты: 2-4 недели на внедрение, постоянная стоимость лицензии
Стоимость: CHF 8 за оператора в месяц (50 операторов = ~$480 в месяц)
Что получаете: мониторинг очередей, базовую отчётность, wallboard Чего не получаете: учёт выручки по клиентам, автоматические клиентские отчёты, современный интерфейс, сравнение кампаний в реальном времени, простое перераспределение операторов
Плюсы: отраслевой стандарт, стабильность Минусы: дорого на масштабе, устаревший Java-интерфейс, мало функций именно под BPO, нет встроенного клиентского портала
Подход 3. Astervis
Трудозатраты: 15 минут на установку, результат сразу
Стоимость: от $119 в месяц (Starter) до $449 в месяц (Professional), число операторов не ограничено
Что получаете:
- —30+ готовых дашбордов, включая тепловые карты очередей, показатели операторов и аналитику по транкам
- —Мониторинг в реальном времени сразу по всем кампаниям
- —Управление операторами с отслеживанием KPI и рейтингами
- —Интеграцию с CRM (Bitrix24, AmoCRM) для работы с лидами
- —Self-hosted — данные остаются на ваших серверах
- —Установку одной командой:
curl -sSL https://api.astervis.io/api/releases/install.sh | bash
Почему это работает для BPO:
- —Видимость всех очередей: все клиентские кампании в одном окне
- —Контроль работы операторов: видно, кто вытягивает результат, а кому нужен наставник
- —Экономика: $449 в месяц против $480 в месяц (QueueMetrics на 50 операторов) или 200 часов разработки в Grafana
- —Self-hosted: критично для BPO с требованиями к резидентности данных
- —14 дней бесплатно: без карты и обязательств
Матрица сравнения
| Возможность | Grafana своими силами | QueueMetrics | Astervis |
|---|---|---|---|
| Время внедрения | 120-200 часов | 2-4 недели | 15 минут |
| Мультиочереди в реальном времени | Пишется вручную | Ограниченно | ✅ Из коробки |
| Показатели операторов | Свой SQL | Базовые | ✅ 30+ графиков |
| Тепловые карты | Вручную | ❌ | ✅ Из коробки |
| Интеграция с CRM | Вручную | ❌ | ✅ Bitrix24, AmoCRM |
| Стоимость (50 операторов) | $0 + 200 ч разработки | ~$480 в месяц | $449 в месяц |
| Self-hosted | ✅ | ✅ | ✅ |
| Современный интерфейс | Как настроите | ❌ Устаревший Java | ✅ Современный веб |
| Поддержка | Сообщество | Платная | Включена |
| Обслуживание | 10-20 ч в месяц | Низкое | Отсутствует |
Типичные ошибки в аналитике BPO
1. Слишком много метрик
Проблема: 50+ KPI в клиентском отчёте. Их никто не читает. Решение: 5-7 метрик на отчёт, привязанных к SLA из договора.
2. Запаздывающая отчётность
Проблема: клиент получает отчёт за прошлую неделю в среду. Для оперативных решений он бесполезен. Решение: дашборды в реальном времени + автоматическая дневная сводка на почту + подробный еженедельный отчёт.
3. Нет учёта затрат по кампаниям
Проблема: вы знаете общие расходы, но не понимаете, какие кампании прибыльны. Решение: считайте время операторов по каждой очереди через queue_log и выводите себестоимость обработанного звонка в разрезе кампании.
4. Слепые зоны по общим операторам
Проблема: оператор работает на трёх кампаниях, а вы видите только сводную статистику. Решение: считайте показатели по паре «оператор + очередь». Так становится видно, на какой кампании каждый оператор сильнее.
5. Игнорирование паттернов потерянных звонков
Проблема: вы отчитываетесь про «5% потерь», но не разбираете, когда и почему они происходят. Решение: отслеживайте потери по часам, дням, позиции в очереди и времени ожидания. Большинство потерь укладывается в конкретные паттерны, которые лечатся расстановкой смен.
6. Ручные отчёты для клиентов
Проблема: каждую пятницу человек тратит 4 часа на сборку отчётов в Excel для 10 клиентов. Решение: автоматизируйте цепочку SQL → шаблон → PDF → письмо. После настройки человеко-часы обнуляются.
С чего начать: аналитика BPO за 30 минут
Шаг 1. Проверьте структуру очередей (5 минут)
Убедитесь, что очереди названы по схеме client_campaign_type. Если нет — переименуйте: это фундамент всей мультиклиентской аналитики.
asterisk -rx "queue show" | grep -E "^[a-z]"Шаг 2. Проверьте сбор данных (5 минут)
Убедитесь, что queue_log и CDR действительно пишутся в базу:
# Check queue_log is flowing
tail -5 /var/log/asterisk/queue_log
# Check CDR database
psql -U asterisk -c "SELECT COUNT(*) FROM cdr WHERE calldate >= CURRENT_DATE"Шаг 3. Установите Astervis (5 минут)
curl -sSL https://api.astervis.io/api/releases/install.sh | bashПройдите мастер установки — он сам определит конфигурацию Asterisk и сразу начнёт импортировать данные.
Шаг 4. Настройте представления кампаний (10 минут)
Сгруппируйте очереди по клиентам в Astervis. Задайте назначения операторов и цели по SLA для каждой кампании.
Шаг 5. Настройте оповещения (5 минут)
Настройте алерты на:
- —падение SLA ниже порога, прописанного в договоре
- —долю потерянных звонков выше 5%
- —превышение максимальной глубины очереди
- —падение числа доступных операторов ниже минимума
Главное
- —Аналитика BPO принципиально отличается от внутренней: мультиарендность, разные SLA и разные модели биллинга требуют инструментов, созданных именно под это.
- —Считайте 12 базовых KPI, разделив их на клиентские (SLA, ASA, FCR) и операционные (загрузка, себестоимость звонка, выручка на рабочее место).
- —Соглашение об именовании очередей — фундамент: используйте формат
client_campaign_typeдля автоматической сегментации. - —Автоматизируйте клиентскую отчётность — ручная сборка отчётов перестаёт масштабироваться уже на третьем клиенте.
- —Следите за рентабельностью каждой кампании — сводные цифры маскируют убыточные контракты.
- —Astervis даёт готовую BPO-аналитику за 15 минут вместо 200+ часов самостоятельной разработки: 30+ дашбордов, мониторинг в реальном времени и интеграция с CRM за $449 в месяц при любом числе операторов.
Начните бесплатный 14-дневный триал на astervis.io — карта не нужна. Все клиентские кампании, все метрики операторов и все цели по SLA в одном дашборде уже через несколько минут.
Хватит гадать. Начни видеть.
Реальная картина вашего Asterisk колл-центра: время ожидания, активность операторов, нагрузка на транки и 30+ графиков. On-premise на вашем сервере. Установка за 5 минут. Без карты.
От $119/мес flat. Без ограничения на операторов. Триал 14 дней.
