Skip to main content

Filterbyformula in two fields


Hello,

With the API custom with a filterbyformula, I would like to collect all record, corresponding to my needs, from two differents fields.

“Conversation?filterByFormula=%7Bexpediteur%7D%20%3D%20%27${user.email}%27”

Like, in this case i would like to get all records into “expediteur” field where {user.email} corresponding. But now in my case, I would like the same but into two fields. (expediteur & destinataire) is it possible ? And how to write that ? Thanks you

7 replies

kuovonne
Forum|alt.badge.img+27
  • Brainy
  • 6006 replies
  • June 8, 2021

First build your formula in the Airtable user interface. You will probably need to use the AND() or OR() function in your formula to combine the conditions. Once you have a working formula, the rest is string manipulation.


  • Author
  • Participating Frequently
  • 6 replies
  • June 9, 2021
kuovonne wrote:

First build your formula in the Airtable user interface. You will probably need to use the AND() or OR() function in your formula to combine the conditions. Once you have a working formula, the rest is string manipulation.


This is not exactly what I need. Actually, i want to add another field into my API. I don’t know how to add another field next to “expediteur” …


kuovonne
Forum|alt.badge.img+27
  • Brainy
  • 6006 replies
  • June 9, 2021

What do you want the formula to look like before url encoding?


  • Author
  • Participating Frequently
  • 6 replies
  • June 9, 2021
kuovonne wrote:

What do you want the formula to look like before url encoding?


I would like to search the records where the fiels DESTINATAIRE or the field EXPEDITEUR is equal to the {user.email}.


kuovonne
Forum|alt.badge.img+27
  • Brainy
  • 6006 replies
  • June 9, 2021

You cannot simply add a new field name to the filterByFormula value. You need to construct a valid Airtable formula.

For example, if the email is me@example.com, your formula before url encoding would need to look like

OR(
  {DESTINATAIRE} = "me@example.com",
  {EXPEDITEUR} = "me@example.com"
)

Once you remove white space you would have …

OR({DESTINATAIRE}="me@example.com",{EXPEDITEUR}="me@example.com")

After url encoding you would have …

OR%28%7BDESTINATAIRE%7D%3D%22me%40example.com%22%2C%7BEXPEDITEUR%7D%3D%22me%40example.com%22%29

  • Author
  • Participating Frequently
  • 6 replies
  • June 10, 2021
kuovonne wrote:

You cannot simply add a new field name to the filterByFormula value. You need to construct a valid Airtable formula.

For example, if the email is me@example.com, your formula before url encoding would need to look like

OR(
  {DESTINATAIRE} = "me@example.com",
  {EXPEDITEUR} = "me@example.com"
)

Once you remove white space you would have …

OR({DESTINATAIRE}="me@example.com",{EXPEDITEUR}="me@example.com")

After url encoding you would have …

OR%28%7BDESTINATAIRE%7D%3D%22me%40example.com%22%2C%7BEXPEDITEUR%7D%3D%22me%40example.com%22%29

Thanks this is exactly what i need! Thank you


Forum|alt.badge.img+5
  • Participating Frequently
  • 12 replies
  • February 4, 2025

I was having a heck of a time with this one. Realized afterwards that it won't let you filter out to receive only specific fields in the response.

params = {
'fields': 'imgid',
'filterByFormula': filter_formula,
'maxRecords': 1
}

That did not work, but this did
params = {
'filterByFormula': filter_formula,
'maxRecords': 1
}


Reply