The quotes that break your Notion automation

In the previous article, we used empty() so a blank renewal stayed a number. This article is about that blank, and why a pair of quotes is not the same thing. π―
This article is a part of the Fantastic Formulas series. This series features helpful articles about formulas in Notion.
A formula that ends in "" looks like a blank. It is not. Quotes are text. If the other branch is a date, a number, or a person, the return type becomes unknown. In a database column the row still looks empty, which is why this one hides. In a button or an automation, Notion will not save the formula. π
Today we will fix the blank, then the two cousins that pause a run: an empty person, and a multi-select checked with ==. Just like in the previous article, I will proceed with a simple database. This time, letβs say we want the next check-in a week after the last contact. π
In this database shown below, you can see 4 properties. First property shows the client name, second one shows the last contact date, third property shows the owner, and the fourth is a multi-select called Tags. β
Example - Simple Follow-ups database
Harbor has no last contact, no owner, and no tags. That is the row that matters.
1. The pair of quotes
Notionβs help center uses a pair of quotes as the example of a wrong return type. One branch is a date. The other is text. The type is unknown, so an automation fails to save. Their example is if(Date, Date.dateAdd(1, "day"), ""). The formula reference writes the unit as "days", so that is what we will paste. β
if(prop("Last contact"), prop("Last contact").dateAdd(7, "days"), "")
Quotes as a blank date
As you can see below, the formula is perfectly working π½
Quotes and empty() look the same in the column
- Acme, last contact 26 Sep 2026 β 3 Oct 2026
- Northwind, 12 Sep 2026 β 19 Sep 2026
- Studio, 1 Sep 2026 β 8 Sep 2026
- Harbor β blank in both columns
The two columns match. A table cannot show you the type. A button that writes this value into a date property can. π
2. empty()
empty() is a blank that keeps the type of the other branch. dateAdd only runs when Last contact has a value. When it does not, empty() tells the automation to clear the date it is setting, instead of pausing. The syntax is
if(prop("Last contact"), prop("Last contact").dateAdd(7, "days"), empty())
empty() keeps the result a date
That is the shape Notion documents. Harbor is still blank. Acme is still 3 Oct 2026. The column did not change. The type did. β
"" is the right blank only when the other branch is also text. We did that in the previous article, wrapping the number in format() so both sides were text. Do not copy those quotes into a date formula. π
3. Buttons and automations
A formula property in a database is loose about its type. A formula inside a button or a database automation is not. Notion expects a date, text, number, or person, matching the property you are setting. If the type is unknown, the automation fails to save and will not run. β
Three contracts, same idea.
- Setting a date β return a date, or
empty() - Setting a person β return a person, or a list of people, not a name
- Setting text β return text, and
""is fine there
There is a second failure, after the formula saves. If it operates on an empty date or an empty person, the automation gets an error and pauses. The guard above is the documented fix. Check the value, then call dateAdd, and return empty() when it is missing.
You can also point the automation at a view that already filters out empty dates. Then the formula never sees Harbor. The guard is still the safer default, because someone will run the button from the full table. β
4. People and multi-select
People and relations come back as lists. The list article covers that for a database column. Inside an automation it is stricter. If you treat the list as one person, the run pauses. Take the first item, or loop with map. π
prop("Owner").first().name()
First owner, as text
That is text, which is right for a column you want to read. If the button is setting a Person property, return the person, and guard the empty row. β
if(empty(prop("Owner")), empty(), prop("Owner").first())
First owner, still a person
As you can see below, the formula is perfectly working π½
first() on Owner
Acme is Maya, Northwind is Jonah, Studio is Priya, and Harbor stays empty. Do not call .name() on that empty person inside an automation. That is the pause. π
Multi-select is a list of text. == compares the whole list to one string, which is not the check you think it is. Use includes. β
prop("Tags").includes("VIP")
includes() on a multi-select
As you can see below, the formula is perfectly working π½
includes(βVIPβ)
Acme and Studio are true. Northwind is Renew, so false. Harbor has no tags, so false. The false is a normal answer, not a pause.
Conclusion
Now you know why a pair of quotes breaks a Notion automation! "" is text. empty() is a typed blank. Use quotes only when the other branch is text. Guard empty dates and people before you call a function on them. And check a multi-select with includes, not ==. π₯
I hope this article was helpful and easy to understand. At Prototion, we are on mission to make Notion easy for everyone! So we regularly post Helpful articles about Notion like this one. π
Remember to check out the Fantastic Formulas series for more articles about Notion formulas. Doesnβt matter if you are a Notion beginner or a pro, I believe you will find this series helpful. Also, donβt forget to follow us on π¦ Twitter for daily updates, latest Notion template launches and amazing deals & discounts on Premium Notion templates! π
Short answers
Why do quotes break a Notion automation?
A pair of quotes is text. If the other branch is a date, a number, or a person, the return type is unknown, and the automation will not save.
What should I use instead of quotes for a blank date?
Use empty(). It keeps the type of the other branch, and it tells the automation to clear the property when the value is missing.
Why does a Notion automation pause on an empty person or date?
Operating on an empty date or person returns undefined, and Notion pauses the run. Check the value first, then call the function, and return empty() when it is missing.
Templates that do this for you
Built by independent makers on Prototion.
Free2024 Couple's Planner
Welcome 2024 with The Couple's Planner, a blend of love & planning. It's a keepsake of your journey together.
FreeDaily Planner
Make yourself feel like playing a game while completing tasks easily with this personalized template.
FreeSimple Task System
@SarthakA free Notion task system with four daily lanes β Top 3, Daily Hustle, Health Weekly and Side Hustle β plus archive, backlog, a linked database and a calendar.