Struggling with Data Linking in Update Actions

Hey Adalo Community,

I’ve been using Adalo for about five years now, so I’m quite familiar with how it works. However, I still run into issues with data linking, particularly when updating records.

Sometimes, the data is linked and available on the screen, yet it doesn’t appear in the update action dropdown. This makes it impossible to assign values like the Logged-In User to a field in an update action.

I’ve gone through Adalo’s tutorials and documentation, but I’m wondering if there’s any hidden information or best practices not covered in the official guides. Even ChatGPT suggests manually linking data, but if the screen has no available data, there’s no Link Data option in the dropdown.

Has anyone else experienced this issue? Any insights or workarounds would be greatly appreciated!

Thanks in advance!

Hi @Mzo,

If the data is available on the screen (meaning that you have Current X in the “Linked Data” section on the screen), then you should be able to update the values of this Current X.
If you don’t see the update option - it’s a bug, and it would be quite interesting to see the screenshots / screen videorecording of it.

Update for Logged-in User should always be available on all screens. Again, if you don’t see this option - it would be great to have some screenshots of it.

Most common issue with data availability is related to some screen “breaking” the data link. E.g. you have:

  • Screen A with list of X and button inside the list linking to
  • Screen B with current X. On Screen B in the “Linked Data” you will see Current X.
    If you add Screen C with a button which links to screen B:
  • On Screen B in the “Linked Data” you will not see Current X as available. The reason is that there is no list of X / current X on screen C, so how can it be passed to Screen B?

There is another issue which is more Adalo-related. If you have a series of screens with Current X, and the links diverge and converge (Current X in A, A>B, B>C and B>D, and then C>E and D>E), then there is a chance that Current X will be lost at E. But this happens only sometimes - I didn’t find the pattern. IMO it’s Adalo issue.
Another case is with screen “loops” (Current X in A, A>B, then loop B>C, C>D, D>B). There is also a chance that current X can be lost on B (and as a consequence on C and D). Also IMO it is Adalo issue.

Not a lot of workarounds for cases above - either to use a single-item list to get the data again, or design the flow to avoid converges and loops.

Hope this helps.

Best regards, Victor.

Hi @Victor

Thanks for the detailed explanation! Based on what you mentioned, I went back to check my screen’s available data and update actions.

On my “Accept Delivery Orders2” screen, the available data includes:
Current Order
Current User
Current Supplier
Current Delivery Personnel

However, when I try to update the Current Order > Delivery Personnel field, Logged-In User > Delivery Personnel does not appear as an option.

Here’s how my database relationships are set up:
Logged-In User has a Many-to-Many relationship with Delivery Personnel
Delivery Personnel has a One-to-Many relationship with Orders

Would this setup cause an issue with linking data in update actions? I’ve attached screenshots showing:

  1. Available data on the “Accept Delivery Orders2” screen;

  2. The update action where I’m trying to assign Logged-In User > Delivery Personnel to the Current Order > Delivery Personnel field;

Would really appreciate your thoughts on why this isn’t working!

Best regards,
Mzo

From the looks of it. You may need to run multiple actions on that button. In order to update the data for those 4 collections individually . But I could be wrong @Victor could give more insight

Hi @Jacob_Lange

The many-to-many relationship is also not showing the Logged-In User in the update current actions. Sometimes, instead of updating the Current Order, it creates a blank record, even though it’s meant to update the existing one.

I also have another screen with a form that creates a Delivery Personnel record, where the User field is set to Logged-In User. I’ve been changing the User, Delivery Personnel, and Order relationships multiple times, but the issue persists.

Not sure if Adalo is failing to recognise the existing relationship or if I need a different approach. Have you encountered this before?

Hi @Mzo,

As far as I understood from your explanations - it can not appear by design.
Based on your DB structure, one logged-in user can have many delivery personnels.
So how can you update a field of a Delivery personnel in an Order? You need to assign some one record to this field. How Adalo can understand which of the delivery personnels should it select from a logged-in user relationship?
In order to make it work the 2-step process is required: first you select a delivery personnel from a list (filtered by logged-in user → delivery personnel), and then you assign this current delivery personnel to an order.

Best,
Victor.

1 Like

Hi @Victor and @Jacob_Lange

I really appreciate your responses! What you’re saying makes a lot of sense, and I’ve actually tried these approaches before. Like I mentioned, I’ve been changing relationships around, but I don’t always get the same results especially with many-to-many relationships.

The biggest challenge is that update actions sometimes create a blank record instead of updating the current order. At one point, I even made the Accept button a list of Delivery Personnel filtered by Logged-In User > Delivery Personnel just to get around this issue. These are the types of challenges I keep running into, but I usually find a workaround.

I haven’t really shared my struggles in this app builder before, but now that I did, I find it really helpful. I should definitely do this more often. Thanks again for your insights!

Best,

Mzo

Hi @Victor and @Jacob_Lange

It’s now finally working correctly, thanks again for all your help! However, there still seems to be another bug: Adalo is displaying a different record count than what actually exists in the collection. This issue occurs when I press the delete action button in the app to remove a current record. Somehow, when I log out of the App Builder and log back in, the deleted records are no longer present in the collection.

This workaround works for me, but I’m curious is this a common thing, or am I encountering something unique? Any insights would be appreciated.

Thanks!

Mzo

1 Like