October 6, 2021

Deployment Time: 1:34 PM PST

Features & enhancements

Item Description
Feature Data explorer

The new data schema explorer enables app creators to explore their data tables while they are editing them. The Data Explorer tab is available next to the Examples tab while writing expressions in the Expression Assistant. This feature will be rolled out to all users over time. See the community article.

Enhancement Adds a warning to the expression assistant for improper usage of the second argument of REF_ROWS. Deployed to 10% of all users.

Bug fixes

Item Description
Bug Fix for lag related to large background images.
Bug Fixed an issue in Safari and iOS where overlay action buttons in tabbed dashboard views are being incorrectly positioned near the top or bottom of the scroll container. Deployed to 100% of free users and 49% of premium users.
Bug In order to reduce the chance of unintended large executions, scheduled bots with ForEachRowInTable enabled in apps that are not deployed will be able to execute a maximum of 1000 rows.

Rollout changes


Preview announcements

The AppSheet Preview program lets app creators try out new app features that are not yet fully supported. Learn how to participate in the AppSheet preview program for app client features.

  • No new preview features were released today.

What's currently available in the Preview program?

Item Description
Feature Send dynamic emails from a bot.

Configure a bot to send a dynamic email to one or more recipients based on an event. Dynamic email leverages dynamic email in Gmail (using AMP) and enables users to interact directly with your app in the email rather than clicking out to view the AppSheet app in a separate window.

For more information, see Sending dynamic email from a bot and the community announcement.

Feature Table view

Table View now supports freezing the first column while scrolling horizontally. For details, see Freezing the first Column of a Table View - in Preview Program.

Feature Chart Editor

App Creators can now make use of our new chart editor and the new and improved charts it can create. Learn more.

Feature Detail views

Rich text formatting is now available in Detail views. For details, see this announcement in the community.

Enhancement Update deck view row heights depending on content available

Currently, deck view rows have a fixed height regardless of how much content you have. With this update, AppSheet adjusts the row size to fit the form factor based on what columns you’re displaying. For more information, see the community announcement.


For me the issue with limits on this is almost never the number of rows. Instead it’s the maximum run time of 300secs I think. Also whats a bit strange is that if you have a bot that over runs this time limit, it does all the calculations, but then does not change any data. Surely if a bot timed out at row 200 due to the number of calculations it would make sense to at least let it change the data on the first 199 rows?

1 Like

Thank you for reaching out about this issue. I am reaching out to the dev team for further guidance! Stay tuned.


I will use google sheet as an example.

It takes about 1-2 seconds to write to google sheets whether you write a single row or 500. So if we would write the rows to sheets one by one writing 200 rows would take up all available execution time.
Due to that we batch up the writes, we calculate the values for all the rows and then write them to the sheet. That allows us to write up to 10,000 rows in a Scheduled Bot Execution.


Hi @Dan_Bahir , @Liz_Lynch

Huh? I don’t think the scheduled bot will start without deploying it in the first place.
(Sorry if I’m wrong)
Is this a change regarding the Run button on the schedule bot?


This might be true for a simple write of static data. But if you have any sort of complex formula then this is not true. Quite often I find I’m using bots to do calculations on save or on a schedule simply because the sync time is getting excesive. I’ve got formulas where it struggles to write to 100 rows per run in less than 300 secs!

I’d be interested to hear more about how you do this. Sounds a bit like your using vitual columns to do the calculation then write that result. But let me know what you mean :+1:

This is good to know!

From my pont of view , this operation could be done via Appsheet api to manipulate data.

For Appsheet api, as far as I know, luckily there is no limitation is set for usage in api in terms of execition time to finish the operation .

Wonder why we user are restricted when we run bot. We can do the same operation though the Appsheet api where we generally are not restricted for execution time etc .

Is this because the API doesn’t directly interact with Appsheet servers?



@Steve haha. What I mean is that its only reading or writing data, its not doing the calculations

Allow me to try and explain. Dan’s 1-2 second comment is simply about the amount of time it takes for Appsheet’s system (or any system) to communicate with the Google Sheets API, to send one payload and receive a response. That payload can include 1 row’s worth of data, or 500 rows worth, and the communication time will still be the same.

The expression-calculating time is done on Appsheet’s side, and has nothing to do with the 1-2 seconds statement. If your Bot is having to calculate so many expressions that it exceeds the max time, then the Bot will never even reach the stage of sending a payload to GSheet API. All communications with GSheet API is a “simple write of static data”.

Appsheet is evaluating the expressions with their system’s code, and holding the values in variables before sending off the combined payload of multiple records.


Thanks @Marc_Dillon for elaborating on my comment, you are 100% correct.