Coda integration?

Drafts have extensive support for both Notion and Airtable. However I’m not seeing anything for the Coda app (I’ve migrated from both Notion & Airtable to Coda since it is a lot more powerful). Are there interests from others regarding this? Where do I find a roadmap of integrations?

1 Like

I’ve never gotten any requests for Coda integration, but will take a look at it and see if it’s reasonable.

Drafts can also use APIs directly, it doesn’t necessary need have specific integration, but that tends to be more complex to implement.

1 Like

I use Drafts extensively with Coda, which is to say that it can be done (and as Greg surmised, it’s via Coda’s API and Draft’s built-in HTTPResponse script item). Wish I could share some of my scripts with you but they’re not exactly ready for primetime, but I’m happy to answer any questions.

Largely the hard part in upserting a row is getting the data into Coda’s very specific row → cell → column/value JSON format. It also helps to note the doc → table → column → row hierarchy of Coda’s objects. Probably the Drafts action I’m most likely to share first is one that simply lets you browse that hierarchy and then downloads the JSON at whatever level you want (basic metadata of a doc in JSON, basic metadata of a table in JSON, etc.). Usually that’s the info I need when I’m making a script to send data back up to Coda.

If you’re a Coda fan (hope this isn’t too off-topic), you might be interested in the Alfred workflow I made for Coda. I mention because some of the underlying theory is the same — query Coda for a basic list of docs, parse out the value of the “name” key for each of the docs, then either do something with the doc or else use the value of the “id” key to move on to listing the tables within the doc, etc. (the value of the “href” key works for this, too).

Again, if I can answer any questions, don’t hesitate to ask!

1 Like

Thanks Brian! This is already super helpful. I have a coda http client already and thinking using a bundler to be able to use it in drafts, along with other useful npm packages. Is there a special advantage to using Drafts’ built in httpResponse other than the fact that it’s already there?

No special advantage that I know of; I used Draft’s HTTPResponse item because it was there as part of the scripting, whereas for the Alfred workflow I used the fetch command through Sindre Sorhus’ Alfy. As you’ve seen, Coda’s REST API is pretty standard; my learning curve came in scripting Drafts to turn tab-separated text into the JSON format for Coda (mostly a JavaScript learning curve). Another “catch” is that Coda’s format when you GET a row is not the same as when you upsert a row, so there’s a little meandering even if you want to get a row from Table A and then POST it back up Table B.

I’ll give some thought to finishing my Drafts/Coda action and I’m happy to beta test if you end up with something to share. Thanks!

For the most part, npm packages are not compatible with Drafts. Drafts Javascript environment is based on JavaScriptCore.

Tony — Thanks for the inspiration; I have now published my very first action to the Drafts directory, the Coda Browser for Drafts. You can use it to both download data from and about your Coda docs to Drafts, and also to send data to your Coda docs using Drafts as an intermediary.

I hope this is useful to you. If you find it meets your needs or if you uncover any bugs, I’d be happy to get some feedback on my first Drafts action project. Thanks!

2 Likes