Get acquainted with nodes that construct your conversation flows in NLX
Add & connect nodes
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 node types, each with their own function (e.g., routing a user, providing a message, listening for user intent, etc.).
Easily add 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 Canvas shortcut menu
Select node type to apply to the Canvas
Nodes are linked together via their node edges. Every node has one or more edge for each possible path the flow may take.
Connect the first node of your flow to the Canvas'Start node.
To connect nodes, click from a node's edge > Drag line to recipient node
Disconnect nodes by clicking the line linking them or dragging a node away from a stack and selecting the linked line
Connected lines are 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.
To tighten the space used on the Canvas, you may also stack nodes together:
To connect nodes through stacking, click and drag a node on top or bottom of another
An edge turns into an arrow, indicating the flow's direction
To delete a node, select it and press delete or right-click and choose Delete from the shortcut menu.
Configuring nodes
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.
Node side panel
Every node has a non-editable IDso the node may be referenced across the NLX workspace. To show the Node ID, click the infoicon in the upper right of the node's side panel.
Node messaging
Not all nodes have a Messages section. You may use a Basic node before or after in these instances.
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.
Message variations do not get translated. If developing for multilingual AI applications, avoid using message variations.
Adding variations may be favorable when users regularly interact with the same conversational AI application or may traverse a node(s) in a flow more than once during the same session, such as with repeat processes or retries. The NLX NLU chooses from your variations randomly, so users experience different phrasing.
Select a node > After adding a message using a node's side panel, click +Add variation
To delete a message, choose the three-dot menu beside the message and select Delete
Easily reference content in your messaging that is unique for each conversation:
Select a node > Select +Add message on a node's side panel
Enter a curly brace { while typing in a message field
The editor shows variables from your workspace that may be referenced, including:
If you do not see a Slot that exists in your workspace, remember to attach it within your flow's Settings.
SSML tags are visible in text-based channels if reusing the same flow and sequence of nodes for both voice and chat. Use a Split node to branch the flow in those events.
When drafting messages for voice channels, you can use SSML tags (Speech Synthesis Markup Language) supported by your NLP. Inserting SSML into your messages can control volume, pitch, pauses, emphases, breathing, and more.
For Google's Dialogflow CX, check their supported SSML guide here.
Add Basic nodes with messaging before custom API nodes (i.e., Actions, Data requests) to indicate a process is about to happen, particularly if it may take a moment
Be mindful of the placement of messaging in case a series of nodes (or stack) might be cycled through twice. You may want to add a Loop node set to Range that ejects after a certain count so the messaging from any nodes isn't repeated unnecessarily
Plan for failure when collecting information from a user or asking them to make a choice by adding failure messages with Basic nodes
Node functionality
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:
Assign tags to nodes for tracking and later evaluating their performance in your flow using Canvas analytics. While reviewing Canvas analytics, you can view the number of unique visits to the node from conversations with users.
Choose from three available system tagsor create custom tags through the Analytics tags resource menu.
Select a node > Click Add functionality menu on a node's side panel > Choose Analytics tags
Search or select a tag from the dropdown to assign to the node
Modalities allow you to reuse a pre-defined payload structure across flows of your workspace once enabled on a node of your choice. They can handle rich UI components or other information to relay to a user.
Select a node > Click Add functionality menu on a node's side panel > Choose Modalities
Ensure the correct modality's tab (if more than one appears) is selected
Toggle on Enable
Enter payload details or assign dynamic sources into applicable fields > click Save
Node payload holds payload commands executed in conversation. Use cases include specifying what call queue should be used during escalation to an agent, whether to include a transcript during escalation, or sending a control message to NLP to allow users to interrupt the conversational AI, for example.
Select a node > Click Add functionality menu on a node's side panel > Choose Node payload
Specify each item as a key-value pair in the following format: key=value. To specify multiple items, use an ampersand (&) as a separator.
Key
Value
Usage
Notes
nlx_transferPhoneNumber
E.164 phone number
Amazon Connect
The phone number used to transfer to in the event of an escalation.
escalation_PSTN
E.164 phone number
Amazon Chime SDK
The phone number used to transfer to in the event of an escalation.
escalation_VC
Amazon Chime SDK Voice Connector URL
Amazon Chime SDK
The voice connector used to transfer a call.
x-amz-lex:*
Varies. Include =True at the end of your Lex syntax to enable; for example, x-amz-lex:allow-interrupt:*:*=True
Amazon Lex with a voice channel
Configure timeouts for user input, user interruption (barge-in), and other behaviors. Check out the official Amazon docs for supported syntax.
nlx:hints
A comma separated list of strings
Amazon Lex with a voice channel
Improve disambiguation over voice when there is an anticipated list of options.
Enabling Send context allows the conversation context variables to be included as a part of the response payload. If you are sending context to an API, it will be added to the payload response.
State modifications allow you to apply advanced state changes to dynamic variables from Slots, Context variables, System variables, or Data requests that are referenced in a flow:
Clear: Erases any specified variable(s) captured if needing to re-capture the same variables later (preventing auto-traversal), or if looping users back through a step(s) during retries or revisits in the same conversation session, including null, No match, or repeat instances
Set: Allows you to establish and set a specified variable from that point forward in the conversation session (until a further state modification is applied)
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 Context variable 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 Context variable during retries; use in conjunction with the Set state mod if needing to establish the base value prior
Append to: Add one or more variables to a list/array
Remove last item from: Clear the last variable from a list/array
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
Next: Link to the first node added to the flow
Action
Use of this node requires setting up an Action in your workspace. This feature is currently available to enterprise tiers only.
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
Success: Link to the next node in the flow if the action executed properly
Optional:
Timeout: Link to a node if the action does not respond a status before the timeout
Failure: Link to a node if the action was not able to connect as configured
Invoke: Select from available Actions already created in the workspace
Payload: Each payload field is auto-generated by theRequest model set up when the Action was created. Enter desired payload into each field(s), if applicable
Optional:
Always retrigger: Enable toggle to retrigger the action, even if the node is revisited again during the same conversation session
Timeout: Enable toggle to adjust timeout period in seconds. Default is 5s with a maximum of 30s
Use a Loop node before the Action node to specify a number of retries allowed for failure events
Consider linking a Basic node to the Action's Success edge to acknowledge (via messaging) that the process was successful
Application handoff (beta)
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
Continuation: Link to the next node of the current flow if the handoff returns to the original application's conversation
Optional:
Failure: Link to a node if the handoff was not able to connect as configured
Handoff: Select the application to route to from the current workspace
Channel: Select from the available channels already set up with the new application
Intent: Select from the available intents attached to the new application (your selected channel also impacts which intents are displayed)
Optional:
Messages: Add a message(s) that the conversational AI relays to the user when reaching this node
Be mindful that all applications involved in handoff situations have the intended communication channel and language support so there are no disruptions in the user's experience
Basic
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 added functionality, both, or end a call when left unconnected at the end of a flow.
Indicate via message that a process is about to occur before continuing the flow
Offer a greeting or confirmation before/after a question or capture step
Clear a variable (from a slot or Data request source) in a retry cycle for a User choice node
End the call or conversation by leaving the node unattached
Next: Link to the next node in the flow
Optional:
Messages: Add a message(s) that is relayed to the user when reaching this node
Add to the end of a flow to properly end a conversation with a user using a goodbye message
Link No match edges to a Basic node, which can explain to users why something may have been an incorrect choice or incorrect input before continuing with a retry or escalation
Data request
Data request nodesallow you to trigger an API request during a conversation to execute a specific external action or send or retrieve data for use in a conversation. These nodes are strategically placed in a flow to run call(s) when needed.
Built-in mode
Built-in mode allows you to assign an API request from a managed integration service set up in the workspace that triggers when the node is traversed in the flow.
Use of this mode requires first setting up a managed integration in your workspace.
Create a calendar event
Push a post to a social media platform
Generate a ticket in a CRM system
Success: Link to the next node in the flow if the request executed properly
Optional:
In progress: Link to a node that loops back to the Data request node while a request call is being resolved; useful to avoid timeout restrictions from voice channel providers on API calls that take longer. Be sure to both define a custom timeout and enable the In progress edge on the node's side panel
Use of the In progress connector requires the NLX CloudFormation template be redeployed in AWS for voice channel integrations set up prior to 2024.
Timeout: Link to a node if the request does not respond a status before the timeout
Failure: Link to a node if the request was not able to connect as configured
+ Add data request > Ensure toggle set to Built-in
Provider: Choose from managed service providers
Action: Choose from the available actions related to the selected service. The list updates automatically when a different provider is selected
Resolve to: The output name that may be referenced in the rest of the flow (includes any nested variables retrieved from the API call). No spaces or special characters
Optional (expand Settings):
Custom timeout: Enable toggle to adjust call timeout period in seconds. Default is 5s with a maximum of 30s
In progress edge: Enable to unlock the In progress edge and link to a node that loops back to the Data request node while a request call is being resolved; useful to avoid timeout restrictions from voice channel providers on API calls that take longer. Subject to the maximum timeout of 30s
Place a Data request node BEFORE other nodes in a flow that must relay, reference, or use conditional logic based on the properties sent/retrieved or event executed by your Data request
Reference information in text fields by entering an open curly bracket { and selecting from Data requests in the workspace. Built-in integrations and their variables (properties) are color-coded purple
Custom mode
Custom mode allows you to assign a Data request from your workspace that triggers the custom API request when the node is traversed in the flow.
Use of this mode requires first setting up a Data request in your workspace.
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.).
Success: Link to the next node in the flow if the request executed properly; generally follow with a node where the Data request or properties of the Data request are being referenced
Optional:
In progress: Link to a node that loops back to the Data request node while a request call is being resolved; useful to avoid timeout restrictions from voice channel providers on API calls that take longer. Be sure to both define a custom timeout and enable the In progress edge on the node's side panel
Use of the In progress connector requires the NLX CloudFormation template be redeployed in AWS for voice channel integrations set up prior to 2024.
Timeout: Link to a node if the request does not respond a status before the timeout
Failure: Link to a node if the request was not able to connect as configured
+ Add data request > Request: Select from available Data requests already created in the workspace
Always retrigger: Enable toggle to retrigger the data request, even if the node is revisited again during the same conversation session
Custom timeout: Enable toggle to adjust timeout period in seconds. Default is 5s with a maximum of 30s. If increasing the timeout for custom webhooks, link the node's In progress connector to a Basic node that then links back to the Data request node. This avoids a premature timeout imposed by your communication channel before your request call is resolved
In progress edge: Enable to unlock the In progress connector and link to a node that loops back to the Data request node while a request call is being resolved; useful to avoid timeout restrictions from voice channel providers on API calls that take longer. This is still subject to the maximum timeout of 30s
Place a Data request node BEFORE other nodes in a flow that must relay, reference, or use conditional logic based on the properties sent/retrieved or event executed by your Data request
Reference information in text fields of other nodes by entering an open curly bracket { and selecting from Data request properties. Custom Data requests and their schema are color-coded orange. If you do not see properties from your schema in the placeholder menu, they are likely defined as an array. Link to a Loop node set to List and assign your Data request to process and extract them for reference
If increasing the default timeout in the side panel for API calls that take a while to resolve, it's recommended that you link the Data request node's In progress connector to a Basic node with "One moment..." messaging that then links back to the Data request node. This avoids a premature timeout imposed by your voice provider channel before your request call is resolved and provides for a better user experience
Define
Define nodes allow you to define and set ephemeral values for use in a single flow. In essence, they work similarly to Context variables but are instead localized to a single flow and do not persist beyond the flow.
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
Next: Link to the next node added to the flow
Define: Give the value to be defined a descriptive name that is used whenever referenced in the flow
Value: Set the value's meaning (swap the property type from the right of the dropdown). If swapping to dynamic property type {x} Placeholders, select from those in the workspace using the dropdown
Optional:
If defining a value set from {x} Placeholders , you may also choose an operator to the left of the dropdown field to manipulate the value:
First: Grabs the first element of a Data requestResponse body set to List
Length: Sets the value to the number of items in a list or the number of characters, including whitespace, in a string [e.g., LENGTH("12345") returns 5]
Increment: Increases the value by +1
Decrement: Decreases the value by -1
Lowercase: Converts a value to all lowercase styling
Trim: Removes leading or trailing whitespace characters
Lowercase + trim: Converts a value to all lowercase styling and removes leading or trailing whitespace characters
Parse date: Extracts all date components from a value (millisecond, second, minute, day, hour, ISOstring, month, year, timezone, timestamp)
Use Define node with Parse date for dynamic messaging specific to your flow
Example: A user sets up an account that also provides them monthly rewards for being an active member. The slot type NLX.Text or NLX.Date captures a user providing an activation date of 11/15/2023 through a User choice node. Follow with a Define node to name the value 'Rewards' and define it as a parsed date of the activation date slot. Later messaging can choose to reference it as "Your monthly reward will be sent on day {Rewards.day} of every month!" = "Your monthly reward will be sent on day 11 of every month!"
Escalate
Escalate nodes immediately initiate the escalation transfer for the flow's communication channel.
Timeout: Link to a node if the escalation does not transfer before the timeout
Failure: Link to a node if the escalation was not able to connect as configured
Continuation: Link to the next node of the current flow if the escalation returns to the conversational application
Optional:
Messages: Add a message(s) that is relayed to the user when reaching this node
You may either reuse the Escalate node anywhere in a flow or link to the same Escalate node from anywhere in the flow
In some instances, you may wish to develop an escalation intent that handles an extended process before ending with the Escalate node (e.g., authenticating a user, sharing current wait times, or presenting a final pitch to complete a task with the conversational AI instead of an agent)
Generative Journey
Generative Journey nodes allow you to employ a large language model (LLM) to either collect several parameters from a user in Slot capture mode or to execute multiple external functions via Data requests as part of a cohesive task in Agentic mode.
Check out our Guide to implement Generative Journey in slot capture mode.
Slot capture mode
Slot capture mode allows generative AI to extract multiple slots from a user, providing greater flexibility for a user to give necessary information in a less rigid, more natural way.
To extract a slot(s) deterministically without the use of generative AI, use a User choice node.
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
Success: Link to the next node in the flow after the LLM has completed resolving all slots
Optional:
Timeout: Link to a node if the LLM does not respond before the timeout
Failure: Link to a node if the LLM was not able to connect as configured
Escalation: Link to a node (preferably escalation process) if a user requests an agent while in the Generative Journey
"You are a virtual hotel concierge for the White Coral Resort and specialize in booking hotel rooms. Do not talk about topics other than booking accommodations at the White Coral Resort. Keep responses polite and concise."
NOTE: If you do not want the LLM to formally greet the user (perhaps use of the Generative Journey node appears at a later point in an ongoing conversation) include 'Do not use greetings' as part of your prompt
For multi-shot prompting (providing the LLM with examples), check out this guide
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 attached to the intent appear for selection
Optional:
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 workspace Settings)
Optional slots: Include optional slots a user may provide that the LLM may take into account to complete the task but are not required for all users (e.g., preferred room, number of pets traveling, etc.)
Settings (expand menu):
Enable zero turn mode: The LLM will resolve any slot values detected in the last logged user utterance and immediately exit from the Success edge
Include transcript as context: The transcript of the conversation between the AI assistant and user prior to the Generative Journey node is sent to the LLM along with the prompt. This facilitates confirming preferences a user may have discussed earlier and personalizes the exchange while the LLM is engaged with the user
Auto-translate: The language code 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 > On the node's side panel, ensure the toggle is set to Slot capture
Select NLX as the LLM integration
Provide a succinct prompt to the LLM on what their task is part of, the end goal of the task, specific messaging or branding requirements (if any), and things to avoid (if any)
Assign all required slots needed to complete the task (be sure to first attach them to a flow through the flow's toolbar settings)
Expand and adjust Generative Journey's Settings (see Side panel tab for more)
Link from the node's Success edge to the next node in the flow
Agentic mode
Agentic mode allows generative AI to extract variables from a user and also access outside systems for retrieving or sending information as tools to handle a task. These tools can be custom APIs set up through Data requests or managed APIs set up through Integrations.
To complete tasks and extract variables from a user deterministically without the use of generative AI, use a combination of User choice nodes and Data requestnodes.
Match a restaurant for a user from their stated preferences, create a reservation, and send a confirmation email
Draft a support ticket and send it to a ticketing system
Collect required information to execute a flight cancellation
Success: Link to the next node in the flow after the LLM has completed all Data request calls assigned and the Success condition is met
Optional:
Timeout: Link to a node if the integration(s) does not respond before the timeout
Failure: Link to a node if the integration(s) was not able to connect as configured
Escalation: Link to a node (preferably escalation process) if a user requests an agent while in the Generative Journey
Prompt: A brief prompt given to the LLM that identifies the context of the overall task and the required information to extract. Brand voice guidelines and additional rules may be provided
Success condition: Provide the acceptable criteria for ejecting out of the Generative Journey node's Success edge and proceed a user through the remainder of a flow
Tools: Assign one or more Data requests or managed Integrations from your workspace for the agentic AI to use. For custom APIs through Data requests, descriptions must be provided in the Settings of the Response and/or Request body and also on the Settings tab of the Data request to provide context, (may also include granular descriptions on individual properties of the schema body). This helps the AI determine what information is to be collected, sent, and in what order to do execute.
Settings (expand menu):
Include transcript as context: The transcript of the conversation between the AI assistant and user prior to the Generative Journey node is sent to the LLM along with the prompt. This facilitates confirming preferences a user may have discussed earlier and personalizes the exchange while the LLM is engaged with the user
Place a Generative Journey node on the Canvas > On the node's side panel, ensure the toggle is set to Agentic
Select NLX as the LLM integration
Provide a succinct prompt to the LLM on the context of the flow
Sample: Help a user book a room with the best rate.
Assign all required Data requests or managed integrations that are part of the task using the Tools dropdown. Be sure the Data requests has a description provided under the Data request'sSettings tab, under the Response and or Request bodies (expand Response/Request model settings or individual schema properties for description fields in each Data request) to help the AI understand their purpose
Enter the Exit Condition that the LLM mustmeet
Sample: Reservation created and user received a summary with booked room information. User confirmed the reservation is correct.
Link from the node's Success edge to the next node in the flow
Generative text
Generative text nodes employ a large language model (LLM) to generate virtually any output, including crafting messages, applying logic, or quickly reformatting information based on provided context of the conversation.
Provide rules to generate logic based on given input and check in a Split node for the result
Reformat a date or do quick math
Success: Link to a node that then references the placeholder name given in the Generate field to trigger the LLM response. The placeholder name may be referenced in a follow-up Basic node as the sole bot message or in an Action or Data request node as its payload
Optional:
Timeout: Link to a node if the LLM does not respond before the timeout
Failure: Link to a node if the LLM was not able to connect as configured
Generate:The name entered here determines the placeholder name of this Generative response when referenced in other nodes (do not include spaces in the name)
Sample prompt: "You are an AI customer support assistant called Nelly. Do not engage in any controversial topics. Given the user asked {system.Utterance}, provide the user a helpful answer. Limit your answer to no more than 4 sentences. Don't mention anything about contacting customer support for further assistance."
Optional:
Include transcript as context:When enabled, transcript of the conversation between your conversational AI and user up to that point is sent to the LLM along with the prompt for added context
Sample flow using Generative text node and response
Place a Generative text node on the Canvas > Using the node's side panel, assign an LLM integration previously set up in the workspace
Enter a name for the prompt using the Generate field (this name will be referenced in the flow when wanting to trigger the LLM in conversation) > Provide a succinct prompt to the LLM in the Generative text node within its Prompt field
Add a node with messaging (in this example, a standard Basic node is used) and link the Success edge of your Generative text node to the new node
Click + Add message on your new node and enter the placeholder name given to the Generative text prompt using the open curly brace { menu
Good AI prompts include an explanation of the AI's purpose, a prescribed limit to the length of its responses, and any topics or words it should avoid
Knowledge base
Knowledge base nodesallow 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 multiple 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 customers
Match: Link to a node in the flow when the user utterance was matched to data in the knowledge base. Generally follow with a Basic or User choice node containing the placeholder {GenerateName.answer} in its messaging to provide the response
No match: Link to a node in the flow when the user utterance was not matched to information in the knowledge base
Optional:
In progress: Link to a node (may contain progress message or silence breaks) that then loops back to the Knowledge base node while a request call is being resolved; useful to avoid timeout restrictions from voice channel providers on API calls that take longer. Be sure to also define a custom timeout under the Knowledge base node's Settings
Timeout: Link to a node if the request does not respond a status before the timeout
Failure: Link to a node if the request was not able to locate a response from the user's utterance
Question: Add the variable necessary to aid the AI model in its answer search (default is {System.utterance}. Provide context if sending more than one variable (e.g., the user is a {userProfile.RewardsTier} member and wants to know about {system.Utterance})
Knowledge base: Select from available knowledge bases created in the workspace
Prompt (optional): If desired, provide specific instructions, rules, brand voice, additional variables, or other guidelines to follow when your conversational AI relays answers from your knowledge base
Generate: Provide a simple name or acronym to reference the knowledge base content as a variable locally in the flow (no spaces)
IF filters: If Metadata has been provided when setting up a Q&A- or External-type Knowledge base, you may provide IF comparison statements ("IF x equals y") when referencing any properties of your metadata schema. This will be sent along in the retrieval request as a filter when your Knowledge base is called
Settings
Auto-translate: Enable toggle to translate the programmed response to the detected language of the user
Timeout: Enable toggle to adjust timeout period of answer retrieval in seconds. Default is 5s
Include citation: Enable toggle to include in-line citations with responses. Must use a modality to render citations on a User choice or User input node linked from the Match edge
Custom minimum confidence score: Enable toggle to adjust the minimum confidence score previously set at the application level; only impacts response and utterance matching done through knowledge base interaction. Supported through Q&A implementation of knowledge base content
Add a Knowledge base node to the Canvas
On the node's side panel, enter system.Utterance (or any relevant variable type you wish to use) in the Question field and assign a Knowledge base from your workspace in the dropdown
Link a Basic node from the Knowledge base node's Match edge > Enter the placeholder {"yourKBname".answer} as a message on the Basic node
Proceed from the Basic node to either redirect to another flow, capture user intent, or provide a selection of choices to a user to help with follow-up after an answer has been relayed
Click Save
Loop
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
Next: Link to the next node in the flow (usually a Data request node for processing an array [list schema] or User choice or User input for setting input retries)
Completed: Once the loops have concluded without a desired result, the flow ejects to an another node that may handle the fail state (Escalate or Redirect, for example)
Optional
For each: Give a descriptive name of the loop iteration (e.g., Retry or Name.UserProfile)
Range mode:
From/To: Enter range of allowed looped retries before ejecting from the Completed edge
List mode:
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 Response model type must be set to List
Stack or place a Loop node before a Data request or User choice node
Use State modifications 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
Note
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
Note nodes are not designed for use in a flow and therefore have no connecting edges
Body: Enter note message in this field. You may also reference dynamic values created in the workspace with an open curly brace {
Optional:
Title: Enter a brief title to describe the note or call attention to it
There's no wrong way to use Note nodes, but you can explore more ways to stay organized
Redirect
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
Optional
Continuation: Link to the next node of the current flow if the redirect returns back to this point
Page: If multiple pages of an intent's flow exist, specify which page to take the conversation
Flow: Select from other flows available in the workspace
Recognized flow: The captured utterance from a preceding User input node is matched by the NLP to a training phrase of a flow attached to the application
Previous redirect: Goes back to a previous Redirect node that last did a reroute in the conversation and continues the flow
Parent application: Transfers back to the original application if currently in a new application's flow from an application handoff scenario
Ensure if multiple flows are referenced that all are attached to the application before deployment
Only choose Intent over Captured intent when certain the new flow accomplishes the user's need based on their set of choices or path taken. Captured intent is active user navigation while Intent drives the direction without the user
Split
Split nodes divide users in a path flow based on either a set of defined criteria (conditions) or through chance distribution.
Conditions mode
Conditions mode allows you to control the pathways of a conversation based on provided conditional logic that can be defined manually as IF statements or using an LLM with a simple logic prompt.
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 variablechannelType
Sort users based on different variables (e.g., rewards level, credit card type, authenticated, etc.)
If condition: Each edge appears as conditions are added to the Split node. Each edge may be linked to a different node specified in a flow
Optional
else: Link to a node in the flow when any established conditions(s) are not matched
If condition: Each dropdown provides options to craft a conditional statement. You may also use the + And link to add more modifiers to a statement and create a single grouping of conditions
Generative IF condition: Provide a prompt for each generative condition that must be met (e.g, "User's system.Utterance is about a rewards program but they are not currently a member from their user.Profile"). Requires selecting the LLM integration (may use built-in NLX LLM)
Enter a name for each If condition on the side panel. When collapsing the node on the Canvas, only the name of the group appears, decluttering large Split nodes and providing better visual organization
Adding separate conditions on a Split rather than one grouping indicates that if the first condition isn't met, it will proceed to the next condition
The NLX NLU processes each condition in the order they appear in the side panel, so reorder them as desired using the three-dot menu next to each condition
Chance mode
Chance mode randomly routes users to different paths based on assigned percentages.
Conducting A/B testing on new messaging or new process and diverting a portion of user traffic to test
Chance: Each edge appears as chance conditions are added to the Split node. Each edge may be linked to a different node specified in a flow
Optional
else: Not applicable in Chance mode
Select + Add condition to create multiple splits in traffic that divert a percentage of users for each pathway. Percentages may be adjusted manually using the slider or may be calculated evenly across pathways by clicking Distribute equally
Transform
Transform nodescan reshape or filter data from arrays retrieved through Data requests, context variables, or knowledge base citations. You can define rules manually using IF conditions or use a generative prompt to intelligently filter results, or modify the data by adding or removing items.
After retrieving a list of available seat options on a flight, filter only those matching Window or Aisle
Filter out discontinued or out-of-stock items before providing options to a user
After retrieving user data, append a new field like "isVIP": true for returning users to personalize the experience
Next: Link to the next node added to the flow
Input: The data from an array source (List schema) that you want to transform
Transform to: The name given to the transformed data for easy reference in the flow
+ Add transformation: Choose one or more transformations to apply to the selected input data:
Filter: Enter IF conditional statement(s) to apply to one or more properties of the input data source for filtering
Generative filter: Provide a logic prompt for a chosen LLM to filter one or more properties of the assigned input data source. Requires selecting the LLM integration (may use built-in NLX LLM)
Map: Provide the desired schema that will be applied to the input data source
User choice
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 flows attached to the application
Eject out of the No match edge (if no logic or messaging is connected, the NLU will default to Unknown or Fallback)
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
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 Match/No match edges
Optional
No match: Link to a node in the flow when a user's choice is invalid
Resolve: Choose from Slots that are attached to the current flow or from Data requests that exist in the workspace
Messages: Add a message(s) that is relayed to the user when reaching this node
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 Response model type is set to List)
Optional
Elicitation (visible on voice channels 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: NLX Boost 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 built-in slots 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 tab for context
Settings (expand menu):
Show choices: Displays values (max. 10) in chat or reads them aloud in voice for users to choose
Auto-select only choice: If only one choice is available, the conversational application will make the selection on the user's behalf and automatically traverse to the next node in the flow
Reset choices to match/no match (visible when using a custom slot): Reset node connectors to Match/No match values
Reset choices to values (visible when using a custom slot): Reset node connectors to the individual slot values + No match
Choice label (visible when resolving from a Data request source): allows you to specify the Data request property to display for user selection. The Data request's overarching Response model type 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 State modification 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 Clears the selection, explains why a response may be invalid, and links back to the User choice node to allow a user a retry
Additional slots are useful in cases where a user's selection would normally be supported despite their selection not matching choices from the initial primary source. For example, a user may be provided three available appointment options for today's date from a Data request source, but the user instead requests an appointment for tomorrow. An additional system slot, such as NLX.Date or NLX.Text, may be assigned to the same node to handle this request. The user's request will follow along the No match edge on the node where a Split node should be used to detect if an additional slot(s) entry exists and proceed from there
User input
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 nodelogic.
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
Flow recognized: Link to a node, usually Redirect, that routes a user to a flow based on their detected intent (intent recognition is provided to your AI model via the training data set on each flow)
No flow recognized: Link to a node in the flow when a user's intent is unrecognized
Messages: Add a message(s) that is relayed to the user when reaching this node
Be sure to assess the efficacy of training data for all flows attached to an application. This ensures the steps in flows that direct users with User input nodes work as intended
Voice+
Voice+ nodes are for initiating Voice+ mode during a conversation session with a user. Voice+ mode allows you to provide bi-directional voice support in web/mobile experiences using Touchpoint, or for supporting use of Voice+ scripts that pair predefined unidirectional voice prompts with visual assets from web or mobile applications.
Bi-directional mode: A user starts a webchat session that can navigate webpages, complete forms, and answer FAQs, all through a hands-free, voice-driven experience
Voice+ script: A user calling to request a service during heavy call volumes is texted a link and guided through completing an online form
For experiences using Voice+ scripts, enable the corresponding action on a Voice+ script step to support Continuation or Escalation paths.
Optional:
Continuation: Link to the next node in the flow to continue from your Voice+ experience (generally triggered by the last step of your Voice+ Script)
Timeout: Link to a node if the Voice+ step does not respond after the timeout period
Escalation: Link to the next node in the flow to begin an escalation process or trigger an immediate transfer using an Escalation node (generally triggered by an appropriate step requiring agent transfer in your Voice+ experience)
Optional:
Session start timeout: The amount of time (in seconds) to wait for the user to trigger the first Voice+ script step from your digital asset (web or mobile application)
Inactivity timeout: The amount of time (in seconds) to wait for a user to proceed between Voice+ script steps. Default is 10 minutes
Bidirectional mode: Supports voice inputs for hands-free form-filling, contextual replies, and site navigation
PII mode: Marks user inputs as sensitive so they don't appear in logs or for subsequent LLM processing after hitting the NLP layer
Small talk: Allows the AI to respond to casual or off-topic comments (e.g., greetings or personal questions). If enabled, Knowledge base answers will take precedence when available
Knowledge base (optional): Assign a Knowledge base that address questions about your business
To set up bidirectional Voice+ experiences on your website: Check out this guide
To set up predefined Voice+ scripts: Check out this guide