Use Cross-doc to sync tables between separate docs

Updated over a week ago

Cross-doc allows you to easily pull in tables from other Coda docs so that you can annotate, review, or reference them as needed.

If you find yourself needing to use the same data in multiple documents and don't want to go through the hassle of manually copying and pasting it every time there is an update, Cross-doc provides a convenient solution.

Within this article you'll find...

What is Cross-doc

Cross-doc creates a connection between two docs so data can be copied from the source to a secondary doc.

Think of the two tables as separate from each other, each living in their own doc, and Cross-doc as the connection that lets you pull data over from one to the other.

Cross-doc is best used when one doc sends data to many other docs. Some of our favorite ways to use Cross-doc are:

  • Pulling a product team roadmap into multiple project trackers

  • Pulling in customer data from a CRM into your own personal note-taking Coda doc

  • Distributing feedback for each of your direct reports from a base feedback doc

  • Pulling a company roster into several different docs across the organization.

Create a new Cross-doc table

If you have a table from one doc that you'd like to pull into a new doc, follow these instructions to get started!

The first time you use Cross-doc in a doc, you'll need to install it as a Pack:

  1. Click Insert in the upper right-hand corner of your doc.

  2. Select Packs

  3. Search for Cross-doc in the Packs side panel, or select it from the list.

  4. Click Add to doc for free


Once you've installed the Cross-doc pack:

💡 It’s helpful to think of your original table and doc as your source doc and source table, and your new doc and table as the sync doc and sync table.

  1. Select the source doc that holds the table you’d like to pull into your sync doc.

  2. Select that source table in your source doc that you'd like to pull into your sync doc.

  3. Drag and drop it into the desired location in your sync doc where you'd like it to appear.


Choose columns to show

By default, all visible columns from your source table are synced into your Cross-doc sync table. You can then hide or unhide columns in your sync table as needed.

If you want to ensure that any columns that might be added to your source table are also added to your sync table, toggle on the Add newly found columns option in your sync table settings (see below).

Adjust your Cross-doc sync table settings

Now that your sync table is set up, you can adjust your table's sync settings.

  1. Navigate to your table Options

  2. Click Cross-doc Table

  3. In the Sync menu, select your desired sync refresh schedule.

  4. In the Settings menu, select the number of rows you would like to sync in from the source table.

  5. If you want newly added columns in your source table to be automatically synced into your sync table, toggle on the Add newly found columns setting.

  6. To do an immediate sync, click Sync now.


Enable two-way sync for Cross-doc

When you enable two-way sync in your Cross-doc table, you can also make edits directly to your sync table, and have those edits reflected in the source table. You can choose to either have these edits pushed automatically or require a manual button push.

To enable two-way sync, follow these steps:

  1. In the upper right hand corner of your table, click on the down arrow (v icon) next to Refresh. Select Settings.

  2. Switch on the two-way sync toggle.

  3. Under the Send edits automatically option, you can choose how edits made in Coda will be sent to the source tool. If this setting is toggled off, then edits in Coda will only be pushed to the source tool when someone clicks the Send edits button or at the next table refresh. If this setting is toggled on, edits made in Coda will be reflected in the source data as soon as you’re done editing.

Now your two-way sync is ready to go! To make edits in your sync table, just click into a cell and start typing.

  • If you’ve selected automatic updates in your two-way sync settings, the updates will be pushed as soon as you click out of a cell.

  • If you’ve opted to have updates sent manually, you’ll need to push the Send edits button in the upper right corner of your table (or wait until the next table refresh) to push these edits back to the source table.

To learn more about two-way sync in Pack tables, head over to this article.


Why are rows that used to be in my Cross-doc sync table now missing?

If you find that you’re missing data in your sync table, it’s possible that the source table may have been filtered resulting in this missing data. If the source table is filtered, that row data will not continue to be synced over to your Cross-doc table.

In your Cross-doc sync table settings, you can toggle on Keep un-synced rows to avoid losing any other data if that row happens to be filtered out on the next sync.

As a best practice, keep your source table un-filtered and then apply filters to your Cross-doc sync tables as desired. That way all row data from your source table will always be available in your sync tables 👍

My source table has more rows than my sync table. Why aren’t all my rows being synced in?

Check your sync table settings to see how many rows are set to sync in. You can adjust this row count for your sync table from 100, 1000, or 10,000.

Can I update the data in the source table from my Cross-doc sync table?

Yes! With two-way sync, you can make edits directly in your sync table and have those reflected in your source table. Check out the section on two-way sync above to learn more.

Will my source table's hidden columns and rows get transferred to my sync table?

No. Cross-doc takes a "what you see is what you get" approach. This helps you keep various elements private intentionally as you bring data over from one doc to another.

Can I edit or delete rows in my Cross-doc sync table?

You cannot delete rows in your sync table, but you can edit rows if you've enabled two-way sync. These changes will reflect in your source table.

You can also add new columns, group, sort, and filter, as well as change the layout. These new additions will only be visible in your sync table. They will not be added to the source table.

Can I use a Packs sync table as a source table?

Yes! For example, if you have a Packs sync table you’d like to bring into another doc, but you want to hide your credentials, cross-doc is the solution 👍

Will my Cross-doc table sync in real-time?

At this time, instant or real-time syncs are not supported. You can choose from manual, daily, or hourly refresh intervals to meet your needs.

Why aren’t the new columns I’ve added in my source table automatically appearing in my sync table?

While we will keep updating your row data, columns and column names hold constant from the initial sync table setup.

If you’ve added new columns to your source table that you’d like to bring in, new columns can be added to your sync table via the Row column.

What is the "Row" column?

When you look at the columns in your Cross-doc sync table, you will notice a column titled Row. The Row column shows a list of objects representing each row in your source table.

This is all of the data we sync through for the table. If you hover over a Row chip in this column, you'll find any additional columns that were added to your source table or deleted after the initial sync. You will only see the visible columns from the source table here. For data privacy we don't sync any hidden columns.

Where are my button columns?

Cross-doc does not currently support buttons from the source doc, so we remove them from your sync table.

Most of my data is syncing fine but one column is blank - why is that?

This is most likely caused by renaming a column in the source table. Each column in the synced table used a formula and is based on the column name in the source table. When the name is changed, it breaks the formula.

To fix it, open the column’s formula and replace the old column name with the new one.

Where have my conditional formatting, groups, sorting, and scales gone?

Cross-doc only pulls through the raw data from your source table. Anything that lives at the table level such as conditional formatting, groups, sorts and some column types (such as scales) will not appear.

You can reformat all of this in the sync table to match the source table 🎨

Can other users see the same list of docs and tables I have to add from when they install the Cross-doc Pack?

The doc list and tables you see in the right hand menu are unique and private to you. No one else can see that list, they will only see the docs they have access to.

One of the perks of Cross-doc is that you can add a source table from a private doc without giving anyone access to that doc, and other users you share your sync doc with can see this sync table version fine.

How can I delete a column from my sync table?

If the column has been synced into your sync table from your source table, you won't be able to delete it. Instead, you can hide the column in your sync table to remove it from view.

Related resources

Did this answer your question?