LogoLogo
  • GETTING STARTED
    • Welcome to the NLX platform
    • How NLX works
    • Guides
      • Analytics dashboard
      • Chat
      • Generative Journey (Slots)
      • Model Context Protocol
      • Voice
      • Voice+ script
      • Touchpoint components
        • Carousel modality
        • Video modality
    • Terms & concepts
    • Generative AI
    • Developer
  • Build
    • Workspace setup
    • Flows
      • Intro to flows & variables
      • The Canvas
      • Flow settings
      • Nodes
      • Flow appearance
    • Resources
      • Actions
        • Implementation
        • Request model
      • Analytics tags
      • Context variables
      • Data requests
        • Implementation
        • Response model
        • Request model
      • Knowledge bases
        • Ingest content
        • Add metadata (beta)
        • Apply KB
      • Lifecycle hooks
        • Implementation
      • Modalities
      • Secrets
      • Slots (custom)
        • Adding values
        • Translating slots
      • Voice+ scripts
        • Add + download script
        • Deploy script + install SDK
        • Create Voice+ flow
    • Integrations
      • Channels
        • Alexa
        • Amazon Chime SDK
        • Amazon Connect
        • AWS End User Messaging SMS
        • AWS End User Messaging Social
        • Bandwidth
        • Genesys
        • Twilio
        • Zendesk Sunshine
      • LLM services
        • Amazon Bedrock
        • Anthropic
        • Azure OpenAI
        • Cerebras
        • Cohere
        • Google Vertex AI
        • Groq
        • NVIDIA
        • OpenAI
        • xAI
      • NLP
        • Amazon Lex
        • Google Dialogflow
        • Google Dialogflow CX
        • Custom NLP
    • Translations
  • Deploy & test
    • Applications
      • Attach flows
      • Assign default behavior
      • Add channels
        • API
          • REST API
        • Alexa
        • Amazon Chime SDK
        • Amazon Connect
        • AWS End User Messaging SMS
        • AWS End User Messaging Social
        • Genesys
        • Genesys SMS
        • Messenger
        • Microsoft Teams
        • Slack
        • SMS via Bandwidth
        • Twilio SMS
        • Twilio Voice
        • WhatsApp via Twilio
        • Zendesk Sunshine
      • Deploy
      • Optional: Set lifecycle
      • Optional: Set languages
    • Test
      • Test a conversation
      • Automated tests
      • Test an external integration
  • Analyze
    • Conversations
    • Analytics
      • Creating dashboards
      • Formulas & multi-metrics
      • Canvas analytics
    • Training
  • Workspace Settings
    • Escalation channels
    • Resource tags
    • Audit
  • Admin
    • Access control
      • Roles & permissions
    • Notifications
    • FAQ
    • Contact support
Powered by GitBook
On this page
  • Add & connect nodes
  • Configuring nodes
  • Node messaging
  • Node functionality
  • Node types
  • Start
  • Action
  • Application handoff (beta)
  • Basic
  • Data request
  • Define
  • Escalate
  • Generative Journey
  • Generative text
  • Knowledge base
  • Loop
  • Note
  • Redirect
  • Split
  • User choice
  • User input
  • Voice+
  1. Build
  2. Flows

Nodes

Get acquainted with nodes that construct your conversation flows in NLX

Last updated 13 days ago

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 , 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' .

  • 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.

Every node has a non-editable ID so the node may be referenced across the NLX workspace. To show the Node ID, click the info icon in the upper right of the node's side panel.

Node messaging

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:

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.

  • 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:

  • 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

  • Repeat as often as needed

  • To delete a tag, click the delete icon beside it

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

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)

  • Append to: Add one or more variables to a list/array

  • Remove last item from: Clear the last variable from a list/array


Node types

Start

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

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. If unconnected to another node, the conversation session terminates

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

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


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. If unconnected to another node, the conversation session terminates

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

  • 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. If unconnected to another node, the conversation session terminates

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 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.).

  • 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. If unconnected to another node, the conversation session terminates

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

  • 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

Optional:

  • 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

  • Reference information in text fields by entering an open curly bracket { and selecting from Data requests in the workspace (Data requests and their properties are color-coded orange)

  • 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 communication channel before your request call is resolved and provides for a better user experience


Define

  • 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. If unconnected to another node, the conversation session terminates

  • 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 request Response 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.

  • 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

Optional:

  • 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. If unconnected to another node, the conversation session terminates

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 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

  • Success: Link to the next node in the flow after the LLM has completed resolving all slots. If unconnected to another node, the conversation session terminates

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

  • Prompt: The prompt given to the LLM

    • Sample prompt:

      "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

Optional:

  • 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

  1. Provide a succinct prompt to the LLM on what workflow the task is part of, the end goal of the task, specific messaging or branding requirements (if any), and things to avoid (if any)

  2. Assign all required slots needed to complete the task

  3. Expand and adjust Generative Journey's Settings (see Side panel tab for more)

  4. Link from the node's Success edge to the next node in the flow


Generative text

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

  • 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)

  • Prompt: The prompt given to the LLM

    • 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

  1. 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

  2. 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

  3. 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 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 customers

  • Success: Links to a node in the flow when the user response was matched to a knowledge base topic. Generally follow with a Basic node containing the placeholder {Article.answer} in its messaging to provide the response

  • 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 phrase

  • Question: Add the variable necessary to aid the AI model in its answer search . This can be a context attribute, slot variable, external variable from a Data request, system variable, or local variable defined or generated in the flow. Generally, the most common variable to pass along is the user's last response contained in system variable {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). Default is Article

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

  • Add a Knowledge base node to the Canvas

  • On the node's side panel, enter system.Utterance 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 Success edge > Enter the placeholder {"yourKBname".answer} as a message on the Basic node

  • Proceed from the Basic node to either redirect to another flow, or capture user intent or provide a selection of choices to a user to help with follow-up after an answer has been relayed to the user

  • 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:

  • Stack or place a Loop node before a Data request or User choice node


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


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

  • 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

  • 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 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.)

  • 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

Conditions mode

  • If condition: Each dropdown provides options to craft a conditional statement. You may also use the + And link to add modifiers to a statement and create a single grouping of conditions

Optional: When using a {x} Placeholders value, 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 request Response 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)

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 choosing Distribute equally

  • 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


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):

  1. Match the user's utterance to a value from the assigned source (custom slot, built-in slot, or Data request array)

  2. Match the user's utterance to training data belonging to other 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

Optional

  • No match: Link to a node in the flow when a user's choice is invalid

  • Messages: Add a message(s) that is relayed to the user when reaching this node

Optional

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

  • 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 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

  • No flow recognized: Link to a node in the flow when a user's response is invalid or unrecognized

  • Messages: Add a message(s) that is relayed to the user when reaching this node


Voice+

  • 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

  • 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)

Optional:

  • 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+ 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+ steps. Default is 10 minutes

  • In your Action's URL payload field, enter the URL followed by the parameter cid={system.conversationID}

  • Include a Voice+ node after the Action & Basic node to initiate Voice+ mode

Not all nodes have a Messages section. 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 .

Use of this node requires in your workspace. This feature is currently available to enterprise tiers only.

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.

IF filters (beta): If has been provided when setting up your Knowledge base, you may provide IF comparison statements ("IF x equals y") when referencing any properties from your metadata schema. This will be sent along in the retrieval request as a filter when your Knowledge base is called

Include citation (beta): Enable toggle to include in-line citations (if provided) with responses. Supported through of knowledge base content

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 of knowledge base content

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 an 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 tab 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

Flow recognized: 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.

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

Slots
Data requests
Context variables
SSML guide here
SSML guide here
Canvas analytics
Analytics tags
Modality in your workspace
Context variable
Context variable
Lifecycle hook
Stream state modification setting
setting up an Action
Request model
setting up a Data request
voice channel integrations
set up under the Request model
Context variables
escalation channel set up
powered by Generative Journey
Guide
workspace integration
this guide
workspace Settings
an LLM integration
one-time LLM integration
workspace integration name for the LLM
an LLM integration
setting up a Knowledge base
Metadata
Integration or Custom implementations
Articles implementation
Response model
stay organized
Response model type
custom slot
custom slot
Data request
Response model type
efficacy of training data
Voice+ experiences
Basic node
System variables
Loop node
Basic node
added functionality
conditional logic
State modifications
application handoff
channelType
Match/No match edges
State modification
Clears the selection
Action node
Action node's side panel
Basic node
official Amazon docs
Data request.
node types
Start node
Redirect
attach it
attached to the intent
Attaching a slot
attached to the current flow
voice channels
training data
assigned to your flow
built-in slots
NLX Boost
Unknown or Fallback
language code
corresponding action on your Voice+ step
Node side panel
Sample flow using Generative text node and response
multiple pages