Canvas column type

This feature allows you to add a canvas column type to each row, bringing the flexibility of Coda’s canvas inside any table

Updated over a week ago

Creating a canvas column allows you to connect structured and unstructured information together—along with Coda’s building blocks–inside a table cell. Canvas columns are collaborative, so multiple people can make edits at the same time. And they give you the ability to put anything you might put on a page, inside a single cell. In other words, they bring the power and flexibility of a Coda page right into the cells of your table.

Create a canvas column

You can add a canvas column to a table just like you’d add any other column type—directly via the table options menu. And when you add a new table to your Coda doc, it already has a canvas column.

Once added, you can click into the canvas for a given row to edit it as you would any other page. Add Coda building blocks, such as text, tables, formulas, or images, to the canvas. Just use the slash command to start adding whatever you'd like.

Canvas column options

The canvas column format has some unique options. When you open Canvas options, you can adjust the following settings for the column:

  • Replace the canvas icon with a preview to see a preview of your content. Click Canvas options and toggle the Display preview to ON.

  • Pull in a default value from another part of your doc to see the same pattern repeated in each row. In the Value for new rows bar, use the drop down menu to select a page, subpage, or canvas cell you would like to repeat in each row.

Some creative ways to use canvas columns

  • Present a row like a page: Need a bit more breathing room? Full screen a row with a canvas column to make it look like a page to make meetings, presentations, or working sessions more focused. To do so, just click Open when hovering over the canvas column for that row. Note: The canvas in a canvas column is meant to be viewed in the row modal to look like a page. Writing a blog post? You can use each column in the table to build the blog schema.

  • Formulaically reference values from a canvas cell: The Coda formula language can access the data in a canvas cell the same as any other cell. Canvas columns can connect to all the rest of Coda's building blocks - buttons, Packs, and of course formulas!

  • Run different formulas in the same column: Canvas columns are more flexible than other column types, so you can add different formulas to each cell. When paired with Coda building blocks, it’s similar to a spreadsheet...but with more capabilities. Create a bulleted list of tasks, calculate equations, or send a slack reminder all in the same column.

Using the thisRow object in a canvas column

Typing thisRow inside a canvas formula lets you refer to the current row, just like it does in a column formula. In other words, typing thisRow directly into the canvas will reference the parent row of the canvas column cell.

But what if you add a table inside a canvas column cell, and then use thisRow in a formula in that table? In that case, thisRow will reference that row of the table (inside the canvas column cell). It will not reference the parent row of the canvas column. If you need to reference the parent row, see below.

Using parentRow to filter table views

If you have multiple tables in a doc and you add a view of one of these tables to a canvas column, you may want to filter this view by the parent row of your table with the canvas column. To filter a table view inside a canvas column by the parent row of of the canvas column cell, you can use the parentRow object or shortcut found in the Filter table option.


Can canvas columns be referenced in the formula language?

Yes! Just like with other columns, the data inside of a canvas column can be referenced with formula language. Keep in mind that a single canvas column can contain a mix of unstructured and structured data, ranging from text, numbers, tables, buttons, and more. So it might not always make sense to reference the contents of a canvas column cell.

When should I use subtables vs. when should I put a table in a canvas column?

You can put tables directly in a canvas column, thus creating a table within a table. But this may not always be the best method. You can put one-off tables in canvas columns, but if you find yourself wanting to have a table within every row, and have that table follow the same pattern in each row - you likely want to use subtables instead. Read more about when to use canvas column tables vs. subtables here.

Can I convert my existing big cells to canvases?

Existing text cells can be converted to a canvas column type. Just change the column type in the column options, and start taking advantage of a full canvas.

Can I comment on a canvas that is inside a table?

Yes, canvas comments function the same as in any other area of a doc.

Can you reference the row from within the canvas for that row? (i.e. do you have thisRow in that canvas' context?)

Yes - thisRow will always act as thisRow until there is a view of the original table inside of the canvas column. To learn more about thisRow, check out this article.

Are the tables created inside a canvas column cell unique tables, or views of the same table? - For example, when you set the "value for new rows" did that create new tables or views?

They are unique tables. The only tables inside of a canvas column that are views, are views that the user adds of other tables or the original table.

How can I edit a row like I would a page?

Need a bit more breathing room? Full screen a row with a canvas column to make it look like a page. No need to zoom in! If you want to view a canvas column separate from the other columns in the table, we recommend linking out to a page

How can I easily create templates to use in my canvas columns?

  1. Create a table with a canvas column

  2. Create a separate page with the desired content and structure (tables, text, etc.)

  3. Go into the options for your canvas column, and search for the page you just created in the Value for new rows field.

  4. Create a new row in your table, and notice that the canvas column matches your template page 🎉

Related resources

Sign in and start using canvas column type today!

Did this answer your question?