Coda vs Notion: Formulas

What do they share and where do they differ?

Scott Weir

Founder at SimplaDocs

Coda vs Notion: Formulas

By Scott Weir

Share this article

Share on TwitterShare on LinkedInShare on Facebook
Tool consolidation · 5 min read
Let’s be honest: Notion Formulas 2.0 is awesome. It’s a big leap in the product and something that brings Notion’s capabilities closer to Coda’s. There were even some updates that I wish Coda would implement. These include a native index logic for looping and a lets() formula that allows for naming multiple variables at once. Even with those updates, there are still aspects to Notion’s formula experience that I find lacking in comparison to what Coda offers the formula-writing nerd. Personal opinion...read on to form your own! Some of those aspects are minor and would simply make writing formulas more pleasant. Then there are larger differences in the two platforms’ approaches to formulas that make them significantly different in terms of the types of workflows they can support. Let’s look at the larger differences in formula approaches and then finish up with the small things.

The big ones.

The more significant differences between Coda’s and Notion’s approaches to formulas.

Canvas formulas.

Notion empowers you to write formulas in columns and table filters, while Coda allows for formula writing in nearly every aspect of its product. In Coda you can write formulas absolutely anywhere! Some places you can write formulas are:
  • Table filters
  • Conditional formats
  • Table columns
  • Column options
  • Inline / Canvas formulas
  • Automations
  • Buttons
For example, if this was in Coda’s canvas (the blank page, ready for your information and creativity), I could write inline or canvas formulas that would always correctly display the current day, month, and year within the sentence. Today is Tuesday in the month of April in the year 2024. To create each of the dynamic, bold words above in Coda, I used the following inline formulas:
  • Today().WeekdayName()
  • Today().MonthName()
  • Today().Year()
Another simple way to do this is to use the formula Now(), which outputs the current date and time, and it dynamically updates each second when in Coda.

The formula Now() outputs the current date and time.

Being able to write canvas formulas opens up a world of possibilities, including the creation of some truly amazing dashboards that can track your progress, visualize data, and so much more! Every number in red below shows an inline formula drawing out information from your databases for live, up-to-date information.

A dashboard built in Coda that automatically updates to always show live, up-to-date information.

Endless references.

Coda allows you to reference anything in your doc from anywhere else in your doc. You can infinitely refer to other databases, other columns in other pages, controls and sliders on the canvas, and more. Notion formulas only allow you to reference properties that are immediately accessible in the table in which you are writing a formula.

Action formulas.

Action formulas are likely one of the largest ways Coda’s approach differs from Notion’s, so it’s important to cover this area in a bit more depth. First, let’s explore the difference between two larger types of formulas: passive and active.

Passive vs active formulas.

In Notion, formulas are passive in nature. They take a set of inputs and produce an output but they do not have the ability to make changes to anything other than their output. On the other hand, Coda’s action formulas are all active, enabling users to take actions that modify data in the doc, trigger actions within the app, or make changes in external services.

Changing data in your doc.

One of the key capabilities of Coda’s action formulas is the ability to change data in your doc. Users can add or modify rows, duplicate pages, set control values, and perform various other data manipulation tasks. This level of interactivity allows for dynamic updates and makes it easier to automate repetitive tasks, perform more advanced calculations, and create more app-like experiences for users.

Interactivity in Coda allows for dynamic updates.

Making changes in external services.

In addition to changing data within the doc and triggering actions in the app, Coda’s action formulas can also make changes in external services. This integration capability opens up a world of possibilities, allowing users to create calendar events in Google Calendar, update the status of Jira issues, send messages in Slack, and more. As of this writing, there are over 700 available Coda packs made by Coda employees as well as Coda enthusiasts! You can check them all out here. By seamlessly connecting with external services, Coda empowers users to automate tasks and streamline their workflows across different platforms. Coda’s button actions are also configurable by users and able to connect with a service that has an API. So if a connection for a button action doesn’t already exist, you can build it yourself!

Manual and automatic execution.

Coda’s action formulas can be executed manually or automatically. Users have the flexibility to add these actions to buttons or automations, which can be triggered either by user interaction or automated events including inbound webhooks.

The small things.

The following are small aspects of writing formulas in Coda that make the experience easier, more accessible, and less prone to human error.

Output type hints.

Numbers, lists, text, row-references, dates, true/false. All of these are data types, and every time you write a formula in Coda or Notion the output of your formula has a certain type. Understanding these types is crucial to writing formulas that work, and using or referencing that data later on. In Coda, when you are writing any formula, you are always given live information on what final data type your formula will output.

While writing formulas, you will always see an icon in this area. This specific screenshot shows that the output type of this formula is a number.

See this doc for a full list of Coda data types and the icons that correspond to them.

Object hint types (by icon or clicking).

When writing formulas in Coda, each object in your formula (which corresponds to a row, column, table, etc.) will give you a hint as to what its data type is. Understanding the data type of an object makes writing formulas 100x easier and, even more importantly, they help you understand what you cannot do in a formula. For example:
  • You can’t add/subtract text values, only numbers.
  • You can’t check if a task is coming up this week if you aren’t comparing date values.
  • You can’t use list operators, i.e., Slice(), Splice(), Count(), Filter(), on values that aren’t lists. So, for example, you can’t count the number of tasks due for a project if the tasks aren’t held as a list.
Coda makes it extremely easy to see the data types of every referenced object in a formula. For example, the formula pictured below shows the following object data types:
  1. Table
  2. Date value
  3. Date value
  4. Boolean value (true/false)
  5. Text
  6. List of numbers

Coda displays the data types of every referenced object in a formula.

If you want to see a full list of the 25 different data types possible within Coda formulas, check out this doc.

Reference highlights (e.g., referenced column).

Formulas often become complex, referencing different columns or objects within your databases. When writing a Coda formula, everything you reference is highlighted in your doc itself to help you better understand where your data is coming from and what data you are referencing. In this example, you can see the different columns and objects referenced in your formula highlighted in green and pink. The green shows that it’s coming from this one table, and the pink shows it’s from a different place.

Coda clearly displays the different columns and objects referenced in your formula highlighted in green and pink.

Auto-formatting.

Long formulas can become nearly impossible to understand without formatting—and a formula that cannot be understood cannot be modified and fixed. With the click of a button, Coda will auto-format a formula which leads to more easily understandable formulas. Notion allows for breaking lines and ignoring white space like Coda formulas but all formatting must be manually inserted.

Coda's auto-formatting feature in action.

Single-line comments (with //).

Traditional coding in JavaScript allows you to comment in two ways:
  • Blocks of comments with /* */
    /* Enclosing anything with this syntax allows one to insert blocks of comment ignored when a script is run */
  • Single-line commenting with //
    // For shorter comments, JavaScript allows you to add single lines of comments
Coda allows for both blocks of comments and single-line commenting, while Notion only allows for comment block syntax. On a minor note, typing // is significantly easier than typing /*.

This formula in Notion shows that single-line commenting is not possible on the platform.

Auto-suggest comparison values.

In Coda, when you are writing formulas and referencing select-lists or relations to other tables, you get auto-suggestions for the possible selection types. These auto-selections make formula writing quicker and more accurate, as the user is less prone to spell something wrong and receive invalid results.

Coda's auto-suggestions make formula writing quicker and more accurate.

Stable comparisons.

Even more importantly, Coda’s comparisons are stable. For example, in the formula pictured below, a user is filtering contract types to find contracts that are Current.

Filters in Coda are less prone to breaking when workflows or wording are modified.

If the user later changes the selection type for Current to Active, the formula itself will not break as it’s tied to the underlying object or selection itself and not to the actual text or wording of a selection. If the same workflow was done in Notion, all formulas connected to that option would be broken. These stable relations mean a doc is less prone to breaking when workflows or wording in a doc are modified.

Auto-complete syntax.

In traditional coding environments, certain characters are auto-completed with its pair to simply make writing code easier. For example, if you type a parenthesis in code, you will very likely need another matching one afterward: ( ). Or if you type a double quotation mark you will likely need another one to close the quotation: “ ”. In Coda, these are always auto-completed for you. Notion’s editing experience doesn’t auto-complete any of these common syntaxes. So, what do you think? Did I miss anything or get anything wrong? Let me know on X (@thecodaguy) or via email (scott@simpladocs.com).

Related posts

Explore more stories about the tools you use.
8 reasons I see teams leave Notion for Coda

When and why Coda wins over Notion.

Coda vs Notion: Issue tracking with Jira

Comparing Notion’s Jira integration with Coda’s Jira integration.

5 tips for enhancing your tool stack with Packs

How teams can build sustainable and secure workflows.