m (1 révision importée) |
m (1 révision importée) |
||
(11 révisions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | =Report Formulas | + | =Formules de rapport= |
− | + | {{#anc:Report Formulas}} | |
− | + | Si vous décidez que l’un de vos rapports a besoin d'une statistique différente ou supplémentaire, vous pouvez modifier le modèle de rapport pour répondre à votre besoin. Pour ce faire, ajoutez une formule au modèle de rapport pour récupérer la statistique ou l’indicateur de performance clé (KPI) souhaité. | |
− | + | Étant donné que vous ne pouvez pas modifier les modèles standard fournis, si vous souhaitez modifier l’un des rapports standard, il vous suffit de créer un clone du modèle et de le modifier. | |
− | + | Qui peut créer ces statistiques ? Si vous pouvez créer et modifier des modèles Genesys Pulse, vous pouvez utiliser des formules. | |
− | {{NoteFormat| | + | {{NoteFormat|Si vous savez déjà comment utiliser les formules, vous pouvez utiliser [[RTRFunctions|la bibliothèque de fonctions]] pour vous aider à créer vos formules.}} |
− | {{ | + | {{#anc:Add a Formula}} |
− | + | ==Ajouter une formule== | |
− | + | Dans le panneau de détails des statistiques lors de la modification d’un widget ou d’un modèle, vous pouvez créer ou personnaliser des statistiques en créant une formule. | |
− | + | La formule se base sur une syntaxe javascript, qui vous permet de calculer des expressions avec des valeurs fournies par d'autres statistiques et d’utiliser des fonctions fournies par Genesys pour obtenir des calculs plus spécifiques. Par exemple, vous pouvez calculer le rapport des appels abandonnés par rapport aux appels présentés dans votre file d'attente pour mesurer le pourcentage d'appels abandonnés de votre file d'attente. | |
− | |||
− | |||
+ | [[File:Pulse 85105 Formulas2.png]] | ||
− | {{ | + | {{#anc:Display Percentages}} |
− | + | ==Afficher les pourcentages== | |
− | + | Imaginons que vous souhaitez afficher des pourcentages basés sur deux métriques. Il vous suffit de copier l'exemple suivant, en utilisant les statistiques souhaitées. | |
− | + | Dans cet exemple, nous souhaitons récupérer le pourcentage d'appels sortants par rapport au total d'appels entrants et sortants. La formule peut accéder à n’importe quelle statistique dans un modèle avec la syntaxe suivante : <tt>Données.''Alias-statistique''.Valeur</tt>. La formule doit renvoyer une valeur <tt>Result</tt> valide. | |
− | + | Dans la formule suivante, nous supposons que les appels sortants sont définis par un alias statistique <tt>Sortant</tt> et les appels entrants par un alias statistique <tt>Entrant</tt>. | |
− | ''' | + | '''Formule : Calculer un pourcentage''' |
<div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | ||
− | <source enclose="div" lang="javascript">if ((Data.Outbound.Value + Data.Inbound.Value) != 0) | + | <source enclose="div" lang="javascript">if ((Data.Outbound.Value + Data.Inbound.Value) != 0) |
− | Result = 100 * Data.Outbound.Value / (Data.Outbound.Value + Data.Inbound.Value); | + | Result = 100 * Data.Outbound.Value / (Data.Outbound.Value + Data.Inbound.Value); |
else Result = 0; | else Result = 0; | ||
</source></div> | </source></div> | ||
− | |||
− | |||
− | + | [[File:Pulse 85105 Formulas2.png|Pulse 85105 Formulas2.png]] | |
− | | | ||
− | |||
− | + | {{#anc:Display Agent Status KPIs}} | |
+ | ==Afficher les KPI d’état des agents== | ||
+ | Imaginons que vous souhaitez afficher des KPI pour l'état des agents. Il vous suffit d'utiliser la statistique <tt>Current_Status</tt>. | ||
+ | [[File:Pulse85105formula1.png|Pulse85105formula1.png]] | ||
− | + | {{#anc: How the Current_Status Statistic is Defined}} | |
+ | === Comment la statistique Current_Status est-elle définie=== | ||
− | + | La statistique <tt>Current_Status</tt> est définie par les propriétés des options de Stat Server. Le type de statistique <tt>ExtendedCurrentStatus</tt> renvoie un objet spécifique qui peut être analysé davantage pour n'indiquer que la durée de l'objet. | |
− | |||
− | + | '''[ExtendedCurrentStatus]'''<br/>Catégorie=CurrentState<br/>MainMask=*<br/>Objets=Agent<br/>Objet=DNAction | |
− | + | Vous pouvez utiliser des formules pour trouver les informations dont vous avez besoin : | |
− | |||
− | ''' | + | {{#anc:Show Agent Time in Current State}} |
+ | ===Afficher la durée de l’état actuel d’un agent=== | ||
+ | Vous pouvez afficher la durée de l'état actuel d’un agent à l'aide de la statistique <tt>Current_Status</tt>. | ||
+ | |||
+ | '''Formule : Obtenir la durée de l'état''' | ||
<div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | ||
<source enclose="div" lang="javascript">Result = G.GetStatusDuration(Data.Current_Status.Value);</source></div> | <source enclose="div" lang="javascript">Result = G.GetStatusDuration(Data.Current_Status.Value);</source></div> | ||
− | |||
− | + | {{#anc: Show the Reason Code Selected by the Agent}} | |
− | + | === Afficher le code de raison sélectionné par l'agent=== | |
− | + | Vous pouvez afficher le code de raison pour l'état d'un agent. | |
− | ''' | + | '''Formule : Obtenir le code de raison''' |
<div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"><source enclose="div" lang="javascript">Result = G.GetReasonCodes(Data.Current_Status.Value);</source></div> | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"><source enclose="div" lang="javascript">Result = G.GetReasonCodes(Data.Current_Status.Value);</source></div> | ||
− | + | Si vous souhaitez afficher davantage de données utilisateur en plus du code de raison, vous devez activer la propriété Données supplémentaires (Données utilisateur) de la statistique et appliquer une formule pour filtrer uniquement le code de raison à partir de la statistique Current_Status obtenue, qui contient les données utilisateur et le code de raison. | |
− | ''' | + | '''Formule : Filtrer uniquement le code de raison''' |
<div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | ||
<source enclose="div" lang="javascript">var res = G.GetReasonCodes(Data.Current_Status.Value); | <source enclose="div" lang="javascript">var res = G.GetReasonCodes(Data.Current_Status.Value); | ||
Ligne 80 : | Ligne 80 : | ||
</source></div> | </source></div> | ||
− | |||
− | < | + | '''Formule : Extraire le code de raison par le type de support''' (<tt>chat</tt> dans l'exemple ci-dessous) |
− | < | + | |
− | + | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | |
+ | <source enclose="div" lang="javascript">function GetNRCode(state) { | ||
+ | if (state === null || state.type !== "AgentCurrentState") | ||
+ | return null; | ||
+ | |||
+ | var res = ""; | ||
+ | var n = state.DNs.length; | ||
+ | |||
+ | if (n > 0) { | ||
+ | for (var i = 0; i < n; ++i) { | ||
+ | var dn = state.DNs[i]; | ||
+ | |||
+ | if (dn.DNType === CFGNoDN && dn.DN === "chat") { | ||
+ | var actionsLength = dn.Actions.length; | ||
+ | |||
+ | for (var j = 0; j < actionsLength; j++) { | ||
+ | if (dn.Actions[j].Action === "NotReadyForNextCall" ) { | ||
+ | var userDataLength = dn.Actions[j].Data.UserData.length; | ||
+ | |||
+ | if (userDataLength > 0) { | ||
+ | for (var k = 0; k < userDataLength; k++) { | ||
+ | if (dn.Actions[j].Data.UserData[k].Key === "ReasonCode") { | ||
+ | res = dn.Actions[j].Data.UserData[k].Value; | ||
+ | |||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return res; | ||
+ | } | ||
+ | |||
+ | Result = GetNRCode(Data.Current_Status.Value); | ||
+ | </source></div> | ||
+ | |||
+ | '''Formule : Obtenir le code de raison pour la voix''' | ||
+ | |||
+ | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | ||
+ | <source enclose="div" lang="javascript">function GetVR(state) { | ||
+ | if (state === null || state.type !== "AgentCurrentState") | ||
+ | return null; | ||
+ | |||
+ | var res = ""; | ||
+ | var n = state.DNs.length; | ||
+ | |||
+ | if (n > 0) { | ||
+ | for (var i = 0; i < n; ++i) { | ||
+ | var dn = state.DNs[i]; | ||
+ | |||
+ | if (dn.DNType === 1 && dn.DN !== null) { | ||
+ | var actionsLength = dn.Actions.length; | ||
+ | |||
+ | for (var j = 0; j < actionsLength; j++) { | ||
+ | if (dn.Actions[j].Action === "NotReadyForNextCall") { | ||
+ | var userDataLength = dn.Actions[j].Data.UserData.length; | ||
+ | |||
+ | for (var h = 0; h < userDataLength; h++) { | ||
+ | if (dn.Actions[j].Data.UserData[h].Key === "ReasonCode") { | ||
+ | res = dn.Actions[j].Data.UserData[h].Value; | ||
+ | |||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return res; | ||
+ | } | ||
+ | |||
+ | Result = GetVR(Data.Current_Status.Value); | ||
+ | </source></div> | ||
+ | |||
+ | {{NoteFormat|La formule doit être personnalisée selon votre environnement. Contactez le service clientèle de Genesys pour obtenir des détails.|2}} | ||
+ | |||
+ | {{#anc:Show Current Agent State by Media Type}} | ||
+ | ===Afficher l'état actuel de l'agent par type de média=== | ||
+ | Vous pouvez afficher l'état actuel de l'agent par type de média. | ||
− | ''' | + | '''Formule - Obtenir l'état de l'agent par type de média''' |
<div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | ||
<source enclose="div" lang="javascript">Result = G.GetAgentNonVoiceStatus(Data.Current_Status.Value, 'email');</source></div> | <source enclose="div" lang="javascript">Result = G.GetAgentNonVoiceStatus(Data.Current_Status.Value, 'email');</source></div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ''' | + | {{AnchorDiv|AgentSkills}} |
+ | {{#anc:Display Agent Skills}} | ||
+ | ==Afficher les compétences de l'agent== | ||
+ | Vous pouvez afficher les compétences de l'agent en utilisant la formule suivante. Le résultat inclut le nom et le niveau de chaque compétence de l'agent. | ||
+ | |||
+ | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | ||
+ | <source enclose="div" lang="javascript"> | ||
+ | Result = ""; | ||
+ | if (Object.Skills != null) { | ||
+ | for (var i = 0; i < Object.Skills.length; i++) { | ||
+ | var skill = Object.Skills[i]; | ||
+ | Result += skill.Name + " " + skill.Level +"; "; | ||
+ | } | ||
+ | } | ||
+ | </source></div> | ||
+ | |||
+ | {{#anc:Display Interaction Properties}} | ||
+ | ==Afficher les propriétés d'interaction== | ||
+ | |||
+ | Imaginons que vous souhaitez afficher les propriétés d'interaction, y compris la segmentation des flux, l’ANI et la DNIS. Vous pouvez utiliser des formules pour trouver les informations dont vous avez besoin : | ||
+ | [[File:Pulse85105formula2.png|Pulse85105formula2.png]] | ||
+ | |||
+ | {{#anc:Show the Customer Segment of the Interaction}} | ||
+ | ===Afficher le segment clientèle de l'interaction=== | ||
+ | Vous pouvez afficher le segment clientèle défini par la paire clé-valeur <tt>SegmentClientèle</tt> de l'interaction à l'aide de la formule suivante. | ||
+ | |||
+ | '''Formule : Obtenir le segment clientèle''' | ||
<div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | ||
<source enclose="div" lang="javascript">Result = G.GetCustomerSegment(Data.Current_Status.Value);</source></div> | <source enclose="div" lang="javascript">Result = G.GetCustomerSegment(Data.Current_Status.Value);</source></div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ''' | + | {{#anc:Show the ANI of the Customer}} |
+ | ===Afficher l'ANI du client=== | ||
+ | Vous pouvez afficher l'ANI du client à l'aide de la formule suivante. | ||
+ | |||
+ | '''Formule : Obtenir l’ANI''' | ||
<div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | ||
<source enclose="div" lang="javascript">[Result = G.GetANI(Data.Current_Status.Value);</source></div> | <source enclose="div" lang="javascript">[Result = G.GetANI(Data.Current_Status.Value);</source></div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ''' | + | {{#anc:Show the DNIS of the Customer}} |
+ | ===Afficher la DNIS du client=== | ||
+ | Vous pouvez afficher la DNIS du client à l'aide de la formule suivante. | ||
+ | |||
+ | '''Formule : Obtenir la DNIS''' | ||
<div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | <div style="line-height:normal;border:1px dashed #2f6fab;background-color: #F9F9F9;color:black;padding:1em;margin:1em 0;"> | ||
<source enclose="div" lang="javascript">Result = G.GetDNIS(Data.Current_Status.Value);</source></div> | <source enclose="div" lang="javascript">Result = G.GetDNIS(Data.Current_Status.Value);</source></div> | ||
− | |||
− | |||
− | |||
− | |||
− | + | {{#anc:What do I do next?}} | |
− | + | ==Que faire ensuite ?== | |
− | * [[RTRTemplates| | + | Vous pouvez en savoir plus à propos des fonctions suivantes : |
− | * [[RTRStatProperties| | + | * [[RTRTemplates|Modèles de widgets]] |
− | * [[RTRFunctions| | + | * [[RTRStatProperties|Propriétés statistiques]] |
+ | * [[RTRFunctions|Bibliothèque de fonctions de modèles]] | ||
+ | |||
[[Category:V:EZP:DRAFT]] | [[Category:V:EZP:DRAFT]] |
Version actuelle datée du février 20, 2020 à 17:53
Sommaire
Formules de rapport
Si vous décidez que l’un de vos rapports a besoin d'une statistique différente ou supplémentaire, vous pouvez modifier le modèle de rapport pour répondre à votre besoin. Pour ce faire, ajoutez une formule au modèle de rapport pour récupérer la statistique ou l’indicateur de performance clé (KPI) souhaité.
Étant donné que vous ne pouvez pas modifier les modèles standard fournis, si vous souhaitez modifier l’un des rapports standard, il vous suffit de créer un clone du modèle et de le modifier.
Qui peut créer ces statistiques ? Si vous pouvez créer et modifier des modèles Genesys Pulse, vous pouvez utiliser des formules.
Ajouter une formule
Dans le panneau de détails des statistiques lors de la modification d’un widget ou d’un modèle, vous pouvez créer ou personnaliser des statistiques en créant une formule.
La formule se base sur une syntaxe javascript, qui vous permet de calculer des expressions avec des valeurs fournies par d'autres statistiques et d’utiliser des fonctions fournies par Genesys pour obtenir des calculs plus spécifiques. Par exemple, vous pouvez calculer le rapport des appels abandonnés par rapport aux appels présentés dans votre file d'attente pour mesurer le pourcentage d'appels abandonnés de votre file d'attente.
Afficher les pourcentages
Imaginons que vous souhaitez afficher des pourcentages basés sur deux métriques. Il vous suffit de copier l'exemple suivant, en utilisant les statistiques souhaitées.
Dans cet exemple, nous souhaitons récupérer le pourcentage d'appels sortants par rapport au total d'appels entrants et sortants. La formule peut accéder à n’importe quelle statistique dans un modèle avec la syntaxe suivante : Données.Alias-statistique.Valeur. La formule doit renvoyer une valeur Result valide.
Dans la formule suivante, nous supposons que les appels sortants sont définis par un alias statistique Sortant et les appels entrants par un alias statistique Entrant.
Formule : Calculer un pourcentage
if ((Data.Outbound.Value + Data.Inbound.Value) != 0)
Result = 100 * Data.Outbound.Value / (Data.Outbound.Value + Data.Inbound.Value);
else Result = 0;
Afficher les KPI d’état des agents
Imaginons que vous souhaitez afficher des KPI pour l'état des agents. Il vous suffit d'utiliser la statistique Current_Status.
Comment la statistique Current_Status est-elle définie
La statistique Current_Status est définie par les propriétés des options de Stat Server. Le type de statistique ExtendedCurrentStatus renvoie un objet spécifique qui peut être analysé davantage pour n'indiquer que la durée de l'objet.
[ExtendedCurrentStatus]
Catégorie=CurrentState
MainMask=*
Objets=Agent
Objet=DNAction
Vous pouvez utiliser des formules pour trouver les informations dont vous avez besoin :
Afficher la durée de l’état actuel d’un agent
Vous pouvez afficher la durée de l'état actuel d’un agent à l'aide de la statistique Current_Status.
Formule : Obtenir la durée de l'état
Result = G.GetStatusDuration(Data.Current_Status.Value);
Afficher le code de raison sélectionné par l'agent
Vous pouvez afficher le code de raison pour l'état d'un agent.
Formule : Obtenir le code de raison
Result = G.GetReasonCodes(Data.Current_Status.Value);
Si vous souhaitez afficher davantage de données utilisateur en plus du code de raison, vous devez activer la propriété Données supplémentaires (Données utilisateur) de la statistique et appliquer une formule pour filtrer uniquement le code de raison à partir de la statistique Current_Status obtenue, qui contient les données utilisateur et le code de raison.
Formule : Filtrer uniquement le code de raison
var res = G.GetReasonCodes(Data.Current_Status.Value);
var x = res.split(';');
Result = "";
for (var i = 0; i < x.length; i++) {
var s = x[i];
if (s.indexOf("Break") > -1 ||
s.indexOf("Offline") > -1 ||
s.indexOf("Training") > -1 ) { Result = s; break; }
}
Formule : Extraire le code de raison par le type de support (chat dans l'exemple ci-dessous)
function GetNRCode(state) {
if (state === null || state.type !== "AgentCurrentState")
return null;
var res = "";
var n = state.DNs.length;
if (n > 0) {
for (var i = 0; i < n; ++i) {
var dn = state.DNs[i];
if (dn.DNType === CFGNoDN && dn.DN === "chat") {
var actionsLength = dn.Actions.length;
for (var j = 0; j < actionsLength; j++) {
if (dn.Actions[j].Action === "NotReadyForNextCall" ) {
var userDataLength = dn.Actions[j].Data.UserData.length;
if (userDataLength > 0) {
for (var k = 0; k < userDataLength; k++) {
if (dn.Actions[j].Data.UserData[k].Key === "ReasonCode") {
res = dn.Actions[j].Data.UserData[k].Value;
break;
}
}
}
}
}
break;
}
}
}
return res;
}
Result = GetNRCode(Data.Current_Status.Value);
Formule : Obtenir le code de raison pour la voix
function GetVR(state) {
if (state === null || state.type !== "AgentCurrentState")
return null;
var res = "";
var n = state.DNs.length;
if (n > 0) {
for (var i = 0; i < n; ++i) {
var dn = state.DNs[i];
if (dn.DNType === 1 && dn.DN !== null) {
var actionsLength = dn.Actions.length;
for (var j = 0; j < actionsLength; j++) {
if (dn.Actions[j].Action === "NotReadyForNextCall") {
var userDataLength = dn.Actions[j].Data.UserData.length;
for (var h = 0; h < userDataLength; h++) {
if (dn.Actions[j].Data.UserData[h].Key === "ReasonCode") {
res = dn.Actions[j].Data.UserData[h].Value;
break;
}
}
break;
}
}
break;
}
}
}
return res;
}
Result = GetVR(Data.Current_Status.Value);
Afficher l'état actuel de l'agent par type de média
Vous pouvez afficher l'état actuel de l'agent par type de média.
Formule - Obtenir l'état de l'agent par type de média
Result = G.GetAgentNonVoiceStatus(Data.Current_Status.Value, 'email');
Afficher les compétences de l'agent
Vous pouvez afficher les compétences de l'agent en utilisant la formule suivante. Le résultat inclut le nom et le niveau de chaque compétence de l'agent.
Result = "";
if (Object.Skills != null) {
for (var i = 0; i < Object.Skills.length; i++) {
var skill = Object.Skills[i];
Result += skill.Name + " " + skill.Level +"; ";
}
}
Afficher les propriétés d'interaction
Imaginons que vous souhaitez afficher les propriétés d'interaction, y compris la segmentation des flux, l’ANI et la DNIS. Vous pouvez utiliser des formules pour trouver les informations dont vous avez besoin :
Afficher le segment clientèle de l'interaction
Vous pouvez afficher le segment clientèle défini par la paire clé-valeur SegmentClientèle de l'interaction à l'aide de la formule suivante.
Formule : Obtenir le segment clientèle
Result = G.GetCustomerSegment(Data.Current_Status.Value);
Afficher l'ANI du client
Vous pouvez afficher l'ANI du client à l'aide de la formule suivante.
Formule : Obtenir l’ANI
[Result = G.GetANI(Data.Current_Status.Value);
Afficher la DNIS du client
Vous pouvez afficher la DNIS du client à l'aide de la formule suivante.
Formule : Obtenir la DNIS
Result = G.GetDNIS(Data.Current_Status.Value);
Que faire ensuite ?
Vous pouvez en savoir plus à propos des fonctions suivantes :