Javascript

This action block allows you to trigger custom functions of your preference within the flow

Usecase:

Some of the cases where Javascript action block can be used;

  • Performing Maths Calculations

  • Dynamically rendering the values of the variables

  • String Modification

  • Firing & Tracking events in Google Analytics

  • Triggering day based flow

Maths Calculations:

Here are few of the snippets that you can use to perform the maths calculations within the chatbot flow:

ParameterSnippetDescription

Summation (Addition)

const additionResult = num1 + num2;

  • Num 1 & Num 2 can be any number or variable which has a number stored in it

  • The result will be stored in additionResult variable

Subtraction (Minus)

const additionResult = num1 - num2;

  • Num 1 & Num 2 can be any number or variable which has a number stored in it

  • The result will be stored in additionResult variable

Division (Divide)

const additionResult = num1 / num2;

  • Num 1 & Num 2 can be any number or variable which has a number stored in it

  • The result will be stored in additionResult variable

Multiplication (Multiple)

const additionResult = num1 * num2;

  • Num 1 & Num 2 can be any number or variable which has a number stored in it

  • The result will be stored in additionResult variable

Rendering values into variables:

Here are few of the snippets that you can use to render values in variables.

ParameterSnippetExample

Set Variable (Conversation)

wn.setConversationVariable(“variable_name”,”variable_value”);

Or

WotNot.setConversationVariables({“variable_name”:”variable_value”})

wn.setConversationVariable(“name_wn”,”ABC”);

Or

WotNot.setConversationVariables({“t1”:”123”})

Set Variable (Contact)

wn.setContactVariable(“variable_name”,”variable_value”);

Or

WotNot.setContactVariables({“variable_name”:”variable_value”})

wn.setContactVariable(“name_wn”,”ABC”);

Or

WotNot.setContactVariables({“t1”:”123”})

String Modification:

Here are few of the snippets that you can use to calculate the length of the variable or get part of the variable.

ParameterSnippetExample

Length of String

const lengthOfString = “variable_name”.length();

const lengthOfString = “some_string_content”.length();

//Output: 19

Calculates the number of characters passed/present in the value

Get part of a string

const partOfString = “variable_name”.slice();

const partOfString = “some_string_content”.slice(5);

Note: We need to pass the starting index from where we need to get the sub-string. The index starts from 0. //Output: string_content Commonly used to pass the phone number without country code

Firing & Tracking events in Google Analytics or any Analytics tool:

Here is the snippet that you can use to push or record events into Google Analytics or any other analytics tool

ToolSnippet Example

Google Analytics 4

window.dataLayer = window.dataLayer || [];

function gtag() {

window.dataLayer.push(arguments);

}

gtag("js", new Date());

gtag("config", "YOUR-MEASUREMENT-ID");

gtag("event", "YOUR-EVENT-NAME", {

"send_to": "YOUR-MEASUREMENT-ID"

// Additional parameters that you may want to pass

});

window.dataLayer = window.dataLayer || [];

function gtag() {

window.dataLayer.push(arguments);

}

gtag("js", new Date());

gtag("config", "123");

gtag("event", "WotNot_Test", {

"send_to": "123",

"name": "Test",

"phone": "123456789",

});

Triggering day based flow:

Here is the snippet that you can use to trigger the flow based on specific day

Parameter SnippetDescription

Get current date

const currentDate = new Date();

Helps to get the today’s date

Check if Fromdate should be more than Todate

isFromDateBeforeToDate(fromDate, toDate) {

const fromDateObj = new Date(fromDate);

const toDateObj = new Date(toDate);

return fromDateObj < toDateObj;

}

Helps to trigger the flow the day specific flow

How do I set it up?

You can follow the following steps to set up the JS action block in WotNot;

  • Add the action block on canvas by clicking on '+'

  • Choose 'Javascript'

  • Double click on 'Javascript' to configure it on the right panel

    • Select 'Execute at' 'Server/Client' based on your preference

    • Define or write the code in the space provided

You can define the variable in the code using '#' at the start and the end of the variable name.

EG: '#name#'

Last updated