You may notice that a Notion formula property returns only part of the expected text, cutting off at a specific character count. This truncation happens because Notion formulas have a hard limit on the length of the string they can output. The maximum output length for a formula property is 2,000 characters; any content beyond that is silently dropped. This article explains the technical reason for this limit, provides steps to diagnose and work around the problem, and covers related issues you might encounter with long formula outputs.
Key Takeaways: Notion Formula Character Limit
- Formula property output limit: Notion truncates formula output at 2,000 characters, discarding the rest without warning.
- Rollup and relation formulas: These often produce long strings that exceed the limit; use the slice() function to preview parts of the text.
- Workaround with separate properties: Split the formula into multiple formula properties, each handling a 2,000-character chunk, then concatenate in a final formula.
Why Notion Enforces a 2,000-Character Output Limit
Notion stores formula results as a computed property in its database engine. To keep performance predictable and prevent infinite loops or massive string bloat, the platform imposes a hard cap of 2,000 characters on the final output of any formula property. This limit applies to the rendered string value only — the internal logic of the formula can process longer strings, but the result that appears in the database cell and in views is truncated.
The truncation is silent. There is no error icon, warning badge, or log entry. The formula executes without failure, but the output ends abruptly at the 2,000th character. This behavior is by design, not a bug. It affects all formula types: concat(), format(), join(), and any custom expression that produces a string longer than 2,000 characters.
The Role of Rollups and Relations
Rollup formulas that aggregate text from related database entries are the most common trigger. For example, a rollup that joins all notes from linked tasks can easily produce a string of several thousand characters. Similarly, formulas that use the map() or filter() functions to build a list of names often exceed the limit. The truncation occurs after the formula computes the full result but before it displays in the cell.
Steps to Diagnose and Work Around the Character Limit
- Check if truncation is occurring
Open the database view and click into the formula cell. If the text ends abruptly without a complete sentence or with a missing closing bracket, the output is likely truncated. Count the characters of the visible text using a character counter tool. If it is exactly 2,000 characters, the limit is confirmed. - Use the slice() function to inspect the full output
Create a temporary formula property with the expression:slice([YourFormula], 0, 5000). This attempts to show the first 5,000 characters. If the result is exactly 2,000 characters, the original formula output exceeds 2,000. Replace 5000 with a larger number to confirm the truncation point. - Split the formula into multiple formula properties
Create Formula 1 withslice([YourFormula], 0, 2000). Create Formula 2 withslice([YourFormula], 2000, 4000). Create Formula 3 withslice([YourFormula], 4000, 6000). Each formula holds a 2,000-character chunk. Then create a final formula that concatenates them:[Formula 1] + [Formula 2] + [Formula 3]. This final formula will also be truncated at 2,000 characters, but now you can view each chunk in separate columns. - Use a text property to store the full content
If the formula output is derived from other properties, consider using a rollup or a relation that writes the long text into a text property instead. For example, use a button property with the action “Edit property” to copy the formula result into a long-text field. This bypasses the formula output limit entirely because text properties can hold up to 200,000 characters. - Reduce the formula output length
Modify the formula to output only essential information. Use the left() function to keep the first 1,900 characters:left([YourFormula], 1900). Or use the replace() function to remove repeated delimiters or whitespace. Shorten text from rollups by using the map() function to extract only the first 50 characters of each related entry.
If Notion Still Truncates After Applying the Workaround
Formula shows 0 characters after splitting
If a slice() formula returns an empty string, the starting index may be beyond the actual string length. For example, slice([YourFormula], 2000, 4000) returns empty if the original string is only 3,000 characters. Adjust the slice ranges to match the actual length. Use a formula to get the string length: length([YourFormula]).
Rollup formula refuses to update
If you change a rollup formula but the output stays the same, the rollup may be cached. Click the three-dot menu on the rollup property and select “Refresh rollup.” This forces Notion to recompute the value. If the rollup still truncates, the source text in the related database already exceeds 2,000 characters.
Button property cannot copy the full formula output
The button property action “Edit property” can write the formula result into a text field, but the button itself also has a 2,000-character limit for the formula it passes. Use a different approach: create a rollup that pulls the long text from a related database and then use a button to copy that rollup value. The rollup property has the same 2,000-character limit as formulas, so this method only works if the source text is under 2,000 characters.
Notion Formula Limits vs Other Property Types
| Property Type | Maximum Character Length | Truncation Behavior |
|---|---|---|
| Formula | 2,000 characters | Silently truncates; no error message |
| Text (single line) | 2,000 characters | Silently truncates when pasting or typing |
| Text (long text / paragraph) | 200,000 characters | No truncation within limit; shows scrollbar |
| Rollup | 2,000 characters | Silently truncates; same as formula |
| Title | 1,500 characters | Silently truncates; shows ellipsis in views |
Notion formulas and rollups share the same 2,000-character output limit. Text properties that are marked as “Long text” can hold up to 200,000 characters and do not truncate within that range. Title properties have a lower limit of 1,500 characters. When building a workflow that needs to display large amounts of computed text, use a long-text property as the final destination and write the formula result into it via a button or a manual copy-paste.
The 2,000-character limit also applies to the input of certain functions like concat() and join() when they produce the final output. The formula engine can process intermediate strings longer than 2,000 characters, but the final result is always capped. This means you can safely use intermediate variables or nested functions to build a long string, as long as the final return value stays under the limit.
To check the exact length of a formula output, use the formula length([YourFormula]). If it returns a number greater than 2000, you know the output is truncated. Compare this number to the visible character count. For example, if length() returns 4500 but the cell shows only 2000 characters, the truncation is confirmed. You can then apply one of the workarounds described above.
Now you understand why Notion formula output truncates at a specific character length and how to work around it. Use the slice() function to inspect the full output, split the formula into multiple properties to view chunks, or route the final text into a long-text property. For a permanent solution, design your formulas to stay under 2,000 characters by extracting only the most relevant data.