A more user-friendly editor, 3 new data types, over 30 additional functions, support for variables — and much more. There’s a lot to cover, so let’s jump in!
New Formula Editor
Notion’s new formula editing experience has been upgraded in a number of ways.
- Multiline Editing: no more one-line formulas! Create a new line with
shift
+enter
- Code Indentation: make your formulas more readable by indenting with
tab
- Inline Comments: keep track of what your formula does with
/* handy comments */
- Property Tokens: Property references like
prop("This")
are now shown likeThis
in the editor.
Learn more about the formula editor.
New Data Types
List
Lists can hold items of any data type and are surrounded by square brackets. Lists are displayed as:
- Comma-separated: strings, numbers, and dates.
- Space-separated: People, booleans, and pages.
Learn more about the List data type.
Person
These represent Notion users, like those found in a Person property. People are displayed as full names with a photo.
Learn more about the Person data type.
Page
These represent Notion pages, like those found in a Relation property. Pages are displayed as a rich page link with a page icon.
Learn more about the Page data type.
New & Updated Functions
New Functions
- ifs
- split
- substring
- lower
- upper
- includes
- at
- every
- some
- filter
- match
- find
- findIndex
- first
- last
- flat
- let
- lets
- map
- repeat
- sort
- reverse
- sum
- parseDate
- dateRange
- week
- style
- unstyle
- link
- name
Updated Functions
- concat: Now concatenates lists, use + for concatenating strings instead
- join: Now joins items in a list, but still returns a string as per F1.0 behaviour
- slice: Now slices lists, use substring to slice strings instead
- start: Renamed to dateStart
- end: Renamed to dateEnd
Removed Functions
Six functions have been removed in favour of using their operator versions or other alternatives.
- larger:
larger(2, 1)
→2 > 1
- largerEq:
largerEq(2, 1)
→2 >= 1
- smaller:
smaller(2, 1)
→2 < 1
- smallerEq:
smallerEq(2, 1)
→2 <= 1
- unaryPlus:
unaryPlus(true)
or+true
→toNumber(true)
- unaryMinus:
-+true
orunaryMinus(+true)
→-toNumber(true)
Variables
Notion now supports variables! This is a huge step towards much more concise formulas. Formulas 2.0 introduces two types of variables: built-in and user-defined.
Built-in Variables
- current
- index
A number of the new functions allow you to reference built-in current
and index
variables, which return the current item in the list and its place in that list respectively.
Functions that allow for the use of current
and index
:
- map
- every
- some
- filter
- find
- findIndex
Read more about built-in variables.
User-defined Variables
Variables can be created using new let
and lets
functions. Note that these both work in exactly the same way, apart from:
- let allows for only one variable to be created.
- lets allows for multiple variables to be created.
Read more about user-defined variables.
Dot Notation
The majority of functions can now be written in two ways. The first we’ll refer to as the regular notation, and the new version as dot notation.
/* Regular Notation: All arguments are added within the () brackets */
dateAdd(now(), 2, "days")
/* ↑...↑ First argument */
/* Dot Notation: The first argument is added before the dot */
now().dateAdd(2, "days")
Code language: JavaScript (javascript)
The following functions cannot be written in the dot notation.
- e
- pi
- now
Learn more about the Notion formula syntax.
Simpler Nested if Statements
Gone are the days of multiple nested if
statements! The introduction of ifs
allows for a much more elegant way of handling if-else statements.