Wiki source code of 03 - Gli Algoritmi
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{box cssClass="floatinginfobox" title="**Sommario**" width="300px"}} | ||
2 | {{toc start=2 depth="3"/}} | ||
3 | {{/box}} | ||
4 | |||
5 | == L'outbound == | ||
6 | |||
7 | L'outbound consiste nell'emissione di chiamate telefoniche eseguite dal sistema di contact center. In questo documento verranno esaminati i gli algoritmi di outbound presenti in **#phones**. Per una descrizione esaustiva dell'outbound consultare il seguente documento: [[Outbound>>path:../input/hashphones.Outbound]]. | ||
8 | |||
9 | == Agent Based == | ||
10 | |||
11 | In questo tipo di [[outbound>>path:../input/hashphones.outbound]] la richiesta di generazione della chiamata proviene direttamente dalla postazione dell'[[operatore>>path:../input/hashphones.agenti#Operatore]]. Ciò può avvenire in due modi: | ||
12 | |||
13 | * attraverso un [[modulo applicativo>>path:../input/hashphones.personalizzare-phonesenterprise]] collegato con la [[PhoneBar>>path:../input/hashphones.phonebar]] (noto come [[Driver di PhoneBar>>path:../input/hashphones.personalizzare-phonesenterprise#DriverDiPhoneBar]]); | ||
14 | * per azione diretta dell'[[operatore>>path:../input/hashphones.agenti#Operatore]] che esegue [[una chiamata manuale di outbound>>path:../input/hashphones.phonebar-howto#Fare_una_chiamata_di_outbound]] tramite la [[PhoneBar>>path:../input/hashphones.phonebar]]. | ||
15 | |||
16 | Le chiamate [[outbound>>path:../input/hashphones.outbound]] "Agent Based" compiute con [[modulo applicativo>>path:../input/hashphones.personalizzare-phonesenterprise]], possono essere generate in due modi: | ||
17 | |||
18 | * in automatico quando ad esempio il [[Driver di PhoneBar>>path:../input/hashphones.personalizzare-phonesenterprise#DriverDiPhoneBar]] rileva che l'[[operatore>>path:../input/hashphones.agenti#Operatore]] è in [[stato disponibile>>path:../input/hashphones.agenti#Stati]] | ||
19 | * dietro esplicita richiesta dell'[[operatore>>path:../input/hashphones.agenti#Operatore]]. | ||
20 | |||
21 | In ogni caso il [[modulo applicativo>>path:../input/hashphones.personalizzare-phonesenterprise]] deve interfacciarsi con la [[PhoneBar>>path:../input/hashphones.phonebar]] per: | ||
22 | |||
23 | * inviare a **#phones** le richieste di generazione delle chiamate; | ||
24 | * per ricevere notifiche dell'esito. | ||
25 | |||
26 | Oltre a ciò, il [[modulo applicativo>>path:../input/hashphones.personalizzare-phonesenterprise]] deve avere accesso anche ad una base dati centralizzata contenente i contatti da chiamare. | ||
27 | |||
28 | L'[[outbound>>path:../input/hashphones.outbound]] "Agent Based" è poco efficiente per le seguenti ragioni: | ||
29 | |||
30 | * gli [[operatori>>path:../input/hashphones.agenti#Operatore]] possono richiedere a **#phones** la generazione di una chiamata solo quando sono nello [[stato di tipo disponibile>>path:../input/hashphones.agenti#Stati]]. | ||
31 | * La chiamata generata è strettamente connessa all'[[operatori>>path:../input/hashphones.agenti#Operatore]]; ciò comporta un periodo di inattività che corrisponde a: | ||
32 | ** tempo impiegato dal sistema per l'attesa della risposta; | ||
33 | ** tempo impiegato dal sistema per il trasferimento della chiamata all'[[operatore>>path:../input/hashphones.agenti#Operatore]] (senza contare i casi in cui il cliente non risponde). | ||
34 | |||
35 | Infine, la gestione del database dei contatti risulta essere distribuita sui PC degli [[operatori>>path:../input/hashphones.agenti#Operatore]]. Ciò comporta in genere dei problemi di accesso concorrente ai dati. | ||
36 | |||
37 | == Power Dialing == | ||
38 | |||
39 | L'algoritmo di **Power Dialing** funziona nel modo seguente: | ||
40 | |||
41 | 1. un [[agente umano>>path:../input/hashphones.agenti#<u>AgenteUmano_]], assegnato ad una [[campagna di #phones>>path:../input/hashphones.campagne]] di un [[servizio di outbound>>path:../input/hashphones.servizi#ServiziOutbound]], entra nello [[stato disponibile>>path:../input/hashphones.agenti#Stati]]; | ||
42 | 1. lo [[stato disponibile>>path:../input/hashphones.agenti#Stati]] dell'[[agente umano>>path:../input/hashphones.agenti#</u>AgenteUmano_]] viene rilevato dal modulo [[Predictive Dialer>>path:../input/hashphones.outbound#_ProgrammipresentisulserverPhonesEnterprise_]] che immediatamente chiede al [[Dialer>>path:../input/hashphones.dialer]] di generare una nuova chiamata. | ||
43 | 1. Il [[Dialer>>path:../input/hashphones.dialer]], a sua volta, richiede al [[Contact Provider>>path:../input/hashphones.contact-provider]], di quel [[servizio di outbound>>path:../input/hashphones.servizi#ServiziOutbound]], un nuovo contatto telefonico e quindi invia a **#phones** la richiesta di una nuova chiamata. | ||
44 | |||
45 | Il Power Dialing può essere eseguito in due modi: | ||
46 | |||
47 | * con preallocazione dell'[[agente>>path:../input/hashphones.Agenti]]: appena un [[agente>>path:../input/hashphones.Agenti]] diventa [[disponibile>>path:../input/hashphones.agenti#Stati]], il sistema lo impegna collocandolo in [[stato di preassegnazione>>path:../input/hashphones.agenti#Stati]] (così non può ricevere altre chiamate). In seconda battuta viene generata una nuova chiamata che, se correttamente connessa (quando riceve una risposta da parte dell'utente), viene passata all' [[operatore>>path:../input/hashphones.agenti#Operatore]] in [[stato di preassegnazione>>path:../input/hashphones.agenti#Stati]]; | ||
48 | * senza preallocazione dell'[[agente>>path:../input/hashphones.Agenti]]: la chiamata generata non è destinata obbligatoriamente all'[[agente che è diventato disponibile>>path:../input/hashphones.Agenti#Stati]], ma può essere assegnata ad un qualunque [[agente>>path:../input/hashphones.agenti]] della [[campagna di #phones>>path:../input/hashphones.campagne]], purché [[disponibile>>path:../input/hashphones.agenti#Stati]]. Se l'[[agente>>path:../input/hashphones.Agenti]] per il quale è stata generata la chiamata si mette in [[pausa>>path:../input/hashphones.agenti#Stati]] o riceve una chiamata in ingresso, la telefonata può essere: | ||
49 | ** instradata ad un altro [[agente disponibile>>path:../input/hashphones.Agenti#Stati]] | ||
50 | ** oppure collocata nella [[campagna di coda>>path:../input/hashphones.campagne#Coda]] (se esiste). | ||
51 | |||
52 | Il Power Dialing consente di assicurarsi che tutte le chiamate generate possano essere trasferite ad un [[agente>>path:../input/hashphones.agenti]] e quindi ricevano il trattamento previsto. In termini di operatività degli [[operatori>>path:../input/hashphones.agenti#Operatore]] però, ha delle prestazioni inferiori rispetto al [[Predictive Dialing>>path:#_PredictiveDialing_]]. Infatti, visto che viene generata una nuova chiamata solo nel momento in cui un [[agente diventa disponibile>>path:../input/hashphones.Agenti#Stati]], questo rimarrà inattivo per il tempo che il chiamato impiega a rispondere ed il sistema a trasferire la chiamata al telefono dell'[[operatore>>path:../input/hashphones.agenti#Operatore]] stesso; quindi per un tempo che può essere anche di 15-20 secondi, ma che va ad aumentare sensibilmente nel caso in cui si abbia una sequenza di contatti che non rispondono o sono occupati. | ||
53 | |||
54 | == Predictive Dialing == | ||
55 | |||
56 | L'algoritmo di **Predictive Dialing** si occupa, tramite previsioni statistiche, di determinare quando e quante chiamate generare, al fine di ottimizzare il rendimento degli [[agenti>>path:../input/hashphones.agenti]] del contact center. L'algoritmo di Predictive Dialing si pone come obiettivo quello di prevedere la conclusione delle chiamate in corso e di generare quelle nuove quando gli [[agenti sono ancora in conversazione>>path:../input/hashphones.agenti#Stati]]. Così non appena un [[operatore>>path:../input/hashphones.agenti#Operatore]] [[diventa disponibile>>path:../input/hashphones.Agenti#Stati]], esiste già una chiamata pronta che può essere trasferita a lui. | ||
57 | |||
58 | Per poter predire la fine delle chiamate, il modulo di Predictive Dialing tiene costantemente sotto controllo lo [[stato degli operatori (disponibile, in conversazione, in pausa , ecc...)>>path:../input/hashphones.agenti#Stati]], la durata delle telefonate e gli esiti delle stesse (risposte, occupate, non risposte). In base a tutti i dati disponibili e ad un sofisticato algoritmo basato su calcoli statistici, il Predictive Dialing determina il momento in cui chiedere al [[Dialer>>path:../input/hashphones.outbound#_ProgrammipresentisulserverPhonesEnterprise_]] di generare una nuova chiamata. | ||
59 | |||
60 | Va osservato che l'algoritmo effettua normalmente un overbooking di chiamate per tenere conto delle chiamate occupate e non risposte. Vista la natura puramente statistica delle previsioni, mediamente le chiamate vengono fatte nel momento ritenuto più adatto; tuttavia non sono esclusi brevi momenti in cui non vi sono chiamate pronte per essere trasferite agli [[operatori disponibili>>path:../input/hashphones.agenti#Stati]], e momenti in cui vengono generate chiamate in surplus rispetto al numero di [[operatori disponibili>>path:../input/hashphones.agenti#Stati]]. Le chiamate in eccesso vanno gestite con i [[criteri di coda.>>path:../input/hashphones.campagne-di-phones-proprieta#_SchedaCoda_]] | ||
61 | |||
62 | Lo scopo dell'algoritmo di Predictive Dialing è quello di minimizzare due valori al fine di aumentare l'operatività del contact center: | ||
63 | |||
64 | * il tempo di attesa di una chiamata da parte di un [[agente nello stato disponibile>>path:../input/hashphones.Agenti#Stati]]. | ||
65 | * il tempo di attesa in coda di una persona chiamata da **#phones** (oppure il numero di chiamate a cui viene dato occupato nel caso in cui non esista la coda sull'[[outbound>>path:../input/hashphones.outbound]]). | ||
66 | |||
67 | I due parametri sono legati tra di loro e la scelta su quale dei due privilegiare è del tutto soggettiva: dipende dal tipo di clientela chiamata. L'algoritmo di Predictive Dialing può essere facilmente regolato tramite due parametri, i cui valori sono compresi tra 0 e 1000, appartenenti alle [[proprietà del servizio di outbound>>path:../input/hashphones.servizi-le-proprieta#_SchedaPacing_]]: | ||
68 | |||
69 | * [[Tipo>>path:../input/hashphones.outbound#Tipo]]: indica quanto influisce negativamente avere [[agenti disponibili>>path:../input/hashphones.agenti#Stati]] senza chiamate da trasferire loro. Un valore prossimo allo "0" indica all'algoritmo che è tollerato avere [[agenti>>path:../input/hashphones.agenti]] in attesa prima di ricevere un chiamata; cioè ci si trova in una situazione simile al [[Power Dialing>>path:#_PowerDialing_]], nel quale vengono effettuate chiamate solo quando si è certi di avere un [[agente>>path:../input/hashphones.Agenti]] a disposizione. Al contrario, valori alti del parametro inducono a generare un numero di chiamate superiore a quelle necessarie per cercare di impegnare il più possibile gli [[agenti>>path:../input/hashphones.agenti]]. | ||
70 | * [[Costo di cancellazione>>path:../input/hashphones.outbound#_Costodicancellazione_]]: indica quanto influisce negativamente avere chiamate a cui viene dato l'occupato (o che vengono messe in attesa) a fronte di [[agenti tutti in conversazione>>path:../input/hashphones.agenti#Stati]]. Valori prossimi allo "0" indicano all'algoritmo che avere clienti che finiscono in coda non è considerato grave; valori alti spingono l'algoritmo a ridurre il numero di chiamate, appunto per ridurre le possibilità che un cliente finisca in coda. | ||
71 | |||
72 | Questi due parametri sono di natura empirica e consentono all'[[utente di #phones>>path:../input/hashphones.glossario#_Utente_]] di influire sulla configurazione del programma. Non esiste una regola generale che permetta di decidere a priori i valori da assegnare a questi parametri. Sebbene l'algoritmo possa auto-regolarsi per quel che riguarda i parametri deterministici (il numero di [[operatori>>path:../input/hashphones.agenti#Operatore]], durata media delle chiamate), non può fare altrettanto per quel che riguarda l'esito della chiamata che si sta per generare (se verrà risposto o meno, dopo quanto verrà risposto, ecc...). Solo sulla base dell'esperienza di utilizzo del sistema è possibile avere delle indicazioni relative ai parametri, che dipenderanno dal tipo di clienti che si hanno a quella determinata ora, in quel determinato giorno. Con il Predictive Dialing si rende quindi necessario avere una persona che si occupi di calibrare periodicamente i parametri, sulla base della produttività del contact center che si verifica in quel determinato momento. | ||
73 | |||
74 | |||
75 | |||
76 | |||
77 | |||
78 |