Templating techniques for Scenarios
Handle data like a pro 🧙♂️
Turn off smart field inputs to use the following techniques
{{#escape}}{{name}}{{/escape}}
// if {{name}} is 'aaaa"aaaa', this operator will add
// a backslash before each special character for escaping them.
// The result of templating will be: 'aaaa\"aaaa'
{{#stripNewLine}}this new
line{{/stripNewLine}}
// operator removes line breaks
// result of templating will be: 'this new line'
This operator escapes
\n
(line breaks). Thanks to that a multiline JSON can be sent in the http-request body as follows://{{json}} is a field value with multiline json
//body of the http-request:
{"key":"{{#escape}}{{#escapeNewline}}{{json}}{{/escapeNewline}}{{/escape}}"}
{{#encodeURIComponent}}Mr. John Smith{{/encodeURIComponent}}
// result: Mr.%20John%20Smith
Decodes the string encoded by
encodeURIComponent
{{#decodeURIComponent}}Mr.%20John%20Smith{{/decodeURIComponent}}
// result: Mr. John Smith
{{#toJsMultiLine}}test
test{{/toJsMultiLine}}
// result: test\ntest
{{#escapeJson}}He didn't say, "Stop!"{{/escapeJson}}
// result: He didn't say, \"Stop!\"
Hint: You may also use
moment().format()
{{#formatDate|dd MMMM, Y}}{{date}}{{/formatDate|dd MMMM, Y}}
// {{date}} == 2020-04-27T12:31:19.000Z
// result of templating will be: 27 April, 2020
// shows if is_vip == true
{{#is_vip}}vip{{/is_vip}}
// shows if is_vip == false
{{^is_vip}}not vip{{/is_vip}}
// {{books_ids}} — field type of arrayLink
// {{title}} and {{year}} — the fields of linked objects
{{#books_ids}}
– {{title}}, {{year}}
{{/books_ids}}
// If such {{books_ids}} contains, for example, three links,
// such a construction will result as follows:
// – Life of Samuel Johnson, 1791
// - Crime and Punishment, 1866
// - The Sun Also Rises, 1927
// We can template the Array field, iterationg its elements:
{{#arr}}
- {{.}}
{{/arr}}
// if {{arr}} == a,b,c
// result of templating will be:
// - a
// - b
// - c
Also, we can avoid empty elements of an array:
{{#musketeers}}
{{#.}}
- {{.}}
{{/.}}
{{/musketeers}}
// {{musketeers}} == "Athos", "Aramis", "", "D'Artagnan"
// result of templating will be:
// - Athos
// - Aramis
// - D'Artagnan
// {{book-json}} is a json-type field:
{
"title":"The Wealth of Nations",
"year": 1776,
"autor: {
"first_name":"Adam",
"last_name":"Smith"
},
"is_classic":true
}
We can address to its properties as follows:
{{book-json.title}} == The Wealth of Nations
{{book-json.is_classic}} == true
{{book-json.autor.first_name}} == Adam
Remember, that if JSON contains array of objects, you have to apply JS SDK methods (here it is an instruction).
Also, you can apply JS for parsing JSON, handle it as a js-object (don't forget to turn on JS-evaluating)
{{json}}.title
// or
{{json}}.title[0].name
// or
{{json}}["title"]
_.get({{json}},"title[0].name")
now == current date and time
today == current date, time 00:00
now -1 days == yesterday
today +N days == N days after today
now +10 minutes +15 seconds == 10 minutes and 15 seconds after the current moment
You can apply Lodash in expressions. Lodash is a modern JavaScript utility library delivering modularity, performance & extras.
// some examples:
_.defaults({ 'a': 1 }, { 'a': 3, 'b': 2 });
// → { 'a': 1, 'b': 2 }
_.partition([1, 2, 3, 4], n => n % 2);
// → [[1, 3], [2, 4]]
_.difference([2, 1], [2, 3]);
// => [1]