Jump to: navigation, search

Route to Agent and Run Treatments in Parallel

The SCXML strategy below demonstrates how to use parallel states. It applies a series of treatments while routing the interaction to an agent.

<scxml version="1.0" xmlns="http://www.w3.org/2005/07/scxml" 
        xmlns:queue="www.genesyslab.com/modules/queue" 
        xmlns:dialog="www.genesyslab.com/modules/dialog" 
        initial="initial">
  <state id="initial">
    <transition event="interaction.added" target="routingwithdialog"/>
  </state>
  <parallel id="routingwithdialog">
    <state id="dialog" initial="prompt">
      <state id="prompt">
        <onentry>
          <dialog:play language="'English_US'">
            <dialog:prompts type="ann">
              <dialog:prompt interrupt="true" text="'You reached Genesys'"/>
            </dialog:prompts>
          </dialog:play>
        </onentry>
        <transition event="dialog.play.done" target="music"/>
        <transition event="error.dialog.play" target="error"/>
      </state>
      <state id="music">
        <onentry>
          <dialog:playsound type="'music'" resource="'MusicDN'"/>
        </onentry>
        <transition event="error.dialog.playsound" target="error"/>
      </state>
    </state>
    
    <state id="routing">
      <onentry>
        <queue:submit priority="5" timeout="80">
          <queue:targets>
            <queue:target type="agent" name="'az'"/> 
          </queue:targets>
        </queue:submit>
      </onentry>
      <transition event="queue.submit.done" target="exit">
        <log expr="'DONE'"/>
        <log expr="_genesys.ixn.interactions[0].voice.ani"/>
        <log expr="'DONE'"/>
        <log expr="_event.data.targetselected"/>
      </transition>
      <transition event="error.queue.submit" target="error"/>
    </state>
  
  </parallel>
  <final id="exit"/>
  <final id="error"/>
</scxml>

Feedback

Comment on this article:

blog comments powered by Disqus
This page was last modified on September 22, 2017, at 05:06.