Dynamische signalering in het belscript voor te lange gesprekstijden

Johan

In deze post laten we zien hoe je de Agent dynamisch kunt signalering dat de besprekstijd te lang wordt. In ons voorbeeld kijken we feitelijk naar de totale tijd dat de call op het scherm van de Agent staat. We zouden ook de meetwaarde kunnen aanpassen zodat alleen naar Live gesprekstijd wordt gekeken, of naar een ander meetwaarde, gesprekstijd is echter een veel gevraagde signalering.

Doordat CallPro voor de belscripts gebruik maakt van standaard HTML en javascript is het vrij eenvoudig om dit in een belscript in te bouwen. We maken hiervoor gebruik van een timer op het browser document object om een javascript functie op te roepen.

// Initialisatie: Wacht 5 seconden om het script de tijd te geven om zich volledig te initialiseren
var oTimer = window.setTimeout("Timer()", 5000);

Vervolgens maken we een javascript functie “Timer()” die de gesprekstijd in de gaten houdt. Hiervoor gebruiken we het CallPro objectmodel dat vanuit javascript kan worden gebruikt.

function Timer()
{
// Gebruik het CallPro objectmodel om de begintijd voor dit gesprek op te halen
var loScript = goCallPro.GetScript();
var loDialer = loScript.oDialer;
var loAttempt = loDialer.oDialAttempts;
// We gebruiken WaitBeginDate omdat het script hier ook "page refresh safe" mee wordt
var date = new Date(loAttempt.WaitBeginDate);
ScriptStartTime = date.getTime();
// Nu halen we nog de huidige tijd op
var date = new Date();
var ScriptNowTime = date.getTime();
// En bepalen we of het gesprek al te lang duurt
if(ScriptNowTime - ScriptStartTime > 90 * 1000)
{
// Ja, geef nu de signalering
$("div#ScriptTitleZone_CallHistoryTile>div").addClass("CallTooLong");
}
else
{
// Nee, reschedule nu de timer voro de volgende controle
oTimer = window.setTimeout("Timer()", 5000)
}
}

In dit voorbeeld wordt aan de “CallHistory” tile een extra CSS class toegekend die middels ene CSS animatie een signalering geeft. Hiervoor is de volgende CSS nodig:

<style>
.CallTooLong {
animation-name: calltoolong;
animation-duration: 3s;
animation-iteration-count: infinite;
}
@keyframes calltoolong {
0%   {background-color:transparent; }
25%  {background-color:red; }
75%  {background-color:red; }
100% {background-color:transparent; }
}
</style>

Het eindresultaat ziet er dan als volgt uit als de signalering wordt geactiveerd.

Met dit code voorbeeld is het zeer eenvoudig om alternatieve controle te maken. De timer zorgt ervoor dat elke X seconden een javascript functie wordt uitgevoerd. Wat we in deze functie doen is aan ons, dat hoeft niet perse signalering te zijn. Ook de wijze van signalering ligt niet vast en zelfs de meetwaarde die we controleren kan wordne aangepast.

1 Comment

  1. Johan Bennink
    12 July, 2017

    Of als je de signalering wilt doen op basis van de duur van de wrapuptijd.

    function Timer()
    {
    // Gebruik het CallPro objectmodel om de begintijd voor dit gesprek op te halen
    var loScript = goCallPro.GetScript();
    var loDialer = loScript.oDialer;
    if(loDialer.dialingstate==4)
    {
    // We zitten in de wrapup fase
    var loAttempt = loDialer.oDialAttempts;
    // We gebruiken het begin van de wrapup fase
    var date = new Date(loAttempt.GetWrapupDate());
    ScriptWrapupTime = date.getTime();
    // Nu halen we nog de huidige tijd op
    var date = new Date();
    var ScriptNowTime = date.getTime();
    // En bepalen we of de wrapup al te lang duurt
    if(ScriptNowTime - ScriptWrapupTime > 60 * 1000)
    {
    // Ja, geef nu de signalering
    $("div#ScriptTitleZone_CallHistoryTile>div").addClass("CallTooLong");
    }
    else
    {
    // Nee, reschedule nu de timer voor de volgende controle
    oTimer = window.setTimeout("Timer()", 5000)
    }
    }
    else
    {
    // Nee, reschedule nu de timer voor de volgende controle
    oTimer = window.setTimeout("Timer()", 5000)
    }
    }

More great articles

Nieuwe quickdisconnect aansluiting Accutone headsets

Sinds kort leveren wij de nieuwe WB610 Accutone stereo headset als vervanger van het TB610 model. Deze nieuwe WB610 heeft…

Read Story

Algemeen bedrijfsinformatieveld

Hoe maak je een informatieveld waar de agent algemene bedrijfsinformatie in kan opslaan die tijdens het belproces wordt verzameld. 1.…

Read Story

Facebook Leads automatisch toevoegen aan CallPro bellijst

Op onze github account staat een uitgewerkt voorbeeld hoe je nieuwe leads van een Facebook Ad campagne (met instant-form) en…

Read Story
Arrow-up