General Availability fort the INPUT functionality - with updated syntax & added scope

 

CURRENT STATUS: Rolled out to 100% of accounts

 

Hi everyone,

I’m very excited to announce that we are launching the INPUT functionality to General Availability. App creators can now define when information is passed from one context to another via dynamic “inputs” so that actions and tasks behave differently based on these input values. Effectively, app creators can now “parameterize” the logic of some of the actions and tasks. 

The INPUT functionality enables multiple types of rich and complex use cases, such as:

  • Prompting app users with an input box when the app user taps on an action button
  • Updating a set of rows from one table using values from the row of another table
  • Reusing AppSheet automation tasks across different bots

 

INPUT example

Probably the simplest example is with an app that lists tasks that have  a status field and a comments field. App users are asked to update their task status to “Done” and provide information in the comments field on how they accomplished the task. App creators can now dynamically prompt the app user for that information (and only that information) in a pop-up modal when they mark the task as “Done”. It was already possible to provide a similar flow, but (a) the app creator had to do more work and (b) the user experience for app users was not as intuitive.

Arthur_Rallu_0-1701891304522.gif

 

A little bit of history

The INPUT functionality unlocks a number of highly requested features that make app creation easier and expand what AppSheet apps can offer. Back in 2021, the INPUT functionality was released to Beta (a.k.a. Preview) but the team had some lingering questions. It is now (finally) Generally Available to all app creators. There are a few changes though. First, the syntax has been updated so that the feature is more easily discoverable, its usage is more explicit, and the syntax itself is more consistent with other existing patterns in AppSheet. Second, its scope has been expanded to now support Automation tasks for reusability purposes.  

Arthur_Rallu_1-1701891335124.png

Many app creators have been using this functionality in their apps since its Beta launch, but others may have been hesitant to rely on it because it was still in Beta and so we are glad to finally make it Generally Available to everyone. 

 

As Liz called out in our release notes on Monday, this is currently rolling out and should become available to all AppSheet users in the next 10 days or so. When it is available to you, we ask that you start using the new syntax. 

 

Old and new syntax for existing apps already leveraging this functionality

In order to properly maintain this feature, we will have to turn off the old syntax in the future. Until then, all apps and automations using the old syntax will keep on working without app creators needing to take action. We also understand that adopting the new syntax in existing apps represents some amount of work by app creators and we want to give you time to adjust. In an effort to turn off the old syntax some time in June 2024, we plan on proceeding as follows:

  • Within a few weeks you will start seeing warning messages in the editor for apps that leverage the old syntax 
  • At the same time, for simple cases leveraging the old syntax, app creators will be able to migrate from the old to the new syntax with a single click and check that everything is working fine 
  • Starting on March 30th, for simple cases, the old syntax will be automatically migrated to the new syntax if app creators have not taken action
  • Starting on April 30th, for more complex cases, app creators will be prompted to use the new syntax when they open the editor for such apps

We will be communicating to you about this as we go through that process. 

 

Let us know if you have any questions (but don’t forget to check the FAQ section below first :))

Thank you,

Arthur Rallu, for the AppSheet team

 

FAQ

  • What resources are available about this feature?

Documentation is available at Doc for input in Tasks, Doc for input in Data Change Actions.

The team talked about this feature in an AppSheet Office hours in September. 

I also want to mention this community post by @Kirk_Masden. It walks you through the capabilities of that feature in a very simple way. If you're new to using this functionality, it's a great way to discover it IMHO. The app used to be implemented with the Beta syntax but Kirk updated it recently to use the new syntax (Thank you Kirk!).

 

  • Why is the legacy documentation (here and here) still saying the INPUT functionality is in Beta?

Until the rollout is complete, we are keeping this documentation as is. We will tag it when the rollout is complete and add a link to the new documentation.

 

  • Can I use the old and new syntaxes together?

The two syntaxes can be used in the same app for two different tasks or actions,  but the two syntaxes cannot be used within a single action or a single task. In other words, in an action with 2 inputs, both of them must be specified with the same syntax.

 

  • During the Sept AppSheet Office hours, the team said they’d publish a template app. Is it available now?

Not yet, but we still plan on doing it. We’ll update this FAQ and add a comment to this thread when it is done. 

 

  • When will the input functionality be supported by other data actions?

We are aware of this request, but we don’t have a timeline to share at this point.

 

37 121 31.8K
121 REPLIES 121

Hi @Lusha_Wang1 !  I hesitated to open a support ticket but since you told me that you were not able to replicate the issue, I thought it might be a good idea to open a ticket after all.  Here's the number: 8-9428000035459

Hi @Arthur_Rallu ,

I see that the dev team needed more than 2 years to improve the syntax of the input function, but the results were far from satisfactory and not as expected. Keep it as it is prioritize fixing the errors users report, and focus on more useful features.

hien_nguyen_0-1703178939714.png

 

While I share your sense of exhaustion over the time this feature has taken, I'm curious about your view.  Firstly, I find the feature essential and surprised it wasn't implemented many years ago.  I would be looking for other tools if it wasn't available.  Second, I'm happy with either syntax, and I kinda get how the new one matches other syntax's in appsheet.  What makes you feel that one syntax is naturally right and the other absolutely wrong?  Just curious.

Thank you for the update. I'm needing to implement the INPUT() function for a client and wanted to confirm the existing INPUT() function will remain in tact until the new one is available.  Is this correct?

From June 2024, it will be removed. As said in the above post.

I'm wondering if the new syntax will allow INPUT to be used to add values into an EnumList?

Like if you have an EnumList column, and you set an action to set the value of that column to either:
[EnumList] + [_INPUT]
-or-
[EnumList] + LIST( [_INPUT] )

I have no special knowledge about this but I would guess that it may even be possible now.  INPUT records a value and so I would think that the value could be made into a list and then that list could be added to the EnumList.  Perhaps, though, it wouldn't be instantaneous.

It's not. INPUT() could not be combined with any other expression in any way.

Thanks for the clarification. I hadn't actually attempted it so I wasn't sure.

That could be useful.
Although I understand that there are other priorities.

" New " option in enum list  drop down won't it comply as per your need ?

What are your thoughts on investing a substantial amount in hiring a developer, only to witness a year-long effort resulting in the development of a minor feature riddled with numerous bugs? I've observed that several recent updates from Google introduce features that seem less beneficial to users and often come with significant challenges, adversely impacting the overall customer experience. It's crucial to prioritize product improvement and consider the real value these updates bring to users. Thanks

Hope it will be back soon. Still didn't get the chance to use it 🙂

I have got the announcement today , Screenshot 2024-01-11 14.36.24.png

along with Object reference not set to an instance of an object in some of my apps and multiple bots stopped working (notifications to mobile and emails). Could they be related?

Screenshot 2024-01-11 11.28.53.png

Yes I started to see my error as well last night across multiple apps but when you click on the announcement it reverts back to this original announcement advising the feature was rolled back. We'll begin to look for another Input type solution for our client as in my experience these things could take months to resolve.

Did you solved the error by removing the Input from apps? In my case , that did not work , I still see the errors , and bots are still not working

@Arthur_Rallu  Thanks, great update. There was something that did not work in the previous version of input and that was when it was required to add data to another table using values from this one. Does it work in this new version?


@XcrY wrote:

Object reference not set to an instance of an object


This is a known bug and AppSheet is investigating.

https://www.googlecloudcommunity.com/gc/AppSheet-Q-A/Anyone-else-seeing-quot-Object-reference-not-se...

Miss @pravse 

Is it safe to use the standard INPUT() functionality (not the new and improved version)? https://support.google.com/appsheet/answer/11623804?hl=en&sjid=14300405088378400888-NA

 

Currently, I've been able to confirm that the standard (or old) INPUT() function (old syntax) is back to normal on apps to which I had already added it before this announcement.  I have not yet be able to test the new GA syntax.

My app just got the announcement today. The standard use of INPUT() is working normally but it's not working with the bots (it showed successful update in the log but the data was not "input" into the column). 

I see.  I'm afraid I haven't used INPUT() with bots so I can be of any help in that regard.

Do you mind create a customer support ticket and provide detail information in it? 

I thought input() was now working in the old format at least, but I just tried it on an "Add new row to another table" action and it completely accepts formulas using the input() function but then doesn't actually display an input dialog when the action is executed.  When? Why? WTF?  URG!

Old format input() has always worked for me, and still does. It has never worked with 'add new row'.

Oh right, I forgot about that arbitrary limitation.  Why is that a thing?  I want to store a child record for selected parent records.  The child record will have 6 fields.  It looks like the only work around is to add six fields to my parent table to temporarily store the values gathered through input and then use a bot to copy those values into new child records.  Not sure why input can be used to store value into the table being acted upon but not another table.  Haaaaaate this weird limitation!

Hi there,

does old syntax passes default value like today()+1 or "Accept" ?

For me default value didn't work but it pops out and asks to enter value.

Kindly update @RedVox 

Default value never worked with the old syntax.

La vieja sintaxis de Input() dejo de fincionar con mis bots desde hace unas horas😥

can you submit a support ticket? thanks

I had the same issue yesterday, had to scramble to quickly update all my bots to use the new syntax.

I'm confused.  I thought that @Arthur_Rallu said that, due to the rollback, the new syntax was not yet available (see top of this thread).  Clarification please.

By the way, for now at least, the old syntax is still working in my app; I don't have it in a bot.

Thanks  I appreciate your help.  It says:

New: Deployed to 75% of all users.
Previous: Deployed to 50% of all users.

I guess this means that 3 out of 4 people have access to the new syntax will 1/4 don't.  Is trying to change the subject the only way to know which group you are in?

I went ahead and tried to update my sample app to the new syntax and it worked well:
https://www.googlecloudcommunity.com/gc/Tips-Tricks/Using-INPUT-to-update-another-table-using-a-valu...

It still seems to me that we should have a simple way of checking to see what has and has not been rolled out to us.

Hi @Kirk_Masden and @Marc_Dillon 
It is now 100% rolled out as far as I can tell, so I've updated the announcement. 

Thanks much! The sample app I made a long time ago has now been updated to the new syntax.  So, if you don't mind, it might be a good idea to edit your description in your original post.  Thanks!

Thank you @aneville for confirming that the new syntax works for you. 

I'm surprised that you and @juandres suddenly faced an issue with the legacy syntax. I didn't hear from customers through our support channel saying this was an issue. If it was a wide-spread issue, it would have bubbled up pretty quickly. 

It'd be great if you can share more about how all this happened for you. 

Thank you

Thanks for reaching out Arthur.  Happy to help if I can.  I saw the same behavior across multiple bots on the app (I think this is the only app I have where I do an operation like this).

 
But the bot triggers on a new row in Table A, then sends some of those values to an Action via Input that updates values in Table B.
 
So Bot:
unnamed (3).png
 

 

to the Action:
unnamed (4).png
 
The result I was seeing was that it was always using the default value instead of the passed value (So I would get "In <error>") every time.   
 
The [Status] column where the action was putting the value is an Enum column in which "In <error>" is not a valid value, so that is how I was getting the error and indication that something was broken, but I don't have any indication that it being an Enum was related to the actual issue.
 
The processes that broke are used multiple times daily and had been working fine.  The first instances of breakage I saw were at 6:02PM GMT (or whatever time zone the Monitoring app uses).
 
Happy to provide any other details that would be helpful.  I have obviously switched everything on our production version to use the new format and that is working fine.  Happy to look at the historical version and give you anything else you need though.