Nodes
Get acquainted with nodes that construct your conversation flows in NLX
Last updated
Get acquainted with nodes that construct your conversation flows in NLX
Last updated
All conversation flows consist of nodes that define logic, messaging, API calls, and turns that must be followed in a particular sequence. There are a variety of , each with their own function (e.g., routing a user, providing a message, listening for user intent, etc.).
Easily pick a node to drop on to your Canvas using the toolbar or shortcut menu.
Choose Add option in toolbar or right-click to use New node in shortcut menu
Select node type to apply to the Canvas
To delete a node, select it and press delete or right-click and choose Delete from the shortcut menu.
Nodes are linked or stacked together via their edges. Every node has one or more edge for each possible path the flow takes. Easily disconnect nodes by clicking the line linking them or dragging a node away from a stack and selecting the linked line.
Click from a node's edge > Drag line to recipient node
Note: Connected lines turn blue and show directional flow. Dashed lines indicate recipient node is arranged behind or in line with the origin node on the Canvas. Moving a recipient node in front turns lines solid
Selecting a node on your Canvas reveals a side panel to display information about the node and provide options for adding or refining its actions. Clicking outside of the node automatically closes the panel.
Your conversational AI relays messages to users when a node they've reached has Messages entered. Below are options to help enhance your use of this feature.
Select a node > Add messages to a node by clicking +Add message on a node's side panel
Repeat the above as often as needed on a single node
To delete a message, choose the three-dot menu beside the message and select Delete
NOTE: Adding more than one message to a node breaks up large messages into a series of smaller ones, making it easier for users to consume on text interfaces.
Several advanced actions can be applied to nodes on the Canvas. Simply expand the Add functionality section of a node's side panel and select from the following:
You may reference the following system variables in nodes when creating messages, Split node conditions, payload fields, etc. Simply open the dynamic placeholder menu using an open curly brace { and locate the system variable in the list:
System.capturedIntent
Set by the User input node
Use in a Redirect node or with a Split node using conditional rules from the match edge of a User input node
System.conversationId
The unique id for the current conversation
Pass to Data requests to identify a unique interaction
System.channelType
Provides the channel the user is currently using
Use in a Split node to route the user based on the channel used in conversation
System.currentTimestamp
Use in a Split node to route the user if their query is time sensitive or for changes to verbiage (e.g., “Good morning”) or processes during or outside of hours of operation
System.environment
Provides the environment the application is deployed to (Dev/Prod)
Use in a Split node to route users based on the production environment
System.language
The ISO 639-1 designated language (e.g., en
)
Parameterize URLs sent in messaging to support localized versions of a webpage by language/region
System.languageCode
The ISO 3166-1 Alpha-2 language code that the conversation session is in (e.g., en-US
)
Pass to Data requests as a parameter to support translation in the Data request response
System.lastIntent
The last flow visited by the user in the conversation session
Use in a Split node at the beginning of a flow to route the path of a user based on the context of where they were in a conversation
System.locale
The ISO 639-1 designated locale code (e.g., US
)
Parameterize URLs sent in messaging to support localized versions of a webpage by language/region
System.voicePlusTimeoutType
Timeout occurring from a Voice+ experience (blank
= no timeout occurred, sessionStart = user didn't tap SMS link, inactivity
= Voice+ started but inactivity between steps occurred)
Use in a Split node to route users that may need to be escalated based on timeout condition
System.nlpConfidenceScore
The value (out of 100) that the NLP confidently matched a user's input to an intent
Use to ask clarifying questions if below a threshold to ensure the correct intent has been matched
System.resumeIntentMessage
The message relayed to a user when a flow is resumed from a previous interruption
Enabled on the Start node of a flow to pick up where a user left off
System.sentiment
Use in a Split node to provide empathetic responses
System.transcript
Provides the complete exchange between the human and the conversational AI application. Any sensitive information will be redacted
Use as a payload field in a Data request that creates a ticket in a help desk system
System.userId
The user ID identifying the human in the conversation. Value varies by channel
Pass to Data requests to look up information on the user
System.utterance
The most recent message received from the human
Use in a Split node and the Contains operator to determine if the user said a specific keyword
System.timezone
The user's detected time zone in the conversation
Start node is the home node of every flow. It's non-editable, provides information on how the flow is reached by users, and should be attached to the first node added to your Canvas.
Every flow or page created within a flow automatically populates a Start node as a beginning point. A node added to the Canvas can then be attached to Start through a line or by stacking.
Action nodes initiate an external task to occur.
An email or text sent to the user for a survey, confirmation, or set of instructions
Triggering the creation of a service ticket, work order, purchase, etc.
Scheduling an appointment or calendar meeting
Application handoff nodes allow you to route users to a different application and application communication channel that exist in the same workspace.
Move a user from an application handling HR questions to an application handling an IT request
Move a user from one communication channel to another that's only supported by another application
Route a percentage of users via a Split node if doing A/B testing with a new application
Indicate via message that a process is about to occur before continuing the flow to an Action, Data request, or Escalation
Offer a greeting or confirmation before/after a question or capture step
Clear a parameter (from a slot or Data request source) in a retry cycle for a User choice node
Data request nodes allow you to trigger information to be received during a conversation through static data or external API. They're particularly valuable when needing to relay information to a user through other nodes where the information is dynamic.
Checking available rooms to assist with a hotel reservation
Pulling a list of local restaurants to match a user's criteria
Fetching the user's profile to authenticate and customize the conversation
A payload of information sent to a database for storage or updating (e.g., user profiles, passwords, etc.).
A value captured or set in a flow that shouldn't be retained outside of the current flow
A value captured from the user must carry a different meaning in other flows in the same conversation session
Parsing date to extract its component parts (minutes, seconds, hours, days, etc.). See How-to tab for instructions
Escalate nodes immediately initiate the escalation transfer for the flow's communication channel.
Business procedure requires that a user change their registered email with an agent only
Your conversational AI is not yet enabled with the ability to perform a task requested by the user
Technical processes involving APIs/webhooks failing
Generative Journey nodes allow you to employ a large language model (LLM) to facilitate the process of collecting necessary parameters (slots) from a user to complete a task. This both allows for multiple slots to be collected by a single node in your workflow and provides greater flexibility for a user to give information in a less rigid, more natural way.
Resolve several slots required for completing an intent (collect PII details, preferences for scheduling a trip, information for filing a claim, etc.) in a single node of a flow
Allow for users to alter choices easily and support users asking for optional parameters (slots)
Provide context for conversational AI to reference for more personalized conversation as well as support a broader variety of user expressions when resolving slots
Generative text nodes allow you to employ a large language model (LLM) to handle the conversation workload, including formulating responses appropriate to the context of the conversation.
Carry open-ended conversations between users and your conversational AI
Handle unexpected user responses
Link from No match edges on previous nodes to manage unknown user responses
Knowledge base nodes allow you to invoke a response from a digital library of information. They're valuable in answering questions or relaying information to users on common topics that don't require several complex flows to address.
Provide common FAQ responses on policies, service offerings, and helpful links (if chat) to guide users
Provide instructions and how-tos on topics for staff or personnel
Loop nodes help to either set an allowed number of retries for a user's response or an API call (such as with a Data request or Action), or they can help survey items in a data array (set to List schema).
Range mode
Prevent infinite looping by allowing one retry for a user to provide their PIN before escalating to an agent
List mode
Loop over a list of resorts and provide matches from a user's preference of 5-star establishments in Tokyo
Note nodes are for adding freeform text to the Canvas and do not impact the intent's conversation flow.
Provide instructions or explanations to a teammate about items on the flow
Document different node stacks or sections of a flow for organization or visual mapping
Enter descriptions or thoughts about areas or whole pages of a flow
Redirect nodes route users to to a different page of an intent flow or to a different intent.
An unregistered user that needs to complete a profile before proceeding with the main flow (redirect to a page of the same flow or another flow)
After asking a user what they need help with (User input node) and routing them based on a matched training phrase
Moving a user from a flow covering booking policies at a resort to a flow that books a resort reservation
Split nodes divide users in a path flow based on condition(s) or chance distribution.
Conducting A/B testing on new messaging or new process and diverting a portion of user traffic to test (set node to Chance)
Sort users based on different variables (e.g., rewards level, credit card type, authenticated, etc.)
User choice nodes prompt users to either make a selection or provide information for your conversational AI to follow-up with a relevant action, such as routing, refining, or externally passing along the info.
For User choice nodes, the NLX NLU will attempt the following (in order):
Match the user's utterance to a value from the assigned source (custom slot, built-in slot, or data request array)
Match the user's utterance to training data belonging to other intent flows attached to the application
Ask a user for the start date of their reported service outage
Ask a user a Yes/No question
Ask a user to choose from their available credit cards on file
Ask a user to provide a short explanation of their complaint
User input is considered a listening and capture node for collecting a user's utterance to match to an flow's training data or collecting a keyword(s) that alters or routes the conversation using Split node logic.
Asking a user what they need help with and routing them to a flow that matches training data
Asking a user an open-ended question to detect keyword(s) and route them using a Split and Redirect nodes
A user calling to request a service during heavy call volumes is texted a link and guided through completing an online form
A user requiring careful guidance through an online booking process is texted a link and guided through each step to complete booking
Not all nodes require messages and may not have a Messages section to configure. You may use a before or after in these instances.
If you do not see a Slot that exists in your workspace, remember to within your flow's Settings.
For Amazon Lex, check their supported .
For Google's Dialogflow CX, check their supported .
Assign tags to nodes for tracking and later evaluating their performance in your flow using . While reviewing Canvas analytics, you can view the number of unique visits to the node from conversations with users.
Choose from three available system tags or create custom tags through the resource menu.
Requires defining a before referencing in a node.
Configure timeouts for user input, user interruption (barge-in), and other behaviors. Check out the for supported syntax.
Increment: Automatically increases a specified numerical variable when the node containing the increment is visited. Useful with Split node logic and/or counting with a counter during retries; use in conjunction with the Set state mod if needing to establish the base value prior
Decrement: Automatically decreases a specified numerical variable when the node containing the decrement is visited. Useful with Split node logic and/or counting with a counter during retries; use in conjunction with the Set state mod if needing to establish the base value prior
Leverage streaming state modifications applied to your Data requests during a conversation with use of a and enabling the .
Indicates the time (in UTC) recorded by the system when triggered in conversation (returns the number of milliseconds elapsed since the , defined as midnight at the beginning of January 1, 1970, UTC)
The sentiment of the user (Positive, Neutral, Negative) for the current exchange. Note: sentiment analysis for the application
Determine the real time a user means for slotswhen passing to a Data request
Use of this node requires in your workspace.
Payload: Each payload field is auto-generated by the set up when the Action was created. Enter desired payload into each field(s), if applicable
Use a before the Action node to specify a number of retries allowed for failure events
Consider linking a to the Action's Success edge to acknowledge (via messaging) that the process was successful
Basic nodes are the easiest to include in any part of the flow. They can act as a messaging node, a processing node when given , or both.
Use of this node requires in your workspace.
Use of the In progress connector requires the NLX CloudFormation template be redeployed in AWS for set up prior to 2024.
Payload: Specify the payload to be retrieved; fields are when creating the data request
Always place a Data request node before another node that either relays, references, or uses based on the property or properties from your data request
Define nodes allow you to define and set ephemeral values for use in a single flow. In essence, they work similarly to but are instead localized to a single flow and not retained thereafter.
Use of this node requires an in your workspace Settings.
Want to see it in action? Explore a few conversations .
Check out our for implementing a Generative Journey in your conversations.
Integration: Assign the name for the LLM being used
For multi-shot prompting (providing the LLM with examples), check out
Required slots: Include required slots that the LLM must collect from a user to complete the task (e.g., check-in date, checkout date, number of guests, number of rooms, etc.) Only slots appear for selection
Model name: Enter the specific AI model ID you wish to employ for processing (MUST use an LLM model service from an integration already set up in your )
Auto-translate: The from the conversation session will be passed to the LLM and all responses back to the user will be provided in that language
Place a Generative Journey node on the Canvas > Using the node's side panel, assign previously set up in the workspace
Use of this node requires a in your workspace Settings
Integration: The being used
Place a Generative text node on the Canvas > Using the node's side panel, assign previously set up in the workspace
Use of this node requires in your workspace
From: Select Data request and data property (if applicable) to be used as the array for scanning and retrieving. Your data request's high-level type must be set to List
Use on either the Loop node or a node that precedes the Loop in a retry cycle to Clear the user selection. This prevents retaining information from the first pass and creating repeated No match incidents
There's no wrong way to use Note nodes, but you can explore more ways to
Page: If of an intent's flow exist, specify which page to take the conversation
Parent application: Transfers back to the original application if currently in a new application's flow from a scenario
Diverting the flow to new messaging or processes based on the channel type users are communicating through (e.g., Twilio Voice vs API). Use with the system variable
Eject out of the No match edge (if no logic or messaging is connected, the NLU will default to )
Requires: to the flow or setting up a
Match or value connectors: Link to the next node in a flow based on the user's selection. May set node's edges to mirror a Slot's values (max. 10) and direct each edge to different paths, or simplify with
Resolve: Choose from Slots that are or from Data requests that exist in the workspace
If assigning a data request to your User choice node, first invoke it using a Data request node and ensure the data request's overarching is set to List)
Elicitation (visible on only): Indicates a user provide their choice by spelling it letter by letter (e.g., A, B, C) or spelling by words (e.g., A as in apple, B as in boy)
Additional slots: must first be enabled on your application before using this feature. If the user's choice does not match any of the primary options, your application will resort to one or more attached to the flow and assigned on the user choice node. Choices matching options from additional slots will exit out of the No match edge but a Split node may be linked to check if they exist. See How-to for context.
Reset choices to match/no match (visible when using a ): Reset node connectors to Match/No match values
Reset choices to values (visible when using a ): Reset node connectors to the individual slot values + No match
Choice label (visible when resolving from a source): allows you to specify the data request property to display for user selection. The Data request's overarching must be set to List
If reusing a slot or data request's values in another User choice node in the conversation, be sure to place a Basic node beforehand that uses a to Clear the user's previous selection. Otherwise, the application will retain the user's choice and auto-traverse through the second User choice node believing it to be the same
If applicable, link the No match edge to a Basic node that , explains why a response may be invalid, and links back to the User choice node to allow a user a retry
Intent match: Link to a node, usually , that routes a user to a flow based on their detected intent (intent recognition is provided to your AI model via the set on each flow)
Be sure to assess the for all flows attached to an application. This ensures the steps in flows that direct users with User input nodes work as intended
Voice+ nodes are for initiating Voice+ mode during a conversation session with a user. pair voice prompts with visual assets from web or mobile applications.
A voice communication channel must be before accessing the Voice+ node in the Canvas builder.
To proceed from the Continuation and Escalation edges of your Voice+ node, be sure to enable the .
Always precede a Voice+ node with an that sends the SMS link
Use the system variable {system.userId}
for the Phone number field of your payload on the
Include a after the action to indicate a text was successfully sent to the user