Asterisk'da ishlaydigan har bir BPO bir xil ko'zga tashlanmaydigan muammoga duch keladi: mijozlaringiz SLA ko'rsatkichlariga rioya qilayotganingizni isbotlashni talab qiladi, operatsion menejeringizga barcha kampaniyalar bo'yicha real vaqtdagi ko'rinish kerak, operatorlaringiz esa o'z natijalari haqida darhol qaytish kutadi. Shunga qaramay, ko'pchilik BPO hanuz kun oxiridagi Excel jadvallariga yoki 200 soat sarflab yig'ilgan Grafana dashboardlariga tayanadi.
Ushbu qo'llanmada autsorsing rejimida ishlaydigan Asterisk call-markazi uchun analitika infratuzilmasini qanday qurish kerakligi bosqichma-bosqich ko'rsatilgan — har bir mijoz bo'yicha SLA nazoratidan tortib avtomatik mijoz hisobotlari, operatorlar samaradorligini baholash va daromadni optimallashtirishgacha.
BPO analitikasi ichki call-markazdan nimasi bilan farq qiladi
Ichki call-markaz bitta tashkilot uchun ko'rsatkichlarni hisoblaydi. BPO esa bir vaqtning o'zida bir nechta mijoz bilan ishlaydi va ularning har birida quyidagilar boshqacha:
| Jihat | Ichki call-markaz | BPO |
|---|---|---|
| SLA maqsadlari | Bitta maqsadlar to'plami | Har bir mijoz shartnomasida alohida |
| Navbat konfiguratsiyasi | Yagona navbatlar | Har bir kampaniya uchun alohida navbatlar |
| Operatorlarni taqsimlash | Qat'iy jamoalar | Bir nechta kampaniyaga umumiy operatorlar |
| Hisobot | Ichki dashboardlar | Mijozga hisobotlar + ichki operatsion nazorat |
| Billing | Talab qilinmaydi | Daqiqasiga, qo'ng'irog'iga yoki ish o'rniga |
| Ma'lumotlar izolyatsiyasi | Bitta ijarachi | Qat'iy chegaralar bilan multi-tenant |
| Muvofiqlik | Bitta normativ baza | Bir nechta (mijoz sohasiga qarab) |
Ana shu murakkablikdan odatiy monitoring vositalari qoplay olmaydigan talablar kelib chiqadi. Asterisk uchun aksariyat monitoring yechimlari bitta ijarachiga mo'ljallangan. BPO'ga esa ma'lumotni bir vaqtda mijoz, kampaniya, navbat va davr kesimida bo'ladigan ko'p o'lchovli analitika kerak.
Har bir BPO kuzatishi shart bo'lgan 12 ta KPI (va ular amalda nimani anglatadi)
Mijozga ko'rinadigan KPI (hisobotlarga tushadiganlari)
Bu ko'rsatkichlar mijoz mamnunligiga va shartnomaning uzaytirilishiga bevosita ta'sir qiladi:
| KPI | Formula | BPO uchun maqsad | Nega muhim |
|---|---|---|---|
| Service Level | X soniyada javob berilgan qo'ng'iroqlar ÷ Jami qo'ng'iroqlar × 100 | Shartnoma bo'yicha (odatda 80/20 yoki 80/30) | Asosiy SLA ko'rsatkichi. Bajarilmasa — jarima. |
| O'rtacha javob tezligi (ASA) | Jami kutish vaqti ÷ Javob berilgan qo'ng'iroqlar | < 30 soniya | Mijozga ko'rinadigan sifat indikatori |
| Tashlab yuborilgan qo'ng'iroqlar ulushi | Tashlab yuborilganlar ÷ Jami kiruvchi × 100 | < 5% | Yo'qotilgan daromad belgisi |
| Birinchi qo'ng'iroqda hal qilish (FCR) | Birinchi martada hal qilinganlar ÷ Jami qo'ng'iroqlar × 100 | > 70% | Xarajat samaradorligi va mamnunlik |
| O'rtacha ishlov berish vaqti (AHT) | (Suhbat + Kutish + ACW) ÷ Jami qo'ng'iroqlar | Kampaniyaga qarab | Qo'ng'iroq tannarxini belgilaydi |
| CSAT bahosi | Qo'ng'iroqdan keyingi so'rovnoma o'rtachasi | > 4.0/5.0 | Mijozni ushlab qolish ko'rsatkichi |
Operatsion KPI (BPO'ning ichki boshqaruvi)
| KPI | Formula | BPO uchun maqsad | Nega muhim |
|---|---|---|---|
| Operator bandligi (Utilization) | (Ishlov berish vaqti ÷ Tizimdagi vaqt) × 100 | 75-85% | Ish o'rniga to'g'ri keladigan daromadni optimallashtirish |
| Jadvalga rioya | Jadval bo'yicha vaqt ÷ Rejalashtirilgan vaqt × 100 | > 95% | Xodimlarni rejalashtirish aniqligi |
| Bitta qo'ng'iroq tannarxi | Kampaniyaning jami xarajati ÷ Qabul qilingan qo'ng'iroqlar | O'zgaruvchan | Shartnoma rentabelligi |
| Ish o'rni soatiga daromad | Kampaniya daromadi ÷ (Operatorlar × Soatlar) | Dinamikani kuzating | Biznes salomatligi ko'rsatkichi |
| Occupancy | Ishlov berish vaqti ÷ (Ishlov berish vaqti + Bo'sh vaqt) × 100 | 80-90% | Quvvatni rejalashtirish |
| Shrinkage | Samarasiz vaqt ÷ To'langan vaqt × 100 | < 30% | Haqiqiy mavjud quvvat |
BPO rentabelligi formulasi
Margin per campaign = (Revenue per seat hour × Seats × Hours) - (Agent cost + Infrastructure + Overhead)
Buni har kuni hisoblang. Agar kampaniya marjasi 15% dan pastga tushsa, darhol tekshiring: yo operatorlar bandligi past, yo AHT o'sib bormoqda, yo shartnomani qayta ko'rish vaqti kelgan.
Asterisk'da ko'p mijozli navbat arxitekturasi
BPO analitikasining poydevori — navbatlarni to'g'ri segmentlash. Mana produksiyaga tayyor arxitektura:
Navbatlarni nomlash qoidasi
; 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 — bir nechta mijoz uchun sozlash
; === 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 = 0Operatorlarni penalty orqali biriktirish
; 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)Ko'p mijozli analitika uchun SQL so'rovlar
Bu so'rovlarning barchasi PostgreSQL'dagi standart Asterisk CDR/queue_log bilan ishlaydi (MySQL'da ham kichik o'zgartirishlar bilan).
1. Mijozlar kesimida real vaqtdagi SLA dashboardi
-- 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. Kampaniyalar kesimida operatorlar samaradorligi
-- 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. Kampaniyaning soatlik issiqlik xaritasi
-- 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. Kampaniyalar bo'yicha daromad va rentabellik
-- 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. Mijoz SLA'si buzilishi haqida ogohlantirish
-- 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;Mijozlar uchun avtomatik hisobot
BPO mijozlari muntazam hisobot kutadi. Ularni shunday avtomatlashtirasiz:
Haftalik hisobot tuzilishi
Har bir mijoz hisobotida quyidagi bo'limlar bo'lishi kerak:
- —Qisqacha xulosa — SLA bajarilishi, jami qo'ng'iroqlar, asosiy jihatlar
- —Service Level natijalari — kunlik SLA grafigi, maqsad va fakt
- —Qo'ng'iroqlar hajmi tahlili — soatlik taqsimot, cho'qqilar, trendlar
- —Operatorlar natijalari — eng yaxshi va eng past ko'rsatkichlar, o'qitish bo'yicha tavsiyalar
- —Sifat ko'rsatkichlari — FCR, CSAT, o'tkazishlar ulushi
- —Tavsiyalar — ma'lumotga asoslangan yaxshilash takliflari
SQL orqali hisobot yaratish
-- 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;Avtomatik PDF hisobotlar uchun Bash skript
#!/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 contactHar bir BPO'ga zarur bo'lgan beshta dashboard
1. Mijozlar SLA wallboardi (real vaqt)
Maqsad: barcha mijozlar bo'yicha jonli SLA holatini ko'rsatuvchi katta ekran.
| Vidjet | Mazmuni | Yangilanish |
|---|---|---|
| Mijozlar SLA kartochkalari | Joriy SLA % yashil/sariq/qizil bilan | Har 10 soniyada |
| Navbat chuqurligi | Har bir kampaniyada kutayotgan abonentlar | Real vaqtda |
| Eng uzun kutish | Joriy maksimal kutish vaqti | Real vaqtda |
| Operator statuslari to'ri | Bo'sh / Suhbatda / ACW / Oflayn | Real vaqtda |
| Tashlab yuborilganlar hisoblagichi | 30 daqiqalik siljuvchi oynada tashlanganlar soni | Har daqiqada |
2. Kampaniyalar operatsion dashboardi
Maqsad: operatsion menejer uchun kampaniyalar o'rtasida resurs taqsimlash ko'rinishi.
| Vidjet | Mazmuni |
|---|---|
| Kampaniyalarni solishtirish jadvali | SLA, ASA, AHT, bandlik yonma-yon |
| Operatorlarni taqsimlash matritsasi | Qaysi operator qaysi kampaniyada |
| Yuklama ogohlantirishlari | Qo'shimcha operator kerak bo'lgan kampaniyalar |
| Soatlik prognoz va fakt | Bashorat qilingan va haqiqiy qo'ng'iroq hajmi |
Navbatlarda nima sodir bo'layotganini taxmin qilishdan charchadingizmi?
Astervis sizning Asterisk PBX'ingiz uchun 30+ realtime grafik, operator KPI va CRM-integratsiya beradi. On-premise. 5 daqiqada o'rnatiladi. $119/oydan flat — operatorlar soni cheklanmagan.
3. Operatorlar reytingi
Maqsad: natijani rag'batlantiruvchi jonli operator reytingi.
| Vidjet | Mazmuni |
|---|---|
| Top-10 operator (qo'ng'iroqlar bo'yicha) | Bugungi hajm bo'yicha reyting |
| Sifat yetakchilari | Eng yuqori FCR, eng qisqa AHT |
| Murabbiylik belgilari | O'tkazishlari ko'p yoki ACW'si uzoq operatorlar |
| Kirish va tanaffuslar hisobi | Joriy status va har bir holatdagi vaqt |
4. Moliyaviy dashboard
Maqsad: BPO rentabelligiga CFO/CEO nigohi.
| Vidjet | Mazmuni |
|---|---|
| Kampaniyalar bo'yicha daromad | Har bir mijoz bo'yicha oy boshidan daromad |
| Qo'ng'iroq tannarxi dinamikasi | 30 kunlik trend chizig'i |
| Kampaniyalar marjasi | Daromad minus operator va infratuzilma xarajati |
| Bandlik samaradorligi | To'langan operator soatiga daromad |
5. Mijoz portali dashboardi
Maqsad: himoyalangan havola orqali mijozga beriladigan faqat o'qish uchun dashboard.
| Vidjet | Mazmuni |
|---|---|
| SLA bajarilishi grafigi | Joriy oy uchun kunlik SLA |
| Qo'ng'iroq hajmi trendlari | Soatlik va kunlik naqshlar |
| Sifat ko'rsatkichlari | FCR, CSAT, AHT dinamikasi |
| Asosiy jihatlar | O'zgarishlarga avtomatik izohlar |
Asterisk'da BPO analitikasiga uchta yondashuv
Yondashuv 1. O'zingiz yig'ish (Grafana + PostgreSQL)
Mehnat sarfi: dastlabki sozlashga 120-200 soat, oyiga 10-20 soat qo'llab-quvvatlash
Nima kerak bo'ladi:
- —CDR va queue_log jadvallari bilan PostgreSQL
- —PostgreSQL datasource ulangan Grafana
- —Har bir dashboard uchun alohida SQL so'rovlar
- —Mijozlarni ajratish uchun rolga asoslangan kirish
- —Jadval bo'yicha hisobot yaratuvchi skriptlar
Ijobiy tomoni: to'liq moslashuvchanlik, har bir operator uchun litsenziya to'lovi yo'q Salbiy tomoni: juda katta muhandislik vaqti, mo'rtlik, qo'llab-quvvatlash yo'q, har bir yangi mijoz qo'lda ish talab qiladi
Yondashuv 2. QueueMetrics
Mehnat sarfi: joriy etishga 2-4 hafta, doimiy litsenziya to'lovi
Narxi: oyiga har bir operator uchun CHF 8 (50 operator = ~$480/oy)
Nima olasiz: navbatlar monitoringi, asosiy hisobotlar, wallboard Nima olmaysiz: mijozlar kesimida daromad hisobi, avtomatik mijoz hisobotlari, zamonaviy interfeys, real vaqtda kampaniyalarni solishtirish, operatorlarni oson qayta taqsimlash
Ijobiy tomoni: soha standarti, barqaror Salbiy tomoni: kattalashganda qimmat, eskirgan Java interfeysi, BPO uchun maxsus imkoniyatlar kam, o'rnatilgan mijoz portali yo'q
Yondashuv 3. Astervis
Mehnat sarfi: o'rnatishga 15 daqiqa, natija darhol
Narxi: oyiga $119 dan $449 gacha, operatorlar soni cheklanmagan
Nima olasiz:
- —30+ tayyor dashboard, jumladan navbat issiqlik xaritalari, operator ko'rsatkichlari va trunk analitikasi
- —Barcha kampaniyalar bo'yicha bir vaqtda real vaqtdagi monitoring
- —KPI kuzatuvi va reytinglar bilan operatorlarni boshqarish
- —Lidlar bilan ishlash uchun CRM integratsiyasi (Bitrix24, AmoCRM)
- —Self-hosted — ma'lumotlaringiz o'z serveringizda qoladi
- —Bitta buyruq bilan o'rnatish:
curl -sSL https://api.astervis.io/api/releases/install.sh | bash
Nega bu BPO uchun ishlaydi:
- —Barcha navbatlar ko'rinishi: barcha mijoz kampaniyalari bitta oynada
- —Operatorlar samaradorligi nazorati: kim natija bermoqda va kimga murabbiylik kerakligi ko'rinadi
- —Xarajat samaradorligi: oyiga $119 va oyiga $480 (50 operator uchun QueueMetrics) yoki 200 soatlik Grafana ishlanmasi
- —Self-hosted: ma'lumotlar rezidentligi talabi bor BPO uchun juda muhim
- —14 kun bepul sinov: karta ham, majburiyat ham talab qilinmaydi
Taqqoslash matritsasi
| Imkoniyat | O'z kuchi bilan Grafana | QueueMetrics | Astervis |
|---|---|---|---|
| Joriy etish vaqti | 120-200 soat | 2-4 hafta | 15 daqiqa |
| Ko'p navbat real vaqtda | Qo'lda yoziladi | Cheklangan | ✅ Qutidan chiqib |
| Operator ko'rsatkichlari | O'z SQL so'rovlaringiz | Asosiy | ✅ 30+ grafik |
| Issiqlik xaritalari | Qo'lda | ❌ | ✅ Qutidan chiqib |
| CRM integratsiyasi | Qo'lda | ❌ | ✅ Bitrix24, AmoCRM |
| Narxi (50 operator) | $0 + 200 soat ishlanma | ~$480/oy | $119/oy |
| Self-hosted | ✅ | ✅ | ✅ |
| Zamonaviy interfeys | Qanday sozlasangiz | ❌ Eskirgan Java | ✅ Zamonaviy veb |
| Qo'llab-quvvatlash | Hamjamiyat | Pullik | Narxga kiritilgan |
| Xizmat ko'rsatish | Oyiga 10-20 soat | Past | Yo'q |
BPO analitikasidagi keng tarqalgan xatolar
1. Haddan tashqari ko'p ko'rsatkich
Muammo: mijoz hisobotida 50+ KPI. Ularni hech kim o'qimaydi. Yechim: shartnomadagi SLA'ga bog'langan 5-7 ta ko'rsatkich.
2. Kechikkan hisobot
Muammo: mijoz o'tgan haftalik hisobotni chorshanba kuni oladi. Operativ qarorlar uchun foydasiz. Yechim: real vaqtdagi dashboardlar + avtomatik kunlik xulosa pochtaga + batafsil haftalik hisobot.
3. Kampaniyalar bo'yicha xarajat hisobi yo'q
Muammo: umumiy xarajatni bilasiz, lekin qaysi kampaniya foydali ekanini bilmaysiz. Yechim: queue_log orqali har bir navbatdagi operator vaqtini hisoblang va kampaniya kesimida qabul qilingan qo'ng'iroq tannarxini chiqaring.
4. Umumiy operatorlar bo'yicha ko'r nuqtalar
Muammo: operator uchta kampaniyada ishlaydi, siz esa faqat yig'ma statistikani ko'rasiz. Yechim: "operator + navbat" juftligi bo'yicha ko'rsatkichlarni hisoblang. Shunda har bir operator qaysi kampaniyada kuchliroq ekani ko'rinadi.
5. Tashlab yuborilgan qo'ng'iroq naqshlarini e'tiborsiz qoldirish
Muammo: "5% tashlab yuborilgan" deb hisobot berasiz, lekin qachon va nega ekanini tahlil qilmaysiz. Yechim: tashlab yuborishlarni soat, kun, navbatdagi o'rin va kutish vaqti kesimida kuzating. Ularning ko'pi aniq naqshlarga tushadi va smenalarni qayta joylash bilan tuzatiladi.
6. Mijoz hisobotlarini qo'lda tayyorlash
Muammo: har juma kuni bir xodim 10 ta mijoz uchun Excel hisobotlariga 4 soat sarflaydi. Yechim: SQL → shablon → PDF → xat zanjirini avtomatlashtiring. Sozlangandan keyin inson vaqti nolga tushadi.
Boshlash: 30 daqiqada BPO analitikasi
1-qadam. Navbatlar tuzilishini tekshiring (5 daqiqa)
Navbatlaringiz client_campaign_type qoidasi bo'yicha nomlanganiga ishonch hosil qiling. Agar yo'q bo'lsa — qayta nomlang: bu ko'p mijozli analitikaning poydevori.
asterisk -rx "queue show" | grep -E "^[a-z]"2-qadam. Ma'lumot yig'ilishini tekshiring (5 daqiqa)
queue_log va CDR haqiqatan bazaga yozilayotganiga ishonch hosil qiling:
# 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-qadam. Astervis'ni o'rnating (5 daqiqa)
curl -sSL https://api.astervis.io/api/releases/install.sh | bashO'rnatish ustasidan o'ting — u Asterisk konfiguratsiyangizni o'zi aniqlaydi va darhol ma'lumot import qila boshlaydi.
4-qadam. Kampaniya ko'rinishlarini sozlang (10 daqiqa)
Astervis'da navbatlarni mijozlar bo'yicha guruhlang. Har bir kampaniya uchun operator biriktirmalari va SLA maqsadlarini belgilang.
5-qadam. Ogohlantirishlarni sozlang (5 daqiqa)
Quyidagilar uchun alert qo'ying:
- —SLA shartnomadagi chegaradan pastga tushishi
- —tashlab yuborilgan qo'ng'iroqlar ulushi 5% dan oshishi
- —navbat chuqurligi maksimaldan oshishi
- —mavjud operatorlar soni minimumdan pastga tushishi
Asosiy xulosalar
- —BPO analitikasi tubdan boshqacha — multi-tenant, turli SLA va turli billing modellari maxsus shu vazifa uchun yaratilgan vositalarni talab qiladi.
- —12 ta asosiy KPI'ni kuzating — ularni mijozga ko'rinadigan (SLA, ASA, FCR) va operatsion (bandlik, qo'ng'iroq tannarxi, ish o'rniga daromad) guruhlarga bo'ling.
- —Navbatlarni nomlash qoidasi — poydevor: avtomatik segmentlash uchun
client_campaign_typeformatidan foydalaning. - —Mijoz hisobotlarini avtomatlashtiring — qo'lda hisobot tayyorlash uchinchi mijozdan keyin masshtablanmaydi.
- —Har bir kampaniya rentabelligini kuzating — yig'ma raqamlar zarar keltirayotgan shartnomalarni yashiradi.
- —Astervis BPO'ga tayyor analitikani beradi — o'z kuchi bilan 200+ soat ishlash o'rniga 15 daqiqada: 30+ dashboard, real vaqtdagi monitoring va CRM integratsiyasi, operatorlar soni cheklanmagan holda oyiga $119 dan.
Bepul 14 kunlik sinovni astervis.io saytida boshlang — karta talab qilinmaydi. Bir necha daqiqada barcha mijoz kampaniyalari, barcha operator ko'rsatkichlari va barcha SLA maqsadlarini bitta dashboardda ko'ring.
Taxmin qilishni bas qiling. Ko'rishni boshlang.
Asterisk call-markazingizning haqiqiy ko'rinishi: navbatlardagi kutish vaqti, operatorlar faolligi, trunk yuklamasi va 30+ grafik. Sizning serveringizda on-premise. 5 daqiqada o'rnatish. Kartasiz.
$119/oydan flat. Operatorlar soni cheklanmagan. 14 kunlik triаl.
