Deprecated: Assign "add row" buttons a view-specific modal

Note: This can now be done using the OpenRow() function and does not require a workaround.

I’ve seen a handful of folks asking about adding a new row via a button, but using a specific view and not the base table to do so.

Currently, the “open row for editing” option in buttons will always open the base table view. (I.e. even if the button is configured to add to a specific view, the modal that opens to enter your details will use the base table’s default, including layouts and hidden columns.)

We’re hoping to make some internal improvements that allow for different layouts or view settings here, but in the meantime, here’s a workaround (instructions in doc):

Hope you find this useful! Curious to see if others have found novel ways around this problem.


Thanks for posting this. I recently needed to do this and had to piece together info from several different posts across the forums (and it took quite a lot of time). I think this post will be very helpful to others.

In the end, I settled on a slightly different approach. There are ideas from the OP above that I like, and some I like from this one (such as using Url() to get the URL). Perhaps I’ll rework my own to integrate the “floating blank row” approach as opposed to the noop/delay approach to deal with race conditions.

    [Base Table]
    Url([View of Base Table])
    + "/r"
    + [View of Base Table].[Row ID].Last()
    + "/&modal=true"

Hey @Hannah, there’s one thing with this demo that is not working (and I guess that’s what @Brandon2 is seeing too). The problem is that Row IDs is often not yet assigned to the row when you’re performing the action, so OpenWindow will not open that popup. Even in your demo, clicking the button adds a row but opens a different one (in embedplay mode Row IDs are not assigned at all).

I’m describing this behavior and offering an updated trick here:

P.S. Even simpler, instead of figuring out whether to use Row ID / UID (because sometimes you’d need one over the other), just get that from thisRow.Url().Split("/_r").Last()

P.P.S. Also my writeup on the same scenario:


Really need this . Thanks.

Hey Paul! Thanks for taking a look!

This demo intends to open a different row — basically using a floating placeholder row as the “new” row. I don’t think it’s as elegant as your solution, though.


@Hannah (or whoever), is there any chance this has been worked out in an easier way? These instructions are making my brain hurt and I’m really hoping there’s a simpler fix for it…

1 Like

HI @Kelly_Claus! This is not yet supported natively but it’s definitely on our radar. In the meantime, @Paul_Danyliuk’s workaround above is both a bit easier to set up and more elegant all around, it’s now my preferred solution for this. Specifically this post he linked is an excellent explainer: PSA: Link to recently created rows by UID, not RowID()


It’s very simple:

AddRow([Base Table]).OpenRow([View of Base Table], "Modal")

Thank you so much for this. I have spent more time than I care to admit trying to solve this.

1 Like

This would be a great native feature, just had a pretty frustrating couple hours


Is this still not implemented after 4+ years??

Dear @Florian_Kuhn,

It’s for sure possible for a Maker to create buttons that open with the layout as of your preferences.

In Coda it’s all about building on the canvas and if you want with the use of templates.

Out of the box is kept to a minimum.

1 Like

thanks for your reply.
I was able to create it with buttons yesterday, but it is not intuitiv.
You have to create a view with this layout and then link the button to this view.
My Backend is just getting bigger and bigger …

I’m just not satisfied with the way to get there.
You search for something and can’t find it in the coda database, then you go to the community sector and see, it is a problem since 4+ years, try out all the solutions listet there. No one is working. Then you finally find a youtube video, where they explained it …
Someone postet it on another threat, cannot find it anymore, but thanks to the creator :slight_smile:

I think there is a lot of lost potential here. This is just one of features I’m missing.
I really like creating with coda, but a lot if my ideas I cannot implement because something is missing or not working as expected. Just reverse engineered some templates from notion and a lot of calendar features are not possible in coda for example.