Filtering results of an external query in Adalo (more than 48h spent trying to solve it)

Hi, I am super frustrated with this. I’ve spent 2 days.
I have tried many possible solutions, but nothing works at all.
I’m just going to describe the situation so as not to condition thinking.

Premises:

  • I have 2 lists: db1 and db2.
  • both have 1st column with exactly the same info
  • db1, in addition, has more columns (data that the users of the app can update)
  • db2 must be outside from Adalo and cannot be edited. It can only be queried.
  • queries are performed by the users, but they must be able to do this without being logged.

The outcome I am looking for, is the following:

  • after performing a query by the (unlogged) user in Adalo
  • db2 is queried. The query returns N results (currently this is performed with integromat)
  • as db1 and db2 have the same elements, a list in Adalo must show the N results but from db1 (so that other information can be displayed as well)

I am having the problem when I want to tell Adalo: “show from db1, only those results that db2 has said”.

any idea??

Thanks in advance! :pray:

Can you provide just a little more information on the problem.

How many N results are we talking about here, 10 items, 100 items, 1000 items?
Are the results UNIQUE to each non-logged in user (because of the query)? Or can the same query be done by different people to get the same results?

hi @TKOTC, thanks for answering,

of course:

  • db1 and db2 have ~300 items: URLs (both have the same URLs - db1 with more columns)

  • when the user performs a query, it goes to integromat, where db2 is asked (“from those 300 URLs which ones are good for this query?”)

  • then the query response with 10 items (10 urls) from db2 per query

  • those 10 URLs are which I need to show from db1 in Adalo

  • although it is unlikely, yes: the same query can be done by different users and get the same results

Thanks a lot for your interest

I tried to create a kind of “current query” field in Adalo

  • then, agregate the 10 URLs from the query to db2 as text (a single string)
  • And inject it into “current query” field
  • The idea was, list db1 and filter by “current query → contains → URL?”

but Adalo don’t let me filter in that way

it was quite simple approach and hardly slowed down the process of integromat
it was close


I have tried other approaches like bringing db1 to integromat and doing the comparison there, then editing db1 with “show: true/false”.

but it was directly unfeasible, it can take 10 minutes to finish each flow.

Okay, I have not had a chance to put a video together, if you need me to let me know and I can. I hope this explanation will work for you.

Do not use an external collection, Adalo cannot link to external collections. Instead use your Integromat as a custom action on search BUT instead of Integromat returning a list to Adalo it will create a new item (using the Adalo API) in a new collection called query_results and then link your websites to it.

By Integromat adding the results into the normal Adalo collection you will be able to have a relationship and use all the values from db1.

I hope this unblocks you

image

2 Likes

Hey, @TKOTC I wanted to thank you for your help and time.

I’m afraid I didn’t understand the explanation.
I have two questions:

  • I think using the Adalo API is what I don’t understand: use the Adalo integration in integromat, isn’t that making use of the Adalo API? Sorry if this is a silly question.

  • If the collection “query_results” has two properties:
    – “query_string”
    – and a many-to-many relation with “list_of_most_visited_websites”
    – as far as I know, I can tell integromat to create a new item (with the “query_string”) but I cannot fill “list_of…” with the URLs (because they belong to another collection) and I would have to send the “Record ID”.

Just if possible, I would need that video you mention.

Thank you so much, again
I’m really stuck with this

Here is the video of how I would build it (using Xano not Integromat, but they should do the same).

A couple of things to note.

  1. In Xano I do not go through everything, so here is an explanation
  • Step 1: POST a new record into the Query collection in Adalo
  • Step 2 and 3: GET ALL List of websites I want to search through
  • Step 4: Go through every website in the collection
  • Step 4.1: if the Website contains the query parameter we past then
  • Step 4.1.1: PUST a new record into the Query Result collection containing the ID from step 1 and the id for the website we checked in 4.1
  1. I made a “Searching screen”, the reason I made this on a separate screen is that Adalo reloads all data for a screen when a screen is entered. So by navigating to a new screen and making the custom action populate the query results collection, when I ‘go back’ then Adalo will fetch the results from the query results collection. So it has more purpose than just to look nice.

  2. I do not delete queries that have already run. If your list of 300 does not change then the query_results will ‘cache’ your results and you do not need to run integtomat. So in the video, if I close the program and search go again then I will just need to load if from query results and not go to integromat. IF you do not want to cache results, then once you are done with the query you can delete the query from the query table so it can run again.

I forgot to show my list configuration as well

2 Likes

sounds perfect @TKOTC

Today I’m going to work on understanding your explanation, because I’m not familiar with Xano.

Thank you so much for your help :pray: :pray:

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