Skip to main content

I am trying to search for records in Airtable from Integromat and unable to figure out how.


I have created a scenario where I get a unique id to be searched for in Airtable via a webhook. After linking the webhook to Airtable, I selected the option “Search records”. There is a field called “Formula” and I am not able to figure out what it means.


Here’s what Airtable’s API documentation says about ‘Filter by formula’:





filterByFormula: string: optional



A formula used to filter records. The formula will be evaluated for each record, and if the result is not 0, false, “”, NaN, ], or #Error! the record will be included in the response.



If combined with view, only records in that view which satisfy the formula will be returned.



For example, to only include records where Name isn’t empty, pass in: NOT({Name} = ‘’)





It also directs users to the main Airtable formula reference page for additional information.


Thanks for the link @W_Vann_Hall.



Basically I want to retrieve the records that match the field “Customer ID”.




From the API reference page I am not able to figure out how to compare a string that I have received from webhook with the field “Customer ID”. Any idea how to do it?


did you manage to make it work? I tried integromat and had similair problems. compared to zapier setup is much harder.


did you manage to make it work? I tried integromat and had similair problems. compared to zapier setup is much harder.


Yup I was able to make it work. Thanks for checking in.


I wrote a tutorial for Google Sheets and the steps are same for Airtable as well.




Yup I was able to make it work. Thanks for checking in.


I wrote a tutorial for Google Sheets and the steps are same for Airtable as well.






@Sridhar_Rajendran


What exactly was your formula? That’s the part I’m having some issues with.



UPDATE: Nevermind, I just got it to work!


Yup I was able to make it work. Thanks for checking in.


I wrote a tutorial for Google Sheets and the steps are same for Airtable as well.






That’s a great write-up of the process, BTW. I’ve been struggling¹ with automating some processes with Integromat, and I think you’ve lit enough of a fire under me to send me back to the task.








  1. By ‘struggling,’ I mean, 'trying not to have to read the documentation — but at least there is documentation, thankfully, and not just improvised tutorials on YouTube…



I am still having trouble with this. I mainly use Zapier, but a client I am working with want s to use Integromat. I have tried two routes and keep running into the same problem. Ideally, this is how it will work - we have a form in Airtable set up to go to it’s own tab. We want to use Integromat to read that data, then search another tab within the same base in Airtable and then either create or update a record depending on whether or not it is already there. I know the problem I am having has to rely in the search portion of the setup. I want it to search based on the same field in both tabs, Participant Name, and have tried to set this up but it doesn’t seem to be working. When I test it with an existing record, it just starts updating a variety of existing records instead of the one that matches. I’ve tried writing a formula to filter it and then get met with an error every time. I do not know what I’m doing wrong. I tried to figure it out from the tutorial, but I was so lost in it I had no idea what to do. Please help!


I think I have figured out, yet to test out, you have to use {Field name}=select-variable", can someone confirm if I am doing it right?


Sorry to resurrect this old thread but I’m still struggling to figure out why my filterbyformular query isn’t working. I’ve got a simple two column table with some first names and last names.



To work around the API limits, I constructed my query using curl after reading the docs. This pseudo query got me what I wanted:



curl https://api.airtable.com/v0/$id/$table?filterByFormula='{FirstName}="Bob"' $AUTH



Great, I get a JSON payload that returns the row I’m looking for! But when I plug that filter into Integromat (everything after the ? and before the auth string), I get the following error:



The formula for filtering records is invalid: Unknown field names: filterbyformula



Anyone have any ideas what I’m doing wrong?


@Sridhar_Rajendran


What exactly was your formula? That’s the part I’m having some issues with.



UPDATE: Nevermind, I just got it to work!


How? Can you share please for other people to see it too?


the chatfuel tutorial you shared @Sridhar_Rajendran works with Google Sheets and not with Airtable. So this is not a response to the issue raised 🙂


Anyone share what the filter formula looks like? I am using:


{Airtable Column Name}=variable



but it results in “The formula for filtering records is invalid: Unknown field names: false” 😦



update: got it to work. the formula needs to go in () and the variable needs to be defined as string ‘variable’.



here you go:



({Airtable Column Name}=‘variable’)


Hoping someone can help me with this formula – I use Integromat to schedule moving my records between bases when a “Send” checkbox is checked (which has a corresponding “Send Last Modified” date field).



Right now, the first record in my scenario is a Watch Records trigger, where the Trigger Field is “Send Last Modified”.



I want to set it up so that I can trigger this with Webhooks instead, but I’m not sure what the formula would be to replicate the “Send is checked” but only include the new results from “Send Last Modified”.



Any help greatly appreciated!! Thank you!!!


Adam


the chatfuel tutorial you shared @Sridhar_Rajendran works with Google Sheets and not with Airtable. So this is not a response to the issue raised 🙂


Anyone share what the filter formula looks like? I am using:


{Airtable Column Name}=variable



but it results in “The formula for filtering records is invalid: Unknown field names: false” 😦



update: got it to work. the formula needs to go in () and the variable needs to be defined as string ‘variable’.



here you go:



({Airtable Column Name}=‘variable’)


This is the true answer. UPVOTE!!!


Hi @Sridhar_Rajendran and @Kristina_Traeger1



This is in response to your posts.



You would use thIs basic Integromat scenario and then you can expand on it to suit your own use case:



Airtable=> Watch Records only use this if you are not using an app before this one


Airtable=>Search Records


The formula:


{type keyword/unique ID} = “use the value/blue tag of the field name”. **use straight quotes


Use Router


Airtable=>Update Record. **secod branch, filter before the app: chose blue tag (ID) and Record Updates


Airtable=>Create Record **first branch, filter before app: chose blue tag (ID) and Exists



Here are screenshots to illustrate how to setup a basic scenario to a update and create records and how to setup Gmail module. You can add on and expand the scenario for your use case.



Images 5 and 6 shows how to setup the formula, you would just use your own unique key.



Hope this can help.



Mary Kay


















the chatfuel tutorial you shared @Sridhar_Rajendran works with Google Sheets and not with Airtable. So this is not a response to the issue raised 🙂


Anyone share what the filter formula looks like? I am using:


{Airtable Column Name}=variable



but it results in “The formula for filtering records is invalid: Unknown field names: false” 😦



update: got it to work. the formula needs to go in () and the variable needs to be defined as string ‘variable’.



here you go:



({Airtable Column Name}=‘variable’)


I tried this configuration and just about every other variation of it, and am still getting ‘The formula for filtering records is invalid: Invalid formula. Please check your formula text.’ Any other suggestions? When using your approach above it shows:


INPUT





  • Bundle 1Collection



    • Base


      appzZmT2FCNqhbcPh


    • Table


      StateCurrent


    • Formula


      ({StateCode}=‘AK’)








And in other iterations: StateCode = AK (which I tested in Airtable directly as a formula column, and it evaluates correctly).



Any other suggestion would be much appreciated.


I tried this configuration and just about every other variation of it, and am still getting ‘The formula for filtering records is invalid: Invalid formula. Please check your formula text.’ Any other suggestions? When using your approach above it shows:


INPUT





  • Bundle 1Collection



    • Base


      appzZmT2FCNqhbcPh


    • Table


      StateCurrent


    • Formula


      ({StateCode}=‘AK’)








And in other iterations: StateCode = AK (which I tested in Airtable directly as a formula column, and it evaluates correctly).



Any other suggestion would be much appreciated.


Welcome to the community, @DKott1! :grinning_face_with_big_eyes: Two questions:





  1. How do the quotes around “AK” look in Integromat? Formulas in Airtable require “straight” quotes, but some editors create “curly” quotes. For example:




"AK" vs “AK”



If you use the wrong type in Integromat, my gut says that wrong type will be passed to Airtable, and could be the cause of the error.





  1. Your formula example above is:






Is that exactly how the formula field looks in Integromat, parentheses included? If so, the parentheses shouldn’t be there, so perhaps that’s causing a hiccup of some kind.


Welcome to the community, @DKott1! :grinning_face_with_big_eyes: Two questions:





  1. How do the quotes around “AK” look in Integromat? Formulas in Airtable require “straight” quotes, but some editors create “curly” quotes. For example:




"AK" vs “AK”



If you use the wrong type in Integromat, my gut says that wrong type will be passed to Airtable, and could be the cause of the error.





  1. Your formula example above is:






Is that exactly how the formula field looks in Integromat, parentheses included? If so, the parentheses shouldn’t be there, so perhaps that’s causing a hiccup of some kind.


Double quotes and removing the parentheses worked … thank you so much!




Hi @Sridhar_Rajendran and @Kristina_Traeger1



This is in response to your posts.



You would use thIs basic Integromat scenario and then you can expand on it to suit your own use case:



Airtable=> Watch Records only use this if you are not using an app before this one


Airtable=>Search Records


The formula:


{type keyword/unique ID} = “use the value/blue tag of the field name”. **use straight quotes


Use Router


Airtable=>Update Record. **secod branch, filter before the app: chose blue tag (ID) and Record Updates


Airtable=>Create Record **first branch, filter before app: chose blue tag (ID) and Exists



Here are screenshots to illustrate how to setup a basic scenario to a update and create records and how to setup Gmail module. You can add on and expand the scenario for your use case.



Images 5 and 6 shows how to setup the formula, you would just use your own unique key.



Hope this can help.



Mary Kay


















Hi Mary Kay,



Thank you, your solution worked for me.


When I had to create the filter to update the record, I chose the blue tag (ID) but I couldn’t find the Record Updates option so I set it up as “it doesn’t exist”. Not sure why, maybe I was looking for it in the wrong place? Or maybe Integromat changed something since May?


When I had to Create Record, I was able to go for your approach.



It looks I am getting the desired results, I will keep an eye on it and post here if anything weird happens.



Thank you!


Hi Mary Kay,



Thank you, your solution worked for me.


When I had to create the filter to update the record, I chose the blue tag (ID) but I couldn’t find the Record Updates option so I set it up as “it doesn’t exist”. Not sure why, maybe I was looking for it in the wrong place? Or maybe Integromat changed something since May?


When I had to Create Record, I was able to go for your approach.



It looks I am getting the desired results, I will keep an eye on it and post here if anything weird happens.



Thank you!


Hi @Matteo_Ottaviani!



I’m glad it worked for you!



There has been a new update/version for Airtable.



You could check this at Integromat.com



Or you could do a Google search and find the link for app/module descriptions.



Hope this helps!



Mary Kay


Hi @Matteo_Ottaviani!



I’m glad it worked for you!



There has been a new update/version for Airtable.



You could check this at Integromat.com



Or you could do a Google search and find the link for app/module descriptions.



Hope this helps!



Mary Kay


Thank you @M_k!


I have both checked Integromat.com and tried a google search but I am still struggling with the update module 😦


I think I am very close and I know where the issue is, but I can’t figure it out even if I made a looot of tests. The CREATE A RECORD MODULE works just fine but I can’t get the UPDATE RECORD MODULE to work





I think the UPDATE A RECORD MODULE has been set up correctly ( I have used the Record ID from the SEARCH RECORD MODULE and then I mapped the module with the records from the WATCH RECORDS MODULE). I am 99% sure that the issue is connected to the filter between the Router and the UPDATE RECORD MODULE. I have tried several options to set the filter but none worked:





  1. TOTAL NUMBER OF BUNDLES greater than 0


    2)TOTAL NUMBER OF BUNDLES equal to 0


  2. ID Exists (both the one from the WATCH RECORDS and SEARCH RECORDS module)


  3. ID Doesn’t Exist (both the one from the WATCH RECORDS and SEARCH RECORDS module)




It looks like I am stuck. If you have any idea, I would really appreciate it.


Matteo


Thank you @M_k!


I have both checked Integromat.com and tried a google search but I am still struggling with the update module 😦


I think I am very close and I know where the issue is, but I can’t figure it out even if I made a looot of tests. The CREATE A RECORD MODULE works just fine but I can’t get the UPDATE RECORD MODULE to work





I think the UPDATE A RECORD MODULE has been set up correctly ( I have used the Record ID from the SEARCH RECORD MODULE and then I mapped the module with the records from the WATCH RECORDS MODULE). I am 99% sure that the issue is connected to the filter between the Router and the UPDATE RECORD MODULE. I have tried several options to set the filter but none worked:





  1. TOTAL NUMBER OF BUNDLES greater than 0


    2)TOTAL NUMBER OF BUNDLES equal to 0


  2. ID Exists (both the one from the WATCH RECORDS and SEARCH RECORDS module)


  3. ID Doesn’t Exist (both the one from the WATCH RECORDS and SEARCH RECORDS module)




It looks like I am stuck. If you have any idea, I would really appreciate it.


Matteo


Hi @Matteo_Ottaviani!



Just make sure that the tags that you use to map are from the module that you want the data from.



The other question, you may have explained, are you trying to place records from one (different) database into a new database? Where is the data coming from?



If so, you will have to use the Retrieve a record (Airtable) module, since the record ID will be different, between the two bases.



If that’s the case, I have a scenario that moves the data from one base to another.



Let me know and I can take screenshots of it.



Also, can you take screenshots of the whole scenario? Or is the screenshot you have, is the whole scenario?



Mary Kay


Hi @M_k,



Thank you for your reply and sorry for being such a noob.



I am trying to copy data between two tables in the same base. Basically I would like that records from table 1 are copied into table 2 and that when records in table 1 are updated, they get updated in table 2.



Here are all the screenshots with configuration for each module:



The complete Scenario:




Watch Record Module settings:




Search Records Module settings:




Filter between Router and Create a record:




Filter between Router and Update a record:




Create a Record Module Settings:




Update a Record Module Settings:




I really appreciate your help!


Matteo


Hi @M_k,



Thank you for your reply and sorry for being such a noob.



I am trying to copy data between two tables in the same base. Basically I would like that records from table 1 are copied into table 2 and that when records in table 1 are updated, they get updated in table 2.



Here are all the screenshots with configuration for each module:



The complete Scenario:




Watch Record Module settings:




Search Records Module settings:




Filter between Router and Create a record:




Filter between Router and Update a record:




Create a Record Module Settings:




Update a Record Module Settings:




I really appreciate your help!


Matteo


Hi @Matteo_Ottaviani!



I got your rely, thank you!



Can you give me some time to go over this?



It might take a few days? Is that okay?



I will do my best to help you.



Thank you,


Mary


Hi @Matteo_Ottaviani!



I got your rely, thank you!



Can you give me some time to go over this?



It might take a few days? Is that okay?



I will do my best to help you.



Thank you,


Mary


Of course @M_k and thank you!!!


Of course @M_k and thank you!!!


Hi Matteo



I worked on a scenario over the weekend.



I now have a few suggestions and some questions.



Suggestions







  1. In the Watch Record, try removing the formula, since you have another formula already in the Search Record.







  2. You almost had the formula, in the Search record. You just need to place straight quotes on either side of the blue tag, no spaces.







  3. Filter for Create a record, select the ID tag from module 16 then select “Does not exist” condition, second choice from drop down.







Questions:





  1. Where is your data coming from?


    Did you consider using Google Sheets for inputing data? Then you could place the Google Sheets app at the beginning. When you run the scenario it will place all your data into one base, with all of your fields. This way you only need one base.




Just a suggestion.



Can you provide a screenshot of the whole module setup for Create a record, it looks cut off and I would like to see the complete setup.



I did a mock-up of your database, based on your scenario, but when I get your reply, I might have a better idea if it’s going to work.



I am just not sure where the data is coming from and what the flow is.



Thank you,


Mary


Reply