I’m working with the Airtable API and trying to filter my table to show only records that contain a particular value in a linked record field. The linked field allows multiple connections to other records.
My understanding was that linked fields return arrays of record IDs as strings, so I thought filtering by those IDs would work. However, both methods return empty results.
What’s the correct way to write a filter formula that checks if a specific linked record exists in a multi-select linked field? Any help would be great!
had the same issue! skip the find functions and just use {linked_field} = RECORD_ID('rec123456') - direct comparison often works when the array stuff fails. also check your field name spelling. I wasted 2 hours debugging once because of a typo in the field name lol
This is super common with Airtable’s linked fields through the API. I wasted hours debugging this exact issue a few months ago. Linked fields don’t act like normal arrays when filtering - that’s your problem. Use SEARCH instead of FIND. Try: SEARCH('rec123456789', ARRAYJOIN({linked_field})) >= 1. SEARCH handles the data type conversion way better and it’s case-insensitive. Also check your record ID format - copying from the URL sometimes gives you a different format than what’s actually stored. Do a quick GET request first to see exactly how the linked field data looks in the response.
Your filter formula syntax is the problem. Airtable linked fields are tricky in API calls.
I hit this same issue building a client management system last year. Here’s what actually works:
{linked_field} = "rec123456789"
Catch is - you need the right field reference format. Sometimes the API wants curly braces around field names, sometimes it doesn’t. Depends on your request structure.
Try this too:
ARRAYJOIN({linked_field}) = "rec123456789"
This makes Airtable treat the linked field as an array and compare against your target record ID.
Also - double-check your record ID is right. Pull some records without any filter first and see what the linked field data looks like. I’ve seen record IDs in API responses have weird formatting differences.
Empty results usually mean wrong record ID format or bad field reference syntax. Start with a simple unfiltered request to see the actual data structure.
Been wrestling with Airtable API filtering for two years and this scenario always trips people up. Airtable’s formula engine handles linked record references differently in API calls versus the web interface. What solved it for me: use the field values instead of record IDs. Don’t filter by record ID - filter by a unique field from the linked table like name or title. If your linked records have a ‘Name’ field, use ‘{linked_field} = “Specific Name”’ in your filter. Alternatively, include the linked field in your fields parameter when making the API request. Check the actual structure that comes back. Sometimes linked field data returns as objects with both ID and display value, not just strings. This shows you exactly what you’re working with before writing the filter formula. The API docs suck for this specific case, but examining the raw response usually reveals the right approach.
Had this exact issue yesterday - use MATCH({linked_field}, 'rec123456') instead. Worked when everything else failed. Airtable’s docs don’t explain it well, but MATCH handles linked field comparisons way better than FIND or SEARCH.
Airtable’s linked field filtering is a pain because the data structure never matches what you’d expect. Hit this wall building a CRM integration last year. Your filter syntax has to match exactly how Airtable stores the linked data. Try {linked_field} = 'rec123456789' without any array functions - sometimes the simple route works when the field has that specific record. What saved me: IF(FIND('rec123456789', {linked_field} & ''), TRUE(), FALSE()) which forces the comparison to actually work. Double-check you’re using the right record ID format. API responses sometimes have slightly different IDs than what shows up in the interface. Test your filter with a basic GET request first to see the exact structure of your linked field data before you build complex formulas.