The AirTable API (a more efficient way to integrate AirTable with Thunkable)

Where do you see that? The filterByFormula block is using text strings for the query parameter but the numbers themselves are just numbers, I believe. I could be wrong!

Also, I think your formulas need double quotes (") if those are in fact strings and not numbers. It may need url encoding as well… I’m not sure.

1 Like

Hey Guy! Check this one out.

This works perfectly for me and returns only females over the age of 28


If you look at his code, he is using a text block for the number not a math block and he says it works.


change the test to {Age}>"5" and see if it still works

1 Like

Thanks Tatiag, the double condition on the query works perfectly now. I couldn’t find anything on Airtable.

1 Like

The two conditions in the query work perfectly. the problem I have now is this: I want to save the data locally, on a list, but it doesn’t work. It does not return anything. Ideas?

Can you post the full JSON response as text? That way I can help you with parsing it.

I’ve always checked to see if a property is null rather than empty. I’m not sure if that might be causing a problem.

no. the data must be presented in a DVL, I thought I would pass them locally first. To get a faster answer. I err?
The first time I coded it worked, now it doesn’t. I didn’t check if null instead of empty, but on label it works, on list it doesn’t.

Without knowing how the JSON is structured, I can’t tell if the blocks you used are correct or not. But I looked at my own Airtable API sample JSON response and I believe that your property blocks are correct. Try something simpler: in the then do section, set the value of a label to the get property blocks to see if that works. Leave out the if/do block and list blocks for now.

You also should always check the value of the green error block. You can assign it to a label to make sure you’re not getting an error from the API. What is the value of that block when you test the project?

Also, is app variable Nome_List initialized or set to an empty list? It should be before you start adding items to it.

1 Like

Probably the problem is on the end of the table, how do you text null in your opinion?
I did some testing but I can’t solve.

You need to simplify things first. Are you able to assign a label to the get property blocks and see a value from your Airtable database? That should be your first step.

For example, can you display this?

If so, yay! If not, please post a screenshot of how you are trying to display that value.

By the way, here’s another way to get the same value:

Everything works if I don’t scroll the whole table. In fact, I value well the list variable that I created. But if I take the loop over the table data it doesn’t give me any results. So I have to be able to test the end of the table for good. But I don’t know how to do it.

If you are using a loop, share a screenshot of that. I do see a loop in a post above but I don’t know if it’s the same set of blocks.

I also can’t see in that screenshot how you are using the loop index value (e.g. 1 to 10). So I would need to see that.

1 Like

The table has 96 records, if I set the cycle to 100 I have no result.
In the screenshot I set it to 50 and Label14 shows me the fields.
Immediately after cycle to fill the DVL and nothing, the load icon spins indefinitely.
So two problems, one I can’t understand the table end, two I can’t fill the DVL. Yet it seems such an easy thing.

1 Like

This code is meant to break and not to work properly.

In the first loop of 1 - 50 you are filling the list using in list ..... set # this only works for a predefined list. This means if your list has 15 items it will work OK until it reaches round 16 and the code will break because you are trying to set a value outside of the size of the list.

In the second loop of 1 - 50 you are trying to change the text of the a column in a DVL by passing the numbers 1 - 50 which is not recognized by the DVL. The way the DVL is set is to only recognize the record ID not the sequential numbers.

what’s the solution?

1 Like

You should be inserting the list item at the end of the list rather than at #_______. Use this block:


Before starting the loop, make sure to set the list variable to the empty list block.

1 Like

I update you on what I have learned in these days. 1) How to understand how many records come out of a query.
2) row_ID of the DLVs is not a number but a hexadeciamle code, and using a conversion table, it is possible to modify the fields of the DVLs from the code. Unfortunately they are not stable, but some changes. What can be done? it’s a thunkable bug.


Row_ID real row_ID
1 b9f0468d-27e1-4b89-a0aa-9c6fc4535352
2 3f8abee9-dc35-4ab2-8825-3fe388a5f3a0
3 c3469c82-b033-4776-91c4-992a22e8e3de
4 831f3fbb-eead-475f-a4d8-2f1fe419c93d
5 68793a23-37ec-44b9-acae-a24efde80365
6 311c971f-4001-4f65-8363-5473a31cb71b
7 e6ca0f0a-e920-4e6a-a169-2d5d3cce23c4
8 a176ddee-16fc-4a3c-b30a-8306b9789880
9 f26dd7d1-6758-41b3-bcc1-bad1d959993c
10 8ba1646f-26e8-4b3d-9ff5-9a985bc90463
11 2d9339ee-a14b-4c5c-9ad6-c36272978320
12 601f74ce-2328-4266-b22d-0f1e643f4fcf
13 f4cc43eb-2bcf-465f-80de-8272be5465ea
14 4d27e289-2393-40b8-8393-b4701c74daaa
15 1981ce16-b2bf-425e-aede-626ed188d0fe
16 82131544-7811-4d4f-a114-bb6f766b65ee
17 910b255f-b95a-4eaa-8027-c860efad1797
![image 429x451](upload://5HFMlVWDMW1hCAMYjgwv9oH9acK.png)

with row_ID decoding table, I get this on mobile … (2.0 MB)

1 Like

Dear @Dario_Cappello
If you refer to my comments above you will see that the only way you refer to rows inside DVL is by using the internal RowID which is a UUID code.

Avoid trying to cross reference it with row count/sequential numbers. It just doesn’t work.

Dear muneer, thanks for the reply. Where do i find internal RowID?

1 Like