JavaScript Expressions
Use JEXL templating to dynamically reference and transform data in your workflow fields
Overview
The templating system uses JEXL (JavaScript Expression Language) and supports transforms (pipe syntax) and function calls. You can use JavaScript expressions in any field throughout your workflows to dynamically reference and transform data from previous nodes.
Transform Syntax (Recommended)
${ value | transform1(arg1) | transform2() }Function Syntax (Alternate)
${ functionName(value, arg1) }Variable Reference
${<slug>.<outputKey>}Example: ${fetchUsers.users[0].email}
Expression Categories
Browse the expression categories below to learn about all 27 available functions. Each category page includes detailed examples and usage for every function.
String Utilities
11 functions for string manipulation
- • split, join, replace, regexReplace
- • trim, lower, upper
- • startsWith, endsWith, contains, slice
Array Utilities
7 functions for array operations
- • first, last, at, length
- • uniq, compact, sort
Object Utilities
4 functions for object manipulation
- • get, keys, values
- • has
Type/Utility Helpers
5 functions for type conversion
- • toString, toNumber
- • default, json, date
Important Notes
- •Null/Type Safety: Functions return sensible fallbacks (
"",[], ornull) rather than throwing errors when inputs are null/undefined or of the wrong type. - •Chaining: Transforms can be chained left-to-right:
${ value | transform1() | transform2() } - •Variable References: Always reference data via node slug and output key:
${slug.outputKey} - •Property Access: Dot (
.) is for property access only, not method calls. Use transforms instead.
Example Usage
Complex Example: Path Processing
Get last path segment, strip extension, remove dashes
${ githubReadFile1.filePath | split("/") | last() | replace(".ts", "") | replace("-", "") }User Data Processing
Pick first user's email, lowercase and trim
${ fetchUsers.users[0].email | lower() | trim() }Array Joining
Join tags with commas
${ article.tags | join(", ") }