{"id":18120,"date":"2019-02-12T09:14:23","date_gmt":"2019-02-12T09:14:23","guid":{"rendered":"https:\/\/developer.kore.ai\/v10-3\/?post_type=docs&#038;p=16475"},"modified":"2023-06-26T08:19:50","modified_gmt":"2023-06-26T07:19:50","slug":"nodes-transitions","status":"publish","type":"post","link":"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/nodes-transitions\/","title":{"rendered":"Nodes Overview"},"content":{"rendered":"<section class=\"l-section wpb_row height_auto\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row type_default valign_top\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"ult-spacer spacer-6ae90bf82a539\" data-id=\"6ae90bf82a539\" data-height=\"10\" data-height-mobile=\"10\" data-height-tab=\"10\" data-height-tab-portrait=\"\" data-height-mobile-landscape=\"\" style=\"clear:both;display:block;\"><\/div>\r\n\t<div class=\"wpb_text_column \">\r\n\t\t<div class=\"wpb_wrapper\">\r\n\t\t\t<p><span style=\"font-weight: 400\">In order to create Dialog Tasks, the <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/chatbot-overview\/using-the-dialog-builder-tool\/\"><span style=\"font-weight: 400\">Dialog Builder<\/span><\/a><span style=\"font-weight: 400\"> uses nodes and transitions to make the necessary connections between the components of your conversation. In this article, we will overview the available node types, transitions, as well as context object information.<\/span><\/p>\n<h1><span class=\"ez-toc-section\" id=\"How_do_Nodes_and_Transitions_Work\"><span style=\"font-weight: 400\">How do Nodes and Transitions Work?<\/span><\/span><\/h1>\n<p><span style=\"font-weight: 400\">Nodes are a user-friendly approach to building conversations because they allow both conversation designers and VA developers to conceptualize and visualize the entire flow of a conversation. Placed on a canvas, nodes help create a kind of conversation map that facilitates understanding for both the humans and the VA being developed.&nbsp;<\/span><\/p>\n<p><span style=\"font-weight: 400\">Transitions add logic to the map created by the nodes. This way, the conversation can flow according to particular conditions, workflows, or processes.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Both nodes and transitions work together, in context, to facilitate the creation of Virtual Assistants that can automate a wide variety of tasks without taking away from the user or customer experience.<\/span><\/p>\n<h1><span class=\"ez-toc-section\" id=\"Node_Types\"><span style=\"font-weight: 400\">Node Types<\/span><\/span><\/h1>\n<p><span style=\"font-weight: 400\">You can add the following nodes to dialog tasks, based on your requirements:<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"User_Intent_Node\"><span style=\"font-weight: 400\">User Intent Node<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400\">The user intent to be identified by the Platform is based on the user utterance. Every dialog has one root intent with any number of sub-intents. For more information, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-user-intent-node\/\"><span style=\"font-weight: 400\">Working with the User Intent Node<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Dialog_Task_Node\"><span style=\"font-weight: 400\">Dialog Task Node<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400\">The Dialog Task Node allows you to <\/span><span style=\"font-weight: 400\">start a new dialog task within an existing one, if the user intent changes. Read more about the <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-dialog-node\/\"><span style=\"font-weight: 400\">Dialog Task Node<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Entity_Node\"><span style=\"font-weight: 400\">Entity Node<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400\">Entity nodes detect the entities within the user utterance, or ask the user for input when an entity is required. <\/span><span style=\"font-weight: 400\">The user entity in the utterance. The platform supports 15+ entity types. Developers can define the prompt message to be shown, and this message can be channel-specific. For example, an amount, a flight account number, time, or zip code. Entity nodes prompt the user for an input. For more information, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-entity-node\/\"><span style=\"font-weight: 400\">Working with the Entity Node<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Form_Node\"><span style=\"font-weight: 400\">Form Node<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400\">Form nodes allow you to integrate Digital Forms with Dialog Task by presenting a UI Form in the dialog task and making the form available for end-users on specific communication channels. This node is useful when you want to make entity collection more efficient by displaying a form rather than asking users for one entity at a time. <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-form-node\/\"><span style=\"font-weight: 400\">Learn more about the Form node.<\/span><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Confirmation_Node\"><span style=\"font-weight: 400\">Confirmation Node<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400\">Displays a query message from the bot to the user, and then waits for a user response. Conditions are defined to continue processing the dialog task flow based on the user input. For more information, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-confirmation-nodes\/\"><span style=\"font-weight: 400\">Working with the Confirmation Node<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Message_or_Bot_Response_Node\"><span style=\"font-weight: 400\">Message (or Bot Response) Node<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400\">Displays a message from the bot to a user, such as, <\/span><em><span style=\"font-weight: 400\">Is there anything else I can help you with?<\/span><\/em><span style=\"font-weight: 400\"> For more information, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-message-nodes\/\"><span style=\"font-weight: 400\">Working with the Message Node<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">While any dialog starts at the Intent Node, it is advisable to end it with a Message Node to give a sense of closure to the user as well as to the bot internally.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Bot_Action_Node\"><span style=\"font-weight: 400\">Bot Action Node<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400\">The Bot Action Node can be used for any action that the Virtual Assistant is expected to perform without interaction with the user. Adding a Bot Action Node allows you to use five additional nodes, through which you can add a <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-service-node\/\"><span style=\"font-weight: 400\">service<\/span><\/a><span style=\"font-weight: 400\">, <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-script-node\/\"><span style=\"font-weight: 400\">script<\/span><\/a><span style=\"font-weight: 400\">, <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-web-hook-node\/\"><span style=\"font-weight: 400\">webhook<\/span><\/a><span style=\"font-weight: 400\">, <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-logic-node\/\"><span style=\"font-weight: 400\">logic<\/span><\/a><span style=\"font-weight: 400\"> or <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/process-nodes\/\"><span style=\"font-weight: 400\">process<\/span><\/a><span style=\"font-weight: 400\">, using dedicated nodes.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Service_Node\"><span style=\"font-weight: 400\">Service Node<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400\">Allows you to call an API. You can also use cURL to build the API request. For more information, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-service-node\/\"><span style=\"font-weight: 400\">Working with the Service Node<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Script_Node\"><span style=\"font-weight: 400\">Script Node<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400\">The Script Node is used to write custom Javascript JS code in the dialog task. For more information, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-script-node\/\"><span style=\"font-weight: 400\">Working with the Script Node<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Logic_Node\"><span style=\"font-weight: 400\">Logic Node<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400\">The Logic Node allows developers to use context variables and define complex transition conditions within Bot Action nodes and Dialog Tasks overall. For more details, please refer to&nbsp; <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-logic-node\/\"><span style=\"font-weight: 400\">Working with the Logic Node.<\/span><\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"WebHook_Node\"><span style=\"font-weight: 400\">WebHook Node<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400\">This node is used for server-side validation, executing business logic, or making backend server API calls. To use this node, you must have installed the SDK Tool Kit. For more information, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-web-hook-node\/\"><span style=\"font-weight: 400\">Working with the WebHook Node<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Process_Node\"><span style=\"font-weight: 400\">Process Node<\/span><\/span><\/h3>\n<p><span style=\"font-weight: 400\">Process nodes allow you to connect a Dialog Task to a Process App that you have built within the Kore.ai XO Platform. <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/process-nodes\/\"><span style=\"font-weight: 400\">Learn more about Process Nodes<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Agent_Transfer_Node\"><span style=\"font-weight: 400\">Agent Transfer Node<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400\">This node type is used to transfer communication from the bot to a live agent. This is usually the last node for a dialog task. For more information, refer to <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/working-with-the-agent-transfer-node\/\"><span style=\"font-weight: 400\">Working with the Agent Transfer Node<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h1><span class=\"ez-toc-section\" id=\"Component_Transitions\"><span style=\"font-weight: 400\">Component Transitions<\/span><\/span><\/h1>\n<p><span style=\"font-weight: 400\">A Dialog Task builds a task flow with different nodes connected by transitions. Dialog Task transitions depend on conditions that use business-defined evaluation criteria to take the next steps within the Dialog Task flow.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In the Kore.ai XO Platform, you define <\/span><em><span style=\"font-weight: 400\">If-then-else<\/span><\/em><span style=\"font-weight: 400\"> conditions using a set of predefined operators. For each component, you must specify a fallback condition. How you represent a transition depends on the component type you are defining, and component type-specific transitions are described in the documentation topic for each component type.<\/span><\/p>\n<p><span style=\"font-weight: 400\">You can use the following operators to write conditions:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Exists<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Does not exist<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Equals to<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Greater than equals to<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Less than equals to<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Not equals to<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Greater than<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Less than<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Contains<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Learn more about <\/span><a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/nodes-conditions\/\"><span style=\"font-weight: 400\">setting up node connections<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Environment_Variables\">Environment Variables<\/span><\/h3>\n<p>Environment Variables are global, reusable components which can be used in multiple places to define the bot configuration. Every Environment Variable is a key-value pair. The Variable Keys can be used at various places in the bot configuration. The platform will resolve\/replace the Variable Keys with Variables Values during the conversation. Some of the typical use cases where a developer can use environment variables are:<\/p>\n<ul>\n<li>To manage the bot across environments having different endpoint URLs. The bot can be exported and imported based on the environment, and the infrastructure team will need to modify only the variable configuration file.<\/li>\n<li>To manage <strong>Conditions<\/strong> in the <strong>Dialog Node<\/strong> Transitions. Both the left-hand side and the right-hand side of the transition condition use Environment Variables. <br \/><strong>Note<\/strong>: You must enter dynamic variables without braces. For example, Environment variables as <code>env.value<\/code>, Content variables as <code>content.value<\/code>, and Context variable as <code>context.entities.entityname<\/code>. For more information, see the <a href=\"https:\/\/developer.kore.ai\/v10-3\/docs\/bots\/bot-builder-tool\/dialog-task\/nodes-conditions\/#Entity\">Adding IF-Else Conditions to Node Connections<\/a> article.<\/li>\n<li>To define and manage the bot response that is repeated within the bot configuration as variables.<\/li>\n<li>Authorization Token<\/li>\n<li>Channel-related tokens and URLs<\/li>\n<\/ul>\n<p>Post the release of v8.1 of the platform, for <span style=\"text-decoration: underline\">on-prem installations<\/span>, multiple value sets can be stored for these environment variables using Collections, <a href=\"\/docs\/bots\/bot-admin\/bots-management\/collections\/\" target=\"_blank\" rel=\"noopener noreferrer\">refer here for more<\/a>.<\/p>\n\r\n\t\t<\/div>\r\n\t<\/div>\r\n<div class=\"ult-spacer spacer-6ae90bf82abcf\" data-id=\"6ae90bf82abcf\" data-height=\"12\" data-height-mobile=\"12\" data-height-tab=\"12\" data-height-tab-portrait=\"\" data-height-mobile-landscape=\"\" style=\"clear:both;display:block;\"><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"In order to create Dialog Tasks, the Dialog Builder uses nodes and transitions to make the necessary connections between the components of your conversation. In this article, we will overview the available node types, transitions, as well as context object information. How do Nodes and Transitions Work? Nodes are a user-friendly approach to building conversations...","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-18120","post","type-post","status-publish","format-standard","hentry","category-dialog-task"],"_links":{"self":[{"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/posts\/18120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/comments?post=18120"}],"version-history":[{"count":19,"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/posts\/18120\/revisions"}],"predecessor-version":[{"id":57509,"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/posts\/18120\/revisions\/57509"}],"wp:attachment":[{"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/media?parent=18120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/categories?post=18120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/developer.kore.ai\/v10-3\/wp-json\/wp\/v2\/tags?post=18120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}