Adalo and Integromat

I use Integromat extensively for our business automation. It ties together dozens of different apps/services, allowing us to synchronise many different contact & product/service databases. Basically, its the glue the holds our company together.

It goes without saying I’d be using Integromat with Adalo. But, here lays my first hurdle. I’m looking at the Adalo API documentation page - specifically, the page for my Contacts table and I’m missing 2 critical features: the ID field & Search function.

Integromat allows me to perform the following functions/tasks/actions, but one of the most important ones, Search, is missing. Looking further into this I don’t see a Search feature on the API documentation page.

A customer or technician updates contact information in another app/service. This information is then disseminated to all other services and the contact information is kept up to date across multiple systems. Across all the system we have a field for XeroContactID. This data does not change and is perfect for unique customer identification. Without a Search function in Adalo, how can I find the customer record?

In Integromat there is a List Records function, but this will pull the entire Customer database. While it will work our data/traffic usage would go through the roof!

Integromat does allow us to retrieve individual records by using Adalo’s Record ID field. But when I look at my Adalo database there is no Record ID field visible. Clearly, this is present in Adalo but not exposed in my database view nor does the Adalo API documentation provide any reference to this.

Once again, I’m at the point where I feel like the last couple of weeks effort has been a waste of time.

Hi Michael,

I know the EXACT solution to this, but I’m doing something else very important; just give me an hour and I’ll provide you with an explanation.

Thanks for building on Adalo! :smiley:

1 Like

Thanks, James.

No problem. Thanks for the prompt reply.

thanks!

it’s always sad “virtually” seeing makers stop building their dream apps on Adalo. :cry:

Hi @James_App_Maker

If you have a solution to this problem I’d love to hear it. Any assistance would be greatly appreciated. Thanks.

We have a contact list of over 5500 and iterating through this list just to find a matching record would kill our Integromat operations count.

Sorry! I’ve been so busy lately.

From what I understand you need the Record Id?

Morning James

Ideally, the Adalo API would provide a Search function based on user-defined criteria. As I mentioned in my above post, the majority of data handling will be processed by Integromat. While a number of functions are available a user-defined search is not nor do I have access to the Adalo ID field from within my Adalo database.

While the Adalo API and Integromat does allow for List Records, this returns all records And I would then have to iterate through every customer record to find one, and with a database of over 5500 contacts this is not a viable solution.

TL,DR: Unless the Adalo API can provide a user-defined search so I can retrieve a single record based on a query in a specific column, Adalo is not going to work for us.

Could you please take a screenshot of your scenario in integromat so I can reproduce it on my end?

All the relevant screenshots are in my first post. I can’t take a screenshot of my scenario because my scenario does not exist because the Adalo API does not allow for a Search function.

If there is a way to retrieve a single record out of 5000+ records based on a user-defined query In Integromat it would make me very happy.

Tbh, I don’t want to tell you something that is wrong because I don’t really use integromat that much. I don’t really like giving people wrong answers.

I don’t know if you could or you can’t do this. Maybe @Victor @Erik @theadaloguy or others have done something like this?

Looking at the Adalo API documentation page the only options I see are:

Get all collection records
Add a collection record
Fetch a single collection record
Delete a single collection record
Update a record in the specified collection

In order to update or fetch a single record I have to specify the record ID, and field is not exposed within my database. And for me the record ID is totally useless outside of Adalo.

Basically, there is no search function available.

Here is an example of how we would use a search function and why I feel it is 100% necessary.

Scenario:
a customer or staff member updates information in a customer portal, this information then needs to be replicated to every other service database in order too keep all information in sync.

Our Integromat scenario catches a modification to a record in the customer portal and pushes the changes out to other service databases.

(Now we come to updating the record in Adalo)
The Integromat scenario would Search the Customer table (in Adalo) in the field Xero Customer ID for the matching customer ID and update the changed information appropriately. Thereby keeping all information in sync across multiple services.

As Adalo does not provide a search function this is not possible. Of all the services we use (Xero, Trello, Google Sheets, Stripe, Webflow, Office 365 Calendar, Click Send, and more) Adalo is the only one that does not provide a Search function to query database records.

There is the option of connecting Adalo to an external data source but for performance sake, I would like to have everything contained within a single service.

Maybe at the community town hall I can ask if this functionality is on the roadmap or I can ask someone from the team.

I’m sorry if I wasn’t that much of help. :slight_smile: :slightly_frowning_face:

Hi,
So if I understood correct, you have 2 different databases at least (1 in Adalo and 1 in another app/service)?

If a customer/technician updates his/her contact info you want to update this info in Adalo by searching the user in adalo using XeroContactID (This is ID in all apps) and then update the user in ADALO?

Are you using webhooks to get Data from other apps into Integromat?

@JL_LJ yes that is correct.

Integromat can trap change events in various apps. When a record is changed in an app it triggers the scenario in Integromat. That scenario would then (ideally) update the customer record in Adalo.

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 https://youtu.be/PTDEDHH1hKs 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 :slight_smile: ).

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.

3 Likes

Thank for the detailed reply @Victor

Earlier this afternoon I was experimenting with Air Table. Using a filter I was easily able to achieve what I was trying to accomplish.

While I would prefer to have everything bundled together and wrapped up in a tidy bow it inside Adalo. I guess when it all comes down to it, as long as it works.

Once again, thanks for your reply.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.