Formulas block (Alpha)

Formulas is in Alpha testing, it is a pre-release so that you can have early access to our newest feature.
Note: The Formulas block is only available for the Professional plan (and for a few extra months for Starter plans that helped us test this feature during the Experiments period.

What are Formulas?

Formula block allows you to make complex operations with values inside Landbot, like you do in other platforms like Google Spreadsheets or Excel, and store the result in an outcome variable.

Whereas before you could only transform data with Javascript or with external API's, now you will be able to do it, easily, using Formulas.

How to create a Formula

1. Select the variable where you want to store the outcome of the formula

2. Choose the output that fit your needs

3. Set the formula

4. Save and use

Elements of the Formulas block

1. Output

In the Output field you can define or create the variable where the result of the formula is going to be stored

For the Block outputs you can choose the type of output that fit your needs. You have:

  • Success/Error: For mathematical operations

  • True/False: For types of formula in which the outcome is a boolean value

  • Custom: When you want specific results as custom outputs

2. Formula

Here is the editor, where you can create and edit formulas

Right under the formula you can check the result in real time plus test other values in the formula.

3. Formulas Browser/Docs

In this section, you will see all the available methods you can use in the Formulas block.

Things you can do when building your formulas

1. Formulas can use fixed values

2. Formulas can use Landbot variables

3. Formulas can use formulas inside formulas

4. Formulas can use same output variable

5. Formulas can be chained one after another

6. Formulas can be great with the Conditional block

Things to be aware of when building your formulas

1. Blue ticks!

To be a valid formula, make sure both ticks are blue

2. Output variable type

Make sure the type of the variable is the right format to the type of formula you are using.

For example, if you are creating a math operation, you want the variable of the output to be a number, not a string type.

3. True and False, are strings that start with Capital letter!

In case you are using a type of formula that the outcome can be a boolean value, remember that True or False will be strings that the first letter will be Uppercase.

4. System variables need " "

If you are planning to use Landbot System variables like @today, add the " " between those variables:

5. Not created variables need " "

If the variable is not created yet, it needs " " also to be a valid formula

6. Test before you go into production!

Test always to make sure the Formula works as expected

Types of Formulas

Comparison

Comparison formulas available:

  • IsEqual
  • IsNotEqual
  • IsGreater
  • IsGreaterOrEqual
  • IsLess
  • IsLessOrEqual
  • IsSet

Examples of use case of Comparison formulas:

Check if input from the user is the same as a number

IsEqual(@userinput,2)
Check if age is above 18

IsGreaterOrEqual(@age,18)
Check if the variable email is set or not

IsSet(@email)

Logical

Logical formulas available:

  • And
  • Not
  • Or

Examples of use case of Logical formulas:

Check if email contains "gmail.com" AND the age is over 18

And(Contains(@email,"gmail.com"),IsGreater(@age,18))

Check that the user did NOT select a color "red"

Not(@color,red)
Check if the "city" selected is Barcelona OR Madrid

Or(IsEqual(@city, "Barcelona"),IsEqual(@city,"Madrid"))

Math

Math formulas available:

  • Product
  • Quotient
  • Remainder
  • Subtract
  • Sum
  • ToFloat
  • ToInteger

Examples of use case of Math formulas:

Apply 20% discount

Product(@price, 0.80)
Get % of correct answers

Quotient(Product(@correctanswers,100),@maxpoints)

Add +1 every time user passes through this step

Sum(@counter,1)

Convert to only 2 decimals

Below is a formula where the variable @number has the value of 3.1415 and we only want 3.14

Quotient(ToInteger(Product(@number, 100)),100)

In case we want 1 decimal the Formula would be with 10:

Quotient(ToInteger(Product(@number, 10)),10)

String

String formulas available:

  • Contains
  • Length
  • Lower
  • Replace
  • Slice
  • Split
  • ToString

Examples of use case of String formulas:

Ensure the email is in lower case for proper validation

Lower(@email)

Get list out of options selected in Multiplechoice

Split(@options, ", ")

Note, if you want to limit the number of options, this will be handy if you add use also the Length formula and with a Conditional block, you redirect the flow according to the maximum number of options you require. Like in th example below:

Where the formula is:

Length(Split(@options, ", "))

Check if text is too long

Length(@userinput)

In case we need to set a maximum, minimum or exact length for an answer, what we can do is to use the flow below, where we are going to check that the input of the user is no longer than 100 characters:

1. First we ask the user for an input, and store it in the variable @userinput

2. After that we will check the length of the @userinput, and store it's value in the variable @length_userinput (Number format)

3. Once you have that value, we will use a Conditional Block to check wether is that value greater or not than 100. Here is where we can set for any length that we want or condition that we want. Like only 10 characters.

4. After that we set up 2 flows, one, through the Green Output (True) in case it goes according to your needs, and another flow, for the Red Output (False) when we want the user to type again something that matches your criteria, by using another Question block, with a different text, but using the same @userinput variable

Mimimi

Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(@toreplace, "a", "i"),"e","i"),"o","i"),"u","i"),"y","i"),"é","i"),"è","i"),"á","i"),"à","i"),"ò","i"),"ó","i"),"ù","i"),"ó","i"),"ü","i")

Transform number's " . " (dots) into " , " (commas)

You will have to use 2 formulas for this one.

  1. One to turn the number from the Number format into the String format:

Make sure to save the result in the String format, and add the variable in the number format in the formula:

ToString(@number1)

  1. Another Formulas block to Replace the " . " (dots) for " , " (commas):

Save it also in the String format, and add the following formula to replace the dots for commas:

Replace (@newstring, ".", ",")

Array

Array formulas available:

  • Contains
  • GetValue
  • Length
  • List
  • Slice
  • Push

Examples of use case of Array formulas:

Get length of an arrays

Length(@array)

Create an array out different strings

List(@input1,@input2,@input3)

Add last user input to an array

Push(@arrayinputs, @lastinput)

Object

Object formulas available:

  • GetValue
  • ToJSON

Examples of use case of Object formulas:

Get value from the key "Name"

GetValue(@response, "Name")

Get value from first item of the array that is in the key "colors"

GetValue(@response,"colors",0)

Transform string to a JSON

ToJSON('{"city":"Valencia","country":"Spain"}')

Regex

Regex formulas available:

  • RegexTest

Examples of use case of Regex formulas:

Check if the input is of 10 digits number

RegexTest(/\d{10}/,@number)

Check if the input is a valid UK postal code

RegexTest(/([A-PR-UWYZ][A-HK-Y0-9](?:[A-HJKS-UW0-9][ABEHMNPRV-Y0-9]?)?\s*[0-9][ABD-HJLNP-UW-Z]{2}|GIR\s*0AA)/,@text)

Check if the input contains a word that is "stop" or something that starts with "stop"

RegexTest(/^stop.*/,@text)


How did we do?


Powered by HelpDocs (opens in a new tab)

Powered by HelpDocs (opens in a new tab)