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.
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 that you must fix before migration, the warnings , and the informational messages 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.
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).
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: