Migrate to Visual Dialog Mode
Here's what you need to know about migrating a skill from an OBotML-authored dialog flow to a Visual Flow Designer skill.
However, before you take that step, you may need to make some adjustments to the skill or the OBotML definition to ensure the following:
- The skill is Version 21.12 or higher
- There are no transitions that use FreeMarker to
express states. For example, a transition like
equal: "${system.actualState}"
will prevent migration. - There are no
System.QnA
states. Replace Q&A content with answer intents.
If the OBotML definition has 50 or more states, the migration will still proceed, but will not result in an intent flow populated with states. It will only contain the flow-level variables.
System.ConditionEquals
,
System.ConditionExists
,
System.List
, System.Text
and
System.Intent
will be interpolated in the Visual
Flow Designer. What Happens When You Migrate to a Visual Flow Designer Skill
Version 1.0–migrated
in the tile. (You can change the value of
the skill version in the Migration dialog).The new version of the skill is accompanied by a migration log that documents that conversion of deprecated properties and components.
8:5 The variable 'iResult' will not be migrated. In visual dialogs, the intent resolution is done in the dialog engine and the NLP result is available through the 'skill.system.nlpresult' variable.
9:5 The variable 'rb' will not be migrated. This variable is pre-defined now.
84:5 The state 'welcome' uses the 'System.Output' component, which is obsolete in visual dialog mode. It will be replaced with a 'System.CommonResponse' component.
92:5 The state 'getIntent' uses the System.Intent component, which is obsolete in visual dialog mode. It will be replaced with a System.Switch component. Intent resolution in visual dialog mode happens automatically when starting a new session and after ending a root flow.
115:7 The property 'values' in the state 'startDetermineWineType' is obsolete in visual dialog mode and will be removed.
122:9 The 'NONE' transition action in the state 'startDetermineWineType' is obsolete in visual dialog mode and will be removed. The 'next' transition is used instead.
...
The Visual Flow Designer skill contains both a main flow and a single intent flow. All of
the intents are mapped to this flow. Within this flow, the intent routing is
accomplished using a Switch state where the intent names have been transcribed as action
transitions. The routing logic is executed using
${skill.system.event.value.intent.intentName}
.
Testing of Visual Flow Designer iteration of the flow may reveal that the migration introduced regressions. For example, changes to the transition definitions may have disconnected segments of the flow. You may also find that the single flow created from the migration is unwieldy. In this case, you can modularize the functionality by copying states into a separate flow.
Migration Summary
OBotML Artifact(s)... | ...Become the Following In Visual Flow Designer |
---|---|
Intents | Intent events and unresolvedIntent are all mapped to the single intent flow. |
Context Variables | Flow-level variables. The rb variable is not
migrated; the system.rb variable is used
instead.
|
System.Intent states
|
Transcribed as a Switch state. The intents are named as action
transitions. The routing is determined using
${skill.system.event.value.intent.intentName} .
The transitions that point back to a System.Intent
state route to the End Flow state for intent matching.
|
System.List and System.Text
states
|
Common Response > Resolve Entities states |
System.Output states
|
Common Response states |
System.ConditionEquals and
System.ConditionExists states
|
Switch states |
Component properties:
|
These properties are removed. cancelPolicy in
Resolve Entities now defaults to immediate
|
FreeMarker expressions used in OBotML, entity properties and bag
item properties:
|
Equivalent expressions in Visual Flow Designer
|
error transition
|
system.dialogError transition action
|
attachmentReceived and
locationReceived transition actions
|
Removed |
Transitions using FreeMarker expressions (when the FreeMarker expression can be resolved to an actual state). | Switch states |
return transitions
|
Migrated to End Flow state |
NONE transition in
System.Switch |
next transition.
|
Custom component names | The custom component name is prefixed with the custom component name. The two names are separated by a colon. |
iteratorExpression
|
The iteratorExpression property is added to the
metadata when an iteratorVariable is used.
|
agentActions property of
System.AgentInitiation
|
Comma-delimited lists of action names are converted to an arrays with action, label, and description properties. |