Hi @Torrsy,
Unfortunately, Adalo doesn’t have any search/filter capabilities in its API - it is just simple CRUD implementation. But you can solve the issue with Adalo Integromat module + Integromat’s filtering function.
To start with, I’d recommend that you watch the following video Adalo experiments: consolidating list items into a string with Integromat - YouTube to get the general idea. On approx. 4:30 I set up a filter there.
So, as for me, I see 3 possible ways to achieve what you need:
- Use the same method like in a video. “List Records” operation in your case will return a lot of records (5K+), but Adalo API should be able to handle that (anyway testing is needed). Then you filter out the desired record by some publicly-accessible field, and based on that you can get the internal record ID. Then you will use this internal record ID to update the values of the needed record in Adalo DB.
NOTE: this will NOT burn your Integromat credits - List Records is just ONE operation (unlike when you do that via HTTP module + Iterator). - Use Airtable as an external storage to store the records. This approach has its pros and cons, and the benefits (Airtable has search and filter) should be weighted against potential problems (maintaining Airtable collection might increase app complexity). I did this in several cases, and each time the exact implementation differs; sometimes I used Airtable as aproxy to store the data, and then copied the actual data back to Adalo DB with the help of countdown timer, when user opened the app; sometimes I used it as a primary storage medium for some tables.
- Consider using Integromat’s internal storage to optimize the operations (what I’m worried about is that if you have several requests per minute, getting 5K records each time is not the best solution). This is a different story though - implementation may differ based on the exact scenario.
Reg. internal record ID - this has been discussed several times in the forum, for example, see the the thread here How to Access Record ID information or here API to update collection (together with @JL_LJ we pretty much created the stable method of getting the internal ID ).
In brief - internal record ID is not exposed at the moment, but it’s in the roadmap, along with filtering.
As a side note: based on my very vast experience in IT, there is no perfect instrument which can solve all the problems in all cases. There is always a tradeoff between the functionality, speed and price. In my opinion, Adalo is pretty well balanced in this triangle, especially with its integration capabilities.
Best regards, Victor.