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:

Parameter
Snippet
Description

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.

Parameter
Snippet
Example

Set Variable (Conversation)

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

Or

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

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

Or

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

Set Variable (Contact)

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

Or

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

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

Or

Buraq.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.

Parameter
Snippet
Example

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

Tool
Snippet
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
Snippet
Description

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 Buraq;

  • 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