Is the end of Coda Cross Docs near?
Add or update rows in your target doc using a webhook
In my previous blog on my for free webhook pack, see below, I explained how to set up a webhook that moves data row by row to the next doc. The webhook works fast. It takes about a minute and that is faster than the 60 minutes the automation takes. In this set up only changes are pushed, no needless automations are consumed that run day & night every hour. This solution has no limit of 10K rows, it works on any table, regardless of the size, unless Coda decides to cap it one way or the other.
This solution supports per column one image URL or one image or one file, but not multiple images of image URLs or files per column. Just make sure the column settings in the two tables match. The technical reason is that Coda does not communicate to the receiving party where a column begins or ends.
This pack may replace many cross doc related actions. Keep on reading to find out more about it!
Coda Expert Webhook Pack — how to?
How to use the webhook trigger to relate tables in two docs.
The webhook pack is — as said — for free and accessible via the link below.
CodaExpert_Webhook Pack, extend Coda with... | Coda
With this pack you duplicate data living in a table pushing a button to send the row towards another doc. The set up is…
Cross Doc Difficulties
The Cross Docs pack allows you to bring in a sort of duplicate of the source table in your target doc together with the updates you make in the source doc. However not real time (once every 60 minutes max) and even after refreshing it takes a while before the updates are visible. You also have to make views of the main table and to cross doc these views to avoid that others see more than you want them to see. Last but not least, cross docs are limited to 10K rows. As sais before, this solution works on any table, regardless the size and you define which rows are pushed to which doc. That makes it highly flexible. You can push one row to multiple docs using multiple webhooks.
For good reasons, gifted makers have tried (or are still trying) to improve the cross doc experience.
Preview: Cross-doc Plus (codenamed) - My opinionated take on Cross-doc
If I could build just one pack in my lifetime, it would be this. Almost all my clients asked for this. There's a dozen…
I admire the effort, but I am not a fan of this approach, too difficult for my taste and it does not really solve the issue. On top, unlike in tools as AirTable, in Coda there is little room for descriptions to document your process and in complicated set ups, you easily get lost. I wrote about this shortcoming in the blog you find below.
In what follows I introduce a mechanism that may replace most of the actual cross doc logic with something simple and speedy. Every maker can use it. You install the pack, you create the button and set the automations.
Add Or Modify Rows
Coda offers the function
AddOrModifyRows() in her toolbox and this is the one I apply in the example. That said, in my work for clients I also use an if statement to check if a value is present, if not we add, if present we modify. This technique proceeds faster since it does not have to recalculate the entire the complete table for each row. Most users won’t have 10K plus tables and certainly below 1K rows the proposed solution works fine.
All you need are two docs, two tables, the webhook pack and an automation in the source doc and one in the target doc. Let’s dive into it!
The set up
Below the set up to follow in a few basic steps:
- You define the table in your source doc from which you want to push rows to the target doc.
- In this table you define key that serves as the match value in the target table.
- the match value we generated in the source table is only necessary when this table is subject to an
addOrModifyRowlogic. To have a coherent approach, I create all my tables that are webhook related in this manner.
- In the target doc, I don’t have a key, but I have a match value.
- In the target doc you set up your webhook triggered automation.
- The match value is the first column in our source doc.
- The value we are looking for is written as:
match.Contains(thisRow.[Step 1 Result].ParseJSON("$.column1"))
- The rest of the logic is rather straightforward. To proceed fast I copy past the line above to any next column (I did not yet give a name to the columns in my target doc, so they have names as column 3, column 4 etc) and every time I change the number.
- Then I push the button in the source doc, the row comes in and I change the name of the column.
Voila, this all goes super fast and is efficient, see below.
This logic makes it easy to to create all kind of views in your source doc and by adding a button that only presses the visible buttons (based on all sorts of filters) you can push the information of your liking to the next doc (s).
Do you need a button for the webhook?
Actually you don’t. The button logic can be reworked into an automation triggered by row change. It means you replace the shown logic by an automation logic. As such you have your set up fully managed by two automations and thus without any button.
- sending the data over when the row changes
- adding or modifying a row based on a webhook trigger
The button is easier for those who want to disable the button based on certain criteria and are a bit afraid to use filters in the automations. That is why I showed the easiest replacement logic for cross docs.
In short, when you put this in place, you may have a superior experience compared to the cross doc pack or any related solution.
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.
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.