Writing Formulas
Learn formula syntax, column references, operators, empty value handling, type coercion, batch calculation, and how formulas trigger automations.
Formulas combine column references, functions, and operators to produce a value that Formula Trigga writes to a classic column — triggering any automations watching it.
Formula Syntax Basics
Every formula follows the same pattern: reference columns with curly braces, apply functions, and connect with operators.
IF({Priority} == "High", "Urgent", "Normal")The formula editor provides:
- Autocomplete — type
{to see available columns, start typing a function name to see suggestions - Function tooltips — hover over a function name for description and parameter info
- Error feedback — validation messages appear below the editor if your formula has issues
Referencing Columns
Use curly braces to reference column values:
{Column Name}{Status} returns the current status label. {Numbers Column} returns the numeric value.
Status filter syntax: {Status}="Done" returns true if the status matches "Done", false otherwise. This is the canonical syntax shown in autocomplete.
Column renaming is safe. Formulas are stored using internal column IDs, not display names. Renaming a column doesn't break your formulas — the editor always shows the current name.
Using Functions
Functions follow the pattern FUNCTION_NAME(arg1, arg2):
IF({Numbers Column} > 100, "Big", "Small")CONCATENATE({First Name}, " ", {Last Name})FORMAT_DATE(ADD_DAYS(TODAY(), 7), "MMMM Do, YYYY")Formula Trigga supports 57 functions across 5 categories: Date/Time (20), Numeric (16), Text (12), Conditional (6), and Constants (3). See the Function Reference for the full list.
Operators
| Operator | Type | Notes |
|---|---|---|
+, -, *, / | Arithmetic | Standard math |
^ | Power | Exponentiation: 2 ^ 3 = 8 |
% | Modulo | Remainder: 10 % 3 = 1 |
>, <, >=, <= | Comparison | Works with numbers and date strings |
==, != | Equality | Standard comparison |
= (with text) | String match | Rewritten to EXACT() — case-sensitive |
<> (with text) | Negated match | Rewritten to not(EXACT()) |
= (with number) | Numeric equality | Rewritten to == |
<> (with number) | Numeric inequality | Rewritten to != |
Operator rewriting: When you use = or <> with a text value, Formula Trigga converts them to EXACT() calls for case-sensitive matching. With numbers, they become == and !=. This happens behind the scenes.
Examples:
{Status} = "Done" → EXACT({Status}, "Done")
{Status} <> "Done" → not(EXACT({Status}, "Done"))
{Numbers Column} = 100 → {Numbers Column} == 100How Formulas Trigger Automations
This is Formula Trigga's core purpose — the reason the product exists.
- A source column value changes (someone updates a cell, an automation sets a value, etc.)
- Formula Trigga detects the change and recalculates your formula
- The result is written to the target column — a classic column that automations can watch
- monday.com automations fire as if someone had manually updated that column
The 8 target column types that support this: Text, Numbers, Date, Status, People, Long Text, Email, and Dropdown. See Supported Columns for details on what each accepts.
Because Formula Trigga writes to classic columns, every monday.com automation recipe that watches column changes works out of the box: "When status changes to...", "When date arrives...", "When column changes, notify...".
Empty Values
When a column has no value, formulas see a type-specific default — not always what you'd expect.
An empty Status column returns the string "Empty", not an empty string "". Writing IF({Status} == "", ...) won't match — use IF({Status} == "Empty", ...) instead.
| Column Type | Empty Value | Notes |
|---|---|---|
| Status | "Empty" | The string "Empty" — not an empty string |
| Numbers | 0 | Null becomes zero |
| Rating | 0 | Same as "not rated" |
| Checkbox | false | Always true or false, never "empty" |
| Text | "" | Empty string |
"" | Empty string | |
| Phone | "" | Empty string |
| Long Text | "" | Empty string |
| Date | "" | Empty string |
| Hour | "" | Formatted as "HH:MM" or empty string |
| Country | "" | Empty string |
| Link | "" | Empty string |
| Item ID | "" | Empty string |
| Timeline | {start: "", end: ""} | Both sub-properties empty |
| People | {count: 0, names: "", ...} | All string properties empty, count 0 |
| Time Tracking | {seconds: 0, minutes: 0, hours: 0} | All numeric properties 0 |
| Dropdown | {labels: "", count: 0} | Empty string, count 0 |
| Vote | {count: 0, names: ""} | Count 0, names empty |
| Subtasks | {names: "", count: 0} | Names empty, count 0 |
| Board Relation | {names: "", count: 0} | Names empty, count 0 |
| Dependency | {names: "", count: 0} | Names empty, count 0 |
| Location | All properties "" | All 8+ properties return empty string |
| Creation Log | {name: "", date: "", datetime: ""} | All empty strings |
| Last Updated | {name: "", date: "", datetime: ""} | All empty strings |
Guard pattern for Status:
IF({Status} == "Empty", "Not set", {Status})Type Coercion
When a formula result is written to a target column, Formula Trigga converts the value to fit the column type.
| Formula Result | Target Column | What Gets Written | Example |
|---|---|---|---|
true | Text | "Yes" | IF(1>0, true, false) → "Yes" |
false | Text | "No" | |
true | Numbers | 1 | |
false | Numbers | 0 | |
| Date object | Text | UTC string | Use FORMAT_DATE() for clean output |
| Date object | Date | "YYYY-MM-DD" (ISO format) | |
"3.14" (string) | Numbers | 3.14 | String parsed to number |
"invalid" | Numbers | Error | Non-numeric string can't be cast |
"A, B, C" | Dropdown | Three separate labels | Split on commas |
null / empty | Any | Clears the column | Formula returning nothing empties the cell |
| PersonEntity array | People | Sets assignees | Only via bare {People Column} reference |
Key things to watch:
- Booleans become text.
true→ "Yes",false→ "No" when targeting a Text column. - Null clears. If your formula returns nothing, the target column is emptied.
- Dropdown comma splitting. Text with commas is split into multiple dropdown labels.
"High Priority"stays one label, but"High, Medium"becomes two. - Dates need formatting. Without
FORMAT_DATE(), a date written to a Text column produces a long UTC string. Always useFORMAT_DATE()for text output.
Enabling and Disabling Formulas
Toggle a formula on or off without deleting it.
- Enabled — the formula recalculates whenever source columns change
- Disabled — the formula stops recalculating, but the configuration is preserved
Disabling is useful during bulk data imports or when temporarily pausing calculations without losing your formula setup.
Batch Calculation
When you add a formula to a board that already has data, existing items won't have calculated values yet — formulas only trigger on column changes.
Use "Set and calculate all items" to apply the formula to every item on the board at once.
- A confirmation modal shows the item count and quota impact before processing
- Progress tracking shows how many items have been calculated
- Useful when deploying a new formula to an existing board or after modifying a formula
Formula Limits
| Limit | Value |
|---|---|
| Formula length | 5,000 characters |
| Column references per formula | 100 |
Characters inside a {reference} | 200 max |
These limits are enforced in the editor and during calculation.
Next Steps
- Supported Columns — target columns, source columns, and column properties
- Recipes and Patterns — ready-to-use formulas for common workflows
- Troubleshooting — health view, common errors, FAQ, and support