Photo by Samuel Rios on Unsplash

The future of Coda Cross Docs

2 Way sync is coming → sync your data as a pro

Christiaan Huizer
7 min readMay 10, 2023

--

Coda is known for its many virtues. Certainly when it comes to the Coda Formula Language, actions (buttons — automations), templates & packs. The tool is used by teams of all sizes and supports a vast variety of use cases in which collaboration and data sharing are key.

The central question coming along Is: “who has the right to create, edit, read and delete?”.

The often requested Coda public road map never saw the light, but instead Ayuba Audu had had the courage to set a new standard in a ground breaking post:

Sometimes the true destination is about enabling people to see only a certain part of a project tracker or OKRs on that page. While Cross-doc enables this today, we plan to make this much richer, so people can work from any doc they please and all Cross-doc changes are always in sync. In the coming months, we will be working on Two-way Cross-doc to enable a variety of scenarios where you want to share parts of your data with other people, while allowing them to edit what they have access to.

as Max wrote: “sets great expectations, and reassures us all of the strategy… so we keep the faith and have patience.”

On June 26, 2024, step 3 in the sync page logic got rolled out as you can read here. An important step forward, but also an intermediary step. We need step 4 and maybe even a step 5 in which we can relate to tables in the synced pages.

Cross docs also received an update. They allow for two way sync. That is positive, but meanwhile they keep suffering from issues like changing the names of columns.

Full page embed

In an other part Ayuba wrote about full page embed and mentioned that the team is working on editable full page embeds. Today (half May, 2023) an embed gives you a view of a single page living in an other doc. The condition is that the users in the second doc have the same permissions as in the source doc. You cannot share an embedded page with clients, when these clients don’t have access to the source doc. This issue was also described in the community.

the embed logic

So far there is no indication yet that Coda plans to allow user groups to edit content for which they do not have permission in the source doc.

simplicity is key

The idea behind embedding is keeping it simple and little or no need to adapt settings. The actual steps to embed a page from Coda doc are indeed smart and straightforward.

easy choices

The result is the full page embedded, including — may it be — a page header, the title, the sub title, author etc.. The settings are few.

simple menu to manage embed settings

The announced improvement that in the months to come, we have the option between ‘view only’ and ‘edit page’ will likely assume corresponding permissions. Once this edit function is available, users can edit the same page in two locations.

Update April 2024: Coda permits to see pages from other doc under the condition that both users have access to the source doc and the target doc. We wait for phase 3, which will make it possible to see pages of a doc you have not access to.

The cross doc functionality also got an update: we can add and delete rows in the synced table and it will update the source table. That is an important update.

Cross docs with 2WS

The actual cross doc set up is also easy. You need the cross doc pack and once installed you have access to all your tables (not pages) in your work space. You can search for specific tables and via drag & drop you put these tables on a page in your target doc. Today you only have view access. However an other flavor will be served in the months to come.

In the coming months, we will be working on Two-way Cross-doc to enable a variety of scenarios where you want to share parts of your data with other people, while allowing them to edit what they have access to

The last part of the phrase is specific and reminds me of the constrains we noticed in the the context of the ‘embed’. It may imply that users need to have corresponding permissions. Translated to the example of clients, they can only update data under the condition they have edit rights in the source doc as well, which is unlikely.

I am confident the Coda team will create a solution that keeps the simplicity of today and adds the sync layer to it, likely with the requirement of corresponding permissions. Many teams will benefit from this approach.

I am an absolute fan of native coda solutions.

I prefer native above anything else, even above my own pack. Native means robust, integrated, documented, supported and maintained. It is the best way forward.

Nevertheless, we need to face the option that when corresponding permissions remain required, we may need an extra flavor permitting clients to update data living also in a doc they have no access to.

Webhook — 2 Way Sync

I already wrote about 2 Way sync in another blog ⤵️

This solution lacks the simplicity the native Coda solution is likely to have. Installing the pack is easy and so is the set up of the sync. You need automations and here it becomes complex, not difficult. You easily loose sight of the flows you create.

However in case you want your clients to interact with a sub set of your client data living in your source doc without giving them permission to the source doc, this may be the way forward. More over, there is no other way (yet) to achieve this. The webhook based two way sync prints the data in the respective tables and can be edited (manually, via button or automation). There is no link between the tables in the docs other than the webhook URL, the token and the unique key per row.

The future looks bright. In a couple of months (I assume as of fall 2023) we have — under the presumed condition of aligned permissions:

  • Editable Embeds
  • Two way sync cross docs

Already today you can have your two way sync and make it work with and for your clients and all sorts of other external user groups.

The main advantages of our two way sync solution listed below:

  • Fast: changes are almost immediate — generally in less than one minute instead of once per hour
  • Few automations, only when you change a row
  • Flexibele: select columns and and set filters, there is no need to create views just for syncing tables
  • Infinite: you can have more than 10K rows and will still stay synced.
  • Free of permissions: no need for corresponding permission logics in main & target docs.

I use cross docs because it is a product created and supported by Coda. However since it is a pack, it is an add on and not a native function like the sync pages I wrote about. The future of cross docs is found in more advanced cross docs, it will be something else.

My name is Christiaan and I support SMB with calculations (budgets and — Human Resource — planning) and I prefer using Coda to get the job done. More about me below.

I hope you enjoyed this article. If you have questions feel free to reach out. Though this article is for free, my work (including advice) won’t be, but there is always room for a chat to see what can be done. Besides you find my (for free) contributions to the Coda Community and on Twitter.

Coda comes with a set of building blocks ー like pages for infinite depth, tables that talk to each other, and buttons that take action inside or outside your doc ーso anyone can make a doc as powerful as an app (source).

Not to forget: the Coda Community provides great insights for free once you add a sample doc.

--

--

Christiaan Huizer

I write about how to Coda . You find blogs for beginners and experienced makers. I publish about 1 / week. Welcome!