# Action Step - Variable Operation
UChat provides you with various built-in operations for variable modification.
There are 6 types of variable in UChat:
Type | Storage | Example | Operation |
---|---|---|---|
Text | letters, words, sentences... | Hi, UChat. | cutting, change case, encode, decode... |
Number | number | 123.45 | + - x ÷, mod, power, log, root, round... |
Boolean | either "yes" or "no" | yes | assign |
Date | date | 2021-03-30 | format, add months/weeks/days |
DateTime | date and time | 2021-03-30 16:52:00 | format, add months/weeks/days/hours/minutes |
JSON | a series of variables | {"name":"jack", "age":"10"} | load, get, update, remove, count, sum, average, sort, shuffle, reverse... |
Click "Basic Actions" in the Action step and here are the "Set Variable Value" and "Clear Variable Value".
# Clear Custom Field / Clear JSON
To clear text, number, boolean, date, datetime variable, please use the Clear Custom Field action.
To clear JSON variable, please use the Remove All Items operation in the JSON Operation.
# input value
"input value" operation is used to assign value to a variable. This operation works for any variable type.
TIP
"input value" for text variable can be used to connect several text variables. See the below picture for where to put original value and operated value.
# Math Formula
With this operation, you can now do formula calculation directly in the Action Step - "Set Variable Value" and Condition Step - "Value".
Math operations and function supported:
+, -, *, e, pi, PI, abs(), min(), max(), ceil(), floor(), log(), pow(), round(), sqrt(), sin(), cos(), tan()
Please note that
If the formula is invalid, the system will return 0 to number variable and empty to text variable.
# Set Text Variable
# trim text
Description | e.g. Before | e.g. After |
---|---|---|
remove spaces before or after the text | " abc " | "abc" |
# sub string
Description | e.g. Before | e.g. After |
---|---|---|
get part of the text | "Hi, UChat!" | "UChat" |
Note
Index starts from 0. Every character counts including space and punctuation.
# replace string / replace string case sensitive
Description | e.g. Before | e.g. After |
---|---|---|
replace part of the text | "Hi, UChat!" | "Hello, UChat!" |
Note
In case sensitive situation, you have to put exactly "Hi" rather than "hi", "HI" or "hI".
# to lower / upper case
Type | e.g. Before | e.g. After |
---|---|---|
to lower case | "Hi, UChat!" | "hi, uchat!" |
to upper case | "Hi, UChat!" | "HI, UCHAT!" |
# generate random text
Description | e.g. Before | e.g. After |
---|---|---|
as the name | "code: XXXX-####-xxxx" | "code: UBWT-3657-lkzb" |
This feature is useful when you need to generate one-time verification code or reference code.
# url encode / decode
Type | e.g. Before | e.g. After |
---|---|---|
encode | "Hi, UChat!" | "Hi%2C%20UChat!" |
decode | "Hi%2C%20UChat!" | "Hi, UChat!" |
# base64 encode / decode
Description | e.g. Before | e.g. After |
---|---|---|
encode | "Hi, UChat!" | "SGksIFVDaGF0IQ==" |
decode | "SGksIFVDaGF0IQ==" | "Hi, UChat!" |
# to URL friendly slug
Description | e.g. Before | e.g. After |
---|---|---|
replace spaces with hyphens and remove the rest signs | "it's a good day" | "its-a-good-day" |
# get text before/after ...
Description: get part of the text.
Type | e.g. Before | e.g. After |
---|---|---|
get text before another text | name: UChat, city: Melbourne | name |
get text before last occur of another text | name: UChat, city: Melbourne | name: UChat, city |
get text after another text | name: UChat, city: Melbourne | UChat, city: Melbourne |
get text after last occur of another text | name: UChat, city: Melbourne | Melbourne |
# Set Number Variable
# get text length
Description | e.g. Before | e.g. After |
---|---|---|
as the name | 500.59 | 6 |
# generate random number
Description | e.g. Before | e.g. After |
---|---|---|
as the name | n/a | 56 |
# add / subtract / multiply / divide / modulus / power / natural logarithm / square root
Description | e.g. Before | e.g. After |
---|---|---|
as the name | 7 | 8 |
TIP
in "natural logarithm", when you are calculating log2(8) = ? put 8 as "Value" and 2 as "Number".
# round
Description | e.g. Before | e.g. After |
---|---|---|
as the name | 7.8693 | 7.87 |
# floor / ceil
Description: get approximate integer.
Type | e.g. Before | e.g. After |
---|---|---|
floor | 6.55 | 6 |
ceil | 6.55 | 7 |
# Set DateTime Variable
# from formatted text
Description | e.g. Before | e.g. After |
---|---|---|
get DataTime value from formatted text | 00:00:00 30th Aug, 2020 | 2020-08-30 00:00:00 |
# add minutes / hours / days / weeks / months
Description | e.g. Before | e.g. After |
---|---|---|
as the name | 2021-01-01 00:00:00 | 2021-01-01 00:01:00 |