How to create your own blocks

Is there a way to create your own blocks? I’d love to program my own, if possible.

1 Like


I’m not completely versed in the way that 3rd-party developers are able to establish a relationship with Airtable to create and make available custom blocks. However, the Embed block does provide a way to integrate web apps into a block container a framed service. I consider this a proxy-block, not an actual block in the true sense of the definition.

As far as I can see, there are two ways to create custom proxy-blocks:

  1. If you are able to build web apps that provide the back-end services needed to perform integrations directly with Airtable data stores, this is one way to get there.
  2. If you use Airtable.js (the JavaScript SDK) you can probably create proxy blocks that use the Embed block to perform actions all from the client (i.e., the web app framed into the Embed block.

I have created custom blocks using method #1 where a web UI provides a cross-base unified search engine that calls into a back-end service that has indexed all bases into ElasticSearch. I have not tried the approach using the JavaScript SDK.

This is a good opportunity to lobby Airtable developers to consider opening the blocks framework to allow anyone to create and deploy custom blocks that install into Airtable seamlessly. It would be a wise move if they allowed this because no company can ever match the energy and innovation of a market of passionate users who want to make Airtable better.


@Bill.French Has anything come from this desire - I’d like to know if Airtable plans to open up the ability of Devs to create 1st class Blocks on their platform.

So far my experience with coding has been to run into problem after problem. My lack of JS knowledge is part of the big picture. But hey - that’s why I want 1st class citizens of Blocks. My current stumble is the setTimeout() method is not found in the Airtable scripting block. So I cannot create a pause method to time my 3rd party API calls to their restrictions (5 calls / min.)

Good news - it’s been opened to requesting developers now.

In non-blocking architectures, there is no such thing as timeout’s per se, but this is the answer. That code works fine.


Thanks for the help.

This is getting deeper and deeper…

I tried your code in my Script - it fails with an error


ReferenceError: Can’t find variable: window

So it’s not working for me. Then I tried in a brand new script with no outer code and it runs & works.

So… hmmm …

Opps! I found my call to print out window I put in lastnight. OK

Today it’s running… now…

I had same/similar code failing last night…

Thanks for your help! I’m stumped as to why - but it’s working now!