Skip to main content

Canvas column type

Learn all about the canvas column format, which allows you to bring the flexibility of Coda’s canvas inside any table

Updated over a month 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.

Within this article, you’ll find...


Create a canvas column

You can add a canvas column to a table just like you’d add any other column type:

  1. Hover over the table, and click the + icon in the upper right to add a new column

  2. Search for and select Canvas for the column type

add new canvas column.gif

That’s it - you’ve now added a canvas column to your table. 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.

And check out the next section to learn about adjusting the column settings.

💡 Fun fact: When you add a new table to your doc, the table will start with a canvas column by default.

Canvas column settings

The canvas column format has some unique settings. To view them, right-click on the column header and select Edit column.

open canvas column settings.gif

Here you’ll see the following options:

  • Display as: Choose between displaying this column’s content as a canvas or as simple text. Note that selecting Text will change the column type from a canvas column to a simple text column, therefore losing access to the wide range of building blocks that are allowed in a canvas column.

  • Display editable preview: Toggle this setting on if you want the contents of the canvas column to be displayed when viewing the table. If this setting is off, only the page icon will be displayed, and you will need to click on the icon to open the row and edit the content.

  • Value for new rows: You can use this field to specify a default value that all newly added rows should start with. For instance, maybe you want each new row to start with a certain template, which can then be modified by users as needed. For convenience, you can even create a separate page in your doc, and use this page as a template for your canvas column. Learn more about this in the section below.

Create templates for canvas columns

In some cases, you may want every row in your canvas column to start with the same template. For instance, let’s say you have a table of meetings, with a canvas column to capture meeting notes for each meeting. Rather than having to manually add the same structure or outline to the notes for each meeting, maybe you want each row to automatically start with the same template. You can then edit or add to the template for each individual row as needed.

The easiest way to achieve this is to create the template you want to use as a separate page (or subpage) in your doc, then adjust the canvas column settings to use this page:

  1. Create the page or subpage that you want to use as the template for your canvas column. Add text, formatting, images, buttons, or whatever else you may need. Give the page a memorable title.

  2. Head back to your canvas column, and right-click on the column header. Then select Edit column.

  3. Find the Value for new rows field, and click into the drop-down. Search for and select the page you created in step 1.

  4. Click Apply to x blank rows if you’d like this template to apply to any existing rows (where the canvas column is still blank).

canvas column - use page as template.gif

That’s it! Next time a row is added to your table, the canvas column will automatically start with the assigned template.

thisRow and parentRow in canvas columns

In Coda, you can write formulas in tables or directly in the canvas of your doc. So when you add a canvas within a table via canvas columns, this adds another layer of nuance to be aware of.

thisRow

Just like you can add formulas to the canvas of your doc, you can add formulas directly to the canvas of a canvas column. When you do so, you can use thisRow to refer to the current row (just like you would in a column formula). In other words, typing thisRow directly into the canvas will reference the parent row of the canvas column cell.

16_9 (32).png

But what if you add a table inside a canvas column cell, and then use thisRow in a formula within 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 the section on parentRow below.

16_9 (31).png

parentRow

ParentRow - unique to canvas columns - is a way to refer to the row that contains the current canvas column cell.

For instance, if you add a table or view to a canvas column, you may want to filter this table by the parent row that contains the canvas column. To filter a table or view inside a canvas column by the parent row of the canvas column cell, you can use the parentRow within your filter formula.

16_9 (33).png

Additional tips and tricks

  • Present a row like a page: Need a bit more breathing room to edit your canvas column? Not only can you open the row to view it in the expanded row layout, but you can also make the row fulls creen. To do so, open the row, then click the row icon in the upper right, and select Fullscreen.

expand row to full screen.gif
  • 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.

💡 For more inspiration, check out these published docs making great use of canvas columns:

FAQs

Can I limit the number of lines shown in the preview of my canvas column?

Yes - with fixed row heights, you can choose to show either one, two, or three lines of text. Just click on Options in the upper right corner of the table, select Table display, and adjust the Row height setting.

Alternatively, if you wish to hide the preview altogether - and just show the page icon - you can make this adjustment via the column settings.

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 Coda's 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 text 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?

Absolutely! Canvas comments function the same as in any other area of a doc.

Can you reference the current row from within the canvas column of that row?

Yes - typing thisRow in the canvas column cell will allow you to reference the current row. However, if you add a table to the canvas column cell and use thisRow within that table, it will reference the current row of that table - not the larger parent row. Check out the section above for more details.

Are the tables created inside a canvas column cell unique tables, or views of the same table? For example, if I’m using the "value for new rows" template to add tables, am I creating new tables or views each time?

This depends on whether the table in your template page is a base table or a view.

If you’re using the value for new rows feature and your template page contains a base table, the tables added to each row of your canvas column will be unique, disconnected tables.

1_1 - 2025-04-30T144326.517.png

If, however, you’re using the value for new rows feature and your template page contains a view, the tables added to each row of your canvas column will continue to be connected views.

1_1 - 2025-04-30T144224.769.png

Note that you will see an explanation of this when you select the template page for your value for new rows field.

Can I expand a canvas column into full screen, so I can edit it like I would a page?

If needed, you can expand a row in the table to full screen mode, allowing you to edit your canvas column like you would a normal page. To do so, open the row, then click the row icon in the upper right, and select Fullscreen.

expand row to full screen.gif

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

You can create a template on another page of your doc, then use this page as the template for your canvas column. Check out the Create templates for canvas columns section above.


Related resources

Did this answer your question?