How to Access Record ID information

Hi all, I am facing the exact same problem. @anon78309838 I can understand the priorities of other issues, but here I think that this should not take much time, as far as I know…

And, actually, is there any feature request for this issue?

Would also really need this!

1 Like

Yes: Expose Record ID for Filters/Visibility | Voters | Adalo

1 Like

Hi everyone!

Exposing the record IDs in an easier way for your collections is definitely on our roadmap! It’s a larger project than it may appear to be on the outside, so it’s not likely to be released in the immediate future. The best way to get this info today is via a Zapier trigger.

There are several workarounds to this as well. You can actually set up the Adalo Collection as an external collection, and it will surface the record ID. This could then be used as a list in your app, and would be able to send your record ID in custom actions or other steps from a detail screen.

Hope this helps in your apps!

4 Likes

I might develop an endpoint in Adastacks to help with this as well. Currently in the process of overhauling some of the endpoint security and functionality anyways.

4 Likes

Hi everyone,

And what do you think about this approach. Imagine you create a field “ManualID” in the collection, and you’d like to copy Adalo’s internal ID to it.
The idea: (1) “Watch for new records” in Integromat and then (2) update the “Manual ID” field with the value from Adalo’s internal id.

Here is the scenario:

I set “Watch records” to 5 mins, increased the max records received to 100.

The setting for “Update”: ID is my “Manual ID” in the collection. And Record ID is Adalo’s internal record ID.

It worked for me:

Of course it takes some time to update manual IDs in the collection, but first tests seem to work.

@anon78309838 @pford I’m not sure how “Watch records” work in details. Do you think such approach is feasible?

Best regards,
Victor.

2 Likes

Hi Ben,

I tried to make the Adalo Collection as an external collection as you said. However, I’m having some issues doing that as you can see in the image below…

Screenshot 2021-04-27 114535|503x500

Hi @duartefalmeida,

Sorry to interfere here…

I wonder why do you get the response content under “records” array in JSON… this is not the case in my Adalo collections used as external one.

Could you show the complete setup? All 3 steps?

Best,
Victor.

Hi @Victor,

It’s a list with all the records of the collection I´m requesting… But here is the complete setup:


Hi @duartefalmeida,

Great, I managed to get the same error!
It seems that when collection has relationships, GET ALL returns the record under “records” array.

On the step 2 you just need to add the “records” key like this:

Also it seems that this “records” key for results has been introduced in API with “v0” path in the URL. The external collection I’ve checked was created some time ago, and the API path was different (without “v0”). That API version didn’t return the “records” key.

Best regards, Victor.

4 Likes

Hi all

I too ran into this problem and I came up with a solution using Integromat that works for me at least. Maybe it’s useful for others.

  1. Create New Adalo record using a custom action (create a numeric field in the collection to hold the adalo record id) :-

  1. Send the json body of your record to an integromat webhook:-

  1. Add the webhook record payload to Adalo using Integromat’s Add Record module:-

  1. Update the newly added Adalo record using Integromat’s Update Record module:-

  1. Add new record using Custom Action:-

It’s as simple as that :-).

You don’t have to watch records which can become computationally expensive and it only triggers when a new record is added.

Instead of using the built in Create Record Action in Adalo, I just call the Custom Action and add in the appropriate values.

I’m no expert so may have some of this wrong and it may not be the most elegant solution but it works for me.

Hope it helps someone as many have helped me here too.

Thanks

Claire

3 Likes

Just a note here as you mention “Watch records can become computationally expensive”.

A webhook and a watch records is same in free plan as they both run every 15min and grab all data (There is no instant data here, only in test mode).

Operations in Integromat when you do a request are based on the number of Actions you add and the data than you then update after.

So a webhook in the end pulling 15 records is same as a watch records pulling 15 records :slight_smile: . the operational cost after (E.g. a POST Request) will cost you 15 requests.

Let me know if you don’t agree :slight_smile:

Hi JL_LJ

I’m on the standard plan so webhooks are instant. If I used a watch records module and put it at it’s most frequent (every minute), I’d burn through 1,440 operations per day + whatever data transfer even if I was only returning 15 records which would only ‘cost’ 1 operation with a webhook.

Also, this is not factoring in the fact that watch records runs every minute at best vs instant with a webhook.

Does this make sense?

Thanks

Claire

1 Like

Hi,
Ok, that is just strange as Watch records is also triggered by a new record, the different is that in the watch record you choose the condition (E.g. created date) and associated with a platform while webhook is just a trigger to provide info (Not necessarily a new record) and not associated to any platform.

But I did test with free plan and it consumes one operation every 15min if result is empty( so watches records every 15min :slight_smile: ). So makes perfect sense what you say :slight_smile: .

Hey JL_LJ

I use webhooks even with Airtable. I prefer it to using the watch records module for the reasons I mentioned above. I usually trigger an integromat webhook by using an Airtable automation that runs a script to send the record data to the webhook when a record comes into a view or a new record is created.

Using this method, I am not having to poll Airtable every n minutes to see if the condition has been met (new record, record in view etc)

Thanks

Claire

1 Like

hi @claireconza , in the images you sent with steps in item 5. Add new record using Custom Action:-
i saw in the list of action a link to user detail (the last one), my question is using this method of creating new record through integromat once integromat doing everything, back to adalo in actions you dont have the “current just new created record” in screen available data, in your opinion or workarounds, you need to link for example to the list of records (and probably this will be the last record, not always of course other users can add at same time) or you can link to an edit page of this “current just new created record”? thanks in adavance

Hi Liba2

If you need the new integromat created Adalo record on the same screen in which you created it, you would have to have a list of this collection on the same screen.

If you only wanted the new record to show you would limit the list to 1 and sort by created date descending or a better approach would be to filter the list to the current logged in user (making sure you passed this data to integromat when you created the record).

You would also need to open Advanced Options and ensure this option was checked.

Auto refresh list when users add new items? Auto Refresh*

Hope this helps.

Thanks

Claire

1 Like

@claireconza thank you about fast answer and insights, this brings some possibilites to think about and test. So far now I have a home work to do testing and trying scenarios :slight_smile:

1 Like

So I’m chiming in here too. It find it strange that one of the features of Adalo is database access via API, but we don’t have access to record IDs without all these work-arounds. I mean the APIs require record IDs, but we can’t access record IDs unless we use a third party platform to surface the ID???

In my case, I need to map the ID of one table to another table manually and it must be done when the record is created (to act as a record “lock” so no one else can use that record). The two records must be linked and I can’t use relationships in this case. Currently I can never update the second record immediately so I always run risk of duplicate use which will cause big issues (and hence my evaluation Xano).

Update: I created a new field called RecordLocked which is updated upon the creation of the related record. So that might solve it…

Rant off…

1 Like