Dialogue Studio Nodes

Introduction

Anywhere365 Dialogue Studio provided a tool for designing and programming flows. This guide will focus primarily on the Anywhere365 Nodes.

To use Dialogue Studio navigate to the url that it is installed on. Default the port 1880 is used for Dialogue Studio but this can be easily changed.

 

Anywhere365 Triggers Nodes

You know the way around the UI now and lets talk about the Anywhere365 nodes will trigger your flow and when they trigger.

Icon

Description

Incoming call

The Incoming call node triggers when an audio call enters the IVRInteractive Voice Response (IVR) is a telephone application to take orders via telephone keypad or voice through a computer. By choosing menu options the caller receives information, without the intervention of a human operator, or will be forwarded to the appropriate Agent. or a chat will enter the IDRInteractive Dialogue Response (IDR) is an application to take orders via keypad or button through a computer. By choosing menu options the contact receives information, without the intervention of a human operator, or will be forwarded to the appropriate Agent.. Output will contain information about an incoming call for the selected UCCUCC stands for Unified Contact Center and consists of a queue that can be handled by Agents Each Contact Center has its own settings, interactive voice response questions and Agent with specific skills. Agents can be member of, or sign up to, one or more Contact Centers.. Both audio and chat sessions are supported.
 

Configuration

  • Server (any-red-config) - Configuration for UCC connection.

  • Filter (string) - Only selected conversation type will be passed on, select 'All' to pass on all conversations.

 

Output Object

  • session.id (string) - Identifier to recognize session.

  • session.sipUri (string) - Sipuri that the customer uses to call the UCC.

  • session.type (string) - Type of session, will be 'audiovideo' or 'chat'.

  • actions (object) - Object containing functions that will be used by other ANYWHERE365 nodes. No need to use these.

 

Details

The output can be used as a trigger to ask a question and wait for a response. Also it is possible to just say ac announcement to the caller before the call is queued. Lot's of possibilities here.

Ideas of scenario's after these events:

  • Check database if user has priority and queue it.

  • Queue depending on country call is coming from.

  • Ask user to chose a option (IVR) and queue him depending on answer.

  • Check time and disconnect or queue the user depending on opening hours.

 

InDialogue

The InDialogue started (InDailogue) node triggers when a caller is connected with an agent. This scenario is specific for default one-on-one conversations. Each output contains information about the session for a participant. Both audio and chat sessions are supported.

 

Configuration

  • Server (any-red-config) - Configuration for UCC connection.

  • Filter (string) - Only selected conversation type will be passed on, select 'All' to pass on all conversations.

 

Outputs

Customer
  • payload (object) - Output with information about the customer

Agent
  • payload (object) - Output with information about the agent

Outputs (Object)
  • session.id (string) - Identifier to recognize session.

  • session.sipUri (string) - Sipuri that the customer uses to call the ucc.

  • session.type (string) - Type of session, will be 'audiovideo' or 'chat'.

 

Details

The InDialogue phase will contain at least two participants, the agent and the customer who is calling. For now we support a one-on-one conversation, if more participants are added we don't know what happens.

Both the outputs will contain the object as described in the paragraph 'Output Objects'.

Depending on the output you use you can whisper to the agent or even to the customer. It is also possible to initiate other actions, for example you can start and stop a transcoder when you press a key in the numpad. Many more scenario's can be imagined and created for this phase.

 

PostDialogue

The PostDialogue node triggers when a session reaches the post dialogue phase. This means a caller or agent disconnects the call. The other participant will trigger the output from this node, containing information about the session for the remaining participant. Both audio and chat sessions are supported.

Note To end this phase use the No Action node. No other node is allowed and if it is not triggered the call is not ended or going to the quality monitor.

 

Configuration

  • Server (any-red-config) - Configuration for UCC connection.
  • Filter (string) - Only selected conversation type will be passed on, select 'All' to pass on all conversations.

 

Outputs

Customer
  • payload (object) - Output with information about the customer

Agent
  • payload (object) - Output with information about the agent

Outputs (Object)
  • session.id (string) - Identifier to recognize session.

  • session.sipUri (string) - Sipuri that the customer uses to call the ucc.

  • session.type (string) - Type of session, will be 'audiovideo' or 'chat'.

 

Details

The PostDialogue phase will normally contain only one participant, the customer or the agent, this depends on who disconnected the call.

One of the outputs will be passed and both will contain the object as described in the paragraph 'Output Objects'.

Depending on the output you use you can whisper to the agent or the customer. It is also possible to initiate other actions, for example you can ask confirmation for another action in an external system (DTMF).

Two type of sessions are supported to filter on: 'audiovideo' and 'chat'

 

QM Q​uestion

The Quality Monitor Question (QM Question) node triggers after the post dialogue phase ends and is triggered for all quality monitor question configured in th UCC to use this plugin. The output will be triggered multiple times when more then one question is configured.

 

Configuration

  • Server (any-red-config) - Configuration for UCC connection.

 

Outputs Object

  • session.id (string) - Identifier to recognize session.

  • payload.questionId (int) - Quality monitor question id that is configured in the UCC.

  • payload.welcomeText (string) - Welcome text that is configured in the UCC.

  • payload.goodbyeText (string) - Goodbye text that is configured in the UCC.

  • payload.valueStartRange (int) - Start of valid answer range.

  • payload.valueEndRange (int) - End of valid answer range.

 

Details

When Node-Red is configured in the UCC as plugin for one or multiple questions per question an event arrives at the question node. The quality monitor answer (QM Answer) node is needed to notify the UCC it can continue with the next question and record the quality monitor answer for reports. This event will be triggered when the UCC is configured with Node-Red as handler for the current question.

Please keep in mind that the UCC waits until the question time-out has passed. If no answer is provided it will assume the customer did not provide an answer in time and just ignore the answer and continue with the next question.

Information about configuring the quality monitor, Learn More

 

​​Event Bus

The Event Bus Node triggers every time an event is received form the UCC over the event bus. This node is not depending on any sessions. Using the filter, only events of defined types are passed to the next node.

 

Configuration

  • Server (any-red-config) - Configuration for UCC connection.

  • Filter (string) - Only selected events of the selected types will be passed. Use comma's to separate the event names. Check Eventbus api documentation for event information here.

 

Output (Object)

payload

values contained in the payload

  • EventType ( string) - Name of the event.

  • Event (object) - Object with data that can be used to handle the event. Click here for more information.

 

 

Anywhere365 Action Nodes

Icon

Description

Say

The Say node sends an audio or text-message to a caller or agent. depending on the session type. Both audio and chat sessions are supported.

 

Details

This node will try to make the UCC send a message to the session that it passed through the input. Depending of the type the conversation is the message will be spoken or send in text.

It's possible to use values from the input in the text that is send to the user. Select the type msg. and fill in the path to the wanted value. Other sources of node-red are also available and you can combine values with JSONata.

The output is triggered when sending or speaking the message is fully completed and it contains the input.

Only the Message field is required when you would like to perform Say on a chat session. If you want to cover both audio and chat or you would like to cover audio only, additional settings can be configured.

For voice sessions say method is available. You can select Default for the voice selection based on the UCC language configured. If you want to specify the voice used, use the Voice option and configure one. Please keep in mind that the available voices depend on the the configured voice plugin in the UCC settings. For advanced users SSML is also available, in this case the Message payload will be interpreted as SSML. Also keep in mind that the SSML that can be used might differ somewhat per speech to text engine that is configured in the UCC settings.

If an error message contains the sentence 'Can't format data ...', please check if the input contains the ANYWHERE365 session and actions.

 

Configuration

  • Message - The message you want to perform say with.

 

Play

The play node plays a configured audio file from a web-url to the caller or agent.

 

Details

This node will try to make the UCC play an audio file to the session that it is put in. Play can only be called on a session using audio.

The output is triggered when the playing is fully completed and it contains the input.

 

Ask and wait for input

The Ask-and-Wait node asks a question to the caller and waits for an answer. Depending on the configuration answers can be given by speech or by using a keypad on a phone. Only audio sessions are supported by this node.

A variety of input answer can be:

  • Specific tone

  • Specific amount of tones

  • Speech recognized phrases / words

By making a selection where to 'wait for' the other options in the Configuration will change accordingly.

 

Configuration

  • Text - Message that is spoken to the caller.

  • Method:

    • Default - Use default voice, configured by the UCC.

    • Custom Voice - Configure a custom voice.

    • SSML - Use SSML for more advanced options.

  • Voice - Only for Custom Voice Select a configuration for a custom voice.

  • Play once (boolean) - Will play the message only once and will keep listening for input till it's canceled. Repeat every will not be available.

  • Repeat every (integer) - Message to user defined in say will be repeated after this amount of seconds.

  • Wait for (Option) - The node will wait for a specific tone, a specific amount of tones or a Speech recognized phrase

  • No. of tones (integer) - Only for Specific amount of tones Will wait till this amount of tones are received by caller

  • Tone (string) -Only for Specific tone Will wait till this tone is send by user. (Eg. #)

  • Phases (string) - Only for Speech recognized Comma separated list of possible phases where the node will wait for. (Eg. yes,no,mabye)

  • Culture (string) - Only for Speech recognized Culture the node will expect the answer to be in. (Eg. en-US)

  • Timeout (integer) - Amount of seconds the node will wait. When no answer is recognized, the second output will be triggered.

 

Input (Object)

No specific input is needed, only the actions created by the Anywhere365 api event nodes should be present.

  • actions (object) - Object containing actions that can be executed on api by ANYWHERE365 nodes.

 

Output (Object)

Result output
  • payload (object) - See details for output depending on 'Wait For' property configured.

Timeout
  • payload (string) - input will be passed to try again or continue.

 

Details

Depending on the input of the caller to wait for, different outputs with the answer are generated.

When a valid answer is presented the first output will be triggered. In case the 'Wait for' option is set to a specific amount of tones, the msg.payload.dtmf of the first output will be filled with the answer of the caller. If using the option specific tone the same field will be used, it will contain more characters and the selected tone will also be in it. With the option Speech recognized the output field will be different, When a phrase in the phrases field is recognized, the first output will contain msg.payload.speechDetected wich contains the answer.

If the timeout configured in this node is reached it will return the second output. It is possible to follow another tree or just try again after a message or delay.

If an error message contains the sentence 'Can't format data ...', please check if the input contains the ANYWHERE365 session actions.

 

DTMF

The Dtmf node listens to input provided by the participants in an audio session. The input is retrieved from Dtmf-tones produced by pressing the keypad on a phone.

 

Configuration

  • Wait for (Option) - The node will wait for a specific tone or a specific amount of tones.

  • No. of tones (integer) - Only for Specific amount of tones Will wait till this amount of tones are received by caller

  • Tone (string) - Only for Specific tone Will wait till this tone is send by user. (Eg. #)

 

Input (Object)

No specific input is needed, only the actions created by the Anywhere365 api event nodes should be present.

  • actions (object) - Object containing actions that can be executed on api by ANYWHERE365 nodes.

 

Details

This node will listen to dtmf actions and wait for the configured action before handing a result over. When finished the result will be available in the payload.dtmf property. Dtmf can only be used on a session using audio.

If an error message contains the sentence 'Can't format data ...', please check if the input contains the ANYWHERE365 session actions.

 

Wait for chat message

The Wait-for-Chat node will wait a specified seconds for a chat message. When a chat message is received it is passed, if not a timeout will be triggered.

 

Outputs

Result
  • payload (object) - contains the text send by user in field text

Timeout

The timeout is reached and the original input is passed

 

Translate

The Translate node translates text from one language into another. It is possible to translate input, a string and other sources.

 

Details

This node uses the configured text translator service in the UCC. It will translate the text provided that is configured. More information about setting up the translator can be found on GoLive! It is required to provide a source language and a target language in the BCP47 format.

 

Input

The default setting of this node is to translate the payload. You need to change this when this isn't the correct value.

 

Output

When a translation result is received from the UCC, it will be outputted in the following format:

{

"original_text": "Hello",

"translated_text": "Hallo",

"source_language": "en",

"target_language": "nl"

}

 

Troubleshooting

When you have troubles with the translator component, check if the following conditions are met:

  • Translator component configured in SharePoint PluginSettings list.

  • The configured translator service supports both the source and target language.

  • The message meets translator service requirements (some require minimum 3 characters).

  • No errors regarding translations visible in the UCC log.

If an error message contains the sentence 'Can't format data ...', please check if the input contains the ANYWHERE365 session actions.

 

Transcriptor

The transcriptor node sends all spoken words of a participant in a conversation to a service which will return a transcripted version of the spoken text. The transcriptor needs to be started for every phase again if you want it.

Important: Transcriptor plugin needs to be installed and configured for the UCC in order to get this working, Learn More

 

Configuration

  • Start (boolean) - If selected transcoder will be started else it will be stopped.

  • Culture (string) - Language the customer is talking in.

 

Outputs

Result
  • payload (object) - contains input and is send when successfully started or stopped.

transcription
  • payload.Transcriptor (object) - Contains the result of the transcription. Transcript is the string that is returned.

 

Details

The transcriptor node will start or stop the transcoder depending on the settings.

It is also possible to override the start setting by giving a boolean true as payload.start or payload.stop. This allows you to toggle the transcriptor depending on actions occurring in the conversation or in other node-red components.

When the transcriptor is started it will output many objects that are returned by the transcriptor configured in the ANYWHERE365 UCC in it's second output. By selecting the setting 'Only send final', only transcriptions where the result is as completed as possible is send. If not selected, all translation steps will be returned, which are a lot of events.

Also the culture can be overwritten if you use payload.culture and give a string representing the culture.

If an error message contains the sentence 'Can't format data ...', please check if the input contains the ANYWHERE365 session actions.

 

Dialogflow

The Dialogflow node will setup a connection to Google Dialogflow and pass the payload. The result from Dialogflow will be returned.

This node can be used to do actions on the Google Dialogflow platform. The payload will be send to dialogflow and the output will contain the result that is returned. Check the result using a debug node to find the information you need.

 

Details

Configure a Google Dialogflow agent to get started. Next change the identifier if needed. The default value should work for session in ANYWHERE365. Finally select the language that is used.

Manipulate the input so it is passed as text in the payload. Google will use it's magic like configured in the agent and the result will be returned. Use the same identifier to continue the conversation with a new intent in the same agent.

More information about Google Dialogflow can be found in the Dialogflow docs.

 

Create chat

Creates a chat session in the UCC.

 

Details

The Create Chat node is meant for setting up a chat session with an agent. When a skill is configured, the chat will be immediately enqueued. Otherwise the session must be enqueued with the Enqueue node. This scenario is recommended for use cases where you want to have a session visible on the Anywere365 WallBoard, but you don't want to hunt an agent yet. The chat session can be canceled by sending the created output to a Disconnect node.

It is not required to set a server when the input message already contains a server context. This is common when coming from another Anywhere365 node.

 

Input

This node has no input parameters.

 

Output

This node has 3 outputs:

Events

There are several events for a chat session created via this node:

ChatSessionCreated

{

"session_id": "ce460dd610bc40f4b52df4b7a82936cb",

"event_type": "ChatSessionCreated"

}

SessionStateChanged

{

"session_id": "ce460dd610bc40f4b52df4b7a82936cb",

"event_type": "SessionStateChanged",

"previous_state": "Idle",

"current_state": "Queued"

}

Valid states are:

  • Idle The session is now known in the UCC.

  • Queued The session is now queued (skill needs to be set).

  • Hunting The skill is set and the UCC is hunting an agent.

  • Connected The session is connected to an agent (you can send messages now).

  • Disconnected The session is no longer connected to an agent (agent left).

  • Closed The session is now cleaned up in the UCC.

QueuePositionChanged

{

"session_id": "ce460dd610bc40f4b52df4b7a82936cb",

"event_type": "QueuePositionChanged",

"real": 3,

"previous_real": 2,

"best": 2,

"previous_best": 2

}

Explanation of fields:

  • real The current queue position of the session.

  • best The best queue position the session ever had. (eg. when position is 5, but another session is added with priority flag, the real position becomes 6 and the best position stays 5. You should communicate this value to the customer.)

  • previous_real The previous value of real. Starts at 2147483647 in first QueuePositionChanged event.

  • previous_best The previous value of best. Starts at 2147483647 in first QueuePositionChanged event.

AgentComposingStateChanged

When the agent starts typing this event will be generated by the UCC.

{

"session_id": "ce460dd610bc40f4b52df4b7a82936cb",

"event_type": "AgentComposingStateChanged",

"is_composing": true

}

 

Agent connected

This output gives you an agent chat object that you can use in your flow to perform actions on (like say, read input, etc.). The input flow is stored in the msg.other field.

 

Input

This output gives you a "customer" object that you can use in your flow to perform actions on (like say, read input, etc.). When the input of the node did not receive an Anywhere365 session object, this will just contain the input message. The message will be emitted at the same time as the Agent connected output. The agent flow is stored in the msg.other field.

 

Troubleshooting

When you have troubles with the translator component, check if the following conditions are met:

 

 

Anywhere365 End Nodes

Icon

Description

EnQueue

The Enqueue node queues the session for a configured skill

 

Details

This node will try to set a skill on the conversation. It is possible to configure the node to use a skill set in the payload. This allows you to change it depending on outputs from other components.

When not working or getting an exception please check if the configured skill exists. If the skill exists, check the message going in and if it contains our session information.

 

Merge

The Merge node is created for a specific scenario that is merging two conversation into one. Supply two identifiers belonging each to a session. Only audio sessions can be merged if they meet the constraints described in the Node Help.

 

Details

This node will try to Merge two audio sessions. For this to happen some constraints need to be met. One session needs to be in a queue (chosen a skill), this identifier or location can be set in the 'Session in queue' setting.

Another session should be incoming (be in the IVR). Identifier can be set in the setting 'Incoming session'.

To allow different triggers for this process, use functions or other default nodes to temporarily save the session id's. Supplied samples for car park will show possible usage of the merge.

When something goes wrong a error will be reported in Node-Red and in the UCC log.

Note Both sessions must be in the same UCC.

 

NoAction

The No Action node triggers a different action depending on the phase the session is in. It is the only action allowed in the PostDialogue phase to end that phase.

 

Phases

  • Incoming call - The conversation will fallback to the default IVR / IDR configured in the UCC.

  • InDialogue (NOT allowed) - Nothing happens.

  • PostDialogue - Ends the InDialogue phase and will continue to the Quality monitor state if it is configured.

  • Quality Monitor (NOT allowed) - Nothing happens.

Note No other action is allowed in the PostDialogue phase.

 

Disconnect

With this node we disconnect the conversation and stop the flow.

 

 

Useful other Nodes

Icon

Description

Switch

With this node you can decide based input where to continue, for example is the customer has not been recognized then ask for customer number, else continue.

Function

This is the node where low-coding coming into place. If you are looking for a feature that cannot be implemented with the simple drag and drop UI, you can use this node to write your own functionality.

Catch

If a node throws an error whilst handling a message, the flow will typically halt. This node can be used to catch those errors and handle them with a dedicated flow.

Link in

The node can be connected to any link out node that exists on any tab. Once connected, they behave as if they were wired together.

The wires between link nodes are only displayed when a link node is selected. If there are any wires to other tabs, a virtual node is shown that can be clicked on to jump to the appropriate tab.

Link out

The node can be connected to any link in node that exists on any tab. Once connected, they behave as if they were wired together.

The wires between link nodes are only displayed when a link node is selected. If there are any wires to other tabs, a virtual node is show that can be clicked on to jump to the appropriate tab.