The condition module is a Boolean module that evaluates an expression and returns a result (success or failure) to determine the next steps in the contact flow. If the result of the expression is true, the contact flow follows the success branch (based on a successful event) and if the result of the conditional expression is false, the contact flow follows the failure branch (based on a failed event). 

  • The condition module is used only for an outbound or inbound contact flow.
  • The condition module uses the Condition Expression property.

Message Properties

Display NameValue
Request Parameter Mapping The parameter used to map web requests.
Response Variables Mapping  The parameter used to map web responses.

Connectors

For information on the module connectors, see Understanding Connectors.

To allow unexpected responses sent by your customers, consider using an all-encompassing expression.

Example:

Suppose that a regex in the condition module to unsubscribe from SMS contains the syntax ^STOP$. If a customer sends an SMS that contains not only the keyword (for example, Stop sending me SMS), the inbound SMS is not recognized because the syntax can recognize only that SMS whose entire body contains only the keyword "Stop" (case-insensitive). Therefore, consider using an expression that can recognize an inbound SMS if the keyword is present anywhere in the body of the SMS. An example of such an expression is as follows.

/(^|\W)(STOP|END|CANCEL|UNSUBSCRIBE|QUIT)(\W+|$)/gi.test(`{"type":"tts","name":"sms_message","source":"system"}`)
CODE

You must enclose the entire variable in single quotes. For example:

'{"name":"support_level","default_value":"","contact_field":"","interaction_field":"","tts_type":"","callflow_variable":true,"source":"callflow"}' == 'Platinum' 

Examples

Here are some sample conditions that the Condition Expression supports:

Condition DescriptionExpression
Is alternate_phone the same as the first position of EXTRA_13 (the value before the first | delimiter)?alternate_phone==unescape(plan_amount).split(\'|\')[0]

Is the current time:

  • before noon ET?
  • between noon ET and 5pm ET? 
  • after 5pm ET?
  • (new Date()).getHours() < 12
  • (new Date()).getHours() >= 12 && (new Date()).getHours() < 17
  • (new Date()).getHours() >= 17

Does variable A contain an asterisk(*)?

/\*/gi.test(A)

Is the area code 303 or 719?

phone_dialed.substring(0,3)==\'303\' || phone_dialed.substring(0,3)==\'719\'

Is the call center open?

callData.call_center_open == 1