Using Namespaces you can categorize variables and map them to various components. The XO Platform would load the variables only from the mapped namespaces while executing specific components.
You can enable namespaces by going to Build > Configurations > General Settings. Turn on the toggle, then confirm your choice to enable the feature.
Once the Variable Namespaces feature is enabled:
- A Default namespace is automatically created by the platform which cannot be deleted or modified;
- All tasks and variables, if any, are automatically associated with this default namespace;
- You can define and manage namespaces;
- You can add or remove the Environment and Content variables to these namespaces. A variable can belong to one or more namespaces. You cannot remove the Environment and Content variables from the default namespace.
- You can map namespaces to the various components of the bot definition like:
- Tasks which include Dialog, and Alert;
- Nodes in Dialog Task;
- Knowledge Task;
- Small Talk;
- Standard Responses; and
- Event Handlers.
- You can remove the namespace mapping for the components. But if you mapped components with any namespace, then the execution of these components may fail if you have included one or more variables in defining the component.
Once Variable Namespaces are mapped, the following steps are implemented by the platform during task execution :
- only the variables that belong to the namespace mapped to a component will be loaded;
- if the variable that is not mapped is referenced by the component, it will flag a “variable not found” error;
- the same logic applies to Bot functions used within the tasks.
When configuring a variable (environment or content), you have an option to Add Namespace. Use this option to create a namespace.
You also have an option to Manage Namespaces from under Build > Configurations > Environment/Content Variables.
Use this option to view, edit, or delete namespaces. Deleting a namespace that is mapped to any component is restricted. You need to unmap the namespace from all associated components before deletion. As mentioned earlier, you cannot delete the default namespace.
Once created, the namespace needs to be mapped to variables, tasks, and other components. This will ensure that only the variables that belong to the namespace mapped to a component would be loaded at the time of execution.
At the time of variable creation (environment and content), you can map the namespace. By default, the variables would be assigned to the default namespace. A variable can be mapped to multiple namespaces. You can change the mapping later by editing the variable definition.
All the components have a Manage Variable Namespaces action item which can be used to map the component with a particular namespace. Below is a list of places where you can find the Manage Variable Namespaces option:
Nodes within Dialog Tasks
You can find the option under the Component Properties section of the node. You can choose to use the Variable Namespace associated with the task or customize it for the node.
Conversation Skills > Knowledge Graph > More Options menu.
Conversation Skills > Small Talk > Group Settings icon.
Intelligence > Event > More Options menu.