Scripting block updates: breaking API changes, new input methods, easier debugging

:wave: Hey all, Stephen from the scripting block team here. Today we’re releasing a bunch of updates to the scripting block, based on all of your helpful feedback from the beta. To get access to the latest changes, you’ll need to reload your browser or Airtable desktop app.

Note that some of these are breaking changes and you will need to update your existing scripts accordingly — sorry for the inconvenience; these should be the last breaking changes before we launch the block more broadly.

  • Breaking: input.text() and input.buttons() have been renamed to input.textAsync() and input.buttonsAsync() . This means you need to prefix them with the await keyword.
  • Breaking: output.text() is now plain-text only, but accepts values other than just strings. Use output.markdown() if you want to output Markdown.
  • Breaking: all methods will validate their inputs — if you pass input to Airtable functions that don’t match the documented values, your script will now error.
  • Custom script names have been removed. You can still label a script by renaming the entire block (you can do this by double clicking the block name).
  • output.markdown() has been added for outputting Markdown-formatted strings.
  • You can now get information about the user who’s running your script by using session.currentUser .
  • fetch is now recognized in the editor.
  • Stack traces now have accurate line numbers in Chrome and Firefox.
  • New input methods for requesting Airtable models: input.tableAsync() , input.viewAsync() , input.fieldAsync(), and input.recordAsync() will prompt the user to choose a table, view, field, or record.
  • Added record.name for getting the primary cell value of a record.

Keep sharing your scripts, questions, and feedback with us — happy scripting!

3 Likes

Don’t know about the other devs who spent their weekend writing scripts for your contest that closed 5 minutes ago, but I’ll speak for myself:

This is pretty poor form…like seriously!!!

a heads up would have been nice here…

now i get to re-write all my code and writeups i just spent hours on.

4 Likes

I get it, this is the wild and unpredictable world of “beta”, but your timing is amazing - 5p PST on the dot which was precisely the deadline for today’s contest. Everyone who has made copies of script examples thus far are now sitting on examples that simply fail.

Yes, this is beta, but you must know that your team (@Michelle_Valentine and others) are hoping to put smiles on user’s faces. This is not how to make anyone smile if ya’ know what I mean.

2 Likes

Sincere apologies for the inconvenience here, especially given the contest timing. We wanted to get these breaking API changes out quickly before we expand the block beyond its current limited audience while it’s still in beta. Moving forward, we don’t anticipate any future breaking changes.

We really do appreciate the amount of effort that you all have spent working on these scripts and are sorry that the timing of these changes has been disruptive. For examples that have already been posted to the community forum, we will go ahead and update them with the updated APIs on your behalf.

2 Likes

All good!! I am super stoked and super excited for all the stuff you guys got cookin – as long as the changes are for the greater good of the product… we will survive. Keep it comin!

1 Like

Not so much.

The very simple Field Tweaker app was published at 4:35p PST and at 5p PST needed more than 100 lines changed and then fully retested.

@openside went way out on a limb today and released at least ten times the size of my little utility.

Setting aside the impact on the script developers (which is significant), imagine if 1,000 users have copied and installed script that’s now failing. When you make missteps like this, the support impact and brand erosion can be significant.

This is the opposite of all good. Airtable needs to establish better developer partner communications.

1 Like

As always Bill… you got a good point.

hello @Stephen_Suen @Bill.French @openside
Reading this quote, I’m hoping that

will get some “free” time to do that.

I’m a part-time Scripter and still learning a lot while coming here , so the impact on myself is not huge, but we really love and need Senior App Scripters contributions and gifts to improve ourselves and I’m afraid to remember what happened to Mozilla Firefox in 2015 when the top of best senior Scripters from the community went away…

olπ

Thanks for your kind comments! It would take a lot to drive most of us away - Airtable is an amazing platform. But, I de remember how Mozilla mangled their community and it took many years to recover from that. Microsoft pulled a similar blunder in the late '80’s with FoxPro. It never recovered.

1 Like

To my mind - this is “The Deal” when you sign up for something in beta. You can’t make an omelet without breaking a few eggs, as they say! Keep up the good work!

Hi everyone,

Kasra here from the platform team. I really appreciate your honesty and forthrightness. I made the decision to push the breaking changes ASAP, and it’s clear I made the wrong call.

In the future, while we’re in beta, we will provide at least 7 days’ notice before releasing breaking changes.

We also wanted to let you all know that for the posts in the community forum, we went ahead and made the updates for you (we couldn’t do that directly for Github Gists, but would be happy to privately send over what the updates should be for those as well, @openside!)

Thanks again both for your trust in us and for bearing with us as we improve our processes and communications in general. It’s a great privilege to work with a community like ours, and we don’t take it lightly.

-Kasra

6 Likes

Thanks @Kasra - I’ve already updated the gist. If you could just update the block in the universe which i don’t have access to updating: https://airtable.com/universe/expM6Lj4CFcGjAU6y/script-default-values

2 Likes

Indeed! Building anything based on beta releases is unwise. And while I can’t speak for @openside, I’ll bet they share the same sentiments as I do -

Apps based on beta releases should not be distributed openly to users/customers.

But this instance is quite different - Airtable sanctioned an event that encouraged rapid development and exposure of early-release code and they even offered a little carrot dangling from a stick. Then they unwittingly pushed a significant update at exactly the deadline for sharing the example apps. All of this is easily avoided with internal and developer-partner program communications.

The update is awesome, BTW and had these newly planned changes been understood just a few days earlier, lots of important improvements could have been integrated into these apps to great advantage for Airtable users.

Excellent! Good process.

1 Like