Custom actions not sending data to webhook

HI everyone, I’m using Custom Actions and Integromat to trigger workflows from our Adalo app.

I’ve noticed inconsistent performance from custom actions, wherein in some cases it does not send the correct data as mapped in the app. For example, here is the custom action fields mapped using magic text, pulling from the Logged in User and a related record.

On the Integromat side, the webhook receives the following which does not correspond to any of the information the custom action should have sent:

In fact, I’ve noticed that the custom action is send that same set of data over and over in some cases. This isn’t happening 100% of the time, but this is impossible to debug since I can’t tell where the requests are coming from.

Anyone else run into his kind of thing with Custom Actions?

Where is the data coming from for that custom action? Can you show the setup and flow.

The user submits this form, which is updates the user from an external collection details screen.

On form submission, an action takes the user to a loading screen where the custom action is triggered on page load:

I’ve attempted to reset the webhook URLs, but this has not fixed the problem. Can’t think of anything else to do, as we continue to see these blank requests sent to our webhook.

Custom actions don’t actually work on screen actions, only on actions taken on screens, like button presses, form submits (custom action must be a secondary action), and list selections.

If you add the same action to the “Done” button you have on the confirmation screen I think it would work the way you’re anticipating.

@pfordmedia that is not correct. Here is an example where the custom action worked as expected via the same setup:

I used to have it set up to trigger on the form submission of updating the user (secondary action), however I came across the same issue and I figured it was because the custom action/magic text was not able to collect the data that was being changed from the form so I switched to this method instead.

Ah I see. Im sorry I thought you meant the update wasn’t working. That’s the part that doesn’t work on screen load. My guess here is that it’s still trying to update/create the record when it fires the custom action. You might could try to add an invisible countdown and have the action trigger when it finishes - maybe on the loading screen. There needs to be more time between the form submit and the custom action I think.

That’s not the issue either. In my original post, the “Order ID” and “Customer ID” that came through the webhook request correspond to test data in the external collection, and our users would not have access to those particular record ids. We’ve seen that same “Order ID” and “Customer ID” come through over and over when this issue arises.

Looks to me like some sort of caching issue in the Adalo App custom action?

Gotcha. Sorry I keep striking out here. Can you explain a little more of the workflow and the External collection you’re pulling from? Can you send screenshots of the Custom action setup as well? I would still be intersted to see what would happen if you put the custom action on the Done button just for grins and giggles.

Nothing to apologize over, appreciate your interest and efforts to help.

The user clicks on a card from a list component (displaying records from an external collection filtered to that users ID) to bring them to the details screen which contains the form where they can update their delivery address. The user clicks “save” to confirm their delivery address (updates logged in user) and the custom action that triggers on the linked loading screen then sends the newly updated delivery address for the logged in user, the user’s record ID and the unique order ID for the external collection record the user originally clicked on to the webhook in integormat. Integromat then updates two other external collections with the delivery address and some other status information.

When the custom action was triggered on the the user submitting the form, we saw the exact same issue as we are seeing now, so its clear that the problem was NOT associated with triggering the custom action on the form submission, but rather a bug where custom action data is being cached I guess?

Hi @zakakatz :wave:,

It’s “seem’s” that the problem is that you are parsing data from your User Collection instead of the Form Input

It might seem inconsistent because your webhook is being fired off before Adalo updated those entries thus making the objects Null.

Hope that solved your problem as I have had no issues on my side with custom actions and Integromat.

Hi @Devops,

I don’t think you are correctly understanding the problem. I know I am parsing the data from the user collection and not the form input. For one thing, I cannot select any of the form inputs as magic text for the custom action.

To get around this, I am triggering the custom action after the form has been submitted and the update user action completes on the previous screen. Then on the loading screen, I parse the data from the User Collection (which should be updated). The webhook is firing on a screen that only loads after the user is updated via that form. There is no possible way for the custom action to fire with null values.

In any case, your point does not explain why the incorrect Record ID for the External Collection record the user is viewing is being sent to the webhook from the custom action.

I think this is the problem it explains why you’re getting inconsistent results, I’m not sure your collection is getting fully updated in time before your webhook fires off, (Adalo is not quite like Zapier or Integromat when taking sequential steps)

You should try building a custom form (text input fields and a button) when the button is clicked you can parse the data from your input fields for your webhook and also update your collection on the same screen.

1 Like

Ok I’ll try that but again, this does not address the issue with the webhook sending the wrong record ID which has nothing to do with form inputs. In my original example:

The CXID and ORDER values that were sent to the webhook could not have possibly be sent by a user, because I know those values are associated with test records that could not have been selected by the user from their dynamic list view. Those sames values appear on every single instance of where this issue is occuring, over and over again. That’s why I don’t think this problem has anything to do with the form inputs, there is clearly some sort of bug here that I really wish Adalo would investigate further instead of just pointing to the workflow as the problem when I’m presenting clear evidence of a different problem.

Ok give my first suggestion a try while I cook you up a reply for the next issue, one step at a time :innocent:

No because again, please listen to me when I say this, THE BUG HAS NOTHING TO DO WITH THE FORM INPUTS. Please stop focusing on the form inputs. It wouldn’t matter if the custom action didn’t use form inputs at all since the main issue is that we are seeing the same test record IDs being sent to the webhook, no matter which user is sending the request. The blank form inputs from the previous examples are an unrelated symptom from that same bug where the custom action is not sending the expected data to the webhook.

I have been unable to recreate this bug with test records using any of the devices available to me so I can’t give immediate feedback about if this made any impact, but again the main issue is that the webhook isn’t just sending blank data but it is sending completely incorrect data associated with test record ids that are not accessible to the user.

The “solution” you have provided is completely wrong and does not apply to our use case at all.This is really frustrating because I don’t know how many times I have to tell you that there is a bug here you need to look into and you don’t seem willing to accept that despite the overwhelming examples and evidence I’ve presented.

I am going to spell this out extremely granularly so you understand our workflow:

  1. User signs up in our app. When they signup, we send a custom action that creates the users profile in our external collections database. When the external collection user profile record is created, we update the Adalo Users collection with the unique ID from the external collection as a field in the User Collection.
  2. When an “Offer” is available for a user, we create the “Offer” in a different external collection that references the first external collection for that paticular user’s unique ID. In our Adalo App, any records in the “Offers” external collection are displayed on a filtered list component
  3. The user clicks on the item from the list (if available) and is taken to a new details screen where they enter their preferred delivery address.
  4. The delivery address and unique external id for both the “Offer” record and the external user profile record are included in a custom action request sent to an integromat webhook.
  5. Integromat maps and parses webhook request to appropriate databases.

The bug here, is that in some cases (and I have no way of knowing how/why/where) the custom action is sending test data, whcih includes blank form entries and MORE IMPORTANTLY incorrect record ids associated with test records which are not accessible to our users. Please note the time stamps, and consistent same record IDs for each request:

Well, that’s quite a pickle :thinking:, Thanks for taking the time to explain your workflow as a didn’t fully understand you were Creating/Updating your records to an external Db. (Warning this will slow down your User flow)

Seems that the issue is coming from your custom action that is not parsing dynamic data to your request body and defaulting to your test data.

Normally this would be straightforward but it seems that for some weird reason that Adalo can’t find the logged-in user record.

Sorry if my input was of no use (just trying to be helpful), but I think we’re getting there :wink:
Support will get in touch in the morning if this “bug” has not been resolved.

The last test I can think of is to Re-determine your webhooks data structure and fire another call with Example values, if this has successfully parsed the test data to Integromat then the problem is 100% as mentioned above.

And maybe try to reset your custom action as a hole. (I’m sure you already did this)

Still seeing this issue:

Could you try putting the Custom action on the Done button on the next screen. Something still tells me that the previous actions are not finished completing before it’s triggering the custom action.

I had it set up that way before, and same problem. That’s why I switched to the intermediate loading screen to fire the custom action in a hope to fix the problem