- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
Method 1: Single Select Field
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?
- All new entries will appear after the “Other” entry in the list. The only way to change this order is to manually move “Other” back to the bottom of the list on a regular basis. Kinda cumbersome.
- Every manual entry will automatically add to the original list. If a form user decides to be malicious, their new entry will appear for others to see until it’s manually removed.
That’s why I prefer…
Method 2: Linked Records
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…
- Any manually-created “Other” entries must be approved before they will appear for other form users. You can easily review and approve new entries in the “Unapproved” view on the
[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.) - The “Other” entry will always remain at the bottom of the list thanks to the formula field that’s driving the view’s sort.
- Because you’re using linked records instead of a single select field, you can add a “Count” field to the
[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!
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
- In the target table—I’m guessing this is
[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 theRECORD_ID()
function. - In the primary (
[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}
- In the “Update record” action of the automation setup, you’ll insert two items from previous actions into the link field (named “Options” in the example above; change as appropriate for your use case).
- First you’ll add the
{Linked Record IDs}
field - Type a comma immediately after that insertion
- Finish by adding the record ID of the newly-created record in the previous step.
- First you’ll add the
That 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).
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dec 11, 2022 06:39 AM
Now its 2022 it doesn't work more like that can you do in the new version
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 15, 2025 12:25 PM
At miniExtensions, we've created a third-party form that integrates seamlessly with Airtable, and allows users to add new options to select fields:
- « Previous
-
- 1
- 2
- Next »