Save the date! Join us on October 16 for our Product Ops launch event. Register here.
Jan 03, 2021 05:46 PM
I’d like to make a filterByFormula API request within Airtable to return a list array of record IDs that match my query based on the field inputs in a record from a separate table. Ideas?
It’s similar to the Vlookup discussion.
Jan 03, 2021 06:41 PM
First build your formula in the Airtable user interface. Then adapt the formula in your code to take variables.
Note that the REST API will return complete records, not just record IDs.
Jan 04, 2021 06:51 AM
Should I use Axios, JavaScript Fetch, something else, or it doesn’t matter?
Jan 04, 2021 06:57 AM
It doesn’t matter. Use what you are comfortable with.
BTW, you are using the REST API, from outside of the Airtable user interface, right?
Jan 04, 2021 07:02 AM
I’m interested in using the API within the scripting block unless there’s an easier way. A feature that allows filterByFormula without scripting would be even better. It would make sense for it to be a separate tool.
As you can tell I’m limited in my coding knowledge, but if I have a clear example to work from, I can learn faster.
Jan 04, 2021 02:34 PM
filterByFormula is available only when using the REST API, which is typically only used from outside the Airtable user interface. It is only used in Scripting block if you need to access a different base.
Scripting app has no equivalent for filterByFormula. When you select the records, you get all of the records. Then you must use JavaScript to filter for the records that you want.
Jan 05, 2021 07:08 AM
Let’s say I want all the records of a particular user for a particular category. How would I get a count for all the records that match a set of criteria given by filterByFormula in an API request?
Jan 05, 2021 10:38 AM
If you are working within Scripting app for data in the same base as the code, you do not use filterByFormula. filterByFormula is specific to the REST API, and the REST API is very slow and has many limitations compared to Scripting app. Using JavaScript to filter records in Scripting App is far quicker than trying to use filterByFormula
in the REST API.
The exact method of getting the records you want depends on your base design. Do you have a table of users, or are your users Airtable collaborators? Do you have a linked record field that you can leverage to identify the records you want?
By the way, if you have budget for more personal advice for your specific base design, I am available for hire.
Jan 05, 2021 11:45 AM
Essentially I want to load API requests into a separate table as new records with the person’s info to authenticate their request. Then I can use that request with the information about how they want to filter their data to return an array of matching record IDs that I can then use to populate the list.
Does that make sense? I can do a screenshare with you.