16 improvements that make Coda simpler and more flexible

You do a lot with Coda. Build a team hub, track a project (both large and small), or even build a fully-playable Minesweeper. And we do, too. That’s why we recently undertook a broad effort to make Coda simpler, for all of us. We’ve eliminated extraneous formulas, streamlined workflows, and made the entire product faster and easier to use. Here’s a run-down of everything we’ve improved, streamlined, and simplified:

  1. Calculate: Perform common column calculations like date, text, percentages, and more using a structured builder based on other columns in the table or row properties instead of writing a lengthy formula. As an added bonus, the column type will automatically match the result type of the calculation, so no need to set the type yourself.
    calculate column
  2. Add related column: In addition to the calculate structured builder, you can use the “add related column” option in the column configuration menu to create a column with a math or date calculation based on the content in your current column.
  3. Compose: Create dynamic text in a table with a freeform editor that lets you write and format text, including references to columns and formula results, without needing Concatenate() or Format(). See an easy way to send status updates to Slack with compose here.
    compose community post
  4. Simplified button configuration panel: Set up the appearance and functionality of your button with just a couple clicks, without needing to wade through optional or advanced elements on the primary configuration tab.
  5. Convert links to buttons: Pasting a link onto the canvas offers the option to immediately convert it into a clickable button, reducing the steps needed for this common action.
  6. Toggle timeline label overflow: The labels on timeline views could sometimes overflow and add visual clutter, so we added the ability to toggle it on and off to your liking and make your timelines easier to consume.
  7. Labels on charts: On the labels front, we also added the ability to toggle data labels on chart views to see the value of data points directly on the chart.
  8. Redesigned select lists: When adding options to a select list, we apply a default color to each option (which you can then customize) to help your tags and categories stand out. You can also easily set a starting value for new rows right from the select list options, so you don’t have to enter it manually each time.
  9. Filter bar: A flexible interface at the top of your table that lets each team member easily create their own customized view of the same table at the same time, and change it as often as they’d like.
  10. Column descriptions: Add a text description to a column, letting you keep track of the column’s intended purpose and provide necessary context for your collaborators.
  11. Canvas formula formatting: Like column formulas, you can easily adjust the display format of canvas formula results for Number, Date and People calculations.
  12. Wider page width options: Create beautiful docs with enough space for all your charts, text, and images by choosing from multiple page width options, extending all the way to full-page width.
  13. Linked relations: Relations and linked relations allow you to link data across tables and even edit from either side, without needing to manually setup this connection with a formula.
  14. Summarize: We’ve made it even easier to summarize a table with its own slash command, /summarize table. Table summaries surface key information using custom filters right on the canvas, so you can leverage formatting like callouts, headlines, and colored text to draw attention to the information your team needs to know.
  15. Suggest changes: Rather than suggesting through comment threads, you can actively edit (and keep a record of those edits) by using the suggest changes setting from the comment bubble icon. Your suggested changes generate a thread where others can either approve, reject, or leave a comment, so all team members can easily be involved.
  16. Clear reactions: We’ve added an option to clear all submitted reactions within the reaction settings menu, so you no longer need to delete and recreate a reaction to remove previous submissions.

We hope this collection of small and large changes alike results in an improved Coda experience for you. And we’re not done yet — in the coming weeks, look out for major improvements to timeline views, easier setup and discovery of subtables, expanded compose functionality, and an all-new menu for customizing table headers.


Thank you SO MUCH for the Column Descriptions - this is very helpful since I had suggested for some form of “Hint Text” options for some of my columns - BRAVO!

With my move up to a Team account recently, and locking down my pages, I’m now wishing that you could separate out the ability for users to still be able to resize columns when I have the page text editing options turned off.

When I look at some of my views, I see where I need to enable full editing, drag and adjust the column widths, and then go back to my default lock setting.

Allowing the ability for users to resize columns like when the table is unlocked would be so much easier for me!

As always THANKS for all the continued development and ENERGY you’re putting into Coda - I really appreciate, and enjoy my Coda license! :+1: :hearts:


Are column descriptions brand new or did I somehow miss that absolutely huge feature add?


They launched in April actually! :sweat_smile: Check it out in the column menu :slight_smile:


Now would be also nice if Compose was not only for table columns but for Canvas sections as well.


Is your Project Tracker available as a template that we can use? Thanks!

This is really neat, but do you have examples of some of these new features. For example; / summarize table doesn’t actually do anything. Where does it go? Above the table; below the table? Sorry! Being an attorney makes me easily confused.


Adding onto this slate of usability improvements, we’ve launched a New row button that lets you quickly add new rows to any table or view. This can be easily toggled on or off from the new header options menu, where you can find everything you need to customize the appearance and functionality of your table headers. For additional customization, right-click the button to update the button color, label, and icon.

9-8-23 Add Row


Labels on charts I give you 100% for this update just for this option !

Great add-on ! I have some tables with thousands of rows and was using ‘top’ and ‘bottom’ H1 text with ‘outline’. This is definitely cleaner ! Thank you ! :raised_hands:

Thank you for summarizing all the new features.

I like #5 a lot too:

  1. Convert links to buttons: Pasting a link onto the canvas offers the option to immediately convert it into a clickable button, reducing the steps needed for this common action.

Would you consider building the same option for links to other pages within a doc? Obviously we can do that by using a url, but the url’s go to the wrong doc after using a url button in a copied doc, while page links stay intact. Buttons have some advantages over page links (sometimes).


i’d love to be able to have a button open a specific template for a row. so that in some places i open a simple row template in the modal window, and in others i can choose a more complex. example: i have a table that is for my content editorial with lots of columns. but i want to have a simple “Add Content Idea” button that opens a simple modal with a few fields for someone to fill. In other places, i want to open a modal with a button that has more fields.
is that possible now and i’m missing it, or is it a feature to possibly add?

Nice! For now the Calculate vs Add AI vs Formula vs Static text vs Compose are a bit messed up, it’s confusing how they differenciate / how to go from one to the other, and the sub panels (compose > compose / format)…

For instance, in a button label (and a bit everywhere) you can go from Static text to Formula, back and forth, but you can’t Add AI or Calculate or Compose.

I guess you are still rolling it out everywhere, but it’s a bit frustrating and very confusing that it’s not consistant everywhere yet.

Maybe for some inputs/use cases some options can be disabled, but I think they should all be grouped together in a “Content” section, then you can choose > Static / Formula / Compose / Calculate / AI…
And maybe several things could be merged, like a Static text is just a Compose text without any variable, so no need for plain static option. And AI is a Compose where you toggle “Ask AI”, not a different option, and Formula is a different “view” of Compose, you can go back and forth from Formula to Static/Compose (like you can do now in one click for a button label for instance). And Formula is like Copose, you can toggle “Ask AI”, just instead of writing a Static/Compose prompt, the prompt comes from a more advanced Formula, but at the end of the day it’s just like a Compose that outputs a prompt that outputs a completion.

I don’t know if it makes sens?

1 Like

Thanks for the feedback. Grouping all these capabilities under a “Content” section makes sense and is in line with our thinking as well.

We are currently working on enabling Compose in more places, especially in content fields in pack buttons, and are also looking to add more structured builders to make writing formulas easier. Including AI in this flow is an interesting possibility that we could consider as we get more context on how our makers are using Coda AI.


love all of these new things!!

I can’t figure out how to add a blank space to a “calculate” / Formula that is First Name + Last name … i know this is a pretty noob question, but in the formula I have, it squishes the text together and adding " " doesn’t seem to help.

Any thoughts on where in the documentation I can go to figure out how to make these things work?

Concatenate(First Name," ",Last Name)


THANK YOU JOOST!!! I couldn’t figure out the proper combination.

New conundrum …

Can anyone help me figure out why there is a random @ symbol now showing in the results of my concatenate formula?? I’ve got it in another formula I just built as well. Could it be because there is a lookup number at the beginning?? do I need to add some kind of “to text” thinger in there?

I’ve now changed the formula to read concatenate(totext(thisRow.[Admin Heft]),“-”,thisRow.[Heft ID],“-”,thisRow.[K Number],“-”,thisRow.[Page #])
and it seems to give the correct output.

Is there a more elegant / correct way to do this?

Any advice much appreciated!

Admin Heft is a relation column, so the @ means it’s a reference you can click into. You can convert it to text if you want by saying [Admin Heft].ToText(), or referencing the display column within that relation.

1 Like

Thanks Micah,

I figured out with the “to text” but it’s good to know why it is the way it is. that will be helpful going forward.

Do you happen to know whether it is possible to change which column is the “name” column?? If so, how do you do it??