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.

You start the migration process by clicking Migrate to Flow Designer in the dialog flow editor.
This is an image of the Migrate to Flow Designer button

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.
Note

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.
To locate any issues within the OBotML definition, first validate your skill, then review the Findings' Migrate window for the validation errors This is an image of the warning icon. that you must fix before migration, the warnings This is an image of the error icon. , and the informational messages This is an image of the tip icon that describe how the states with deprecated properties or components, such as System.ConditionEquals, System.ConditionExists, System.List, System.Text and System.Intent will be interpolated in the Visual Flow Designer.
Description of migration_findings.png follows

What Happens When You Migrate to a Visual Flow Designer Skill

A successful migration results in a new skill. By default, its version is noted as Version 1.0–migrated in the tile. (You can change the value of the skill version in the Migration dialog).
An image of a Visual Flow Dialog-versioned skill tile

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:
  • nlpResultVariable property in System.CommonResponse and System.ResolveEntities
  • cancelPolicy in System.ResolveEntities
  • autoNumberPostbackActions
  • translate
  • values in System.Switch component
  • insightsIncludes
  • insightsEndConversation
These properties are removed. cancelPolicy in Resolve Entities now defaults to immediate
FreeMarker expressions used in OBotML, entity properties and bag item properties:
  • system.errorState
  • system.errorAction
  • system.actualState
  • system.expectedState
  • system.requestedState
  • system.errorState
  • rb
Equivalent expressions in Visual Flow Designer
  • skill.system.event.value.dialogError.errorState
  • skill.system.event.value.dialogError.errorMessage
  • skill.system.event.value.outOfOrderMessage.outOfOrderState
  • skill.system.event.value.outOfOrderMessage.currentState
  • skill.system.event.value.authorizeUser.requestedState
  • skill.system.event.value.outOfOrderMessage.errorState
  • skill.system.rb
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.