CustomEvent
Cette page d'aide concerne Desktop Studio. Ces informations sont également disponibles pour Studio.
|
|
Crée un événement personnalisé via lequel vous pouvez fournir des données uniques sous forme de chaîne à un agent spécifique. Ils peuvent être générés en réponse à une action liée à l'agent telle que OnAnswer. Ils peuvent également être générés avant l'affectation d'un agent, à condition que TargetAgentsoit renseigné dans les propriétés de cette action. L'événement personnalisé généré entre dans le flux d'événements de l'agent. Pour recevoir un événement personnalisé, rejoignez la session de l'agent pour écouter les événements, par exemple en utilisant le paradigme get-next-event. Les événements personnalisés sont utiles si les événements existants ne correspondent pas tout à fait à votre cas d'utilisation. |
Types de scripts pris en charge
|
|
|
|
|
|
|
|
|
Générique |
Conversation | Téléphone | Messagerie vocale | Élément de travail | SMS |
Propriétés d'entrée
Ces propriétés définissent les données que l'action utilise lors de son exécution.
|
Propriété |
Description |
|---|---|
| Caption |
Entrez une courte phrase qui identifie cette action dans le script de manière unique. La légende est affichée sur le canevas de script sous l’icône de l’action. |
| TargetAgent |
L'ID de l'agent visé par l'événement personnalisé. Le script Studio remplit la variable AgentId après l'événement OnAnswer pour un appel entrant. L'événement personnalisé ne s'exécute que lorsque le AgentId est renseigné. Si vous souhaitez envoyer un événement personnalisé avant l'affectation de l'agent, vous devez indiquer l'ID de l'agent dans le champ TargetAgent. |
| EventName |
Entrez le nom de l'événement personnalisé. Plusieurs événements portant le même nom se remplaceront. Seul le nom de l'événement le plus récent est conservé. Ce champ est sensible à la casse. |
| PersistInMemory |
Si un événement est exécuté lorsqu'un agent est déconnecté et que vous souhaitez qu'il reçoive l'événement lorsqu'il se reconnecte, définissez cette valeur à true. Sinon, définissez comme false. |
| Data |
Données utiles pour cet événement. |
Conditions de branche résultantes
Les conditions de branche de résultat vous permettent de créer des branches dans votre script afin de gérer différents résultats lors de l'exécution d'une action.
|
Condition |
Description |
|---|---|
| Default | Path taken unless the script meets a condition that requires it to take one of the other branches. It is also taken if the action's other branches are not defined. |
| OnAgentNotConnected | Chemin emprunté si l'agent de destination n'est pas connecté. |
Exemple de script
Cet exemple montre comment cette action peut être utilisée dans les scripts. Il ne s'agit pas d'un script complet. Un script supplémentaire peut être nécessaire.
Dans cet exemple de script, les branches illustrent trois scénarios dans lesquels vous générez un événement personnalisé :
-
Branche 1 : initiation et réception d'un événement personnalisé avant toute interaction avec un agent. L'événement personnalisé est reçu par la boucle get-custom-event lorsqu'un contact appuie sur 1.
Afficher l'exemple de charge utile
{ "sessionId": "aUF6WkZJeW1nNno4NUp1eEhwZkxGdVgzaUJIRjIyMWlkaUQ2NkN0ejN0VkFyODQ4UFBZV3BiOVhRUT09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 1" } ] } -
Branche 2 : initiation et réception d'un événement personnalisé avant toute interaction avec un agent. L'événement personnalisé est reçu par la boucle get-custom-event lorsqu'un contact appuie sur 2. De plus, un autre événement personnalisé est créé après le déclenchement de Reqagent et avant que l'agent ne réponde à l'appel.
Afficher l'exemple de charge utile
Charge utile avant toute interaction avec l'agent :
{ "sessionId": "NGVFOEd4UmJIdnlGWCtLblFEanRRSldtU2hDcXgxc1JhSUVHZ0NKNXdBSVRxa0F3MjhiOCtQM2E=", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 2" { ] }Charge utile après le déclenchement de Reqagent et avant que l'agent ne réponde à l'appel :
{ "sessionId": "NGVFOEd4UmJIdnlGWCtLblFEanRRSldtU2hDcXgxc1JhSUVHZ0NKNXdBSW4xeThiR0M2R1FBYlBhZz09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 2 and post reqAgent" { ] } -
Branches 2 et 3 : initiation et réception d'un événement personnalisé après qu'un agent a répondu à l'appel.
Afficher l'exemple de charge utile
{ "sessionId": "aktmZEY1aFpDWlVwM0FzenhzTHZ2TnhJanpsZjR5SXhsekYwaUN2TjFYbUcwOW82cjRsZVdIc1FKdz09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "Type": "CallContactEvent", "ContactID": "510965166955", "MasterID": "510965166955", "Status": "Active", "OriginalState": "False", "CallType": "Regular", "DNIS": "", "ANI": "", "Skill": "23097992", "IsInbound": "True", "StartTimeUTC": "2024-07-12T15:46:38.000Z", "StartTime": "2024-07-12T15:46:38.000Z", "LastStateChangeTimeUTC": "2024-07-12T15:47:11.000Z", "LastStateChangeTime": "2024-07-12T15:47:11.000Z", "ScreenPopUrl": "", "DisconnectCode": "NA", "IsLogging": "False", "Timeout": "", "AllowDispositions": "True", "Label": "", "IsLinked": "False", "TimeZones": "", "FinalState": "False", "OtherInformation": "", "OtherInformationNewFormat": "", "BlendingToSkillName": "", "DeliveryType": "None", "CustomData": "", "ComplianceRecord": "False", "ConfirmationRequired": "False", "ParentContactId": "0", "OmniGroupId": "0", "ExternalId": "", "AnsMachineOverride": "False", "AnsMachineOverrideEndTime": "", "CustomerCardUrl": "", "InteractionId": "6a006eee-03d3-49fd-8aa9-614482684721", "IsRequireManualAccept": "False", "PhoneCallRefusalTimeOut": "45", "FaxMachineOveride": "False" }, { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "This is a sample message after onAnswer" }, { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "Type": "Mute", "AgentMuted": "True" } ] }
Créer des événements personnalisés via l'API
You can also create a custom event with the custom-event API
. This may be necessary if the CustomEvent action does not meet the requirements of your use case. Because services typically already consume the agent event stream, this can be a convenient method of sharing data without needing to implement your own custom endpoint. This is particularly relevant for small scope apps or microservices.
You ask contacts their favorite color in the IVR
Réponse vocale interactive. Menu téléphonique automatisé que les contacts utilisent par la Voix ou par des touches pour obtenir des informations, acheminer un appel vocal entrant, ou les deux.. You package and pass this selection as a custom event named FavoriteColor. You also have a companion service running with your agent application that listens for the FavoriteColor event. This lets you pass the contact's color selection to the companion service. The service then displays the color inside the agent application.
Using the API is similar to the Studio action, except you use parameters instead of properties. Using NiCE CXone APIs also requires that you implement API authentication. When using the API, be sure to:
-
Name the event.
- Assign a target agent in the agentId parameter or Target Agent property of the Studio action. You can use the ID from the AgentId variable. This is automatically populated after the OnAnswer event. If you want to send a custom event before an agent is assigned, you must still supply an agent ID.
- Set the persistInMemory field. If the agent is logged out, this determines whether they will receive the event after logging back in.
- Populate the Data field, which is the payload as a string.
- Consume the custom event with the get-next-event API
or Get Next Event Studio action.
Below is an example of creating a custom event via API:
Example curl:
curl -X PUT "https://api-$AREA.$DOMAIN/incontactapi/services/v30.0/agents/$AGENT_ID/custom-event?eventName=From_Postman&persistInMemory=false&data=Sent_from_Postman"
Request Type: PUT
Fields:
| Parameter | Type | Details |
|---|---|---|
| agentId | String | The agent ID value that identifies the target agent. |
| eventName | String | The name of the event. This must be used by any consumers of the event. |
| persistInMemory | Boolean | If the agent identified by agentId is not currently logged in, the event will either be ignored or remain for the agent once they log back in. |
| data | String | Any string of data. |