Reference Data
Add dynamic data inside an input of a block, like in the element selector or the form value input.
Accessing Data
Automa uses the mustache tag ({{ mustache }}) syntax to know which input is dynamic or not. Inside the mustache tag, you can either write the keyword of data you want to get from or a function, for example {{ keyword }}.
There're several sources of data that you can use:
| keyword | description |
|---|---|
table | Get data from the table |
variables | Get data from the variables |
loopData | Get the current iteration data from the loop data block |
prevBlockData | Get the data of the previous block |
globalData | Get the global data of the workflow |
googleSheets | Get the google sheets data |
activeTabUrl | Get the active tab url |
workflow | Get the data (table, global data, and google sheets) of the workflow that have been execute by the execute workflow block |
You can replace the keyword with one of the above data sources, like {{ globalData }} or {{ table }}. The mustache tag will be replaced with the data from the keyword that you specify.
But, what if I have an object or array data type and want to get the specific property or index of the object or array? To do that, use the {{ keyword@path }} syntax and replace the path with the dot notation of the object or array. For example, when you input global data as an object:
{
"firstname": "Amina",
"lastname": "Ferry",
"phone": 2347613906692,
"gender": "female",
"hobbies": ["cooking", "hiking", "camping"],
"address": {
"street": "540 Harris Track Suite 904",
"streetName": "Edd Alley",
"buildingNumber": "1135",
"city": "North Kayleigh",
"zipcode": "75882-2791",
"country": "Guadeloupe"
}
}
Get value of the
firstNameproperty.
syntax:{{ globalData@firstName }}
output:AminaGet value of the
phoneproperty.
syntax:{{ globalData@phone }}
output:2347613906692Get the value of the
streetproperty of theaddressobject.
syntax:{{ globalData@adress.street }}
output:540 Harris Track Suite 904Get the
hobbiesvalues.
syntax:{{ globalData@hobbies }}
output:["cooking", "hiking", "camping"]Get the first index value of the
hobbiesarray.
syntax:{{ globalData@hobbies.0 }}
output:cookingGet the second index value of the
hobbiesarray.
syntax:{{ globalData@hobbies.1 }}
output:hiking
Functions
Inside the mustache tag, you also can call a built-in function that Automa has provided. Function name always starts with a dollar sign ($), for example {{ $func() }}. And here are some of the functions that available inside the mustache tag.
$date(date, dateFormat?)
Get or format a date. This function takes two parameters, which the second parameter is optional.
If you want to format the current date, you can directly pass the dateFormat as the first parameter, like {{ $date('DD-MMMM-YYYY') }}, and the output would be 14-January-2022. See all the available date formats on the day.js page.
And for the date parameter, see the valid date format on the MDN page.
Examples
$date("DD MMMM YYYY") // 14 January 2022
$date("DD-MM-YYYY, hh:mm A") // 14-01-2022, 02:24 PM
$date("relative") // A few seconds ago
$date("timestamp") // 1651118110948
$date("2005-06-07", "DD MMMM YYYY") // 07 June 2005
$date("1977-04-01T14:00:30", "DD-MM-YYYY, hh:mm A") // 01-04-1977, 02:00 PM
$date("14 January 2021", "relative") // A year ago
$date("14 January 2021", "timestamp") // 1610553600000
$randint(min?, max?)
Generate a random number. You can change the range of the random number by inputting the min and max parameters.
Examples
$randint() // 30
$randint() // 14
$randint(0, 10) // 4
$randint(0, 10) // 7
$getLength(str)
Get the length of a string or array.
Examples
// Get the length of a string
$getLength("testing") // 7
// Get tabel length
$getLength([table]) // 14
// Get the length of the "text" column on the second row
$getLength([table@1.text]) // 5
$randData(expression)
A function to generate random data, you only need to pass an expression to its parameter. For example, $randData("?l") will generate a random lowercase letter like a. Supported expression:
?l: lowercase?u: uppercase?d: digit?f: uppercase + lowercase?s: symbol?m: uppercase + digit?n: lowercase + digit?a: any
You can also combine these expressions like $randData("?u?l?l?l?l?d?d@gmail.com") which will generate Apond89@gmail.com.
Examples
$randData("?d?d") // 89
$randData("?l?l?l?d?d@gmail.com") // wal29@gmail.com
$randData("?d?u?s?l?l?s?a?m") // 4C%ee^MF9
$multiply(value, multiplyBy)
Is used to multiply a value.
Examples
$multiply(5, 2) // 10
// Multiply a variable
$multiply([variables@variableName], 0.3) //20.7
$increment(value, incrementBy)
Is used to increment a value.
Examples
$increment(10, 2) // 12
$increment(72, 2) // 74
$divide(value, incrementBy)
Is used to divide a value.
Examples
$divide(22, 7) // 3.142857142857143
$divide(10, 2) // 5
$subtract(value, incrementBy)
Is used to subtract a value.
Examples
$subtract(80, 7) // 73
$subtract(11, 2) // 9
$replace(value, search, replace)
Is used to replace a string search from value to be replace string.
Examples
$replace("hello world!", "world", "everyone") // hello everyone!
$replace("hello world!", "hello", "hi") // hi world!
$toLowerCase(value)
Is used to lowercase a value.
Examples
$toLowerCase("HELLO WORLD!") // hello world!
$toLowerCase("hELLO wORLD!") // hello world!
$toUpperCase(value)
Is used to uppercase a value.
Examples
$toUpperCase("hello world!") // HELLO WORLD!
$toUpperCase("hELLO wORLD!") // HELLO WORLD!
$modulo(num, divisor)
Returns the remainder or signed remainder of a division.
Examples
$modulo(13, 5) // 3
$modulo(-13, 5) // -3
$modulo(4, 2) // 0
$modulo(-4, 2) // -0
Referencing Data Inside Mustache Tag
By using the square bracket([]), you can reference other data inside a mustache tag. For example, to format date based on the global data value {{ $date([globalData]) }}. Or if you want to get the table row based on the index of a loop {{ table@[loopData@loopId.$index].path }}.
