[PREVIEW] Users see updated data with “Quick sync”

We are excited to announce the preview launch of the “Quick sync” feature. This feature allows data updates to be available to users within 1-2 seconds of the updates. 

As of 5/24 - This feature is available to all users under Preview. Please read below for caveats.

Until now, app users needed to manually sync their app or wait for up to 30 minutes to see the latest data. Issues can arise in your business workflow when users act based on outdated information. For example, imagine a task tracking app where any app user can select a task to work on. When Lydia and Ted open the app at 8:30am when their shifts start, they both see that Task A is available. Ted assigns the task to himself at 8:35am. Because the app doesn't immediately sync the update, Lydia thinks the task is still available and attempts to assign the task to herself. Depending on how the app is designed. Lydia experiences one of the following:

  • The task is reassigned to Lydia. Ted doesn't know that Lydia has reassigned the task and ends up doing duplicate work.
  • An error message is displayed. Lydia gets frustrated by the time she wasted trying to find an available task.

With the Quick sync feature enabled, Lydia would see that the task is already assigned to Ted without having to sync the app.

QuickSyncDemo.gifMore generally, it lets users see updated data quickly and without action on their part (including after a data update by an Automation bot), leading to:

  • Faster turnaround times and less errors and unnecessary work in the process, and
  • Less wasted time and confusion among users

Additional details, including caveats, are available below. 

Preview offerings are intended for use in test environments only. This feature is not recommended for use in production apps.

How do I enable this feature?

Go to Settings > Performance (1-2) . If you are using the legacy app editor UI <link>, go to Behavior > Offline.

  1. In Sync: Cloud to Data Source,  turn on (3) Server Caching and (4) Quick Sync
  2. Save your app.

quickSyncEditor.png

Do I have access to this feature?

Feature is available on Free accounts. Based on the feedback, we will gradually release this to paid accounts in the coming months. 

When can I enable this feature? 

First, the feature currently only works for applications that do not have security filters. The app editor will enforce this. If you have a security filter and turn on “Quick sync”, the feature will be automatically turned off after you save your app and you’ll get a warning message. 

When should I disable this feature?

App creators should also consider at least the following factors to decide if they want to use this feature in their apps:

  • The individual data updates will be cached on AppSheet servers. If you have strict data residency requirements, you may not want to use this feature.
  • You should not use this feature if your data sources compute values automatically (for example, if your Google Sheets data source uses formulas) or if your app has virtual columns that require a complete sync to be computed properly. This is to make sure that your users are seeing accurate data and have a consistent user experience. 
  • If people change data directly in the data source (for example, editing directly in Google Sheets) or through another non-AppSheet system, the app will not reflect this updated data until the next sync.

Why is it not working for my users?

First, see the restrictions mentioned above (and check that you have no security filters).
In addition, users will only see changes made by other users that are using an app with the same version. This means that if you are updating your app (and the version is changed), your app users may not see updated data until their next full sync.

More technical information is shared further below too.

Where is the documentation?

See the Quick sync setting described in Offline and Sync: The Essentials.

Who should I reach out to if I see issues or want to provide feedback?

Add your feedback or report issues directly on this announcement thread

How does the Quick sync feature work?

This feature works by “broadcasting” updates directly to the open apps when the changes are done. This allows apps to show the latest data in between full syncs. An overview of the broadcast system is shown in the diagram below.

QuickSyncDD.png

 AppSheet uses the same broadcasting system that is currently used across Google Workspace products like Google Docs and Google Sheets. This broadcast system does best-effort delivery of updates and comes with a few caveats

  • AppSheet will cache updated user content in a queue for up to 6 hours. Data stored in the queue similar to what is currently stored in the AppSheet Audit History.
  • This feature will work with any of the AppSheet supported data sources. 
  • If a broadcast notification is not sent due to network issues, the updates will not show up until the next notification or full sync.
  • We do not support any security filters at this time. Support for some security filters will be added in the future, but only for filters that use data from the updated row
  • The app client (in a user’s browser or on their mobile device) does not fully re-compute all formulas with each update  and depends on a full sync for all the formulae to be updated. So the quick sync won't necessarily reflect what should be the newly computed values. This behavior is similar to what you notice when data is locally edited and the app is set up for delayed sync.

CC: @preethamm  @Arthur_Rallu 

Solved Solved
29 108 10.3K
1 ACCEPTED SOLUTION

Hi All - We released this feature to all users. Thanks for your continued support. You should be able to see the toggle in the editor. Please note that the feature is still in Preview.

- If you do not see the toggle, please contact via the customer support so that we can take a look per app.

- There are few outstanding bugs and feature requests(including security filter support). We are working on these items and we will post an update in a new community post. 

 

View solution in original post

108 REPLIES 108

I just quickly tested with super simple app, and it is working fine. Awesome.

let me share my initial thoughts after quick testing.

Most of the apps (at least with us) have "security filters" for tables of the apps. So this is critical point of the reason this excellent new features is limiting the usages with us. We hope this bar / limit will be removed by the time GA.

The another critical issue is the quick sync is not ensuring the precision of the VC values, as it is just a calculation made by client side. It is a risk to the app users to present the VC value which is NOT really correct, depending on how our app and its VC are calculated. Some of app may present the correct VC values with this Quick Sync, but the problem is we are not able to ensure 100% sure based on the context of the app formula.

Then, I just thought if any solutions to remove this limitation.   My point is not really coming from technical point of view, but it is possible that the data change made by other users will initiate the "sync" for other users. Once the sync is changed, then the new data change made by other users will be presented to the users, while the VC calculation is pulling the correct value as if the current users made a full sync.

It is welcome that we see the data change made by other super instantly (in secs), but the use cases where such a "quick" sync is respected. The apps such as financial transactions (currency exchange deals) really need such a quick sync. However, taking into account the use case of the appsheet apps, we really don t need such a super quick sync, while the VC values are not necessarily presenting the correct calculations.  Beside the quickness of the sync, we value the correctness of the data we are seeing over the app.

Now new desktop UX project is about to be wrapped up, where the background sync is happening with it. Not like the legacy UX, the sync operation is not disturbing the use of the app by the users as it is happening on the background. 

All in all, in my point of view, it is reasonable and bring us the better user experiences, that the data change made by other users will just simply initiate the backround sync for other concurrent users who are using the app at the exactly same time.  For me, I can wait for the completion of the sync, as far as we are able to ensure the correct calculation for VCs.

Maybe I m wrong, but just a quick feedback after a quick test.

@takuya_miyai 

 

Thank you for the detailed feedback. It will help us prioritize future work on this. Your observation that VC calculation and security filters will eliminate some legitimate usecases is correct. 


@Koichi_Tsuji wrote:

 My point is not really coming from technical point of view, but it is possible that the data change made by other users will initiate the "sync" for other users.


This is how AppSheet Databases sync works today. We cannot enable this in every provider because of the load it will generate on the origin data source. For example, An app with 5 concurrent users with 5 edits will cause 25 syncs. Similarly an app with 10 users with 10 edits will cause 100 syncs. All these syncs will also occur in a short duration causing our servers and more importantly other data providers to get overloaded. We analyzed this case to decide against doing this for every data provider. Having said that, we are actively working on addressing this in the next month or so.

 


@Koichi_Tsuji wrote:

the data change made by other users will just simply initiate the backround sync for other concurrent users who are using the app at the exactly same time


I also think this would be more useful, "forcing other's syncing", something we have been telling people is not possible for all this time and could be achieve by this new feature if modified for it.

Also, maybe on the same line, we could have better rules to process virtual columns (backend) to prevent big sync times, that could also benefit the UX.

In general, I like that this is something that someone started working in but at the same time I feel like we could have though on the need before starting playing with these things to be sure that the need is covered rather than just presenting us with a new feature that we cannot use because it's too early in development from a full blown app's POV.

It's great that we can see it in action, it's bad that we cannot use it

I am guessing I am the someone being mentioned here. In the past, we received the feedback that (a) community did not feel that they were involved in the product evolution and (b) we did not provide enough details on how somethings work. Announcement, details and feedback being public is an effort at keeping the community involved right from the beginning and keeping things as transparent as possible. So, please keep the comments coming. The more actionable they are, more we can prioritize features and engage better with the community.

Hi @preethamm, very thanks for your comments. Just to make sure I want to outline that even if some of our feedback is harsh, it doesn't mean we do it personally.

I'm the kind of person that always separate the work stuff from the personal stuff.

I actually don't know exactly how many people is involved in each feature development so I was not trying to speak on third person intentionally. Also, as I said before, I'm glad that this is something is being worked on.

When we say that we want to be involved in the product evolution we expect to be involved earlier in the process.

Check the features that were being presented to us by the AppSheet team before the acquisition. Customer feedback was a priority because they were a startup, and they moved their efforts based on that. Maybe this post should have been made a couple of months ago asking us in which ways we would use a feature where changes where push fast into other users/clients. This way we would have said the same things we are today but without sounding like you took bad decisions. Now, I think that maybe this was done (you/your team considered customer feedback) but just/more focused on some paying customers that no one knows or are not part of this community, so it feels like our voice was not heard.

These are all my own opinions and, as I said before, doesn't mean you are doing a bad job, it just means that it's a feature that has no clear indication of what need (from community members) is covering.

In the same line, this doesn't mean that I reprensent all of this community's opinion, I know some are very grateful of this development and don't care about other stuff I have said, I'm just here to provide feedback and make this platform better

Hi all!

I have a Deliveries table with a status column and inline actions to change it from Planned to Departured and Delivered. (+ 3slices and views for each status)

With the quick sync on,  after changing the status (1 click) the record moves forwards and backward in the view and ends up in the correct one. It's like the action is reverted but checking the spreadsheet, it isn't.

I have turned the quick sync off and it seems the behavior is gone.

Does it make any sense?

It seems that if there are multiple changes made in the app, they initially show in the app but while writing them in the spreadsheet, at the same time it reads the spreadsheet and picks up the changes that are pending and it reflects them back in the app. This way it seems that they are reversing.

Once all the changes have been made in the spreadsheet, the app shows the correct and expected values.

Somehow the app should check the changes that are pending and if it reads different values in the cells, not to show them...somehow...

Thanks for pointing this out. To clarify, does the action generate multiple edits to the same record?

No, just one.

See video for behavior: https://youtu.be/fAlmj8jyIvc

AlexM_0-1678900646403.png

 

 

Thank you for the video! I added a fix to handle this. It should be fixed early next week.

Most likely related, in a dashboard I have a Detail view with quick edit columns that I use as a filter.

The table view is based on a slice that has conditions based on INDEX() on the filter table (one record only)

I am successfully using it in other apps and this one is the only one having this behavior.

While editing the filter columns (this time same record, multiple successive edits), columns seem to reverse.

This time it's different because the client disappears, so the end result is not accurate like in the previous scenario but that is because there is a valid if on the Site column SELECT(Client Sites[ID],[_THISROW].[Client]=[Client])

Please check the video: 

https://www.youtube.com/watch?v=CKCl8Cp-XbU&list=PL17Kba_DHYaHskUJ2gId01YjVLwIdClDE&index=6

 

 

Interesting and clever usecase! While we look into this, could you please confirm your earlier example is fixed ?

Both fixed!


@preethamm wrote:

Quick Sync


 

This Option not showing in my account. Why

It's only available on free accounts. 

Create a new one.

Hi @preethamm ,

I'm really concerned because Google has invested in developing a lot of new features of AppSheet since acquiring this platform. However, there is not a complete feature yet, so it causes a lot of errors for users and it is difficult to apply new features to their project. For example, the new chart styles have not been updated for more than 2 years, the desktop mode type is having too many errors, and each update generates new errors. So I hope the code team should focus on developing core features to create value for the AppSheet and help users apply it to work right away so that users are ready to upgrade and pay you. instead, you have to try to develop a lot of new features the same as the competition but no one is perfect.

Thanks

Hi!

There are 2 questions about syncing on mobile devices:
1. After enabling "Quick sync", now when opening the mobile application, "forced" synchronization occurs. Yes, I know that for many it is important and there was such a request. In my case, full synchronization lasts 20-40 seconds due to the large number of tables and data.

For me, the "speed" of opening a mobile application and quickly performing 1-2 actions (usage time 5-10 seconds) is important. At the same time, if required, full synchronization is performed manually by swipe (at the same time, you can work with the application).

On the other hand, "Quick sync" is important and useful for me to work from a desktop computer - I would like to use it further for the desktop.

Suggestion for improvement:
Make the option "forced synchronization on mobile with "Quick sync" enabled" or do it in the "background" allowing you to work in the application.


2. At the moment, if you minimize the application on the mobile - the data entered in the application is not synchronized, the application is suspended.

It would be nice to send the changes made on the mobile device to the AppSheet (even if it is minimized).

As I already wrote, the scenario of using the mobile version in my case is to open the application and perform 1-2 actions (usage time 5-10 seconds), while still having to wait for these changes to be sent, and I could collapse the application and do "other things".

Suggestion for improvement:
Send to the AppSheet server the changes made on the mobile in the "background mode" even if the AppSheet application is minimized.

Thanks for the feedback. We do not need a forced blocking sync and data updates while minimized makes sense. Let me check with someone who knows the internals better and get back to you.


@Axel_Pro wrote:

It would be nice to send the changes made on the mobile device to the AppSheet (even if it is minimized)


This is something that should be a feature request as it's own, I cannot tell how many times I have had problems because people closed the app and it doesn't sync in the background

@preethamm  

Are we expecting that API Calls with return values would update instantly as well in the app? Or API posts to an app would update automatically without Syncing the app? 

Do you mean these API ? Yes, they are supported. If you notice otherwise, please let us know.

Yes, but specifically if an outside app or another appsheet app sends data via API POST to one of my apps. Will Appsheet pick that change up and display it without a resync or much of a delay? 

Yes. it will pick up the updates if your app is open 

This sounds like it could be a good solution for some 2 way communications tools like twilio API and such if I am understanding this correctly 

This seems like a massive leap forward...For crews working in the field, as one example, this could be a game-changer. Can't wait for this to be on paid accounts...

Hi @preethamm 
I enabled the "QUICK SYNC" option 5 days ago,
it worked perfectly.


Now it doesn't work
is there a problem?

1.png

Same here

Sent from Outlook for Android<>

Same here from today quick sync not works anymore for me on all my Apps ... anyone ?

There was not working last week due to an unrelated issue. It should be working now.

At the moment, "QUICK SYNC" also does not work

Are you a free user or have a Core subscription ?

There was an unrelated bug last week and it has been fixed now. Thanks for pointing it out.

Thanks! Tested, now everything works as it should!)

@preethamm does this currently / is there a plan to support data partitions?

Yes. This feature supports data partitions

Hi @preethamm when can be expect the support for basic security filters. Most of us have atleast one security filter in all of our apps which makes this great feature Quick Sync not usable by us. In my case i don't have complex security filters but just TRUE in the field to bypass Delta Sync so that VC is calculated correctly for that particular table alone. 

@preethamm Thank you so much.

I really appreciate for this quick Sync.

In 2023 I'm regularly feeling of this lack. 

But I have some questions:

  • If there is Virtual Column they there will be any issue?
  • For Consistent it will okay?
  • App formula and other view will work perfectly?

Thanks for trying out the feature. On the client: Virtual Columns and formula are partially recomputed on the client. ie, simpler formula that depend on a single row will work correctly, rest of the formulae that refer other tables will be partial.This is similar to how values show up when you insert or update a row and sync has not occurred yet. Best way to try this is check your app with the feature. 

@preethamm Curious how this is progressing towards taking the next step of enabling on paid accounts?  Its a much desired feature for us, and I have been able to put it through its paces a little bit on my separate free account, but would really be anxious to give it a try with apps within our organization's account.    Thanks, Andrew

Plan is to release this to to everyone by the end of this week. I will update this thread once its complete.