Formulas reference
All built-in functions follow PascalCase naming convention: their names start with upper letter
and capitalize each word in the name. All functions are succeeded by arguments nested in
parenthesis (
, )
- even if function is argument-less.
Functions marked as ACTION
are special - executing “action” type function might have a
side effect like adding a new row to an existing Table. They should not be treated as
idempotent functions - while standard functions are expected to yield the same result for
the same input, “actions” are not.
Collection functions
Find (needle, haystack)
Description
Outputs true if needle
exists in haystack
or false if not. Works with text and lists.
Arguments
needle
- A value you want to find.
haystack
- A string or list you want to find the needle in.
Examples
Find("world", "hello world")
→true
Find("world", "hello")
→false
\
Unique (args)
…
CountUnique (args)
Examples
CountUnique(List(1, 2, 3, 3, 3, 4))
→4
CountUnique(List(1, 2, 3, 4))
→4
CountUnique(List(1, 1, 2, 2))
→2
CountUnique(List("world", "world", "hello"))
→2
Sum (args)
Examples
Sum(List(1,2,3,4))
→10
List (args)
Examples
List(1, 2, 3, 3, 3, 4)
→[1, 2, 3, 3, 3, 4]
Nth (args)
Examples
Nth(List(1, 2, 3, 3, 3, 4), 2)
→2
Nth(List(1), 1)
→1
Nth(List(1), 10)
→undefined
\
First (args)
Examples
First(List(1, 2, 3, 3, 3, 4))
→1
First(List(1))
→1
Last (args)
Examples
Last(List(1, 2, 3, 3, 3, 4))
→4
Last(List(1))
→1
ForEach (args)
Examples
ForEach(List("Dog", "Cat"), Upper(CurrentValue))
→["DOG", "CAT"]
Filter (args)
Examples
Filter(List(1, 2, 3, 3, 3, 4), CurrentValue >= 3)
→[3, 3, 3, 4]
All (args)
Examples
All(List(1, 2, 3, 3, 3, 4), CurrentValue >= 3)
→false
All(List(1, 2, 3, 3, 3, 4), CurrentValue >= 0)
→true
Any (args)
Examples
Any(List(1, 2, 3, 3, 3, 4), CurrentValue < 0)
→false
Any(List(1, 2, 3, 3, 3, 4), CurrentValue >= 3)
→true
Logical functions
And (args)
Examples
And(True(), True())
→true
And(True(), False())
→false
Not (value)
Description
Outputs True if value
is falsey, and False if value
is truthy.
Arguments
value
- A value to negate.
Examples
Not(True())
→False()
\
Or (values…)
Description
Outputs True if any value
is truthy.
Arguments
value...
- A value(s) to check.
Examples
Or(True(), True())
→true
Or(True(), False())
→true
Or(False(), False())
→false
True (args)
Examples
True()
→true
False (args)
Examples
False()
→false
If (args)
Examples
If(True(), "That's true", "That's not true")
→"That's true"
If(6 < 5, "6 is more than 5", "That's not correct")
→"That's not correct"
IfBlank (args)
Examples
IfBlank("", "Default if blank")
→"Default if blank"
IfBlank("Hello world", "Default if blank")
→"Hello world"
String functions
Join (args)
Examples
Join("-", "This", "is", "Awesome")
→"This-is-Awesome"
Join(", ", "This", "is", "Awesome")
→"This, is, Awesome"
Join("| ", List("This", "is", "Awesome"))
→"This| is| Awesome"
Concatenate (args)
Examples
Concatenate("This", "Is", "Awesome")
→"ThisIsAwesome"
Concatenate(List("This", "Is", "Awesome"))
→"ThisIsAwesome"
Substring (args)
Examples
Substring("This Is Awesome", 5, 7)
→"Is"
Substring("This Is Awesome", 5)
→"Is Awesome"
ContainsText (args)
Examples
ContainsText("a needle in the haystack", "needle")
→true
ContainsText("Trippers and askers surround me", "trip")
→false
ContainsText("But they are not the Me myself", "me", True())
→true
ContainsText("crème fraîche", "creme", False(), True())
→true
EndsWith (args)
Examples
EndsWith("Hello world", "Find me")
→false
EndsWith("Hello world", "world")
→true
EndsWith("Hello World", "world", True())
→true
EndsWith("Hej världen", "varlden", False(), True())
→true
StartsWith (args)
Examples
StartsWith("Hello world", "Find me")
→false
StartsWith("Hello world", "Hello")
→true
StartsWith("Hello World", "hello", True())
→true
StartsWith("Hej världen", "Hej var", False(), True())
→true
Substitute (args)
Examples
Substitute("Hello world", "Hello", "Good morning")
→"Good morning world"
Substitute("ho ho ho", "ho", "yo")
→"yo ho ho"
SubstituteAll (args)
Examples
SubstituteAll("The Cat in the Hat", "at", "orn")
→"The Corn in the Horn"
SubstituteAll("ho ho ho", "ho", "yo")
→"yo yo yo"
Upper (args)
Examples
Upper("hello WORLD")
→"HELLO WORLD"
Lower (args)
Examples
Lower("hello WORLD")
→"hello world"
Number (args)
Examples
Number(5)
→5
Date functions
Now
Examples
Now()
→ 2025-02-28
File functions
ParseJSON (args)
Examples
ParseJSON("{\"Name\":\"Jira\",\"Key\": \"JIRA\"}")
→{"Name": "Jira", "Key": "JIRA"}
Object functions
Dig (args)
Examples
Dig(ParseJSON("{\"Name\":\"Jira\",\"Key\": \"JIRA\"}"), "Name")
→"Jira"
Equals (args)
Examples
Equals(2, 1+1)
→true
Equals(2, True())
→false
Table functions
Table (tableId)
Description
Outputs contents of a Fundamento Table in a form of JSON representation. Rows from that Table will
be converted to an array of objects, each object consisting of values of that row for the table
columns. Objects will have duplicate key-value entries: one using column display name, and second
using immutable identifier of the column (i.e. {"First Name": "Adrian", "9IJo5SGMLL": "Adrian"}
).
Arguments
tableId
- An identifier representing uniquely the Table in the Space
(learn more). For convenience, Table name can be used as well.
Examples
Table("Invoices")
→[{"Invoice No": "AB/03/2025", "First Name": "Adrian", "Last Name": "Ballemont", "Sale Date": "02/03/2025", "IAmount": 500}]
CurrentRow (columnId)
Description
Outputs contents of a specific cell for a current row. Use it in formul in a Formula
column types - elsewhere CurrentRow
will be invalid.
Arguments
columnId
- An identifier representing uniquely the Column in the Table (learn more).
For convenience, Column name can be used as well.
Examples
CurrentRow("First Name"")
→"Adrian"
AddRow (tableId, columnId, columnValue) ACTION
Description
Adds a new row to a Fundamento Table. Optionally can fill value(s) in specified column(s).
Arguments
tableId
- An identifier representing uniquely the Table in the Space (learn more). For
convenience, Table name can be used as well.
columnId...
- An identifier representing uniquely the Column in the Table (learn more). For
convenience, Column name can be used as well.
columnValue...
- value to use for specified Column when creating new Row.
Examples
AddRow("Invoices", "Sale Date", "02/03/2025", "Updated", Now())
AddOrUpdateRows (tableId, criteria, columnId, columnValue) ACTION
Description
Modifies all rows in a Fundamento Table matching the criteria. If no match is found, a new row will be inserted to Table.
Arguments
tableId
- An identifier representing uniquely the Table in the Space (learn more). For
convenience, Table name can be used as well.
criteria
- Expression to select the rows for update
columnId...
- An identifier representing uniquely the Column in the Table (learn more). For
convenience, Column name can be used as well.
columnValue...
- value to use for specified Column when creating new Row.
Examples
AddOrUpdateRows("Invoices", CurrentRow("Sale Date") == "02/03/2025", "Sale Date", "02/03/2025", "Updated", Now())
DeleteRows (tableId) ACTION
Description
Removes all rows from a Fundamento Table, effectively clearing it.
Arguments
tableId
- An identifier representing uniquely the Table in the Space (learn more). For
convenience, Table name can be used as well.
Examples
RemoveRows("Invoices")
RunActions (actions…) ACTION
Examples
RunActions(RemoveRows("Invoices"), AddRow("Invoices", "Name", "Sample initial invoice"))
User functions
User (userId)
Description
Outputs Fundamento user in the form of its JSON representation. Can be also used to retrieve details of the currently
logged in user. User details example structure:
id:3,
email: "pawel.nowak@random.pl",
organization_role: 0,
created_at: "2025-02-03T21:33:04.187Z",
updated_at: "2025-03-27T11:42:03.149Z",
first_name: "Pawel",
last_name: "Nowak",
display_name: "Pawel Nowak"
Arguments
userId
- An identifier representing uniquely the User in the Organization. If none provided, formula will return
currently logged in user details.
Examples
User()
→{id:3, email: "pawel.nowak@random.pl", …, display_name: "Pawel Nowak"}
Dig(User(), "display_name")
→Pawel Nowak
Dig(User(3), "display_name")
→Pawel Nowak
User(-1))
→'-1 is invalid user reference