CustomEvent
This help page is for Desktop Studio. This information is also available for CXone Studio.
|
Cria um evento personalizado por meio do qual você pode fornecer dados exclusivos. Os eventos personalizados permitem que os usuários passem uma string para um agente específico. Eles podem ser gerados em resposta a uma ação relacionada ao agente, como OnAnswer. Elas também podem ser geradas antes da atribuição de um agente, desde que TargetAgent seja preenchido nas propriedades dessa ação. O evento personalizado gerado entra no fluxo de eventos do agente. Para receber um evento personalizado, entre na sessão do agente para ouvir os eventos, por exemplo, usando o paradigma get-next-event. Os eventos personalizados são úteis se os eventos existentes não se adequarem ao seu caso de uso. |
Tipos de script suportados
|
|
|
|
|
|
|
Genérico |
Chat | Telefone | Correio de Voz | Item de Trabalho | SMS |
Propriedades de entrada
Estas propriedades definem dados que a ação usa durante a execução.
Propriedade |
Descrição |
---|---|
Caption |
Insira uma frase curta que identifica exclusivamente esta ação no script. A legenda aparece na tela do script no ícone da ação. |
TargetAgent |
A ID do agente ao qual o evento personalizado está direcionado. O script Studio preenche a variável AgentId após o evento OnAnswer para uma chamada de entrada. O evento personalizado só é executado quando o AgentId é preenchido. Se quiser enviar um evento personalizado antes da atribuição do agente, você deverá fornecer uma ID do agente no campo TargetAgent. |
EventName |
Digite seu nome para o evento personalizado. Vários eventos com o mesmo nome substituem uns aos outros. Apenas o nome do evento mais recente é mantido. Este campo faz distinção entre maiúsculas e minúsculas. |
PersistInMemory |
Se um evento for executado quando um agente estiver desconectado e você quiser que ele receba o evento assim que fizer login novamente, defina esse valor como true. Caso contrário, defina como false. |
Data |
Carga útil de dados para este evento. |
Condições de ramal resultante
Condições de ramal resultante permitem que você crie ramais no seu script para atender diferentes resultados quando uma ação é executada.
Condição |
Descrição |
---|---|
Default | Caminho percorrido, a menos que o script atenda a uma condição que exige que ele percorra um dos outros ramais. Também é percorrido se os outros ramais da ação não estiverem definidos. |
OnAgentNotConnected | Caminho percorrido se o agente de destino não estiver conectado. |
Exemplo de script
Neste exemplo de script, as ramificações exemplificam três cenários nos quais você geraria um evento personalizado:
-
Ramificação 1: iniciar e receber um evento personalizado antes de qualquer interação com o agente. O evento personalizado é recebido pelo loop get-custom-event quando um contato pressiona 1.
Exibir exemplo de carga útil{ "sessionId": "aUF6WkZJeW1nNno4NUp1eEhwZkxGdVgzaUJIRjIyMWlkaUQ2NkN0ejN0VkFyODQ4UFBZV3BiOVhRUT09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 1" } ] }
-
Ramificação 2: iniciar e receber um evento personalizado antes de qualquer interação com o agente. O evento personalizado é recebido pelo loop get-custom-event quando um contato pressiona 2. Além disso, outro evento personalizado é gerado depois que o Reqagent é acionado e antes que o agente atenda à chamada.
Exibir exemplo de carga útilCarga útil antes de qualquer interação com o agente:
{ "sessionId": "NGVFOEd4UmJIdnlGWCtLblFEanRRSldtU2hDcXgxc1JhSUVHZ0NKNXdBSVRxa0F3MjhiOCtQM2E=", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 2" { ] }
Carga útil após o disparo do Reqagent e antes de o agente atender à chamada:
{ "sessionId": "NGVFOEd4UmJIdnlGWCtLblFEanRRSldtU2hDcXgxc1JhSUVHZ0NKNXdBSW4xeThiR0M2R1FBYlBhZz09", "events": [ { "IISHost": "AOA-B32COR01", "VCHost": "AOA-B32COR01", "type": "CustomEvent", "eventName": "This can be anything", "data": "Menu Press 2 and post reqAgent" { ] }
-
Ramificações 2 e 3: iniciar e receber um evento personalizado depois que um agente atende a chamada.
Exibir exemplo de carga útil{ "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" } ] }
Criar eventos personalizados via API
Você também pode criar um evento personalizado com a API custom-event . Isso pode ser necessário se a ação CustomEvent não atender aos requisitos do seu caso de uso. Como os serviços normalmente já consomem o fluxo de eventos do agente, esse pode ser um método conveniente de compartilhar dados sem a necessidade de implementar seu próprio endpoint personalizado. Isso é particularmente relevante para aplicativos ou microsserviços de escopo pequeno.
Você pergunta aos contatos a cor favorita deles no RVI Menu de telefone automatizado que permite que os chamadores interajam por meio de comandos de voz, entradas de teclas ou ambos para obter informações, encaminhar uma chamada de voz de entrada ou ambos.. Você empacota e passa essa seleção como um evento personalizado chamado FavoriteColor. Você também tem um serviço complementar em execução no aplicativo de agente que escuta o evento FavoriteColor. Isso permite que você passe a seleção de cores do contato para o serviço complementar. O serviço exibe a cor em o aplicativo de agente.
O uso da API é semelhante à ação Studio, exceto pelo fato de você usar parâmetros em vez de propriedades. O uso das APIs do CXone também exige que você implemente a autenticação da API. Ao usar a API, certifique-se de:
-
Dar um nome ao evento.
- Atribuir um agente de destino no parâmetro agentId ou na propriedade Agente-alvo da ação Studio. Você pode usar a ID da variável AgentId. Ele é preenchido automaticamente após o evento OnAnswer. Se quiser enviar um evento personalizado antes de um agente ser atribuído, você ainda deverá fornecer uma ID de agente.
- Defina o campo persistInMemory. Se o agente estiver desconectado, isso determina se ele receberá o evento depois de fazer login novamente.
- Preencha o campo Data, que é a carga útil como uma string.
- Consuma o evento personalizado com a ação da API get-next-event ou Studio de Get Next Event.
Veja a seguir um exemplo de criação de um evento personalizado via API:
Exemplo de 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"
Tipo de solicitação: PUT
Campos:
Parâmetro | Tipo | Detalhes |
---|---|---|
agentId | Comando | O valor da ID do agente que identifica o agente de destino. |
eventName | Comando | O nome do evento. Deve ser usado por todos os consumidores do evento. |
persistInMemory | Booleano | Se o agente identificado pelo agentId não estiver conectado no momento, o evento será ignorado ou permanecerá para o agente assim que ele se conectar novamente. |
data | Comando | Qualquer string de dados. |