AMA Custom Blocks Contest Edition #1 - Getting Started with the Airtable Product Team (Live on Wednesday 6/10)

Thank you, @Kasra. The picture is becoming a little more clear to me how $ block ... --remote handles this, and the questions in my head are kind of morphing as my understanding of it changes.

In particular, are you exploring ways to make keeping Custom Blocks updated a more seamless process for both creators and consumers of those blocks?

Technical question: do blocks allow for real-time updating of records within Airtable? Meaning, within my block, can I hit the Airtable API for the base that the block is installed in? I’m assuming yes since it’s just React within the block, but would I need the base user to put in their Airtable API token in the onboarding process within the block?

For a simple example if I wanted to get weather data every 10 minutes from an API and update a record within the base (and use the Block for another purpose like displaying the weather trends in near-real time), do you see any hiccups there? I’m not sure about the API rate limits.

I haven’t built on the Airtable API before so apologies if these questions are easily answered elsewhere.

I’m having some trouble getting some of the examples to install. Where do you suggest going for troubleshooting info on getting started? It can be hard to tell if my issue is an npm issue, a node issue, a react issue, or what. I haven’t worked in react before.

Thank you, I’m happy to hear it’s been a pleasant experience so far :raised_hands:

Can you give an overview of how setPathsAsync function works behind the scene and how much more performant it is for nested objects?

Both setAsync and setPathsAsync let you update nested values by passing in a path for the key. This is important if you want to avoid clobbering the other parts of the object if multiple users are writing to different parts of that object.

setPathsAsync is useful if you want to update multiple keys/paths in different parts of the tree in one shot. This is more performant than calling setAsync a bunch of times in rapid succession since setPathsAsync will end up making a single network call.

one of the other thing my Blocks app does is aggregating _changeCount values across records. I noticed that it doesn’t actually increment by 1 as it should. What’s happening here?

Any methods or variables that begin with an underscore (_) are private SDK internals and aren’t documented, so you shouldn’t rely on them in your code since their behavior may change at any point.

Is there a way to get data about specific record history?

There isn’t an API for getting this information at the moment, but I’ll note your +1 for it! Out of curiosity, what are you hoping to build with it?

1 Like

@Ashwin_Kumar – yes; Custom Blocks have a direct API with the base they are installed in; no need to use the REST API from within the Custom Block (unless you are wanting to interact with a completely separate base). You can simply call table.updateRecordAsync() to make updates to records within the base.

2 Likes

Hi @kuovonne!

We don’t have details to share on a developer plan yet, but rest assured that our intention is to make Airtable even more accessible and affordable for developers. We will continue to support developers to build blocks for free (e.g. connect blocks-cli etc.) and are looking to make the full custom blocks functionality - that pro users have - available to developers on a special developer plan. More exciting things to come!

2 Likes

Yep, that’s part of it!

1 Like

Hi @Harshit_Juneja

That’s wonderful to hear :tada:. And thank you for helping us on this journey as well by offering solutions to the community. Makes a world of difference.

If you want to have the same API key across all users, you can store the code directly in the source code of the block.

If you want the user to bring their own API key (like we do for the Twilio Send SMS block), you can store the user’s API key in globalConfig, which is a key-value store that’s scoped to that block installation.

Note that in either case, the credentials will be visible to all users of the block, since the API requests are made client-side.

1 Like

With all the tools available, what types of people do you consider to be developers?

  • someone who writes a custom block?
  • someone who writes a script for scripting block?
  • someone who uses the Standard API?
  • someone who has an API key and puts it in a 3rd party app but might not write any code directly?
  • someone with creator permissions on a base?

Hi! I think the best place is to start a thread in this forum (https://community.airtable.com/c/developers/custom-blocks-beta/54). Our team regularly checks new topics, and in some cases there might be someone else who’s already run into the same issue.

Do you have formal names for the different APIs?
Having clear names can make discussions on the community forums easier.

I’ve been calling them the

  • Standard REST API (but the docs just call this the Standard API)
  • Scripting API
  • Custom Blocks API

Hi @Ashwin_Kumar,

You are asking the million dollar question! One of the blessings (and challenges) that we have at Airtable is how horizontal and flexible the product is. We serve small businesses and Fortune 500 companies alike. Often our beachhead into a company is serving a particular use case, or piece of their ‘stack’. Users then realize they can use Airtable to meet many of their other use cases too.

For larger customers, we often see folks replacing in-house built tools that would have taken much more engineering time and effort to build and maintain. Users are then empowered - whether they are technical or not - to modify the bases as needed. To your point, there is a lot of benefit from bringing in data from other services and being able to view and modify your data in a flexible tool like Airtable.

Hopefully that helps. Great question.

2 Likes

Good question! We refer to them in the same way (Standard API, Scripting API, Custom Blocks API). But it’s a good point that maybe “standard API” isn’t as descriptive now that there are other APIs.

And we are officially out of time! Thank you so much for joining us today.

We’ll be awarding gift cards to the 3 questions that received the most upvotes: @Matthew_Thomas, @Harshit_Juneja, @Jacob_Cannon. Look out for another AMA same time next week focused on design.

3 Likes

Thank you for hosting this session!

1 Like