Mar 20, 2021 09:43 PM
A question arose recently that’s come up a few times in the past: is it possible to give form users the ability to either pick an item from a predefined list or add their own “other” option, and have manually-added options actually appear in the list for later form users? For most of Airtable’s existence so far, this wasn’t possible (at least not without delving into the API, and even then I’m not completely sure that was doable). However, it can be done using Airtable’s automation feature. Here are two methods you can use:
Most of the time this question comes up, the user is probably thinking of using a single select field. While this will work, it comes with a couple caveats that actually make the second method preferable IMO. That said, some of the details that I share here will also be used in the second method, so I still recommend reading through this one.
First, define your single select options as you wish, with an option named something like “Other” as the last entry.
Add a single line text field named something like “Other option”.
In your form setup, put this “Other option” field after your single select field, and make it conditional, only displaying when the user picks “Other” from the preceding list.
Create a new automation using the “When record matches conditions” trigger, with the condition being that {Other option}
is not empty. Add an “Update record” action, choosing the same record that triggered the automation, and setting the value of your single select field to the value added by the user in the {Other option}
field.
Turn on the automation, and it’s done. When a user picks “Other” from the single select field, the {Other Option}
field will become visible, allowing them to enter their own choice.
When the record saves, the automation will add that new item to the single select.
So what about those caveats?
That’s why I prefer…
The setup is similar to what’s above, but with a few changes.
Instead of creating a single select field, make a new table to contain your list options (I’ll call mine [Options]
for consistency), including an “Other” option. To ensure that “Other” remains at the bottom of the list, add an {Order}
formula field using this formula:
IF(Name = "Other", 9999, 0)
Then sort the view by this {Order}
field.
Next add an “Approved” checkbox field and check this box for all of your initial options. Change the view name to “Approved”, and add a filter to only show approved items.
Now the view should look something like this:
Duplicate this view and name the new view “Unapproved.” Modify the visible fields to only show the {Approved}
checkbox field. Change the filter to only show records where {Approved}
is not checked. For now, it’ll be an empty view, which is fine.
Back in your main table, add an “Options” field (or whatever name you wish to use) and make it a link to your new [Options]
table, only allowing individual records to be selected.
In the form setup, set {Options}
to only allow selection of records from the “Approved” view.
As with the first method, set the “Other option” field to be conditional, only appearing when {Options}
contains “Other”.
For the automation, begin with the same trigger as in the sample above. The first action in this setup, though, will be to create a new record to the [Options]
table, with the record’s primary field being the value entered by the user into “Other option”:
Now add an “Update record” action. In this case, add a link to the newly-created record into the {Options}
link field.
Save and activate the automation, and you’re all set.
There are several benefits to this method over the first one…
[Options]
table. (You could, of course, omit the approval features and just let all new entries auto-add like the above scenario, but I personally prefer to use the approval options.)[Options]
table to count the linked records tied to each option, allowing you can see how many times each option has been chosen.I hope that these tips are helpful!
Apr 11, 2022 08:19 PM
Welcome to the community, @Jason_C! :grinning_face_with_big_eyes: Method 2 listed above should be what you need. You’re either using one of the existing linked records, or using the “Other” field to create a new record that will become a linked record once the automation runs after form submission. If you want to allow both existing records plus one new option in the “Other” field, that might still work, but I haven’t tested that option (and unfortunately don’t have time to test right now). Here’s the theory I’m thinking about:
[Contacts]
in your case, the table that you want to link to with your “Other” field entry—add a formula field that outputs the record ID using the RECORD_ID()
function.[Companies]
) table, add a rollup field that rolls up the record IDs of all linked records, using the following aggregation formula: ARRAYJOIN(values, ",")
. I’ll call this field {Linked Record IDs}
{Linked Record IDs}
fieldThat last step will create a comma-separated list of record IDs to feed into that link field: the IDs of the link(s) that you chose in the form, followed by the ID of the new record created by the automation from your “Other” field entry. If you don’t choose any linked records and only add something via the “Other” field, it will still work (that part I have tested previously).
Aug 31, 2022 11:09 AM
@Justin_Barrett. Thank you so much. This is the most accurate answer i’ve gotten. Though it looks like airtable has been updated since this response and I keep getting stuck with both methods. Is there a way someone can share a video of the steps to the non techie folks? Thanks :grinning:
Dec 11, 2022 06:39 AM
Now its 2022 it doesn't work more like that can you do in the new version