Coda Packs and Using Column Names
How to turn the column names into row values
This blog is a follow-up on my previous writing related to the Paperform Pack created by Scott. The main advantage of this (and alike Packs) is that you don’t have to worry about integrations via third parties like Zapier, Make and others. Second it comes with a refresh tool to update your data, although this requires a manual intervention, it is error free and convenient. The result? Tables that contains up to date data in your Coda doc, which is great and the main purpose. The article on how it works is for free, check it out if you work with forms and you did not read it yet.
All that glitters is not gold
The date comes in the format as below and it happens you need a different data model to work with the feedback efficiently. Below tea products.
This blog describes the steps to take in case you need a different data model.
The solution started with a wonderful tip from Nina — — who pointed me to this pack:
Part of it is a function that gives back the column names and it is this one we need. It works as follows:
- You add the pack to your doc (for free) typing / and then CSV Importer
- You drag the function
getCodaTableColumnNameson your canvas and you fill out the details.
Practical tips I →generate the names
Once you have the function on your canvas you have to fill out the missing values. Below you see that my key is part one. Nota Bene, this is not the same as
User(). We need the key of maker. That is one. Second we need the Doc ID. This you find in the URL of the doc. I’ll show later on a function to extract this part via a function.
You can also use a tool provided by Coda on this page.
The last part is a reference to the table. On this part I got stuck for a while until Joostmineur showed me the simple trick: put the table name between double quotes. The result is the following:
You may notice in the above that the second part of the Function is it self a function. Again Joostmineur was so friendly to share his work with me. This one does the job. The
URL() is not fully supported (yet), but works fine.
Practical Tips II→ turn the names into rows
The yellow marked part below shows how you can turn the column info into something readable. It looks nice and permits to understand that you might not need all of the information. How to extract this info and make it useful?
To turn the list of data into actionable data, we use a canvas button and we link it to a target table that will receive the column names distributed over the rows.
This is how it goes.
You take the list of names, you split them and name them via a
WithName(). Next you create a virtual index via
Sequence() and you distribute the list items over the rows via the
Nth() logic. Since I explained this various times, like here, we leave this as it is.
The result is a button on the canvas with all the list items as rows. Since we don’t wat to keep them all we add a checkbox (more about the checkbox logic here) and delete the checked values.
Here we are: we have list of names as rows in the same order as in the source table. From here on we apply the transpose logic explained previously in this blog.
It took me a bit of time, but the result is something truly great. We bring in the data via a Coda ‘Form’ Pack and we use a second pack to turn the column names into rows we distribute in a separate table. When you only deal with a bit of contact information, this is not needed, but once you start with larger feedback templates and you want to integrate the outcomes, this might come in handy.
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
My name is Christiaan and I support SMB with calculations (budgets and planning) and I prefer using Coda to get the job done.
Not to forget: the Coda Community provides great insights for free once you add a sample doc.