Asisia
{{ t('header.title', 'Asisia Santral') }}
{{ t('header.subtitle', 'Çağrı Merkezi & Operasyon Yönetim Sistemi') }}
{{ t('header.pbxStatus', 'Santral') }}: {{ isAsteriskConnected ? t('common.connected', 'Bağlı') : t('common.disconnected', 'Bağlantı Yok') }}
{{ t('header.liveData', 'Canlı Veri') }}: {{ isSignalRConnected ? t('common.active', 'Aktif') : t('common.connecting', 'Bağlanıyor...') }}
{{ t('header.softphoneActive', 'Softphone: Aktif') }}
{{ t('filters.dateRange', 'Tarih Aralığı') }}:
{{ t('alerts.dbErrorTitle', 'MSSQL Veritabanı Bağlantı Hatası') }}
{{ t('alerts.server', 'Sunucu') }}: {{ dbStatus.server }} | {{ t('alerts.database', 'Veritabanı') }}: {{ dbStatus.database }}
{{ dbStatus.errorMessage || t('alerts.dbErrorDefault', 'Veritabanına bağlanılamadı. Ağ bağlantınızı ve port 1433 güvenlik duvarı kurallarını kontrol ediniz.') }}
{{ t('alerts.pbxDisconnectedTitle', 'Sanal Santral Servisi Durduruldu / Bağlantı Kesildi') }}
{{ t('alerts.pbxDisconnectedDesc', 'Santral servisi (AMI) ile iletişim kurulamıyor. Temsilciler ve dış hatlar çevrimdışı duruma alındı. Servis başladığında sistem otomatik olarak canlı duruma geçecektir.') }}
{{ t('alerts.reconnecting', 'Yeniden Bağlanıyor...') }}
{{ t('dashboard.callsInbound', 'Çağrı / Gelen') }}
{{ (todayReport.CALLCOUNT || 0) + ' / ' + (todayReport.INBOUND || 0) }}
{{ t('dashboard.inboundUnique', 'Gelen Tekil Çağrı') }}
{{ todayReport.INBOUND_SINGLE || 0 }}
{{ t('dashboard.talkTime', 'Görüşme Süresi') }}
{{ formatCallTime(todayReport.CALLTIME) }}
{{ t('dashboard.resInbound', 'Rezervasyon Gelen Çağrı') }}
{{ (todayReport.RESINBOUND || 0) + ' / ' + (todayReport.RES_ANSWERED != null ? todayReport.RES_ANSWERED : Math.max(0, (todayReport.RESINBOUND || 0) - (todayReport.ABANDON || 0) - (todayReport.OUTOFWORK || 0))) }}
{{ t('dashboard.resInboundUnique', 'Rezervasyon Gelen Tekil Çağrı') }}
{{ todayReport.RESINBOUND_SINGLE || 0 }}
{{ t('dashboard.talkTime', 'Görüşme Süresi') }}
{{ formatCallTime(todayReport.RESCALLTIME) }}
{{ t('dashboard.missedCallback', 'Kaçan Çağrı / Geri Arama') }}
{{ (todayReport.ABANDON || 0) + ' / ' + (todayReport.CALLBACK || 0) }}
{{ todayReport.OUTOFWORK || 0 }} {{ t('dashboard.outOfWork', 'Mesai Dışı') }}
{{ t('dashboard.otherCalls', 'Diğer Çağrı') }}
{{ todayReport.OTHERDEPARTMENT || 0 }}
{{ t('dashboard.transferredCalls', 'Transfer Çağrı') }}
{{ todayReport.TRANSFERCALL || 0 }}
{{ t('dashboard.outboundCalls', 'Giden Çağrı') }}
{{ todayReport.RESOUTBOUND || 0 }}
{{ t('dashboard.answeredNoAnswer', 'Cevaplanan / Cevapsız') }}
{{ (todayReport.ANSWERED || 0) + ' / ' + (todayReport.NOANSWER || 0) }}
{{ t('dashboard.busyFailed', 'Meşgul / Hata') }}
{{ (todayReport.BUSY || 0) + ' / ' + (todayReport.FAILED || 0) }}
{{ t('dashboard.inboundQuality', 'Gelen Çağrı Kalitesi') }}
%{{ calcInboundQuality }}
{{ t('dashboard.outboundQuality', 'Giden Çağrı Kalitesi') }}
%{{ calcOutboundQuality }}
{{ t('dashboard.totalQuality', 'Toplam Kalite') }}
%{{ calcTotalQuality }}
{{ t('dashboard.totalCalls', 'Toplam Çağrı') }}
{{ activeChannelCount }}
{{ activeInboundCalls }} {{ t('dashboard.inbound', 'Gelen') }} {{ activeOutboundCalls }} {{ t('dashboard.outbound', 'Giden') }}
{{ t('dashboard.waitingInQueue', 'Kuyrukta Bekleyen Çağrı') }}
{{ activeQueueWaitings }}
{{ t('dashboard.activeCalls', 'Aktif Çağrı') }}
{{ activeInCalls }}
{{ activeInboundInCalls }} {{ t('dashboard.inbound', 'Gelen') }} {{ activeOutboundInCalls }} {{ t('dashboard.outbound', 'Giden') }}
{{ t('dashboard.agentsHeader', 'Aktif Agent Listesi') }}
{{ t('dashboard.noActiveAgents', 'Kayıtlı aktif temsilci bulunamadı.') }}
{{ getAgentInCallInfo(agent).caller }} / {{ getAgentInCallInfo(agent).direction }}
{{ getAgentName(agent) }}
{{ agent.timer || '00:00:00' }} {{ getAgentStateText(agent) }} / {{ getAgentIpWithPort(agent) }}
{{ agent.CallCounts?.inbound?.ANSWERED || 0 }} {{ agent.CallCounts?.inbound?.Q || '%0' }}
{{ agent.CallCounts?.inbound?.NOANSWER || 0 }} {{ agent.CallCounts?.inbound?.BUSY || 0 }}
{{ agent.CallCounts?.outbound?.ANSWERED || 0 }} {{ agent.CallCounts?.outbound?.Q || '%0' }}
{{ agent.CallCounts?.outbound?.NOANSWER || 0 }} {{ agent.CallCounts?.outbound?.BUSY || 0 }}
{{ getAgentInCallInfo(agent).direction === 'Outbound' ? t('queues.queueOrTrunk', 'Kuyruk / Hat') : t('queues.queue', 'Kuyruk') }}
{{ getAgentInCallInfo(agent).queue || '-' }}
{{ t('queues.wait', 'Bekleme') }}
{{ getAgentInCallInfo(agent).waitTime || 0 }}
{{ t('queues.ring', 'Çalma') }}
{{ getAgentInCallInfo(agent).ringTime || 0 }}
{{ t('agentStatus.ready', 'Hazır') }}
{{ t('agentStatus.technical', 'Teknik') }}
{{ t('agentStatus.training', 'Eğitim') }}
{{ t('agentStatus.meeting', 'Toplantı') }}
{{ t('agentStatus.lunch', 'Yemek Molası') }}
{{ t('agentStatus.break', 'Mola') }}
{{ t('agentStatus.supervisor', 'Süpervisor Görüşmesi') }}
{{ t('agentStatus.payment', 'Ödeme İşlemleri') }}
{{ t('agentStatus.backoffice', 'BackOfis') }}
{{ t('agentStatus.whatsapp', 'Whatsapp Destek') }}
{{ t('agentStatus.offline', 'Kapat') }}
{{ t('agentStatus.passiveList', 'Pasif Agent Listesi') }}
{{ t('agentStatus.noPassiveAgents', 'Pasif temsilci bulunmuyor.') }}
{{ getAgentName(agent) }}
{{ getAgentIp(agent) }}
{{ t('trunks.title', 'Dış Hat Listesi') }} {{ activeTrunksCount }} / {{ peers.length }} {{ t('common.active', 'Aktif') }} {{ trunkAlerts.length }} {{ t('trunks.hasIssues', 'Sorun Var') }}
{{ isTrunksCollapsed ? t('common.expand', 'Genişlet') : t('common.collapse', 'Daralt') }}
{{ alert.title }} {{ alert.code }}
{{ alert.message }}
{{ t('trunks.allGood', 'Tüm dış hat bağlantıları sorunsuz çalışıyor. Kayıt (Register) ve erişim durumları normal.') }}
{{ t('trunks.noTrunks', 'Tanımlı dış hat bulunmuyor.') }}
{{ trunk.name }}
{{ getTrunkRegistrationText(trunk) }} {{ trunk.status || 'OK' }}
{{ getTrunkHostInfo(trunk) }}
{{ getTrunkActiveCalls(trunk.name) }} {{ t('trunks.activeCalls', 'Aktif Çağrı') }}
{{ t('channels.title', 'Aktif Kanal Listesi') }} {{ activeChannelsTreeData.length }} {{ t('channels.calls', 'Çağrı') }} ({{ channels.length }} {{ t('channels.channel', 'Kanal') }})
{{ t('queues.title', 'Kuyruk Listesi') }} {{ queues.length }} {{ t('queues.queue', 'Kuyruk') }}
{{ t('queues.queue', 'Kuyruk') }} {{ t('queues.weight', 'Ağırlık') }} {{ t('queues.waiting', 'Bekleyen') }} {{ t('queues.completed', 'Tamamlanan') }} {{ t('queues.abandoned', 'Kaçan') }} {{ t('queues.successRate', 'Başarı Oranı') }} {{ t('queues.talkTime', 'Görüşme Süresi') }} {{ t('queues.holdTime', 'Bekleme Süresi') }}
{{ t('queues.noQueues', 'Tanımlı aktif kuyruk bulunamadı.') }}
{{ q.queue }}
{{ q.strategy }}
{{ q.weight || 0 }} {{ q.calls || 0 }} {{ q.completed || 0 }} {{ q.abandoned || 0 }} %{{ getQueueSuccessRate(q) }} % {{ getQueueHumanDuration(q.talktime || q.talkTime) }} {{ getQueueHumanDuration(q.holdtime || q.holdTime) }}
{{ t('queues.agentsByQueue', 'Kuyruk Bazlı Satış Temsilcileri') }}
{{ queues.length }} {{ t('queues.activeQueues', 'Aktif Kuyruk') }}
{{ t('queues.noQueues', 'Tanımlı aktif kuyruk bulunamadı.') }}
%{{ getQueueAbandonRate(q) }}
{{ t('queues.abandonRatio', 'Kaçırma') }}
%{{ getQueueCallShareRate(q) }}
{{ t('queues.shareRatio', 'Pay') }}
{{ q.queue }} {{ q.strategy }}
{{ t('queues.completed', 'Tamamlanan') }}: {{ q.completed || 0 }} • {{ t('queues.abandoned', 'Kaçan') }}: {{ q.abandoned || 0 }} • {{ t('queues.waiting', 'Bekleyen') }}: {{ q.calls }}
{{ t('common.total', 'Toplam') }}
{{ getDeduplicatedQueueMembers(q).length }}
{{ t('agentStatus.available', 'Müsait') }}
{{ getQueueAvailableMembersCount(q) }}
{{ t('agentStatus.incall', 'Görüşmede') }}
{{ getQueueInCallMembersCount(q) }}
{{ t('queues.occupancy', 'Doluluk') }}
%{{ getQueueOccupancyRate(q) }}
{{ t('queues.noMembers', 'Bu kuyrukta henüz üye temsilci yok.') }}
{{ getQueueMemberDisplayName(m) }}
{{ getQueueMemberStateInfo(m).text }} (dinamik)
{{ t('queues.callCount', 'Çağrı') }} : {{ m.callsTaken || 0 }} {{ t('queues.penalty', 'Ceza') }} : {{ m.penalty || 0 }}
{{ t('missed.title', 'Kaçan Çağrı Listesi') }} {{ activeMissedCallsCount }} {{ t('common.calls', 'Çağrı') }}

{{ t('agenda.title', 'Ajanda & Görev Takibi') }}

Takvim

{{ t('agenda.subtitle', 'Kurulmuş geri aramalar, beklenen ödemeler, kesin rezervasyon bakiyeleri ve özel ajanda görevleri') }}

Renk Göstergeleri: Kurulmuş Geri Arama Teklif / Opsiyon / Havale Bugün Bakiye / Son Gün Gecikmiş Rezervasyon Bakiyesi Özel Görev & Hatırlatma Kaçan Çağrı (Aktif)

{{ agendaTaskForm.id ? t('agenda.editTask', 'Görevi Düzenle') : t('agenda.newTask', 'Yeni Görev Ekle') }}

{{ t('analytics.title', 'Çağrı, Kampanya & Operasyon BI Analitiği') }} {{ t('analytics.filtersActive', 'Genel Filtreler Aktif') }}

{{ t('analytics.subtitle', 'Üst filtre çubuğundaki tarih, proje, kampanya ve hat seçimlerine göre otomatik analiz edilir') }}

{{ startDate }} — {{ endDate }}
{{ t('analytics.totalCallsCard', 'Toplam Çağrı') }}
{{ (analyticsData?.summary?.totalCalls || 0).toLocaleString() }}
{{ (analyticsData?.summary?.inboundCalls || 0) }} {{ t('dashboard.inbound', 'Gelen') }} • {{ (analyticsData?.summary?.outboundCalls || 0) }} {{ t('dashboard.outbound', 'Giden') }}
{{ t('analytics.masterSession', 'Oturum (Master):') }} {{ analyticsData?.summary?.totalSessions || 0 }}
{{ t('analytics.inboundSlaCard', 'Gelen Çağrı (SLA)') }}
%{{ analyticsData?.summary?.inboundAnswerRate || 0 }}
{{ analyticsData?.summary?.inboundAnsweredCalls || 0 }} {{ t('analytics.answered', 'Cevap') }} • {{ analyticsData?.summary?.inboundMissedCalls || 0 }} {{ t('analytics.missed', 'Kaçan') }}
{{ t('analytics.targetSla', 'Hedef SLA: %80.0') }} {{ analyticsData?.summary?.inboundCalls || 0 }} {{ t('dashboard.inbound', 'Gelen') }}
{{ t('analytics.outboundReachCard', 'Giden Çağrı (Ulaşma)') }}
%{{ analyticsData?.summary?.outboundReachRate || 0 }}
{{ analyticsData?.summary?.outboundAnsweredCalls || 0 }} {{ t('analytics.reached', 'Ulaşılan') }} • {{ analyticsData?.summary?.outboundNoAnswer || 0 }} {{ t('analytics.unanswered', 'Cevapsız') }}
{{ t('analytics.busy', 'Meşgul:') }} {{ analyticsData?.summary?.outboundBusy || 0 }} {{ analyticsData?.summary?.outboundCalls || 0 }} {{ t('dashboard.outbound', 'Giden') }}
{{ t('analytics.avgTalkTimeCard', 'Ort. Görüşme (ATT)') }}
{{ analyticsData?.summary?.formattedAvgTalkTime || '0d 0s' }}
{{ t('analytics.netTalkAvg', 'Ortalama net görüşme') }}
{{ t('analytics.totalTalk', 'Toplam Konuşma:') }} {{ analyticsData?.summary?.formattedTotalTalkTime || '0 saat 0 dakika' }}
{{ t('analytics.avgWaitTimeCard', 'Ort. Bekleme (ASA)') }}
{{ analyticsData?.summary?.formattedAvgWaitTime || '0d 0s' }}
{{ t('analytics.lineWaitTime', 'Hatta bağlanma süresi') }}
{{ t('analytics.uniqueCustomer', 'Tekil Müşteri:') }} {{ (analyticsData?.summary?.uniqueCallers || 0).toLocaleString() }}
{{ t('analytics.topCampaignCard', 'Lider Kampanya') }}
{{ analyticsData?.summary?.topCampaignName || '-' }}
{{ t('analytics.country', 'Ülke:') }} {{ analyticsData?.summary?.topCountryName || '-' }}
{{ t('analytics.activeCampaigns', 'Aktif Kampanya:') }} {{ analyticsData?.campaigns?.length || 0 }} {{ t('common.count', 'adet') }}

{{ t('analytics.countryDistTitle', 'Ülke Bazında Çağrı Dağılımı') }}

{{ t('analytics.outerRingOutbound', 'Dış Halka: Giden') }} • {{ t('analytics.innerRingInbound', 'İç Halka: Gelen') }}

{{ (analyticsData?.countries?.length || 0) }} {{ t('analytics.countriesCount', 'Ülke') }}
{{ t('common.country', 'Ülke') }} {{ t('common.total', 'Toplam') }} {{ t('dashboard.inbound', 'Gelen') }} ({{ t('analytics.answered', 'Cevap') }}/{{ t('analytics.missed', 'Kaçan') }}) {{ t('dashboard.outbound', 'Giden') }} ({{ t('analytics.reached', 'Ulaş') }}/{{ t('common.details', 'Diğer') }}) {{ t('dashboard.inbound', 'Gelen') }} SLA {{ t('dashboard.outbound', 'Giden') }} {{ t('analytics.reached', 'Ulaşım') }} {{ t('queues.shareRatio', 'Pay') }} (%)
{{ c.flag }} {{ c.country }} {{ c.totalCalls }} {{ c.inboundCalls }} ({{ c.inAnswered }} / {{ c.inMissed }}) {{ c.outboundCalls }} ({{ c.outAnswered }} / {{ c.outMissed }}) %{{ c.inSla }} %{{ c.outReach }} %{{ c.percentage }}
{{ t('analytics.noData', 'Veri bulunamadı') }}

{{ t('analytics.hourlyTrendTitle', 'Saatlik Çağrı Dağılımı ve Yoğunluk') }}

{{ t('analytics.hourlyTrendSub', '00:00 - 23:00 saat dilimlerine göre net çağrı hacimleri') }}

{{ t('analytics.campaignDistTitle', 'Kampanya ve DID Dağılımı') }}

{{ t('analytics.campaignDistSub', 'Pazarlama kampanyalarının ve gelen arama hatlarının arama performansı') }}

Kampanya / DID {{ t('common.total', 'Toplam') }} {{ t('dashboard.inbound', 'Gelen') }} ({{ t('analytics.answered', 'Cevap') }}/{{ t('analytics.missed', 'Kaçan') }}) {{ t('dashboard.inbound', 'Gelen') }} SLA {{ t('dashboard.outbound', 'Giden') }} ({{ t('analytics.reached', 'Ulaş') }}/{{ t('common.details', 'Diğer') }}) {{ t('dashboard.outbound', 'Giden') }} {{ t('analytics.reached', 'Ulaşım') }} {{ t('queues.shareRatio', 'Pay') }} %
{{ cp.campaignName }} {{ cp.totalCalls }} {{ cp.inboundCalls }} ({{ cp.inAnswered }} / {{ cp.inMissed }}) %{{ cp.inSla }} {{ cp.outboundCalls }} ({{ cp.outAnswered }} / {{ cp.outNoAnswer + cp.outBusy + cp.outFailed }}) %{{ cp.outReach }} %{{ cp.percentage }}
{{ t('analytics.noCampaignData', 'Kampanya verisi bulunamadı') }}

{{ t('analytics.trunkLoadTitle', 'Dış Hat (Trunk) Yükü ve Dağılımı') }}

{{ t('analytics.outerRingOutbound', 'Dış Halka: Giden') }} • {{ t('analytics.innerRingInbound', 'İç Halka: Gelen') }}

Hat (Trunk) {{ t('common.total', 'Toplam') }} {{ t('dashboard.inbound', 'Gelen') }} ({{ t('analytics.answered', 'Cevap') }}/{{ t('analytics.missed', 'Kaçan') }}) {{ t('dashboard.inbound', 'Gelen') }} SLA {{ t('dashboard.outbound', 'Giden') }} ({{ t('analytics.reached', 'Ulaş') }}/{{ t('common.details', 'Diğer') }}) {{ t('dashboard.outbound', 'Giden') }} {{ t('analytics.reached', 'Ulaşım') }} {{ t('queues.occupancy', 'Doluluk') }} %
{{ t.trunkName }} {{ t.totalCalls }} {{ t.inboundCalls }} ({{ t.inAnswered }} / {{ t.inMissed }}) %{{ t.inSla }} {{ t.outboundCalls }} ({{ t.outAnswered }} / {{ t.outNoAnswer + t.outBusy + t.outFailed }}) %{{ t.outReach }} %{{ t.percentage }}
{{ t('analytics.noTrunkData', 'Hat verisi bulunamadı') }}

{{ t('analytics.queuesPerfTitle', 'Çağrı Kuyrukları (Queues) Performansı & SLA') }}

{{ t('analytics.queuesPerfSub', 'Kuyruk bazında gelen çağrı yükü, cevaplama oranı ve bekleme süreleri') }}

{{ (analyticsData?.queues?.length || 0) }} {{ t('queues.queue', 'Kuyruk') }}
{{ t('queues.queueName', 'Kuyruk Adı') }} {{ t('common.total', 'Toplam') }} {{ t('queues.completed', 'Cevaplanan') }} {{ t('queues.abandoned', 'Kaçan') }} {{ t('analytics.avgWaitTimeCard', 'Ort. Bekleme') }} SLA %
{{ q.queueName }}
{{ c.countryFlag }} {{ c.calls }}
{{ q.totalCalls?.toLocaleString() }} {{ q.answeredCalls?.toLocaleString() }} {{ q.missedCalls?.toLocaleString() }} {{ q.avgWaitSec }} sn %{{ q.answerRate }}
{{ t('analytics.noQueueData', 'Kuyruk verisi bulunamadı') }}

{{ t('analytics.agentsPerfTitle', 'Temsilci / Agent Performansı & Sıralaması') }}

{{ t('analytics.agentsPerfSub', 'Agent bazında karşılanan çağrılar, cevap oranları ve ortalama görüşme süresi') }}

{{ (analyticsData?.agents?.length || 0) }} {{ t('queues.agents', 'Temsilci') }}
{{ t('queues.agents', 'Temsilci') }} {{ t('common.total', 'Toplam') }} {{ t('dashboard.inbound', 'Gelen') }} ({{ t('analytics.answered', 'Cevap') }}/{{ t('analytics.missed', 'Kaçan') }}) {{ t('dashboard.outbound', 'Giden') }} ({{ t('analytics.reached', 'Ulaş') }}/{{ t('common.details', 'Diğer') }}) {{ t('analytics.avgTalkTimeCard', 'Ort. Konuşma') }} {{ t('queues.shareRatio', 'Pay') }} %
{{ a.agentName?.substring(0, 1) || 'A' }} {{ a.agentName }} {{ a.totalCalls?.toLocaleString() }} {{ a.inAnswered }} / {{ a.inMissed }} (%{{ a.inSla }}) +{{ a.transferredCalls }} akt. {{ a.outAnswered }} / {{ (a.outNoAnswer || 0) + (a.outBusy || 0) }} (%{{ a.outReach }}) {{ a.formattedAvgTalkTime }} %{{ a.percentage }}
{{ t('analytics.noAgentData', 'Temsilci verisi bulunamadı') }}

{{ t('analytics.projectDistTitle', 'Proje ve Otel / Tesis Detay Dağılımı') }}

{{ t('analytics.projectDistSub', 'Çağrıların projeler ve bağlı tesisler/oteller bazındaki dağılımı ve konuşma süreleri') }}

{{ p.projectName }} {{ p.totalCalls }} {{ t('common.calls', 'Çağrı') }}
{{ p.hotelName }}
{{ t('queues.completed', 'Cevaplanan') }}: {{ p.answeredCalls }} {{ t('queues.shareRatio', 'Pay') }}: %{{ p.percentage }}
{{ t('analytics.noProjectData', 'Proje / Otel verisi bulunamadı') }}

{{ t('reports.agentCall.title', 'Agent Çağrı Raporu') }}

{{ t('reports.agentCall.desc', 'Temsilcilerin gelen/giden çağrı, mola, aktarım, satış ve talep performans dökümü') }}

{{ t('reports.callList.title', 'Çağrı Listesi') }}

{{ t('reports.callList.desc', 'Tüm santral çağrı kayıtları, süreleri, transferleri ve detaylı kuyruk hareketleri') }}

{{ t('reports.callDetail.title', 'Çağrı Detayı') }}

{{ t('reports.callDetail.desc', 'Kuyruk bekleme, ilk bekletme, toplam bekletme ve net görüşme süreleri analizi') }}

{{ t('reports.callDist.title', 'Çağrı Dağılımı') }}

{{ t('reports.callDist.desc', 'Zamana göre çağrı yoğunluğu, gelen/giden cevaplanma performansı ve SLA (%80 Hedef) uyumu') }}

{{ t('reports.callDist.matrixTitle', 'Dağılım Pivot Matrisi') }} {{ t('reports.callDist.matrixSub', '(Alan Listesi, Filtreleme ve Excel Aktarımı)') }}

{{ t('reports.missed.title', 'Kaçan Çağrılar') }}

{{ t('reports.missed.desc', 'Cevaplanamayan kuyruk çağrıları, deneme sayıları ve geri arama durumu') }}

{{ t('missedAnalysis.title', 'Kaçan Çağrı Analitiği & Kurtarma Takibi') }} {{ t('missedAnalysis.realtime', 'Canlı SLA & Dağılım') }}

{{ t('missedAnalysis.subtitle', 'Kuyruklardan kaçan çağrıların saatlik, ülke bazlı dağılımları ve geri arama başarı analizi') }}

{{ startDate }} — {{ endDate }}
{{ t('missedAnalysis.totalMissed', 'Toplam Kaçan') }}
{{ (missedAnalysisData?.kpi?.totalMissed || 0).toLocaleString() }}
{{ (missedAnalysisData?.kpi?.inWorkMissed || 0) }} Mesai İçi • {{ (missedAnalysisData?.kpi?.outOfWorkMissed || 0) }} Mesai Dışı
{{ t('missedAnalysis.inWorkRate', 'Mesai İçi Oran:') }} %{{ missedAnalysisData?.kpi?.totalMissed > 0 ? Math.round((missedAnalysisData.kpi.inWorkMissed * 100) / missedAnalysisData.kpi.totalMissed) : 0 }}
{{ t('missedAnalysis.uniqueCallers', 'Tekil Numara') }}
{{ (missedAnalysisData?.kpi?.uniqueNumbers || 0).toLocaleString() }}
{{ (missedAnalysisData?.kpi?.repeatedCallers || 0) }} Tekrar Arayan
{{ t('missedAnalysis.uniqueRatio', 'Tekil Oranı:') }} %{{ missedAnalysisData?.kpi?.totalMissed > 0 ? Math.round((missedAnalysisData.kpi.uniqueNumbers * 100) / missedAnalysisData.kpi.totalMissed) : 0 }}
{{ t('missedAnalysis.avgWait', 'Ort. Pes Etme Süresi') }}
{{ missedAnalysisData?.kpi?.formattedAvgWait || '0s' }}
Müşteri kuyrukta bekleme
{{ t('missedAnalysis.patience', 'Müşteri Sabrı:') }} {{ missedAnalysisData?.kpi?.avgWaitSec || 0 }} sn
{{ t('missedAnalysis.callbacks', 'Geri Arama Yapıldı') }}
{{ (missedAnalysisData?.kpi?.callbacksAttempted || 0).toLocaleString() }}
{{ missedAnalysisData?.kpi?.callbacksPending || 0 }} Bekliyor
{{ t('missedAnalysis.callbackRate', 'Geri Dönüş Oranı:') }} %{{ missedAnalysisData?.kpi?.totalMissed > 0 ? Math.round((missedAnalysisData.kpi.callbacksAttempted * 100) / missedAnalysisData.kpi.totalMissed) : 0 }}
{{ t('missedAnalysis.recoveryRate', 'Kurtarma Oranı') }}
%{{ missedAnalysisData?.kpi?.recoveryRate || 0 }}
{{ missedAnalysisData?.kpi?.callbacksAnswered || 0 }} Bağlandı • {{ (missedAnalysisData?.kpi?.callbacksAttempted || 0) - (missedAnalysisData?.kpi?.callbacksAnswered || 0) }} Ulaşılamadı
{{ t('missedAnalysis.targetRecovery', 'Hedef Kurtarma: %70') }} {{ missedAnalysisData?.kpi?.callbacksAnswered || 0 }} Başarılı
{{ t('missedAnalysis.avgCallbackTime', 'Ort. Geri Arama (SLA)') }}
{{ missedAnalysisData?.kpi?.formattedAvgCallback || '0s' }}
Kaçma ile arama arası fark
{{ t('missedAnalysis.slaSpeed', 'Müdahale Hızı:') }} {{ (missedAnalysisData?.kpi?.avgCallbackDiffSec || 0) <= 600 ? 'Hızlı' : 'Normal' }}

{{ t('missedAnalysis.hourlyChartTitle', 'Saatlik Kaçan Çağrılar — Kuyruk & Ülke Dağılımı') }}

Çubukların gövdesi kuyrukları, içindeki renkli dilimler arayan ülkeleri gösterir

{{ t('missedAnalysis.dispositionChartTitle', 'Geri Arama Sonuç Dağılımı') }}

Cevaplanan, reddedilen, cevapsız ve bekleyenler

{{ t('missedAnalysis.slaChartTitle', 'Geri Dönüş Hızı (SLA Dilimleri)') }}

Müşteri kaçtıktan sonra ne kadar sürede arandığının dağılımı

{{ t('missedAnalysis.agentChartTitle', 'Temsilci Geri Arama & Kurtarma Sıralaması') }}

Temsilcilerin geri aradığı ve başarıyla bağladığı çağrılar

Tablodaki aramalarda tek tıkla temsilci başlatma aktiftir.

{{ t('reports.callJobs.title', 'Kurulmuş Çağrılar') }}

{{ t('reports.callJobs.desc', 'Kampanya ve otomatik arama planları, kalan süreler ve sonuçlar') }}

{{ t('reports.contactForms.title', 'İletişim Formları') }}

{{ t('reports.contactForms.desc', 'Web sitesi ve harici kanallardan gelen iletişim ve talep formları') }}

{{ t('reports.callAnalysis.title', 'Çağrı Analizi') }}

{{ t('reports.callAnalysis.desc', 'Çok boyutlu dinamik pivot analiz matrisi (Temsilci, Kuyruk, Kampanya, Tarih, Yön)') }}

{{ t('reports.callPivot.title', 'Santral Dinamik Pivot') }}

{{ t('reports.callPivot.desc', 'Kapsamlı kuyruk ve çağrı metrikleri pivot matrisi') }}

{{ t('reports.agentState.title', 'Agent Durum ve Mola Raporu') }}

{{ t('reports.agentState.desc', 'Temsilcilerin hazırda kalma, mola, yemek ve diğer durum süreleri dökümü') }}

{{ t('surveyReport.title', 'Anket & CSAT Analiz Raporu') }} {{ t('surveyReport.badge', 'Memnuniyet & IVR Skorları') }}

{{ t('surveyReport.subtitle', 'Çağrı sonu anket değerlendirmeleri, soru bazlı puan dağılımları ve temsilci performans sıralaması') }}

{{ startDate }} — {{ endDate }}
{{ t('surveyReport.totalSurveys', 'Toplam Anket Çağrısı') }}
{{ (surveyReportData?.summary?.totalSurveys || 0).toLocaleString() }}
{{ (surveyReportData?.summary?.totalAnswers || 0).toLocaleString() }} Toplam Soru Cevabı
Çağrı Başı Ortalama: {{ surveyReportData?.summary?.totalSurveys ? ((surveyReportData?.summary?.totalAnswers || 0) / surveyReportData.summary.totalSurveys).toFixed(1) : '0.0' }} soru
{{ t('surveyReport.avgCsatScore', 'Ortalama CSAT Skoru') }}
{{ (surveyReportData?.summary?.averageScore || 0).toFixed(1) }} / 5.0
Değerlendirme Skalası: 1 — 5 Yıldız
{{ t('surveyReport.csatRate', 'Müşteri Memnuniyet Oranı') }}
%{{ Math.round(surveyReportData?.summary?.csatPercentage || 0) }}
Pozitif Karşılama: 4 & 5 Puanlar
Net Tavsiye (NPS)
{{ (surveyReportData?.nps?.npsScore || 0) > 0 ? '+' : '' }}{{ (surveyReportData?.nps?.npsScore || 0).toFixed(0) }}
{{ surveyReportData?.nps?.promotersCount || 0 }} Destekçi • {{ surveyReportData?.nps?.detractorsCount || 0 }} Memnuniyetsiz
Nötr / Pasif: {{ surveyReportData?.nps?.passivesCount || 0 }} kişi
{{ t('surveyReport.evaluatedAgents', 'Değerlendirilen Temsilci') }}
{{ (surveyReportData?.agentLeaderboard?.length || 0).toLocaleString() }}
Lider: {{ surveyReportData.agentLeaderboard[0].agent }} ({{ surveyReportData.agentLeaderboard[0].averageScore.toFixed(1) }} ★) Henüz kayıt yok
En Çok Anket: {{ surveyReportData?.agentLeaderboard?.[0]?.queueName || '—' }}

{{ t('surveyReport.questionsBreakdown', 'Soru Bazlı Değerlendirme & Dağılım') }}

{{ t('surveyReport.questionsDesc', 'Her sorunun aldığı ortalama puan ve yıldız/puan frekansları') }}

{{ surveyReportData?.questions?.length || 0 }} Soru
{{ t('common.loading', 'Yükleniyor...') }}
{{ t('surveyReport.noQuestions', 'Seçilen tarih aralığında anket sorusu yanıtı bulunamadı.') }}

Tarih aralığını genişletebilir veya farklı bir anket seçebilirsiniz.

S{{ q.orderNo }} {{ q.questionText }}
{{ q.averageScore.toFixed(1) }}
{{ q.totalAnswers }} yanıt
{{ score }} ★
{{ q.scoreDistribution?.[score] || 0 }} ({{ q.totalAnswers > 0 ? Math.round((q.scoreDistribution?.[score] || 0) * 100 / q.totalAnswers) : 0 }}%)

{{ t('surveyReport.agentLeaderboard', 'Temsilci CSAT Sıralaması') }}

{{ t('surveyReport.agentDesc', 'En yüksek müşteri memnuniyet puanına göre temsilci sıralaması') }}

{{ surveyReportData?.agentLeaderboard?.length || 0 }} Temsilci
{{ t('common.loading', 'Yükleniyor...') }}
{{ t('surveyReport.noAgents', 'Temsilci bazlı anket verisi bulunamadı.') }}

Anket oturumu tamamlanan çağrılar burada listelenecektir.

{{ idx + 1 }}
{{ ag.agent }} {{ ag.queueName }}
{{ ag.totalSurveys }} anket değerlendirmesi
{{ ag.averageScore.toFixed(1) }}

Kuyruk (Departman/Dil) Bazlı CSAT Dağılımı

Hangi kuyrukta müşteri memnuniyeti daha yüksek?

{{ surveyReportData?.queueBreakdown?.length || 0 }} Kuyruk
Kuyruk bazlı anket verisi bulunamadı.
{{ q.queueName }} {{ q.totalSurveys }} anket çağrısı
{{ q.averageScore.toFixed(1) }} %{{ Math.round(q.csatPercentage) }} Memnuniyet

Ülke / Bölge Bazlı Memnuniyet Dağılımı

Misafirlerin ülkelerine göre CSAT ve anket skorları

{{ surveyReportData?.countryBreakdown?.length || 0 }} Ülke
Ülke bazlı anket verisi bulunamadı.
{{ c.flag }} {{ c.countryName }} ({{ c.totalSurveys }} arama)
{{ c.averageScore.toFixed(1) }} %{{ Math.round(c.csatPercentage) }} Memnuniyet
Müşteri Kurtarma Listesi (Düşük Puanlı Çağrılar)
Genel ortalama memnuniyeti 3.5 yıldızın altında kalan veya düşük puan veren aramalar listelenmektedir. Ses kayıtlarını inceleyip misafiri hemen geri arayarak telafi sağlayabilirsiniz.
{{ detractorCount }} Arama

{{ surveySubTab === 'detractors' ? 'Düşük Puanlı Çağrı Detayları & Telafi Takibi' : 'Anket Yanıt Oturumları & Çağrı Kayıtları' }}

Arayan müşteri bazlı verilen puanlar, bekleme süreleri, temsilci eşleşmesi ve ses kayıtları

{{ filteredSurveyResponses.length }} oturum
Tarih / Saat Arayan Numara Ülke Temsilci Kuyruk Bekleme / Konuşma Soru & Puanlar Ort. Skor Durum Ses Kaydı
{{ t('common.loading', 'Yükleniyor...') }}
{{ t('common.noData', 'Kayıt bulunamadı.') }}

Arama kriterlerini temizleyebilir veya tarih aralığını değiştirebilirsiniz.

Gösterilen: {{ ((surveyCurrentPage - 1) * surveyPageSize) + 1 }} - {{ Math.min(surveyCurrentPage * surveyPageSize, filteredSurveyResponses.length) }} / {{ filteredSurveyResponses.length }}
Sayfa {{ surveyCurrentPage }} / {{ totalSurveyPages }}

Anket & CSAT Metrik Rehberi

Çağrı merkezi performans göstergelerinin anlamları, formülleri ve hedefleri

Toplam Anket Çağrısı (Total Survey Sessions)

Görüşme sonrasında IVR anketine katılan misafir hacmi

Ne Anlama Gelir?

Müşteri temsilcisiyle telefon görüşmesi sonlandıktan sonra santralin otomatik anket menüsüne aktarılan ve en az bir soruya tuşlama yaparak cevap veren tekil misafir çağrı sayısını ifade eder.

Nasıl Hesaplanır?
• Toplam Anket Çağrısı: Benzersiz çağrı oturumu sayısı (Örn: {{ (surveyReportData?.summary?.totalSurveys || 0) }} arama)
• Toplam Soru Cevabı: Anketteki tüm sorulara verilen yanıt toplamı (Örn: {{ (surveyReportData?.summary?.totalAnswers || 0) }} cevap)
• Çağrı Başı Ortalama: Toplam Cevap / Toplam Çağrı = {{ surveyReportData?.summary?.totalSurveys ? ((surveyReportData?.summary?.totalAnswers || 0) / surveyReportData.summary.totalSurveys).toFixed(1) : '0.0' }} soru
Yönetici İpucu:

3 soruluk bir ankette çağrı başı ortalama 3.0 ise misafirler anketi yarıda kapatmadan sonuna kadar dinlemiş demektir. Eğer bu rakam 1.5 gibi düşük çıkarsa anket anonslarının kısaltılması veya soruların sadeleştirilmesi önerilir.

Ortalama CSAT Skoru (Customer Satisfaction Score)

1 ile 5 yıldız arasında genel misafir memnuniyet derecesi

Ne Anlama Gelir?

Dünya çağrı merkezi standartlarında en yaygın kullanılan memnuniyet göstergesidir. Misafirlerin anketteki tüm sorulara 1 ile 5 arasında verdikleri puanların genel aritmetik ortalamasını gösterir.

Sektörel Başarı Skalası:
4.2 — 5.0 ★
Mükemmel
3.5 — 4.1 ★
İyi / Standart
< 3.5 ★
Telafi Gerekli
Formül:

Ortalama Skor = (Verilen Tüm Puanların Toplamı) / (Toplam Cevap Sayısı)

Şu anki değeriniz: {{ (surveyReportData?.summary?.averageScore || 0).toFixed(1) }} ★

Müşteri Memnuniyet Oranı (% CSAT Rate)

CSAT puanının yüzde cinsinden başarı oranı

Ne Anlama Gelir?

Santral deneyiminden misafirlerin yüzde kaçının tatmin olduğunu temsil eder. 5 yıldızlı değerlendirme sisteminin %100 üzerinden normalize edilmiş başarısıdır.

Hesaplama Formülü:
Memnuniyet % = (Ortalama CSAT Puanı / 5.0) × 100
Örneğin 3.4 puan için: (3.4 / 5.0) × 100 = %68
Hedef Kriteri:

Otelcilik ve turizm çağrı merkezlerinde %80 ve üzeri mükemmel kabul edilir. %75'in altındaki oranlarda personelin çağrı karşılama kalitesi veya kuyruk bekleme süreleri incelenmelidir.

Net Tavsiye Skoru (Net Promoter Score - NPS)

Misafir sadakatini ve tavsiye etme potansiyelini ölçen küresel standart

Ne Anlama Gelir?

Dünya genelinde müşteri sadakatini ölçmek için kullanılan en prestijli metriktir. -100 ile +100 arasında bir değer alır. Misafirleri 3 ana profile ayırır:

🌟 Destekçiler: 5★ veren, oteli herkese tavsiye eden misafirler.
😐 Nötr / Pasif: 4★ veren, genel olarak memnun olan misafirler.
⚠️ Memnuniyetsiz: 1-3★ veren, şikayet potansiyeli olan misafirler.
Formül:
NPS = (% Destekçi Oranı) - (% Memnuniyetsiz Oranı)
(Nötrler skora doğrudan katılmaz, toplam kitle sayısını büyütür).
Kurtarma Aksiyonu:

NPS skoru eksiye düşerse, işletme için risk sinyalidir. Hemen üst menüdeki "Müşteri Kurtarma Listesi" sekmesine giderek 1-3 yıldız veren misafirlerin ses kayıtları dinlenmeli ve misafir telefonla aranarak telafi sağlanmalıdır.

Değerlendirilen Temsilci

Anket oturumlarına katılan çağrı merkezi personeli ve liderlik tablosu

Ne Anlama Gelir?

Seçilen tarih aralığında anket cevapları alınmış aktif müşteri temsilcisi sayısını gösterir. Kartın altındaki "Lider" bilgisi, en yüksek misafir puanına sahip temsilciyi belirtir.

Temsilci Performans Takibi:

"Genel Bakış" sekmesindeki Temsilci Sıralaması paneli üzerinden her personelin aldığı anket adedi ve puan ortalamasını görüntüleyebilir; yüksek performanslı personeli ödüllendirirken düşük puan alan personele eğitim planlayabilirsiniz.

Kutuların üzerine tıklayarak bu ekrana her zaman ulaşabilirsiniz.

{{ t('modals.dial.title', 'Arama Başlat') }}: {{ modalCall.agentName }}

{{ t('modals.manualCallback.title', 'Manuel Geri Arama Başlat') }}

{{ modalMissedCall.error }}

{{ t('modals.transfer.title', 'Çağrı Aktarımı') }}

{{ t('modals.advancedFilter.title', 'Gelişmiş Raporlama & Operasyon Filtreleri') }}

{{ t('modals.advancedFilter.desc', 'Proje, otel, kampanya, dış hat ve durum bazlı filtreleme') }}

{{ (tempFilters.projects || []).length }} {{ t('modals.advancedFilter.selected', 'seçili') }}
{{ (tempFilters.projectDetails || []).length }} {{ t('modals.advancedFilter.selected', 'seçili') }}
{{ (tempFilters.campaigns || []).length }} {{ t('modals.advancedFilter.selected', 'seçili') }}
{{ (tempFilters.dids || []).length }} {{ t('modals.advancedFilter.selected', 'seçili') }}
{{ (tempFilters.queues || []).length }} {{ t('modals.advancedFilter.selected', 'seçili') }}

{{ t('modals.transfer.queueTransferTitle', 'Çağrıyı Kuyruktan Al / Aktar') }}

{{ t('modals.transfer.queueTransferDesc', 'Kanalı doğrudan temsilci dahiline bağlayın') }}

{{ t('modals.transfer.callerNumber', 'Arayan Numara:') }} {{ modalTransfer.callerIdNum || '-' }}
{{ t('modals.transfer.channel', 'Santral Kanalı:') }} {{ modalTransfer.channel }}
{{ modalTransfer.error }}

{{ t('modals.queueMembers.title', 'Kuyruk Temsilcilerini Yönet') }}

{{ modalQueueMembers.queueName }} {{ t('modals.queueMembers.desc', 'kuyruğuna temsilci ekleyin veya çıkarın') }}

{{ t('modals.queueMembers.selected', 'Seçili:') }} {{ modalQueueMembers.selectedAgents.length }} / {{ filteredAgentsForQueueModal.length }} {{ t('modals.queueMembers.agentsCount', 'temsilci') }}
|
{{ t('modals.queueMembers.noMatch', 'Eşleşen temsilci bulunamadı.') }}

{{ t('modals.extension.title', 'Voipox Softphone (Chrome Eklentisi)') }}

{{ t('modals.extension.subtitle', 'Windows & macOS Kompakt Arama ve Bildirim Uzantısı') }}

{{ t('modals.extension.desc', 'Tarayıcınızın sağ üst araç çubuğunda sabitlenen bu eklenti sayesinde; ayrı bir sekme açmadan tek tıkla arama yapabilir ve gelen çağrıları masaüstünden karşılayabilirsiniz.') }}

1
{{ t('modals.extension.step1Title', 'Eklenti Paketini İndirin') }}
{{ t('modals.extension.step1Desc', 'Aşağıdaki butona basarak hazır paketi bilgisayarınıza indirin ve zip\'ten klasöre çıkartın:') }}
2
{{ t('modals.extension.step2Title', 'Chrome Uzantılar Menüsünü Açın') }}
{{ t('modals.extension.step2DescPart1', 'Chrome\'da yeni bir sekmede') }} chrome://extensions {{ t('modals.extension.step2DescPart2', 'adresine gidin ve sağ üstteki') }} {{ t('modals.extension.devMode', '"Geliştirici modu"') }} {{ t('modals.extension.step2DescPart3', 'anahtarını açın.') }}
3
{{ t('modals.extension.step3Title', 'Klasörü Yükleyin ve Sabitleyin') }}
{{ t('modals.extension.step3DescPart1', 'Sol üstteki') }} {{ t('modals.extension.loadUnpacked', '"Paketlenmemiş öğe yükle"') }} {{ t('modals.extension.step3DescPart2', 'butonuna tıklayıp çıkarttığınız klasörü seçin. Ardından araç çubuğundaki yapboz simgesinden Voipox\'u sabitleyin (Pin).') }}