You have a Notion database with a formula property that calculates a value, but you want that formula to automatically trigger another action — such as sending a notification, updating a status, or creating a new page. The formula does not execute any action, and you cannot find a way to make it do so. This limitation exists because Notion formulas are read-only computations that cannot initiate side effects. They only evaluate and display a result based on existing data. This article explains why formulas cannot trigger actions and what alternatives you can use to automate workflows.
Key Takeaways: Notion Formula Read-Only Limit
- Formula property type: A read-only computed field that cannot modify other properties, create pages, or send data outside the database.
- Automations (button property): Use the Button property with Formulas to run actions like editing a property or sending a webhook when a condition is met.
- Notion API + external service: Connect Notion to Make, Zapier, or a custom script to read formula results and trigger actions based on the computed value.
Why Notion Formulas Are Read-Only and Cannot Trigger Actions
Notion formulas are designed to compute and display a value from other properties in the same database row. They operate like a calculator: you input numbers, dates, or text, and the formula outputs a result. The formula engine does not have permission to write data back to the database, create new pages, send emails, or call external APIs. This design is intentional to keep formulas safe and predictable — they cannot accidentally delete data or cause infinite loops.
The root cause is that Notion formulas run on a read-only virtual machine. When you write a formula, Notion evaluates it every time the page loads or a related property changes. The evaluation produces a string, number, date, or boolean value that appears in the formula column. No side effects are allowed. This means you cannot use if() to launch an automation, now() to trigger a time-based event, or prop() to update another property.
What Formula Functions Cannot Do
Every formula function is purely computational. The following actions are impossible inside a formula:
- Modify any property value in the same row or another row
- Create a new database page or delete an existing page
- Send a notification or email to a user
- Call an external API or webhook
- Start a Notion automation or trigger a button
If you need any of these actions, you must use a different Notion feature — the Button property, database automations, or an external integration via the Notion API.
How to Trigger Actions Based on Formula Results
Because a formula cannot trigger an action directly, you need to use a property that can write data or run automations. The most effective approach is to combine a formula with a Button property or with Notion’s built-in automations. Below are two methods that achieve the same goal: an action runs when a formula condition is met.
Method 1: Use a Button Property with a Formula Condition
- Create a formula that outputs a boolean
Write a formula that returns true or false based on your condition. For example,prop("Due Date") <= now()returns true if the due date is today or in the past. - Add a Button property to the database
Click the + icon in the database header, select Property type, and choose Button. Name it something like "Overdue Action." - Configure the button to check the formula
In the Button settings, under Condition, select the formula property and set it to equals true. This makes the button visible only when the formula returns true. - Define the action the button will run
Under Action, choose what you want to happen — for example, Edit a property to change the Status to "Overdue" or Send a notification to assignee. - Test the button
Click the button on a row where the formula returns true. The action should execute. If the formula returns false, the button is hidden.
Method 2: Use Notion Automations with a Formula-Based Filter
- Create a formula that outputs a checkbox or status
Use a formula to produce a value that a Notion automation can filter on. For example,if(prop("Priority") == "High", "High Priority", "")outputs text that an automation can detect. - Open Notion automations
Click the three-dot menu in the top-right of the database, then select Automations. Click + New automation. - Set the trigger condition
Choose When a page is edited. Then add a filter: select the formula property, choose Contains or Equals, and enter the expected value from the formula. - Choose the action
Select an action such as Edit a property, Send a notification, or Create a page. This action runs automatically when the filter matches. - Save and test the automation
Change a property in a row that will update the formula. The automation should fire within a few seconds.
If the Formula Still Won't Trigger an Action After Configuration
Button property does not appear even when formula is true
The Button condition may be set incorrectly. Open the Button property settings and ensure the Condition field uses the correct formula property name. Also confirm the formula outputs a boolean (true/false) and not a string like "true." If the formula returns a string, the condition Equals true will never match. Change the formula to return a boolean using true or false without quotes.
Automation does not run after formula updates
Notion automations trigger only when a page is edited, not when a formula recalculates on its own. If the formula changes because a related property changed, but no edit event occurred on the page, the automation will not fire. To force the automation, you must edit any property on the page — for example, add a checkbox and toggle it. Alternatively, use a Button property instead of an automation because the button runs on click regardless of edit events.
Formula result is correct but external service does not receive it
If you are using Make or Zapier, the integration may not read formula values when a page is updated. Some integrations only read properties that are manually edited. To work around this, add a formula result to a text property using a Button action. The Button can copy the formula output into a plain text property, which the integration can then read reliably. This two-step approach ensures the external service gets the computed value.
Notion Formula vs Button vs Automation: Capabilities Compared
| Item | Formula | Button | Automation |
|---|---|---|---|
| Reads properties | Yes | Yes | Yes |
| Writes properties | No | Yes | Yes |
| Creates pages | No | Yes | Yes |
| Sends notifications | No | Yes | Yes |
| Runs automatically | Yes (on recalc) | No (requires click) | Yes (on trigger) |
| Requires external API | No | No | No |
| Can call webhooks | No | Yes | Yes |
Notion formulas are powerful for computation but are strictly read-only. To trigger actions, you must use either the Button property for manual execution or Notion automations for automatic execution. For complex workflows that involve external systems, combine a formula with a Button that writes to a plain text property, then use the Notion API with Make or Zapier to read that text property and fire an action. This layered approach gives you the computation power of formulas without violating the read-only constraint.