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:
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.
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.
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:
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
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!).
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.
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.
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.
We are aware of this request, but we don’t have a timeline to share at this point.
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).
It seems that Appsheet just changed the new expression for input but it can't prefill value as we set. Please feedback?|
When you create a "set the values" action,
If you see "Advanced," you can use the new INPUT function.
Very usefull Thank you!
Just to clarify, the new syntax should not impact input(), as long as they are not used in the same data action or task. If input() breaks for some reason, please file a support ticket. Thank you!
I continue to run into issues with both versions of INPUT. The save button won’t function. I’ve been on with support for two weeks now who confirm there is no validation or requirement in my app that should cause it to fail. Instead that “it’s a large app” and the function is in beta, so it may not work as expected. Complete dead end and I’m confident it’s not being worked on. They just keep trying to close my case.
I updated my old syntax to the new syntax and received this error:
New Syntax:
old syntax:
Note: In my case [missed reason] represents the field's dropdown REF options. I did notice the Advanced area for manual inputs but hoping it's simply another option.
Has anyone else run into this error? I didn't see it here in the string unless I missed it of course.
I get that message as well, but when I keep going and Save, it works fine. Seems to just be an issue with the syntax checker.
I think I see the issue. Look again and this illustration of how the old and new syntax are related:
Notice that the "test" that appears in the old syntax disappears from the new syntax.
So, in your case [_INPUT].[Missed Reason] might be what you're looking for.
@Daisy_Ramirez Not sure if related but when I changed mine, I noticed I had to first add the input under advanced section and save before I used it in expression.
Thanks Arthur Rallu
Bom dia
Como colocar em ordem alfabética listas criadas no app?
Bom dia colega,
Este tópico é da funcionalidade INPUT.
Caso seja uma lista para o INPUT você pode suar a função ORDERBY() OU SORT().
Vai depender do seu caso específico. Quando eu tenho listas grandes nos meus apps, sempre coloco na fonte de dados (no meu caso uso as do Google Sheets) e populo a lista no app com essa fonte e uso o SORT().
https://support.google.com/appsheet/answer/10107698?sjid=6194421272951379674-SA
Espero ter ajudado!
Good to know. Thanks so much for the update.
Hi,
I've been working on an application for 10 days now.
Everything worked fine
Then 2 days ago, when I opened the application on my mobile, the INPUTs no longer worked!
But it's still working on desktop
What's happened ?
Can you file a support ticket with more details? thank you!
Hi,
Where is the support ticket page ? Do you mean "Contact support" ?
Hi @Arthur_Rallu and @Lusha_Wang1
It seems that Appsheet only changes the expression of the Input function but it didn't apply for prefill data in action as I set.
Input function didn't prefill values from the action
@hien_nguyen Has your problem been fixed? I am finding the exact same problem to prepopulate based on a default value being set.
bonjour, oui il faut déclaré la fonction dans avancé
Not yet brother.
Is It fixed ?
I have been trying to use the solution with no success on a very basic implementation.
Have a Date Time column in TaskSchedule Table called Tempstore.
Created Input tempDateStore of type DateTime. Used Action ( Data: Set the value for some columns in row.) and tried to set value in column TempStore with [_INPUT].[tempDateStore]
When going to the form and press the action, the pop up with no ability to enter a value.
Any help in why this is not working would be appreciated.
Just uncovered why: if the field is set to NOT SHOW :
The dialogue box pops up but the ability to use enter is not rendering.
By making it 'show', the ability to enter is now available.
I am unsure this was the intention of the function for INPUT to be effected by the field having show/or not, but seems not be intuitive to the purpose of the functionality. The Input should still be available as it is independent due to be a collection action from the user. Specifically in that the column can still be selected if "SHOW" is off. The assumption is you can still manage the data.
The use case is to have a 'none visible' ability to store data that will be used for other purposes. In my example, the goal was to be able to use the input and 'add a new row to another table using values from this row' with this data element, as the Advance functionality for INPUT is not available for that Action which I am unsure why it would be available for that action.
If there are other options I am curious for the advice.
@Arthur_Rallu @Lusha_Wang1 Maybe you can consider what @Wim_V wrote. The use of the ShowIF is very useful also for the INPUT function. Right now we are able to manage this via CONTEXT("View") or CONTEXT("ViewType") to enter the view name or view type where the INPUT window will pop up.
Maybe you could add the option CONTEXT("ViewType")="Input" ? With that we could easily manage to show a column in an INPUT window, but not in a detail view (for example).
Bonjour, cela ne fonctionne pas
input("Controler par ?","") => [_input].[Controler ?]
cela donne:
Unable to find column '_input', did you mean 'Vendeur'?
input("Controlled by ?", "") => [_input].[Control ?]
this gives:
Unable to find column '_input', did you mean 'Seller'?</blockquote?
I think the difference between "Controler par ?" and "Controler ?" may be the problem.
The INPUT Type doesn't have REF. What if I want to select from a list of REF
When I use the old syntax, if the column has REF type, the INPUT function will show the Suggested Values from that column:
But I don't know how to use the new INPUT, there is no REF type in the list of INPUT type:
Bon, moi je met texte et cela fonctionne
The new syntax works great for me except the "default value" functionality. It returns an empty prompt, while default value is specified. When will this be fixed?
CC @lizlynch
@Fabian_Weller @jujujuz - Passing this on to the AppSheet team. Thanks for the ping!
Hello @Arthur_Rallu @lizlynch ,
I have a question to the new INPUT syntax.
With the old functionality I am able to add a photo using the syntax
input("Foto","x.jpg")
"Foto" is a field defined with image type. The new syntax does not allow to select an image type. Does it mean I am not able anymore to add a photo using input functionality?
Thanks
ping, any news on my question?
I have a same problem. Why is the image type not available? I tried using new input syntax for capturing images, and with the field type set to "text" the outcome was a failure in sync.
@chris60 thanks for reporting the issue about image type, we will take a look at the issue.
I think if select a "text" type for input, as long as the corresponding column type is image, then we will be able to select an image. @Kuba_O can you share you app with me and explain what the sync error is?
hi, is the input available for other action than change data
For example, add data from row, it is useful tu create a new row with some data copied and other filled from an input...
regards
I tried to create "dynamic input action" where the input is required on the certain condition, while the input is not required if not etc. Tested some expression where the input syntax is nested inside IF/IFS condition, but it was not working as we expected.
Even the below syntax did not prompt input modal.
IFS(TRUE,[_INPUT].[InputName])
Input expression is going to be ignored once it is nested inside other function? Is this expected behavior?
@Koichi_Tsuji yes, input modal will not pop up when input expression is nested inside other functions.