![openside openside](https://community.airtable.com/legacyfs/online/avatars/2X/5/5348c22cf8653160de7965b87ddfb6824c1fe34b.png)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Feb 24, 2020 04:10 PM
Introducing Default Field Values via new Scripting Block
Brought to you by the team at BuiltOnAir & Openside/On2Air
Overview
Airtable’s Scripting block brings a new level of customization to your Airtable bases. The Scripting block will allow you to run scripts to enhance your bases and manage tedious tasks. You can do things such as create templates for records, prompt users, create custom reports, and much more. Once the script is added to your base, you can use it with the click of a button.
We are creating a library of scripts for you to use in your Airtable bases. We have many more examples on the way. These scripts will give you an even better understanding of the data in your base and eliminate repetitive data entry.
About This Script: Setting Default Values
In this tutorial, we will show you how to set a default value for any record or field in your base.
With this script, every time you create a record in your base table, it will automatically add the data you set as a default. You will not have to manually enter the information. It will also add the data to records already created if you need to add or change previous records.
Setting a default value for a field will save hours of data entry and ensure data consistency, especially useful for records shared among multiple users. You can use this script for your entire table or you can choose a view to filter only specific records.
First, we will show you how to add the script to your Airtable base for the initial set up. This will only have to be done one time. We’ve created an easy template for you to start.
Second, we will show you how to use the script to configure and set your default values.
To use this script, you do not need to know any code or programming. You must have ‘Owner’ or ‘Creator’ permissions to set up the Script Block since you will be adding a table. You can then allow ‘Editor’ users to use the block.
Example Base & Script
Install from the Universe this Block
OR
How To Set Up the Scripting Block for Setting Defaults
1. Create a new table in your base and call it Defaults
If you would like the table to have a different name, you will need to change the name in the script. We will show you how to do this later.
2. Copy all records from our example base and paste into your base in the Defaults Table you created
This table is connected to the script to store all your defaults.
You now have fields with Name, Value, Type, Table, and Code. These correspond to fields in the first few lines of the script code we will add.
3. Click the Blocks button in the top right corner
4. Click Add a block and choose the Scripting block
5. Click Edit in the top right corner of the block to open up the script editor
6. Copy the script from our example base and paste it into your script editor in the top left box
You now have the Script added to your base!
Or, you can also retrieve the code here.
Note: If you would like to change the Defaults table name or the field names, you will need to also change the names in the script.
How to Add Default Values
Now, we will show you how to set default values for your fields. This is what you will need to do each time you need to add, change, or delete the default values.
1. Click Run
2. Click Configure Defaults
All the tables in your base will now display. The tables in my base are Simple Table and All Fields.
The Defaults table you created earlier will not show since you don’t need to create defaults for your Defaults table.
3. Select the table and view where you want the default values set
You will then be given the option to choose a specific view. If you want to set defaults for only a specific view, choose the corresponding view. If you want to set defaults for all records in the table, choose No View.
Choosing a specific view is useful for updating default values for only a certain set of records. You may not want to update all your table records with defaults so choosing a view will allow you to specify which records need defaults. We recommend choosing a specific view if your table has a large amount of data.
Once you’ve chosen a View, all the fields from the table will be displayed.
Note: Currently, the cursor drops down to the last field. Scroll up to the top to start with the first field.
4. Set your defaults
Each line will tell you the Field Name and also the Field Type. You can also see the current default value if you have already configured one.
To add a default:
Type your default value in the box and press Next. You can also hit Enter to save the current line.
If you do not want a default value:
Leave the box blank.
If you need to clear out a previously configured default value:
Press the spacebar and click Next.
Once you add all your default values, click Done.
5. Click Set Defaults then choose the table where you added Defaults
It will now add your default values to the fields you set.
In this example, I set a default for the Notes field. The block will also tell you how many were updated.
Defaults By Field Type
To ensure each field displays your default data, review each of these field types to input your data with correct formatting. We have covered a majority of the fields. However, not every field type can have a default value set.
FIELD TYPE | FORMATTING | EXAMPLE |
---|---|---|
Single line text | Text Data | |
Long Text | Text Data | |
Collaborator | Add the Collaborator’s email address | |
Attachment | This must be a URL to a publicly accessible file or image | |
Link to Table | In order to set defaults for linked records to other tables, you will need the Record ID from the record in the table where you want to link. To obtain the Record ID: Add a Formula field in the table you want to link. Type in RECORD_ID() then click Save. You will now have a Record ID for each record in the table. |
Formula: |
Single Link Record ID | Copy and paste the Record ID into the default value field | |
Multiple Linked Records Record IDs | Copy and paste the Record IDs into the default value field and add a comma between records | |
Single Select | Copy and paste the data from your Single Select field. These must be configured in your base prior to setting a default. You cannot add new single select options through the default value script. | |
Multiple Select | Copy and paste the data from your Multiple Select field. You can add more than one default from your Multiple Select field by adding a comma between multiple select options. These must be configured in your base prior to setting a default. You cannot add new multiple select options through the default value script. | |
Date | Format the date as MM/DD/YYYY. You can also add a Current timestamp by adding the word ‘now’ without the quotes. |
|
Phone Number | Standard numerals | |
Standard email format | ||
URL | Standard URL format | |
Number | Standard numerals | |
Currency | Standard numerals Ex: 89 = $89.00 or your set currency |
|
Percent | Standard numerals in hundredths value EX: Type .98 to get 98% or .10 = 10% |
|
Rating | A numeral from 1 to 5 Ex: 3 = :star: :star: :star: |
|
Rich Text | Currently Not Supported By Scripts Block… | Coming Soon… |
You can now set defaults for fields in your base. All you need to do is click Configure Defaults when you need to change or update them.
If you have any trouble, join our Slack community and we will do our best to help you.
We are adding more scripts all the time so join our community to get the latest.
Stay Updated
BuiltOnAir is the ultimate resource for all things Airtable.
Utilizing the new scripting block, we can now address several product suggestions:
![Leonardo_Felici Leonardo_Felici](https://community.airtable.com/legacyfs/online/avatars/3X/b/d/bd3ca3da001e5480bffdaabd1fd3d749e2af438e.jpeg)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Apr 22, 2020 02:54 AM
What should I do? I simply copied the full base and run. But I get an error:
TypeError: input.buttons is not a function
at start on line 211
at main on line 367
Thanks
LF
![kuovonne kuovonne](https://community.airtable.com/legacyfs/online/avatars/3X/b/c/bcecb2d58f8302e9d9f520621c02ff41be54488c.jpeg)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Apr 22, 2020 07:22 AM
Did you get the script from the Airtable universe? This thread about breaking changes explains why you are getting that error.
You can find a fixed version of the script on the Built on Air website.
![openside openside](https://community.airtable.com/legacyfs/online/avatars/2X/5/5348c22cf8653160de7965b87ddfb6824c1fe34b.png)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Apr 22, 2020 09:12 AM
Hi @Leonardo_Felician - thanks for bring that up. I re-published the base with updated scripts. You can re-copy and it should work. Or also like @kuovonne mentioned you can copy the script from BuiltOnAir.
![Leonardo_Felici Leonardo_Felici](https://community.airtable.com/legacyfs/online/avatars/3X/b/d/bd3ca3da001e5480bffdaabd1fd3d749e2af438e.jpeg)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Apr 22, 2020 01:02 PM
Sorry, your idea is very useful indeed, but it’s too difficult to get it working, very fragile.
This is my second attempt: what did I wrong?
ERROR: UserInputStartTime and some lines following, but after 10 mìnutes I’m trying to upload, copy, link the error message and I always get the anser “not possible in a post” I don’t know how to send you
![Operations_Kaho Operations_Kaho](https://community.airtable.com/legacyfs/online/avatars/2X/6/6aa674d64da4fa9bbe646ec168b73a3a74cbdf8c.png)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
May 03, 2020 11:06 PM
Running, Configuring Defaults defaults, and then hitting Done will result into this. No changes has been made:
ERROR
Error: userInputStartTime
at Object.setIsAwaitingInput (h ttps://cdn.airtableblocks.com/bbndrri8ECnp9OEHg/bundle.js:1:3046605)
at _callee2$ (h ttps://cdn.airtableblocks.com/bbndrri8ECnp9OEHg/bundle.js:1:2960935)
at tryCatch (h ttps://cdn.airtableblocks.com/bbndrri8ECnp9OEHg/bundle.js:1:1597474)
at Generator.invoke [as _invoke] (h ttps://cdn.airtableblocks.com/bbndrri8ECnp9OEHg/bundle.js:1:1597079)
at Generator.prototype. [as next] (h ttps://cdn.airtableblocks.com/bbndrri8ECnp9OEHg/bundle.js:1:1598372)
at asyncGeneratorStep (h ttps://cdn.airtableblocks.com/bbndrri8ECnp9OEHg/bundle.js:1:2958700)
at _next (h ttps://cdn.adfsdfirtableblocks.com/bbndrri8ECnp9OEHg/bundle.js:1:2959001)
ps. sorry I had to add a space between “h” and “ttps” so that it won’t read as a link. According to Airtable new users can only post 3 links
![openside openside](https://community.airtable.com/legacyfs/online/avatars/2X/5/5348c22cf8653160de7965b87ddfb6824c1fe34b.png)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
May 04, 2020 10:00 AM
hmm, it appears some recent changes to the scripting block api are causing this error. i’ll have to revisit it when I get some time.
![Ujjwal_sukheja Ujjwal_sukheja](https://community.airtable.com/legacyfs/online/avatars/3X/3/c/3c6aa8cc1e51c1f0a8964b77b375465c86334784.jpeg)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 17, 2021 09:15 PM
It is showing the same error when I’m hitting done while configuring the default values.
Error:
N: userInputStartTime
at start on line 352
at async main on line 367
Did anyone got the solution for this?
![](/skins/images/FE00829FDD2AE889FAB731D8F02A8942/responsive_peak/images/icon_anonymous_message.png)