Dialog Manager Flow Elements

Entry Point

An Entry Point element has a one to one relationship to an intent. Whilst an entry point always occurs at the beginning of a flow, they can also occur at any point within a flow where a more explicit Intent (typically containing entities) signifies and alternative entry into the flow.

An intent represents actions the user wants to perform. The intent is a purpose or goal expressed in a user's input, such as reseting a password, applying for leave, or requesting access.

In Sofi you define Entry Points that relate to an intent and then define the actions that must be taken for that intent.


Entry Point Name

The name of the entry point should be unique. It should also be descriptive as is defines the Intent of the action that a user wishes to perform. For example, Password Reset Request.

There are restricted characters when naming Entry Points (Intents).

NameThe name of the Entry Point

Configuring Utterances for an Entry Point

For each Entry Point you will need to configure a list of typical utterances that could be used to access the entry point. You can access the Utterances by clicking the speak bubbles on the top left of the Entry Point element.


Entry Point Element


Managing Intents and Entities

You can also access the utterances for an Entry Point from the the NLU Model > Entry Points menu option.
Note: Entry Points are essentially Intents (however there are also other types of intents within Sofi.


Utterance Form

To enter an utterance just start typing in the field at the top of the form. Pressing ENTER will create the utterance. Click on the three dots to Edit or delete an utterance.

Labelling entities on an utterance

Once you have defined an utterance, then, label the parts of the utterance that are relevant to your environment as entities.

An entity represents detailed information that is relevant in the utterance. For example, in the utterance "Reset my Outlook password", "Outlook" is an application. By recognising and labeling the entities that are mentioned in the user’s utterance, Sofi helps you choose the specific action to take to answer a user's request.

In summary, an intent is used to trigger an action and an entity is used as a parameter to execute an action.


Labeling Entities

To label an entity, select and open the Intent (Entry Point) by selecting NLU Model > Intents to display the list of utterances.

To label a single word, just click on the word and select the entity. To label a phrase (two or more words), click on the first word and then click on the last word in the phrase.

To create a new Entity, just enter a unique Entity name into the search field on the Entity List (from an Utterance) and the Add option will appear.

For more information on Entities visit NLU Model


Entity Labelling


Topic elements are the work horse of the conversational interaction between the user and Sofi. They typically pose a question and take action based on the users response. Branches of topics are configured to wait for a natural language response (Response Intent) from a user. They work in a similar way to entry points in that there is a mapping between an Intent (of that Branch) and the utterances that the user can enter.



Referencing User details within Dialog Flows

To reference details of the logged in user, use the following syntax:


NameName of element.
ResponseThe response provided by Sofi.
HintOptional: provide hint to guide the user.
PromptsSimilar to Suggestions however Prompts are typically short single words such as Yes and No.
+ (Add Suggestion)Suggestions appear as selectable 'buttons' within the chat interface that a user can click to streamline interaction with Sofi.

Click + to create a suggestion for the user to select. Multiple suggestions can be created.
Hint: Keep suggestions small - no more that 3-4 words
Hint: Hitting Enter after each Suggestion will automatically create a Branch for the suggestion.
+ (Add Branch)A branch (intent) determines which path Sofi should take depending on the user's response.

If using Suggestions, Branches are automatically created (remember to hit ENTER key when you add a new Suggestion).


Remember to press Enter (or Tab) key when adding new Suggestions

You must press Enter after entering a Suggestion in order for Sofi to automatically create a Branch for that suggestion. If you fail to do this try deleting the Suggestion and adding it again. Alternatively manually create the branch.

Adding Utterances to Branch Intents

Branch utterances can be added by clicking on the 'Speech bubbles' on the top left of the Topic element. Additional utterances can be added for each branch.



Manually creating branches for Suggestions

If you need to manually create a branch for a Suggestion, make sure that the name of the Branch is the same as the name of the Suggestion.

Exit Point

An exit point indicates an end to a flow. There can be multiple exit points within a flow.

NameName of element.
ResponseThe response provided by Sofi.
ActionChoose the action to be performed upon exit:

Close Chat
Anything else?
Close delayThe delay in seconds before the chat windows closes.
Clear conversation tracking fieldSet to On if using a Continuation Point element in a flow and you wish to clear this field (on the target table) at the exit of the flow.

Note: Only used for SAA-based (Expert Assist) flows.
Conversation tracking fieldIf using a Continuation Point element in a flow, this field should be the same as 'Set conversation field name' value used on the Continuation Point element.
Copy Chat history to fieldOn/Off

Note: Only used for SAA-based (Expert Assist) flows.
Chat history field nameThe name of the field on the target table to copy the chat / conversation history into.

Continuation Point

A Continuation Point allows you to define a point in a conversation (flow) where you need the customer to 'go away' to perform some task with the expectation they will return to the flow at some later point.


The Continuation Point allows you to define the point in the flow the user will return to when they return to this active conversation. By default, (if you do not connect the output branch), the flow will return to the element immediately prior to to the Continuation Point.

Alternatively, you can connect the output of the Continuation Point to any other element to define the point whether the conversation will continue.

NameName of element.
ResponseThe response provided by Sofi.
ActionThe action to be performed upon exit:

* Close Chat
Close DelayThe delay in seconds before the chat windows closes.
Set conversation field nameThe field on the active ServiceNow form that the conversation ID is copied into. This field is used by ServiceNow to track and reopen the conversation (via a UI Action / script).

Tracking and triggering an active conversation

ServiceNow tracks and initiates an active conversation by recording the Conversation ID of a flow on a target ServiceNow form (eg Incident form). For example you may create a new field on the Task / Incident table called u_sofi_conversation, then use the Set Conversation field name parameter above to copy the Conversation ID to this field.

A UI Action can then be created on the ServiceNow to 'continue' the conversation at some point. The example UI Action below creates a UI Action Form Button to trigger the continuation of a flow. You can use this to test the continuation of a flow. You can then create an OnLoad script to perform this based on your requirements.

function doSofiConversationCheck() {
	var conversationID = g_form.getValue("u_sofi_conversation");

	if (conversationID != "") {
		saa.continueConversation(g_form.getValue("u_sofi_conversation"), { force: true });


Only supported on Expert Assist (Virtual Agent on Service Agent Assistant)

At present this conversation persistence is only supported on flows used with the Service Agent Assistant chat interface (Expert Assist)

Refer here for information on Expert Assist.



Subflows are flows referenced by the current flow to perform specific actions and return results to the current flow.

If a Subflow Exit is used within the subflow, the conversation will return to the previous flow upon reaching that Subflow Exit. If an Exit Point element is used within the subflow, the conversation will end within the subflow at that point.

NameName of the element.
DescriptionDescription of the subflow.
Subflow IDRead Only field that identifies the ID of the selected subflow that this element calls.
Dialog Flow SelectorIcon on top of the element used to select the flow.

Subflow Exit

An Exit Subflow, exits a subflow (a flow called from another flow) and returns the conversation to the previous (calling) flow.

NameName of Element