IMIconnect Developer Hub

Welcome to the IMIconnect developer hub. You'll find all the resources to help you get started with IMIconnect quickly. We are here to support you if you get stuck. Let's jump right in!

Get Started

Voice: Evaluate

The Evaluate node uses JavaScript to perform logic and outputs values which are tested against predefined 'choices'. Each choice is a unique value that when encountered directs the flow to the linked node. One or more choices may be defined to allow for flexible flows.

The options of evaluate node are:

Exit Event


This event is visible when at least one choice is defined within the node's configuration.


This event is triggered if an invalid choice is made (an undefined choice).


This event is triggered if an error occurs.

Properties / Params configuration




The name of the node represented as a string.
A node can be renamed by changing the contents of the Label field.



The Session Data shortcut leads to the Session Data / Custom Logs configuration.

Session Data can set one or more Session Params upon entering or leaving the node.

Custom Logs can record one or more Session Params upon entering or leaving the node. This is useful for debugging purposes.

Node specific configuration

The Node specific configuration is accessed by double-clicking on the node.

JavaScript can be added to the Expression field to perform core logic on session variables and choices that correspond to the output of the JavaScript configured accordingly.

The following table details the Node specific EXPRESSION configuration tab.



User definable JavaScript logic that processes user input, variables or other logic and outputs numeric values that can be defined and acted upon later in the node.

Expressions can be built using session variables (defined in Configuration: Session Data and Custom Logs).


A numeric value that corresponds to the output of the JavaScript code in the Expression field.

Once a choice has been defined, it will appear as an option when the Evaluate node's Exit Event is connected to another node.

This allows branching out to different nodes depending on the outcome of the JavaScript code.


A text remark to describe the choice. This remark will appear alongside the Choice value when connecting to other nodes.

Target Name

When a node is connected, its name will appear as the target.


Adds or deletes a choice row.


The following example JavaScript code, uses the variable 'response' to evaluate the resultant choices. In this case, if the value of response is 'Y' or 'YES' then the choice is set to 1, if the response is 'N' or 'NO' then the choice is set 2, and for all other values, it is set to 3.

//Response Validation 
var strRes = sysResponseMessage.toUpperCase();

if (strRes == "Y" || strRes == "YES") {
} else if (strRes == "N" || strRes == "NO") {
} else {


Choices are then defined to correspond to the output of the Expression.
The figure below shows two choices defined, 1 for Yes and 2 for No. The Evaluate node will distinguish between the choices and when linked to other nodes, each choice can be connected to different parts of the flow. Should a choice not be defined, then the flow will pass along the oninvalidchoice event.


Tags provide a description for the choice.

Connecting the Exit Event of the Choice

When choices are defined, an attempt to connect the Evaluate node will result in a pop-up that requests which choice is to be associated with the target node.

As choices are connected, the pop-up will only display remaining choices in subsequent pop-ups.


You can test the node with sample data. To test a node, follow these steps:

  1. Double-click the node to enter a script.
  2. Enter Choice and Tag.
  3. Click TEST.
  4. Enter Name and Value.
  5. Click OK. The RESULT button is enabled.
  6. Click RESULT to view the result param list.

Voice: Evaluate

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.