Digital Assistant and Mobile

Get Involved. Join the Conversation.

Topic

    Chris
    How to smoothly transition out of a skill to primary ODA...
    Topic posted November 5, 2019 by ChrisGreen Ribbon: 100+ Points 
    18 Views, 5 Comments
    Title:
    How to smoothly transition out of a skill to primary ODA help skill?
    Summary:
    I'm looking for a way to transition a user out of a skill while the skill is trying to get intents.
    Content:

    Hello,

    I have a use-case where the ODA has multiple skills.  The user is in a skill, and the DA has asked the user for a yes/no list response.  In that skill, I have a NONE action in case the user does not click yes/no or type yes/no.  If the user types something not relating to the current skill, I'd like the NONE to catch the response and move the user back up to the primary DA to determine what they are trying to do.  Even if the user types, 'cancel' or 'exit' they have to enter it twice to get out of the skill and go back to the top DA.

    Couple of questions:

    1) Is there a way in the skill transition to send the user back to the top ODA into the help?

    2) Is there a way in the transition to call a different skill directly?

    Thanks,

    Chris

    Comment

     

    • Frank Nimphius

      Chris,

      1) Is there a way in the skill transition to send the user back to the top ODA into the help?

      Unless daIntercept is set to "never", messages should automatically be directed to Oracle Digital Assistant. The system help intent is only called when a user issues a message that matches the system help intent. So if a user does not know how to work within the skill she is in, then best would be to navigate the NONE action transition to a help state in the skill. As you say NONE action transition, it seems that you ask the user for YesNo to then detect the user message in a System.Switch component. If I am correct, then this in my opinion is not the best implementation. In this case try and create a variable of type YesNo (or a custom entity). Then assign this variable as a value to a System.List variable property. In my opinion, this should navigate users to DA when the message does not match the list. 

      2) Is there a way in the transition to call a different skill directly?

      Yes.  You can call a skill through an action defined using the CommonResponse component: https://blogs.oracle.com/mobile/techexchange-quick-tip%3A-how-to-call-a-skill-from-another-skill-and-how-to-avoid-dependencies . The user however will need to press a button for this. There is not yet an automated option. What happens is that when you implement it this way, that the request will go as an explicit routing request to DA. If you see a dialog opening asking the user if they want to transition then this can be suppressed through routing configuration on the DA level. 

      Frank

       

    • Chris

      Thanks again, Frank!  Your Quick-Tips and blogs are fantastic!

    • Chris

      Hi Frank,

      Your example on setting a da.variable and calling a different skill worked perfectly!  A couple of follow-up questions:

      1) Is there an option/variable to disable the 'Do you want to resume...' prompt after the other skill completes?  For my use-case, when I branch to the other skill, I don't want the user to go back to the old skill or have that option.

      2) Is there an option/variable to automatically resume the prior skill without showing the prompt for 'Do you want to resume...' once the other skill completes?

      Thanks,

      Chris

    • Frank Nimphius

       

      Hi,

       

      1) Is there an option/variable to disable the 'Do you want to resume...' prompt after the other skill completes?  For my use-case, when I branch to the other skill, I don't want the user to go back to the old skill or have that option.

      You can only suppress the message but you can't suppress the behavior. So unfortunately no. 

       

      2) Is there an option/variable to automatically resume the prior skill without showing the prompt for 'Do you want to resume...' once the other skill completes?

      Yes.  In the Digital Assistant level, go to Settings (the cone icon) --> Configuration 

      Search for the configuration with the label "Resume Response Type" and set it to "message" instead of "prompt".  Then (two fields above) delete the content from the field labeled "Resume Message". 

       

      Frank

    • Chris

      Thanks, Frank.  That worked!  Appreciate the feedback.