The formula editor
The editor offers several aids for writing your formulas:
- Syntax highlighting: functions, fields and operators are color-coded for easier reading
- Functions panel: browse available functions by category by clicking on the tabs (Attributes, Text, Numbers, Date, Logic)
- Search: type the name of a function or attribute to find it quickly
- Hover help: hover over a function to see its syntax, an example, and its description
- Click to insert: click on a function or attribute to insert it into your formula
- Real-time validation: an indicator shows you whether the formula is valid or not
Using an attribute in a formula
To use the value of another attribute in your formula, surround its name with curly braces:
The Attributes panel in the editor lists all available board attributes — click on one to insert it automatically.
Output format
Each formula produces a result that can be displayed in different ways. Choose the format that matches the expected result type:
Text
The result is displayed as is, in text form.
Example: CONCATENATE({Prénom}, " ", {Nom}) → Jean Dupont
Number
The result is displayed as a number, with several variants:
{Nom de la propriété}| Variant | Description | Example |
|---|---|---|
| Raw | Simple number, with optional unit | 42 €, 1 500 kg |
| Percentage | Percentage with optional progress bar | 75% ████░░ |
| Duration | Number accompanied by a duration unit | 3 jours, 8 heures |
| Rating | Stars or icons | ★★★☆☆ |
| Score | Value on an interval | 7 / 10 |
Available options:
- Unit and its position (before or after the number) — for Raw format
- Precision — number of decimal places displayed
- Progress bar — visual display for percentage
- Number of icons, color and icon type — for rating
- Minimum/Maximum — for score
Date
The result is interpreted as a date and displayed according to the chosen mode (standard, relative, ISO, etc.).
Example: ADD_DAYS({Date de début}, 14) → 15/05/2026
Available Functions
Text Functions
| Function | Description | Example | Result |
|---|---|---|---|
CONCATENATE(t1, t2, ...) | Joins multiple texts | CONCATENATE({Prénom}, " ", {Nom}) | Jean Dupont |
LEFT(texte, n) | First n characters | LEFT("Bonjour", 3) | Bon |
RIGHT(texte, n) | Last n characters | RIGHT("Bonjour", 4) | jour |
MID(texte, début, n) | Extract n characters from position | MID("Bonjour", 4, 4) | jour |
LEN(texte) | Text length | LEN("Bonjour") | 7 |
LOWER(texte) | Converts to lowercase | LOWER("HELLO") | hello |
UPPER(texte) | Converts to uppercase | UPPER("hello") | HELLO |
REPLACE(texte, début, n, nouveau) | Replaces a portion of text | REPLACE("Bonjour", 1, 3, "Sal") | Saljour |
SEARCH(recherche, texte) | Checks if a text contains another | SEARCH("jour", "Bonjour") | true |
SUBSTITUTE(texte, ancien, nouveau) | Replaces all occurrences | SUBSTITUTE("a-b-c", "-", "/") | a/b/c |
Tip: The
+operator can also be used to concatenate text such as{Prénom} + " " + {Nom}
Number Functions
| Function | Description | Example | Result |
|---|---|---|---|
SUM(n1, n2, ...) | Sum | SUM({Effort}, {Bonus}) | 15 |
AVERAGE(n1, n2, ...) | Average | AVERAGE(10, 20, 30) | 20 |
MIN(n1, n2, ...) | Minimum value | MIN({Estimation}, {Réel}) | 5 |
MAX(n1, n2, ...) | Maximum value | MAX({Estimation}, {Réel}) | 12 |
ABS(n) | Absolute value | ABS(-5) | 5 |
ROUND(n, décimales) | Rounded | ROUND(3.14159, 2) | 3.14 |
CEILING(n) | Round up | CEILING(4.3) | 5 |
FLOOR(n) | Round down | FLOOR(4.7) | 4 |
MOD(n, diviseur) | Division remainder | MOD(10, 3) | 1 |
POWER(base, exposant) | Power | POWER(2, 3) | 8 |
SQRT(n) | Square root | SQRT(16) | 4 |
EXP(n) | Exponential (e^n) | EXP(1) | 2.718... |
LOG(n, base) | Logarithm (base 10 by default) | LOG(100, 10) | 2 |
Arithmetic operators: +, -, *, /, ^ (power)
Date Functions
| Function | Description | Example | Result |
|---|---|---|---|
TODAY() | Today's date | TODAY() | 2026-04-29 |
NOW() | Current date and time | NOW() | 2026-04-29T14:30:00 |
DAYS(fin, début) | Number of days between two dates | DAYS({Échéance}, TODAY()) | 15 |
ADD_DAYS(date, n) | Adds n days to a date | ADD_DAYS(TODAY(), 7) | 2026-05-06 |
YEAR(date) | Extracts the year | YEAR({Date de création}) | 2026 |
MONTH(date) | Extracts the month (1 to 12) | MONTH({Date de création}) | 4 |
WEEKDAY(date) | Day of the week (1=Sun … 7=Sat) | WEEKDAY(TODAY()) | 4 |
HOUR(date) | Extracts the hour | HOUR({Horodatage}) | 14 |
MINUTE(date) | Extracts the minutes | MINUTE({Horodatage}) | 30 |
SECOND(date) | Extracts the seconds | SECOND({Horodatage}) | 0 |
FORMAT_DATE(date, format) | Formats a date | FORMAT_DATE(TODAY(), "dd/MM/yyyy") | 29/04/2026 |
FORMAT_DURATION(secondes) | Converts seconds to HH:MM:SS | FORMAT_DURATION(3661) | 01:01:01 |
Logical Functions
| Function | Description | Example | Result |
|---|---|---|---|
IF(condition, alors, sinon) | If… then… else | IF({Points} > 10, "Élevé", "Bas") | Élevé |
AND(c1, c2, ...) | True if all conditions are true | AND({Actif}, {Validé}) | true |
OR(c1, c2, ...) | True if at least one condition is true | OR({Urgent}, {Bloqué}) | true |
NOT(condition) | Inverts a condition | NOT({Archivé}) | true |
SWITCH(expr, v1, r1, …, défaut) | Multi-value switch | SWITCH({Priorité}, "Haute", 3, "Moyenne", 2, 1) | 3 |
ISBLANK(valeur) | True if the value is empty | ISBLANK({Description}) | false |
IFERROR(valeur, repli) | Fallback value in case of error | IFERROR({Prix} / {Quantité}, 0) | 0 |
Comparison operators: == (equal), != (not equal), <, >, <=, >=
Advanced Options — Business Days
For formulas using date calculations, you can enable Business days only mode:
- In the formula editor, open the Advanced Options section
- Enable Business days only
- Optionally configure holidays:
- Add dates individually via the selector
- Or import a list of dates via a CSV file
When this option is enabled:
DAYS()only counts business days (excludes weekends and holidays)
ADD_DAYS()adds business days (skips weekends and holidays)
Example: If Monday is 04/29/2026, ADD_DAYS(TODAY(), 3) will return 05/04/2026 (the following Monday) instead of 05/02/2026, because Saturday and Sunday are ignored.
Total Row (Spare Row)
For formulas with a Number output format, the total row at the bottom of the table automatically displays an aggregation:
| Variant | Displayed Aggregation |
|---|---|
| Raw | Sum of all values |
| Duration | Sum of all values |
| Percentage | Average of all values |
| Rating | Average of all values |
| Score | Average of all values |
Attributes Usable in a Formula
Only certain types of attributes can be referenced in a formula:
| Property type | Value injected into the formula |
|---|---|
| Text | The text content |
| Number | The numeric value |
| Date | The date in ISO format |
| Tag | The tag names, separated by commas |
| User | The user's name |
| Auto number | The auto-incremented numeric value |
| Creation date | The entity's creation date |
| Last modified date | The last modification date |
| Created by | The creator's name |
| Modified by | The last modifier's name |
| Lookup | The mirror value, only if the mirror property is itself of an allowed type listed above |
Not supported: Formula, Relation, Files, URL, Checklist, Rich text, Location, Board link, Deliverables, Vote, Connection.
Limits and best practices
- Performance: formulas are compiled and cached automatically. For boards with many items, favor simple formulas
NOW()andTODAY(): these functions return the date/time at the moment of display. They update with each page refresh, but not in real-time
- Date comparison: the operators
<,>,==,!=,<=,>=work directly on dates
- Text + Number: the
+operator automatically concatenates if one of the operands is text ("Total: " + {Points}→"Total: 42")
- Empty values: if a referenced attribute has no value, it is treated as an empty string (
""). UseISBLANK()to check andIFERROR()to handle errors