openFrameAPI : client
openFrameAPI fournit des méthodes qui interagissent avec OpenFrame. OpenFrame est un cadre omniprésent que les partenaires de communication peuvent utiliser pour intégrer leurs systèmes dans la ServiceNow plateforme.
L’une des exigences fondamentales est la capacité de connecter et de servir du code à partir de différents domaines qui peuvent se connecter de manière transparente avec les sous-systèmes partenaires. Cette connexion interdomaine est nécessaire pour maintenir les connexions et les rappels enregistrés dans les systèmes de communication sans aucun problème interdomaine.
openFrameAPI : getAWAAgentPresence(réussite de la chaîne, échec de la chaîne)
Renvoie l’état de présence actuel de l’agent connecté.
| Nom | Type | Description |
|---|---|---|
| réussite | Chaîne | Si la méthode réussit, nom de la fonction de rappel à invoquer. |
| échec | Chaîne | En cas d’échec de la méthode, nom de la fonction de rappel à invoquer. |
| Type | Description |
|---|---|
| Présence | Résultats transmis à la fonction de rappel de réussite par l’infrastructure openFrame. Type de données : objet |
| Présence.Disponible | Marqueur indiquant si l’agent associé est disponible. Valeurs valides :
Type de données : booléennes |
| présence.canaux | Liste des canaux de communication disponibles avec l’agent. Type de données : tableau d’objets
|
| présence.canaux.disponibles | Marqueur indiquant si le canal est disponible. Valeurs valides :
Type de données Booléen |
| presence.channels.name | Nom du canal, tel que Messagerie instantanée ou Téléphone. Type de données : chaîne |
| presence.channels.restrict_update | Marqueur indiquant si l’utilisateur peut restreindre les mises à jour du canal. Valeurs valides :
Type de données Booléen |
| presence.channels.service_channel_type | Type du canal de service. Type de données : chaîne |
| presence.channels.sys_id | Sys_id de l’enregistrement du canal. Type de données : chaîne Table : canaux de service [awa_service_channel] |
| presence.name | Nom de l’état de présence de l’agent. Type de données : chaîne |
| presence.sys_id | Sys_id de l’enregistrement de l’état de présence. Type de données : chaîne Table : États de présence [awa_presence_state] |
L’exemple de code suivant montre comment appeler cette méthode.
function failure(data)
{
console.log("failure: " + JSON.stringify(data));
}
function success(data)
{
console.log("success: " + JSON.stringify(data));
}
openFrameAPI.getAWAAgentPresence(success, failure)
Fonction de rappel de réponse à la réussite :
success: {
"presence": {
"name": "Available",
"sys_id": "0b10223c57a313005baaaa65ef94f970",
"available": true,
"channels": [
{
"name": "Chat",
"available": true,
"sys_id": "27f675e3739713004a905ee515f6a7c3",
"restrict_update": false,
"service_channel_type": "chat"
}
]
}
}
openFrameAPI : hide()
Masque OpenFrame dans le TopFrame.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| nul |
openFrameAPI.hide()
openFrameAPI : init(Configuration de l’objet, fonction successCallback, fonction failureCallback)
Initialise OpenFrame. Il doit s’agir de la première méthode que vous appelez.
Cette méthode initialise la communication avec TopFrame et initialise tous les éléments visuels transmis dans le config paramètre.
| Nom | Type | Description |
|---|---|---|
| config | Objet | Paires nom-valeur à utiliser pendant le processus d’initialisation. Clés possibles : Toutes les clés sont facultatives. Transmettez un objet vide si vous ne souhaitez pas définir ces paires clé-valeur.
|
| Rappel de réussite | function | Nom de la fonction de rappel à utiliser si la méthode init réussit. La configuration OpenFrame stockée dans le système est transmise en tant que paramètre à la fonction de rappel. |
| failureCallback | function | Nom de la fonction de rappel à utiliser en cas d’échec de la méthode init . |
| Type | Description |
|---|---|
| nul |
var config = {
height: 300,
width: 200
}
function handleCommunicationEvent(context) {
console.log("Communication from Topframe", context);
}
function initSuccess(snConfig) {
console.log("openframe configuration", snConfig);
//register for communication event from TopFrame
openFrameAPI.subscribe(openFrameAPI.EVENTS.COMMUNICATION_EVENT,
handleCommunicationEvent);
}
function initFailure(error) {
console.log("OpenFrame init failed...", error);
}
openFrameAPI.init(config, initSuccess, initFailure);
openFrameAPI - isVisible(rappel de fonction)
Vérifie si OpenFrame est visible dans TopFrame.
| Nom | Type | Description |
|---|---|---|
| rappel | function | La fonction de rappel reçoit un paramètre avec une valeur vrai ou faux. Vrai si OpenFrame est visible et faux si ce n’est pas visible. |
| Type | Description |
|---|---|
| nul |
function callback(isVisible) {
console.log(isVisible)
}
openFrameAPI.isVisible(callback)
openFrameAPI : openCustomURL(détails de chaîne)
Ouvre une URL personnalisée dans l’interface UI16.
| Nom | Type | Description |
|---|---|---|
| URL | Chaîne | Texte de l’URL personnalisée. Taille maximale : 2083 caractères |
| Type | Description |
|---|---|
| nul |
openFrameAPI.openCustomURL('10_cool_things.do');
openFrameAPI : openServiceNowForm (détails de l’objet)
Ouvre une URL de formulaire.
- Dans l’interface de la plateforme, cette API ouvre une URL de formulaire dans TopFrame.
- Pour Espace de travail d'agent, cette API prend en charge la gestion des onglets d’interaction. Dans Espace de travail d'agent, un enregistrement d’interaction s’ouvre dans un onglet parent et l’enregistrement d’entité spécifié s’ouvre dans un onglet enfant sous l’onglet d’interaction.
| Nom | Type | Description |
|---|---|---|
| Détails | Objet | Paires clé-valeur qui identifient l’URL de formulaire à ouvrir. |
| détails.entité | Chaîne | Nom de la table ou de l’entité. |
| details.interaction_sys_id | Chaîne | Facultatif. Sys_id de l’enregistrement d’interaction à ouvrir en tant qu’onglet parent dans Espace de travail d'agent. Remarque : Dans l’interface de la plateforme, la interaction_sys_id est ignorée. |
| requête.détails | Chaîne | Requête pour identifier l’enregistrement à ouvrir, telle que : query :'sys_id=<record_sys_id>'. |
| Type | Description |
|---|---|
| nul |
L’exemple suivant montre l’utilisation de base dans la plateforme :
openFrameAPI.openServiceNowForm({entity:'customer_account',
query:'sys_id=447832786f0331003b3c498f5d3ee452', 'interaction_sys_id':'3be092313b711300758ce9b534efc4dd'});
L’exemple suivant montre comment utiliser le query paramètre pour créer un nouvel enregistrement avec des données fournies dans le formulaire à l’aide de sysparm_query et d’une requête codée pour renseigner les champs de prénom et de nom dans l’espace de travail :
openFrameAPI.openServiceNowForm({ entity: 'sys_user',
query: 'sys_id=-1&sysparm_query=first_name=Ivan^last_name=Greggor' });
openFrameAPI : openServiceNowFormwithChildTab()
Ouvre un ServiceNow formulaire avec un onglet enfant s’il est invoqué dans un espace de travail ou ouvre une entité s’il est invoqué dans l’interface UI16.
| Nom | Type | Description |
|---|---|---|
| openServiceNowFormwithChildTab | Objet | Définit si l’API ouvre un ServiceNow formulaire avec un onglet enfant si elle est invoquée dans un espace de travail ou ouvre une entité si elle est invoquée dans l’interface UI16. |
| openServiceNowFormwithChildTab.entity | Chaîne | Nom de la table qui contient l’enregistrement à ouvrir. |
| openServiceNowFormwithChildTab.sys_id | Chaîne | Sys_id de l’enregistrement à ouvrir. |
| openServiceNowFormwithChildTab.parent_entity | Chaîne | Nom de la table à ouvrir en tant qu’onglet parent. |
| openServiceNowFormwithChildTab.parent_entity_sys_id | Chaîne | Sys_id de l’enregistrement parent à ouvrir. |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant ouvre l’entité parente en tant qu’onglet parent sur un espace de travail configuré, ou ouvre uniquement l’entité si elle est invoquée dans UI16.
openFrameAPI.openServiceNowFormwithChildTab({
entity: "customer_account",
sys_id: "447832786f0331003b3c498f5d3ee452",
parent_entity: "interaction",
parent_entity_sys_id: "3be092313b711300758ce9b534efc4dd"
});
openFrameAPI : openServiceNowList(détails de l’objet)
Ouvre une URL de liste dans l’interface UI16.
| Nom | Type | Description |
|---|---|---|
| Détails | Objet | Paires de valeurs clés qui décrivent le contenu à utiliser lors de l’ouverture de l’URL de liste. Valeurs valides :
|
| Type | Description |
|---|---|
| nul |
openFrameAPI.openServiceNowList({entity:'case', query:'active=true'});
openFrameAPI : setFrameMode(mode)
Définit le mode OpenFrame.
- Définit l’icône appropriée dans l’en-tête : réduire ou développer
- Soulève l’événement pertinent pour CTI :
- openFrameAPI.EVENTS.COLLAPSE
- openFrameAPI.EVENTS.EXPAND
| Nom | Type | Description |
|---|---|---|
| Mode | Chaîne | Définissez le mode OpenFrame. Options énumérées :
|
| Type | Description |
|---|---|
| nul |
openFrameAPI.setFrameMode(openFrameAPI.FRAME_MODE.COLLAPSE);
openFrameAPI : setHeight(height)
Définit la hauteur OpenFrame.
| Nom | Type | Description |
|---|---|---|
| Hauteur | Numéro | Hauteur en pixels |
| Type | Description |
|---|---|
| nul |
openFrameAPI.setHeight(100);
openFrameAPI : setICContext(Type de chaîne, objet <contexte>)
Définit les données contextuelles associées aux contrôles d’interaction sur le client. Utilisez ces données contextuelles pour déterminer l’interface utilisateur du client à afficher dans OpenFrame.
Pour plus d’informations sur les commandes interactives, reportez-vous à la section Interaction Controls Component (ICC) for voice calls.
Pour plus d’informations sur les enregistrements d’interaction, reportez-vous à la section CSM voice interaction record page.
| Nom | Type | Description |
|---|---|---|
| <Contexte> | Objet | Données de contexte à définir. Chaque type de données de contexte est un ensemble unique de données d’entrée. Objets de données valides Context :
|
| activeCall | Tableau d'objets | Détails contextuels d’un appel actif. Chaque objet représente un appel actif en cours. |
| activeCall.callbackContext | Objet | Utilisé uniquement si la activeCall.type propriété est un rappel. Informations de contexte de rappel pour le composant de rappel en cours. |
| activeCall. callbackContext. callAttemptedByAgent | Booléen | Marqueur indiquant si le rappel a été tenté par un agent de service clientèle. Valeurs valides :
Valeur par défaut : faux |
| activeCall. callbackContext. Numéros de rappel | Tableau | Liste des numéros de téléphone fournis sous forme de chaînes. |
| activeCall. callbackContext. closeInEndTime | Chaîne | Définir uniquement si callAttemptedByAgent a la valeur vrai. Heure de fin du rappel au format UTC. |
| activeCall. callbackContext. nom du client | Chaîne | Nom du client. |
| activeCall. callbackContext. dialInEndTime | Chaîne | Définissez uniquement si la callAttemptedByAgent valeur est faux et le type de rappel est composé automatiquement. Heure de fin d’appel entrant pour le rappel au format UTC. |
| activeCall.currentParticipant | Objet | Requis. Détails sur les options d’appel du participant actuel et l’état de l’appel. |
| activeCall.currentParticipant.actor | Chaîne | Type de participant à l’appel. Valeurs valides :
Remarque : Autres types de participants à ajouter à l’avenir. |
| activeCall.currentParticipant.callStartTime | Chaîne | Date et heure de début de l’appel. Heure standard : UTC Format : RSS - « <jour de la semaine>, jj mmm aaaa hh :MM :ss GMT ». Par exemple : « Wed, 17 Dec 2024 05:23:41 GMT » |
| activeCall.currentParticipant.capabilities | Objet | Détails sur les options que le participant actuel (agent) peut effectuer pendant un appel. Les icônes associées apparaissent dans le composant Appel actif pour les options activées. |
| activeCall.currentParticipant.capabilities.callbackTransferStatus | Chaîne | Statut de transfert de rappel CCaaS (Contact Center as a Service). Valeurs possibles :
|
| activeCall.currentParticipant.capabilities.cancelCallbackTransferEligible | Booléen | Marqueur indiquant si l’option Annuler le transfert de rappel est activée. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.closeCallback | Booléen | Marqueur indiquant si le bouton Fermer le rappel est activé. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.Dtmf | Booléen | Marqueur indiquant si l’agent dispose de l’option multifréquence à double tonalité (DTMF) pour l’appel en cours. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.endCall | Booléen | Marqueur indiquant si le participant associé peut mettre fin à l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.drapeau | Booléen | Marqueur indiquant si le participant peut signaler l’appel pour des problèmes de qualité, tels que des problèmes de qualité vocale. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.tenir | Booléen | Marqueur indiquant si le participant peut mettre l’appel en attente. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.initiateCall | Booléen | Marqueur indiquant si le participant associé peut démarrer l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.leaveAndTransfer | Booléen | Marqueur indiquant si le participant peut transférer l’appel à un autre agent, puis abandonner l’appel. Activez cette aptitude pour des actions telles que les transferts de consultation, lorsque l’utilisateur consulté n’est pas le propriétaire de l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.mergeCall | Booléen | Marqueur indiquant si le participant peut fusionner l’appel. Utilisez cette aptitude lorsque les segments d’appel du participant peuvent fusionner. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.Muet | Booléen | Marqueur indiquant si le participant peut désactiver le son de l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.pauseEnregistrement | Booléen | Marqueur indiquant si le participant peut mettre en pause l’enregistrement de l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.resumeEnregistrement | Booléen | Marqueur indiquant si le participant peut reprendre l’enregistrement de l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.startRecording | Booléen | Marqueur indiquant si le participant peut commencer à enregistrer l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.stopRecording | Booléen | Marqueur indiquant si le participant peut arrêter l’enregistrement de l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.capabilities.transfert | Booléen | Marqueur indiquant si le participant peut transférer l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.connectedTime | Chaîne | Date et heure auxquelles l’appel s’est connecté initialement. Base horaire : UTC Format : RSS - « <jour de la semaine>, jj mmm aaaa hh :MM :ss GMT ». Par exemple : « Wed, 17 Dec 2024 05:23:41 GMT » |
| activeCall.currentParticipant.custom-capability-state-1 | Booléen | Marqueur indiquant s’il y a des participants actuels à l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.flagged | Booléen | Marqueur indiquant si l’appel est marqué pour un problème, tel qu’un problème de qualité vocale. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.held | Booléen | Marqueur indiquant l’état de maintien du participant. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.id | Chaîne | Requis. Sys_id de l’enregistrement de participant associé, tel que le sys_id de l’agent. Table : Utilisateur [sys_user] |
| activeCall.currentParticipant.muted | Booléen | Marqueur indiquant l’état désactivé du participant. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.name | Chaîne | Nom du participant. |
| activeCall.currentParticipant.Paused | Booléen | Marqueur indiquant l’état de pause du participant. Valeurs valides :
Valeur par défaut : false |
| activeCall.currentParticipant.recording | Chaîne | État d’enregistrement actuel de l’appel. Valeurs valides :
|
| activeCall.currentParticipant.wrapUP | Objet | Utilisation future. |
| activeCall.customPayload | Objet | Charge utile personnalisée à transmettre à OpenFrame dans le cadre des événements OpenFrame. Il s’agit d’un objet de forme libre qui peut contenir toutes les données nécessaires à la personnalisation du composant d’appel actif, telles que l’ajout de boutons ou de texte. |
| activeCall.direction | Chaîne | Orientation de l’appel pour le participant associé. Valeurs valides :
|
| activeCall.externalId | Requis. Valeur unique qui identifie l’appel actif actuel sur le système externe associé. | |
| activeCall.nowRecordId | Chaîne | Requis. Sys_id de l’enregistrement de l’appel actif. Table : interaction [interaction] Option prise en charge uniquement pour le système de base. |
| activeCall.nowRecordTable | Chaîne | Requis. Table à laquelle l’appel actif appartient. Table : interaction [interaction] Option prise en charge uniquement pour le système de base. |
| activeCall.Participants | Tableau d'objets | Requis. Liste des participants supplémentaires à l’appel. Un participant peut être un agent, un client, une personne externe qui n’est ni un agent ni un client, ou une file d’attente. |
| activeCall.Participants.acteur | Chaîne | Type d’acteur pour le participant associé. Par exemple :
|
| activeCall.Participants.adresse | Chaîne | Numéro de téléphone du participant. |
| activeCall.Participants.Ani | Identification automatique du numéro. Numéro de téléphone à afficher au destinataire de l’appel téléphonique. | |
| activeCall.Participants.Capacités | Objet | Détails sur le type d’options dont dispose le participant pour l’appel associé. |
| activeCall.Participants.Capacités.endCall | Booléen | Marqueur indiquant si le participant associé peut mettre fin à l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.Participants.Capacités.tenir | Booléen | Marqueur indiquant si le participant peut mettre l’appel en attente. Valeurs valides :
Valeur par défaut : false |
| activeCall.Participants.Capacités.Muet | Booléen | Marqueur indiquant si le participant peut désactiver le son de l’appel. Valeurs valides :
Valeur par défaut : false |
| activeCall.Participants.Heure connectée | Chaîne | Requis. Date et heure auxquelles le participant s’est initialement connecté à l’appel. Heure standard : UTC Format : RSS - « <jour de la semaine>, jj mmm aaaa hh :MM :ss GMT ». Par exemple : « Wed, 17 Dec 2024 05:23:41 GMT » |
| activeCall.Participants.charge utile personnalisée | Objet | Charge utile personnalisée à transmettre à OpenFrame dans le cadre des événements personnalisés Open Frame. Il s’agit d’un objet de forme libre qui peut contenir toutes les données nécessaires à la personnalisation du composant d’appel actif, telles que l’ajout de boutons ou de texte. |
| activeCall.Participants.Noms d’enfant | Chaîne | Service d’identification des numéros composés. Numéro de téléphone composé par le participant. |
| activeCall.Participants.tenu | Booléen | Marqueur indiquant l’état de maintien du participant. Valeurs valides :
Valeur par défaut : false |
| activeCall.Participants.heldAtTime | Chaîne | Date et heure auxquelles la connexion du participant à l’appel a été mise en attente. Base horaire : UTC Format : RSS - « <jour de la semaine>, jj mmm aaaa hh :MM :ss GMT ». Par exemple : « Wed, 17 Dec 2024 05:23:41 GMT » |
| activeCall.Participants.id | Chaîne | Requis. ID unique du participant issu du système Contact Center as a Service (CCaaS). |
| activeCall.Participants.assourdi | Booléen | Marqueur indiquant l’état de sourdine du participant. Valeurs valides :
Valeur par défaut : false |
| activeCall.Participants.nom | Chaîne | Nom du participant. |
| activeCall.Participants.requestACW | Booléen | Pour le cas d’utilisation d’agent uniquement : valide uniquement lorsqu’il s’agit d' activeCall.currentParticipant.actor « agent ». Marqueur indiquant si le participant doit assurer le suivi auprès du client. Valeurs valides :
Valeur par défaut : false |
| activeCall.Participants.requireWrapup | Booléen | Pour le cas d’utilisation d’agent uniquement : valide uniquement lorsqu’il s’agit d' activeCall.currentParticipant.actor « agent ». Marqueur indiquant s’il faut afficher le composant Récapitulatif une fois l’appel terminé. Valeurs valides :
Valeur par défaut : false |
| activeCall.Participants.état | Chaîne | État de la jambe d’appel du participant. Apparaît sous le numéro de téléphone dans le composant Appel actif . Il peut s’agir de n’importe quel texte significatif, tel que :
|
| activeCall.type | Chaîne | Type d’appel. Valeurs valides :
|
| idleState | Objet | Décrit le contexte de l’état d’inactivité de l’agent. Ces données de contexte déterminent les informations qui apparaissent sur le pavé de numérotion lorsqu’un agent est en attente d’un appel et les options dont il dispose via ce pavé de numérotation. |
| idleState.capability | Objet | Description des options de l’état d’inactivité de l’utilisateur actuel. |
| idleState.capability.globalContactSerarch | Booléen | Marqueur indiquant s’il faut afficher la liste de contacts globale lorsqu’elle est à l’état inactif. Valeurs valides :
Valeur par défaut : false |
| idleState.capability.logOut | Booléen | Marqueur indiquant si l’utilisateur peut se déconnecter lorsqu’il est dans l’état inactif. Valeurs valides :
Valeur par défaut : false |
| idleState.capability.outBoundCall | Booléen | Marqueur indiquant si l’utilisateur peut passer un appel sortant lorsqu’il est à l’état inactif. Valeurs valides :
Valeur par défaut : false |
| idleState.currentInboundId | Chaîne | Identificateur entrant de l’application du fournisseur utilisé pour créer l’interaction de l’appel sortant. Table : située dans le champ ID de la table Identités des canaux des fournisseurs [sys_cs_provider_application]. Par défaut : application du fournisseur du système de base |
| idleState.dialpadInfoMessage | Objet | Détails sur le message d’information à afficher sur le pavé de numérotation de l’utilisateur, comme la file d’attente actuellement sélectionnée.Dans l’exemple suivant, le est File d’attentelabel sélectionnée : et le value est Demandes des clients. Vous pouvez également utiliser simplement le label ou le paramètre avec File valued’attente sélectionnée : demandes des clients. |
| idleState.dialpadInfoMessage.d’étiquette | Chaîne | Étiquette de forme libre à afficher sur le pavé de numérotation. |
| idleState.dialpadInfoMessage.value (valeur) | Chaîne | Texte de message de forme libre à afficher après l’étiquette sur le pavé de numérotation. |
| idleState.enableState | Objet | Détails sur l’état d’activation des boutons sur le pavé de numérotation. |
| idleState.enableState.Déconnexion | Booléen | Marqueur indiquant s’il faut activer le bouton de déconnexion dans l’interface utilisateur lors de l’état inactif. Valeurs valides :
Valeur par défaut : false |
| idleState.enableState.outBoundCall | Booléen | Marqueur indiquant s’il faut activer le bouton d’appel sortant dans l’interface utilisateur lorsqu’il est à l’état inactif. Valeurs valides :
Valeur par défaut : false |
| offerContext | Objet | Détails sur le contexte d’offre du participant actuel pour la résilience. |
| offreContexte.affectation | Objet | Détails sur l’affectation de l’agent. |
| offerContext.assignment. allowedToDecline | Booléen | Requis. Marqueur indiquant si l’agent est autorisé à refuser l’affectation. Valeurs valides :
Valeur par défaut : false |
| offerContext.assignment. enableAutoAssign | Booléen | Requis. Marqueur indiquant si un agent reçoit automatiquement l’affectation. Valeurs valides :
Valeur par défaut : false |
| offerContext.assignment. offerOn | Chaîne | Date à laquelle l’offre a été faite au format UTC (Www, jj Mmm aaaa HH :mm :ss GMT). |
| offerContext.assignment. délai d’expiration | Chaîne | Délai en millisecondes à affecter à un agent avant le délai d’expiration. |
| offerContext.creationTime | Chaîne | Facultatif. Date et heure de création de l’appel au format UTC (AAAA-MM-JJTHH :MM :SS). |
| offerContext.description | Chaîne | Facultatif. Description de l’offre. |
| offerContext.displayContent | Objet | Facultatif. Valeurs de charge utile JSON uniques représentant les valeurs affichées à l’écran. |
| offerContext.externalId | Chaîne | Valeur unique qui identifie l’appel actif actuel sur le système externe associé. |
| offerContext.isResilient | Booléen | Facultatif. Marqueur indiquant si le contexte de l’offre est résilient. Valeurs valides :
Par défaut : true |
| offreContexte.métadonnées | Objet | Facultatif. Valeurs de charge utile JSON personnalisées de forme libre. |
| offerContext.nowRecordId | Chaîne | Requis. Sys_id de l’enregistrement de l’appel actif. Table : interaction [interaction] Option prise en charge uniquement pour le système de base. |
| offerContext.nowRecordTable | Chaîne | Facultatif. Utilisez cette propriété pour définir l’élément de travail et le segment pour les transferts. |
| offerContext. providerAppInboundId | Chaîne | Facultatif. ID unique du fournisseur tiers entrant. |
| offerContext.ID de file d’attente | Chaîne | Requis pour les affectations régulières (sans transfert). ID unique représentant la file d’attente d’affectation. Utilisez la propriété pour les transferContent.targetId affectations de transfert. |
| offerContext.requesterId | Chaîne | Requis. ID unique du demandeur de l’offre. Pour les fonctions vocales, cette valeur peut être le numéro de téléphone de l’utilisateur. |
| offerContext.transferContent | Objet | Détails requis pour les affectations de transfert. |
| offerContext.transferContent. sourceQueueId | Chaîne | ID sys_id ou externe de la file d’attente d’affectation. |
| offerContext.transferContent. targetId | Chaîne | ID sys_id ou externe du transfert de file d’attente. |
| offerContext.transferContent. targetType | Chaîne | Type de cible de transfert. Valeurs valides :
|
| offerContext.transferContent. transferType | Chaîne | Type de transfert. Valeurs valides :
|
| offerContext.type | Chaîne | Type d’appel. Valeurs valides :
|
| searchTargetList | Tableau d'objets | Détails contextuels des données associées au transfert pour une ServiceNow table. |
| searchTargetList.ID externe | Chaîne | Identificateur unique de l’appel associé sur le système CCaaS. |
| searchTargetList.nowRecordId | Chaîne | Requis. Sys_id de l’enregistrement auquel searchTargetList appartient. Remarque : Seuls les enregistrements de la table Interaction [interaction] sont actuellement pris en charge. |
| searchTargetList.nowRecordTable | Chaîne | Requis. ServiceNow table à laquelle searchTargetList appartient. Table : seule valeur valide : |
| searchTargetList.ID du participant | Chaîne | Identificateur unique pour le participant à partir du système CCaaS. |
| searchTargetList.quickStats | Tableau d'objets | Facultatif. S’applique uniquement aux entrées de l’agent. Liste des descripteurs d’état affichés en ligne dans la ligne de l’agent pour fournir des informations sur l’état de l’agent.Exemple de rendu : |
| searchTargetList.quickStats.label | Chaîne | Étiquette d’état affichée dans la ligne de l’agent. |
| searchTargetList.quickStats.value | Chaîne | Valeur facultative ajoutée à l’étiquette. |
| searchTargetList.Cibles | Tableau d'objets | Détails sur les agents, les utilisateurs externes et/ou les files d’attente vers lesquels l’appel peut être transféré. |
| searchTargetList.Cibles.charge utile | Objet | Détails sur les informations à afficher dans le contrôle de transfert d’appel. Voici un exemple de contrôle d’appel de transfert qui contient une liste d’agents auxquels l’appel peut être transféré. La capture d’écran montre les éléments de l’interface utilisateur contrôlés par chaque paramètre dans le list.payload cadre. Cet exemple montre la charge utile d’un agent (« L’exemple suivant montre un exemple de charge utile de file d’attente (« |
| searchTargetList.Cibles.charge utile.liste | Tableau d'objets | Détails sur la charge utile pour chaque type de cible. |
| searchTargetList.Cibles.charge utile.liste.hasStats | Booléen | Marqueur indiquant si la cible associée possède des statistiques supplémentaires telles qu’un temps d’attente dans une file d’attente. Valeurs valides :
Valeur par défaut : false |
| searchTargetList.Cibles.charge utile.liste.id | Chaîne | Identificateur unique de l’agent ou de la file d’attente dans le système CCaaS. |
| searchTargetList.Cibles.charge utile.liste.moreInfo | Tableau d'objets | Requis si searchTargetList.targets.payload.list.hasStats est défini sur « vrai ». Liste des compétences dont dispose l’agent ou la file d’attente. Ces informations apparaissent dans une fenêtre contextuelle lorsque l’utilisateur sélectionne l’icône d’informations à la fin du nom de l’entité. |
| searchTargetList.Cibles.charge utile.liste.plus d’informations.étiquette | Chaîne | Étiquette de forme libre pour les informations à afficher dans la fenêtre contextuelle, telles qu’une compétence ou une langue. |
| searchTargetList.Cibles.charge utile.liste.plus d’informations.valeur | Chaîne | Texte à afficher dans la fenêtre contextuelle après l’étiquette, tel que Certifié CRM ou Allemand. |
| searchTargetList.Cibles.charge utile.liste.nom | Chaîne | Nom de l’agent, de l’utilisateur externe ou de la file d’attente. Situé dans le système CCaaS. |
| searchTargetList.Cibles.charge utile.liste.présence | Chaîne | État de présence de l’agent associé. Ce paramètre n’est valide que pour un searchTargetList.targets.typede « agent ».Valeurs valides :
|
| searchTargetList.Cibles.transferSubtypes | Tableau d'objets | Détails sur le type de transfert pris en charge pour le searchTargetList.targets.typespécifié. Ces informations s’affichent lorsque l’utilisateur clique sur le point de suspension en regard du nom de la cible dans l’interface utilisateur. Par exemple, si seul un type de consultation est pris en charge pour le type cible actuel, par exemple file d’attente, ce tableau contiendra un objet pour indiquer le type de consultation du transfert. |
| searchTargetList.Cibles.transferSubtypes.id | Chaîne | Identificateur du sous-type de transfert. Valeurs valides :
Cela doit correspondre à la valeur de searchTargetList.targets.transferSubtypes.label. |
| searchTargetList.Cibles.transferSubtypes.étiquette | Chaîne | Étiquette du sous-type de transfert. Si vous ne transmettez pas d’étiquette, rien n’apparaît dans l’interface utilisateur pour le sous-type de transfert. Valeurs valides :
Cela doit correspondre à la valeur de searchTargetList.targets.transferSubtypes.id. |
| searchTargetList.Cibles.type | Chaîne | Type de cible. Valeurs valides :
|
| searchTargetList.targetTypes | Tableau de chaînes | Facultatif. Spécifie les onglets à afficher dans le composant Répertoire téléphonique en fonction de l’interaction donnée.Valeurs acceptées :
Par défaut : les trois onglets sont affichés. |
| Type | Chaîne | Type de données de contexte à définir. Valeurs valides :
|
| Type | Description |
|---|---|
| Néant | |
| Erreur (offerContext) | Messages d’erreur associés à l’objet utilisé pour la offerContext résilience. Pour afficher ces messages, utilisez la méthode subscribe() pour vous abonner à l’événement openframe_awa_client_offer . Les valeurs de contexte sont représentées comme suit :
|
L’exemple de code suivant montre comment définir le contexte de l’état actif.
openFrameAPI.setICContext("activeCall", {
"activeCall": [
{
"nowRecordTable": "interaction",
"nowRecordId": "12345675678903456",
"externalId": "1234567890",
"type": "call",
"direction": "inbound",
"currentParticipant": {
"id": "participant1",
"name": "John 1",
"actor": "agent",
"state": "connected",
"connectedTime": "Fri, 12 Jul 2024 05:23:41 GMT",
"callStartTime": "Fri, 12 Jul 2024 04:20:22 GMT",
"muted": false,
"held": true,
"paused": true,
"flagged": true,
"recording": "in_progress",
"capabilities": {
"hold": false,
"mute": true,
"endCall": true,
"startRecording": true,
"pauseRecording": true,
"stopRecording": true,
"resumeRecording": true,
"transfer": true,
"mergeCall": true,
"leaveAndTransfer": true,
"dtmf": true,
"flag": true
}
},
"participants": [
{
"id": "customer1",
"name": "Gilly 1",
"actor": "customer",
"address": "+18582359874",
"ani": "+16193287356",
"dnis": "+18004346258",
"state": "connected",
"connectedTime": "Fri, 12 Jul 2024 00:23:41 GMT",
"callStartTime": "Fri, 12 Jul 2024 20:55:04 GMT",
"muted": false,
"held": false,
"heldAtTime": "Fri, 12 Jul 2024 20:55:04 GMT",
"capabilities": {
"mute": true,
"hold": true,
"endCall": true
}
},
{
"id": "agent2",
"name": "Ned",
"actor": "agent",
"address": "+3134787324",
"ani": "+13134787324",
"dnis": "+14773286943",
"state": "Ringing...",
"requireWrapup": true,
"requestACW": true,
"connectedTime": "Fri, 12 Jul 2024 20:24:41 GMT",
"callStartTime": "Fri, 12 Jul 2024 20:56:34 GMT",
"muted": true,
"held": true,
"heldAtTime": "Fri, 12 Jul 2024 20:55:41 GMT",
"capabilities": {
"mute": true,
"endCall": true,
"hold": true
}
}
]
},
{
"nowRecordTable": "interaction",
"nowRecordId": "12345yhedfh534576u5",
"externalId": "1234567890",
"type": "call",
"direction": "inbound",
"currentParticipant": {
"id": "participant1",
"name": "John 1",
"actor": "agent",
"state": "connected",
"muted": true,
"held": false,
"recording": "in_progress",
"paused": true,
"flagged": true,
"capabilities": {
"hold": false,
"mute": true,
"endCall": true,
"record": true,
"startRecording": true,
"stopRecording": true,
"transfer": true,
},
"mergeCall": false,
"dtmf": true,
"flag": true
}
},
"participants": [
{
"id": "customer1",
"name": "Gilly 2",
"actor": "customer",
"address": "+123456789",
"state": "connected",
"connectedTime": "Wed, 04 Dec 2024 00:23:41 GMT",
"muted": true,
"held": false,
"heldAtTime": "Fri, 12 Jul 2024 20:24:41 GMT”,
"capabilities": {
"mute": true,
"hold": true,
"endCall": true
}
},
{
"id": "agent2",
"name": "Ned 2",
"actor": "agent",
"address": "+123456789",
"state": "Ringing...",
"connectedTime": "Fri, 12 Jul 2024 20:24:41 GMT",
"muted": true,
"held": true,
"heldAtTime": "Fri, 12 Jul 2024 20:24:41 GMT”,
"capabilities": {
"mute": true,
"endCall": true,
"hold": true
}
}
]
}
]
}
);
L’exemple suivant montre comment définir le contexte de l’état d’inactivité.
openFrameAPI.setICContext("idleState", {
"capability": {
"outBoundCall": true,
"logOut": true
},
"enableState": {
"outBoundCall": true,
"logOut": true
},
"dialpadInfoMessage": {
"label": "Info Message Label",
"value": "Info Message Value"
},
"currentInboundId": "1234"
});
L’exemple suivant montre comment définir le contexte de la liste cible de recherche.
openFrameAPI.setICContext("searchTargetList",
{
"searchTargetList": [
{
"nowRecordTable": "interaction",
"nowRecordId": "1234",
"externalId": "5678",
"participantID": "participant1”,
“targetTypes”: [“agent”, “queue”],
"targets": [
{
"type": "agent",
"transferSubtypes": [
{
"id": "consult",
"label": "Consult"
},
{
"id": "blind",
"label": "Blind"
}
],
"payload": {
"list": [
{
"name": "John Jason",
"id": "agent1Id",
"hasStats": true,
"presence": "away",
"moreInfo": [
{
"label": "Skill",
"value": "10sec"
}
]
}
]
}
},
{
"type": "queue",
"transferSubtypes": [
{
"id": "consult",
"label": "Consult"
},
{
"id": "blind",
"label": "Blind"
}
],
"payload": {
"list": [
{
"name": "Product Support Queue",
"id": "queue1Id",
"hasStats": true,
"moreInfo": [
{
"label": "Skill",
"value": "10sec"
},
{
"label": "Queue Skill",
"value": "German"
}
]
},
{
"name": "Billing Queue",
"id": "queue2Id",
"hasStats": true,
"moreInfo": [
{
"label": "Skill",
"value": "10sec"
}
]
}
]
}
}
],
"customPayload": {}
}
],
"customPayload": {}
});
openFrameAPI.setICContext('activeCall', callbackContext);
var callbackContext = {
"activeCall": [
{
"nowRecordTable": "Customer interaction",
"nowRecordId": "12345yhedfh534576u5",
"externalId": "1234567890",
"type": "callback",
"currentParticipant": {
"id": "agent1",
"capabilities": {
"initiateCall": true,
"closeCallback": true,
"transfer": true,
"cancelCallbackTransferEligible": false,
"callbackTransferStatus": ""
}
},
"callbackContext": {
"customerName": "Fred Luddy",
"callbackNumbers": [
"8665551234"
],
"callAttemptedByAgent": true,
"closeInEndTime": "Mon, 05 Dec 2024 09:25:08 GMT",
"dialInEndTime": ""
}
}
]
}L’exemple suivant montre comment définir les détails de réponse à l’appel de résilience à l’aide de la propriété offerContext.
// Set offerContext
openFrameAPI.setICContext('offerContext', offerContext);
var offerContext = {
"offerContext": [
{
"nowRecordTable": "interaction",
"type": "phone",
"externalId": "1234567890",
"externalSegmentId": "12345yhedfh534576u5",
"queueId": "10111ad087063250df52fe66cebb3520",
"creationTime": "19-12-2025 11:23:45",
"requesterId": "4085018550",
"assignment": {
"offeredOn": "Fri, 19-12-2025 13:07:59",
"timeout": "4000",
"allowedToDecline": true,
"enableAutoAssign": true
},
"displayContent": {
"title": "Phone",
"displayContent1": "Abel Tuter",
"displayContent2": "Priority - 4-Low",
"displayContent3": "category - Product Issue"
}
}
]
};
openFrameAPI : setIcons(icônes de tableau)
Définit les icônes dans l’en-tête OpenFrame qui sont placées à côté de l’icône de fermeture.
| Nom | Type | Description |
|---|---|---|
| icônes | Tableau d’objets | Liste des configurations d’icônes, où chaque configuration d’icône est un objet avec des valeurs imageURLclés, imageTitleet tout autre contexte nécessaire. Taille maximale : les icônes peuvent être d’un maximum de 16x16 pixels. Les images plus grandes sont automatiquement ajustées à ce maximum. |
| Type | Description |
|---|---|
| nul |
openFrameAPI.setIcons([{imageURL:'https://mydomian.com/image/mute.png',
imageTitle:'mute', id:101}, {imageURL:'https://mydomian.com/image/hold.png',
imageTitle:'hold', id:102}]);
openFrameAPI : setPresenceIndicator(présence)
Définit l’indicateur de présence pour afficher la disponibilité de l’agent dans un espace de travail.
Pour plus d’informations sur la configuration d’OpenFrame, consultez Créer une configuration OpenFrame
| Nom | Type | Description |
|---|---|---|
| État | Chaîne | État de présence de l’agent. États par défaut :
Vous pouvez également spécifier des états personnalisés. |
| couleur | Chaîne | Couleur de l’indicateur de présence sur l’espace de travail. Couleurs prises en charge :
|
| Type | Description |
|---|---|
| nul |
openframeAPI.setPresenceIndicator('Available', 'green');
openFrameAPI : setSize (largeur du nombre, hauteur du nombre)
Définit la taille OpenFrame.
| Nom | Type | Description |
|---|---|---|
| largeur | Numéro | Doit être supérieur à zéro. |
| hauteur | Numéro | Doit être supérieur à zéro. |
| Type | Description |
|---|---|
| nul |
openFrameAPI.setSize(300, 370);
openFrameAPI : setSubtitle(String subTitle)
Définit le sous-titre OpenFrame.
| Nom | Type | Description |
|---|---|---|
| subTitle | Chaîne | Une chaîne de 256 caractères ou moins. |
| Type | Description |
|---|---|
| nul |
openFrameAPI.setSubtitle('+18888888888');
openFrameAPI : setTitle(Titre de chaîne)
Définit le titre OpenFrame.
| Nom | Type | Description |
|---|---|---|
| Titre | Chaîne | Une chaîne de 256 caractères ou moins. |
| Type | Description |
|---|---|
| nul |
openFrameAPI.setTitle('Incoming Call');
openFrameAPI : setTitleIcon(icône d’objet)
Définit l’icône de titre d’OpenFrame.
| Nom | Type | Description |
|---|---|---|
| icône | Objet | Objet des paires clé-valeur. Les clés incluent imageURL, imageTitleet tout autre contexte nécessaire. Taille maximale : les icônes peuvent être d’un maximum de 16x16 pixels. Les images plus grandes sont automatiquement ajustées à ce maximum. |
| Type | Description |
|---|---|
| nul |
openFrameAPI.setTitleIcon({imageURL:'/my/image/path.png', imageTitle:'mute', id:101});
openFrameAPI.setTitleIcon({imageURL:'https://mydomian.com/image/path.png',
imageTitle:'mute', id:101});
openFrameAPI : toastMessage(Message de chaîne, Type de chaîne, Durée du numéro)
Affiche un message d’alerte.
| Nom | Type | Description |
|---|---|---|
| message | Chaîne | Message à afficher dans l’alerte. |
| type | Chaîne | Type de message. Valeurs possibles :
|
| durée | Numéro | Facultatif. Durée d’affichage du message avant qu’il ne soit automatiquement rejeté. Unités : millisecondes Par défaut : le message s’affiche jusqu’à ce qu’il soit fermé manuellement. |
| Type | Description |
|---|---|
| Néant |
Cet exemple affiche les messages d’information, d’avertissement et d’erreur.
openFrameAPI.toastMessage("Testing info message", "info", 10000); //display for 10 seconds
openFrameAPI.toastMessage("Testing warning message", "warning"); //display until manually closed
openFrameAPI.toastMessage("Testing error message", "error");
openFrameAPI : setWidth(largeur)
Définit la largeur OpenFrame.
| Nom | Type | Description |
|---|---|---|
| Largeur | Numéro | Largeur en pixels |
| Type | Description |
|---|---|
| nul |
openFrameAPI.setWidth(100);
openFrameAPI : show()
Rend l’OpenFrame visible dans le TopFrame.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| nul |
openFrameAPI.show()
openFrameAPI - subscribe(événement openFrameAPIEVENT, fonction eventCallback)
S’abonne à un événement spécifié.
| Nom | Type | Description |
|---|---|---|
| event | openFrameAPIEVENT | L’événement auquel souscrire :
|
| eventCallback | function | Fonction à appeler lorsque l’événement spécifié se produit. |
| Type | Description |
|---|---|
| résultats | La plupart des abonnements à des événements n’ont aucune valeur de retour. Les abonnements à l’événement qui renvoient des valeurs sont décrits dans les entrées de table suivantes. |
| openframe_awa_agent_presence | Dans AWA, l’événement openframe_awa_agent_presencerenvoie l’objet presence :presence : Informations sur la présence actuelle, l’état et le canal d’un agent.
|
| openframe_awa_workitem_accepted et openframe_awa_workitem_offered | Dans AWA, les openframe_awa_workitem_accepted événements et openframe_awa_workitem_offered renvoient l’objet workItem :workItem: informations sur l’élément de travail associé à l’événement.
|
| openframe_awa_workitem_rejected | Dans AWA, l’événement openframe_awa_workitem_rejected renvoie l’objet workItem :workItem: informations sur l’élément de travail associé à l’événement.
|
| openframe_heart_beat | L’événement openframe_heart_beat renvoie l’objet suivant :
|
| openframe_wrap_up_submitted | L’événement openframe_wrap_up_submitted renvoie l’objet suivant :
|
L’exemple de code suivant montre comment appeler cette méthode pour un événement openframe_awa_agent_presence .
function handleIconClick(context) {
console.log("Icon was clicked", context);
}
openFrameAPI.subscribe(openFrameAPI.events.openframe_awa_agent_presence, handleIconClick);
Sortie :
// Sample presence object output
// openframe_awa_agent_presence event only
{
"result":{
"presence":{
"name":"Available",
"sys_id":"27f675e3739713004a905ee515f6a7c3",
"available":true,
"channels":[
{
"name":"Chat",
"available":true,
"sys_id":"36f675e4239713124a905fe515f6a832",
"restrict_update":false
},
{
"name":"Phone",
"available":true,
"sys_id":"9378a530a1820610f809018efd9bc01e",
"restrict_update":false
}
]
}
}
}
L’exemple de code suivant montre comment appeler cette méthode pour un événement openframe_awa_workitem_accepted .
function handleIconClick(context) {
console.log("Icon was clicked", context);
}
openFrameAPI.subscribe(openFrameAPI.events.openframe_awa_workitem_accepted, handleIconClick);
Sortie :
// Sample workItem object output
// openframe_awa_workitem_accepted event only
{
"result": {
"workItem": {
"sys_id": "14c86c40a1650610f87701807d9bc0be",
"size": 1,
"serviceChannel": {
"name": "Chat",
"sys_id": "27f675e3739713004a905ee515f6a7c3"
},
"document": {
"sys_id": "aa582040a1650610f87701807d9bc076",
"table": "interaction"
},
"previousWorkItem": "7c78a440a1650610f87701807d9bc02b",
"isQueueTransferred": true,
"isAutoAccepted": true
}
}
}
L’exemple de code suivant montre comment appeler cette méthode pour un événement openframe_awa_workitem_rejected .
function handleIconClick(context) {
console.log("Icon was clicked", context);
}
openFrameAPI.subscribe(openFrameAPI.events.openframe_awa_workitem_rejected, handleIconClick);
Sortie :
// Sample workItem object output
// openframe_awa_workitem_rejected event only
{
"payload": {
"workItem": {
"sys_id": "2c3bdc4824250610f8775e73b116f8de",
"size": "1",
"serviceChannel": {
"name": "Chat",
"sysID": "27f675e3739713004a905ee515f6a7c3"
},
"document": {
"sys_id": "cf0a180824250610f8775e73b116f80c",
"table": "interaction"
},
"rejection": {
"reason": "Busy",
"sys_id": "4e93fa29b38023002e7b6e5f26a8dc20"
},
"previousWorkItem": "831b9c4824250610f8775e73b116f841",
"isQueueTransferred": true
}
}
}
L’exemple suivant montre comment s’abonner à l’événement interaction_control_action .
openFrameAPI.subscribe("interaction_control_action", function(action) {
// Can perform the action based on the name
if (action.name == "mute") {
mute();
openFrameAPI.setICContext("activeCall", context); // Update context representing the change
} else if (action.name == "getSearchTarget") {
action.payload.searchType == "queue" ? fetchQueueTransferList(action.payload.searchTerm) : fetchAgentTransferList(action.payload.searchTerm);
openFrameAPI.setICContext("searchTargetList", context); // Call context will have the transfer list
} else if (action.name == "logout") {
logout();
openFrameAPI.showIframe(); // Show iframe api
}
});
openFrameAPI : version()
Renvoie la version de l’API OpenFrame.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| Chaîne | Version de l’API OpenFrame |
var version = openFrameAPI.version();
console.log("API version " + version);