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 like`This`

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`

or`unaryMinus(+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.