Launched: Powered-up interactions for tables & pages

We love hearing all the ways you make Coda work for you, and we also love hearing your feedback on how we could fine tune the experience to unlock worlds of new possibilities for you and your teams. Today, I’m excited to share two updates we’ve made to address some common feedback for a smoother, more powerful experience in Coda.

Drag-and-drop detail views

In Coda, reordering columns and rows has been as easy as grabbing them with your cursor and dragging them to your desired spot. That is, unless you were working with a detail view. Until today.

Now, when you present data in a detail view with left navigation configured, you can reorder the display columns (”tabs”) via drag-and-drop as well!

Drag and Drop Detail-2

Note: As with any other view of your table data, if you have sorting or filters applied, those will override drag-and-drop actions, so you may need to adjust those settings.

Note 2: If you want to feel especially badass, you can refer to this feature as “Dragon Drop” or :dragon: like one of our PMs, who I’m assuming has an airbrushed wizard on his car.

Adding duplicate page results

After launching our duplicate page action in February, one of the things we heard was that it can be tough to keep track of all of the pages your teammates and collaborators make as duplicates. With our latest update, when you add a duplicate page button column to a table, you can optionally retrieve & store the URL for newly created pages in another column of your choosing.

We hope this is good news for anyone who loves to organize pages of notes in one table, or wants to consolidate their teams PRDs into a library for easy access.

Here’s how to set this up for your table:

  1. Add a new column, and select the “Button” type
  2. While configuring your button settings, select the “Duplicate page” button type
  3. After making your selections for which page to copy, how to handle data duplication, etc., you’ll see a drop-down menu for “Results Column (Optional)”
  4. Simply select the column that should populate with the results when a page is copied to start building your index of copied pages

We hope this makes structuring you data in tables and pages even more powerful in Coda. We can’t wait to see how you use these updates to collaborate!


Good timing! I can implement this feature into my doc right away. Thanks!


This will gonna help a lot to build a good note taking table! Thanks a lot!

1 Like

Thank you! Thank you! Thank you!

1 Like

I just need one last thing to have a complete note system. The “DeletePage()” formula, which if I create a row linked to a page, when I delete the row through a button I delete the page too. This is the last piece of the puzzle.


I am just not seeing the button settings:

I’ve tried hard refreshing (CMD + SHIFT + R) and still no dice.

Ah, it’s only available if you select the Duplicate Page action:

Looks like the DuplicatePage action now returns the name of the page. So if you’d like to do it purely formulaicly it’s:

thisRow.ModifyRows([My Table].[Page Column], DuplicatePage([Page], "Name" ))

Really elegant way to do it.

Would be great if AddRows did the same thing by returning the row that was just added! It does this already!

This is great. I missed something like this coming from Notion. Now the process of creating notes and organizing the meta data in a table is much more convenient. Thank you :smile:

I’m sure something like this is on your radar, but it would be amazing if Page were itself an object and I could access its name as an attribute:


As @Guilherme_Salles mentioned, all we need is access to DeletePage() and certain page attributes like Name and we’re pretty much there.


That’s exactly how AddRow() works. You can do things like

  CreatedRow, Table.AddRow(...)

I do this all the time.

As for

This is very cool already and is a much needed addition. It would be extra cool if in the next iteration one could use that generated URL as a “page to copy” or “parent page” parameter for DuplicatePage(). Right now there’s no formulaic way to generate a nested page structure (other than copy the whole page subtree). I.e., I’d love to be able to specify source page and parent page dynamically.

1 Like

Oh nice. I thought it returned an ActionObject. I wonder how long I’ve been unnecessarily formulaically getting the most recently added row instead of just grabbing that object.

Exactly. I tried to incorporate this new functionality into a doc that’s been begging for it for years and without formulaic access to the “page to copy”, and the name of the page it’s just not quite possible to do what I want.

It does return an action object, but at the same time apparently it has some special processing as well. Bottom line is: you can do ModifyRows(AddRow) and I think that’s how it’s been since I ever tried Coda.