Skip to Content
FormulasReference

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

Last updated on