CustomEvent
This help page is for Desktop Studio. This information is also available for Studio.
|
|
Crea un evento personalizado a través del cual puedes enviar datos únicos como una cadena a un agente específico. Se pueden generar en respuesta a una acción relacionada con el agente, como OnAnswer. También se pueden generar antes de que se asigne un agente, siempre que TargetAgent se haya rellenado en las propiedades de esta acción. El evento personalizado generado entra a la transmisión del evento del agente. Para recibir un evento personalizado, únase a la sesión del agente para escuchar los eventos, por ejemplo, usando el paradigma obtener-el-siguiente-evento. Los eventos personalizados son útiles si los eventos existentes no terminan de encajar en su caso de uso. |
Tipos de scripts compatibles
|
|
|
|
|
|
|
|
|
Generic |
Chat | Phone | Voicemail | Work Item | SMS |
Propiedades de entrada
Estas propiedades definen los datos que utiliza la acción al ejecutarse.
|
Las propiedad |
Descripción |
|---|---|
| Caption |
Ingrese una frase corta que identifique de forma única esta acción en el script. La leyenda aparece en el lienzo del script debajo del ícono de acción. |
| TargetAgent |
El ID del agente al que está destinado el evento personalizado. El script de Studio rellena la variable AgentId después del evento OnAnswer para una llamada entrante. El evento personalizado sólo se ejecuta cuando se rellena AgentId. Si desea enviar un evento personalizado antes de la asignación del agente, debe proporcionar un ID de agente en el campo TargetAgent. |
| EventName |
Introduce el nombre que le das al evento personalizado. Múltiples eventos con el mismo nombre se sobrescriben entre sí. Solo se conserva el nombre del evento más reciente. Este campo distingue entre mayúsculas y minúsculas. |
| PersistInMemory |
Si un evento se ejecuta cuando un agente está desconectado y usted desea que reciba el evento cuando vuelva a iniciar sesión, defina este valor como true. De lo contrario, defínalo como false. |
| Data |
Carga útil de datos para este evento. |
Condiciones de la rama de resultados
Las condiciones de las ramas de resultados le permiten crear ramas en su script para manejar diferentes resultados cuando se ejecute una acción.
|
Condición |
Descripción |
|---|---|
| Default | Recorrido a menos que el script cumple una condición que requiere uno de los otros poderes. También se considera si no están definidas las demás ramas de la acción. |
| OnAgentNotConnected | Ruta tomada si el agente de destino no está conectado. |
Ejemplo de secuencia de comandos
Este es un ejemplo para demostrar cómo se puede utilizar esta acción en los scripts. No pretende ser un script completo. Es posible que se requiera programación adicional.
En este script de ejemplo, las ramas ejemplifican tres escenarios en los que usted generaría un evento personalizado:
-
Rama 1: Iniciar y recibir un evento personalizado antes de cualquier interacción del agente. El evento personalizado lo recibe el bucle de get-custom-event cuando un contacto pulsa 1.
Ver carga útil de ejemplo
{ "sessionId": "aUF6WkZJeW1nNno4NUp1eEhwZkxGdVgzaUJIRjIyMWlkaUQ2NkN0ejN0VkFyODQ4UFBZV3BiOVhRUT09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 1" } ] } -
Rama 2: Iniciar y recibir un evento personalizado antes de cualquier interacción del agente. El evento personalizado lo recibe el bucle de get-custom-event cuando un contacto pulsa 2. Además, se genera otro evento personalizado después de que se activa Reqagent y antes de que el agente responda la llamada.
Ver carga útil de ejemplo
Carga útil antes de cualquier interacción del agente:
{ "sessionId": "NGVFOEd4UmJIdnlGWCtLblFEanRRSldtU2hDcXgxc1JhSUVHZ0NKNXdBSVRxa0F3MjhiOCtQM2E=", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 2" { ] }Carga útil después de que se activa Reqagent y antes de que el agente responda la llamada:
{ "sessionId": "NGVFOEd4UmJIdnlGWCtLblFEanRRSldtU2hDcXgxc1JhSUVHZ0NKNXdBSW4xeThiR0M2R1FBYlBhZz09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 2 and post reqAgent" { ] } -
Ramas 2 y 3: Iniciar y recibir un evento personalizado después de que el agente responde la llamada.
Ver carga útil de ejemplo
{ "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" } ] }
Crear eventos personalizados mediante 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
Respuesta de voz interactiva. menú telefónico automatizado que los contactos utilizan mediante voz o entradas de teclado para obtener información, enrutar una llamada de voz entrante, o ambas cosas.. 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. |