Describe the problem/error/question
I have this flow which extracts the carpark availability data from API. I want the filter based on the input from the Telegram, and its filtered results sent to the Telegram.
I have this flow which extracts the carpark availability data from API. I want the filter based on the input from the Telegram, and its filtered results sent to the Telegram.
Hey @TH1 hope all is well.
It is trying to tell you that telegramData variable doesnât have the property json.
how should the filter be done then?
I donât have your input data, if you wish to pin the data in the previous node and share it, we can take a look. Otherwise, most of the properties are hidden under the scroll.
If you want to see what the telegramData looks like, log it to console and see whatâs what.
console.log(telegramData);
i think the telegram trigger receives 2 objects : update_id and message.
in your case $json.message is an object.
Since you receive text, you add $json.message.text
[
{
"update_id": 264662588,
"message": {
"message_id": 952,
"from": {
"id": 7675553077,
"is_bot": false,
"first_name": "joe",
"last_name": "Cy",
"username": "Boby",
"language_code": "en"
},
"chat": {
"id": 7675553077,
"first_name": "joe",
"last_name": "Cy",
"username": "Boby",
"type": "private"
},
"date": 1757763949,
"text": "HERE IS WAHT YOU SEND FROM TELEGRAM AS QUERY TEXT INPUT."
}
}
]
put that pinned data in your telegram and play.
I key in âBukit Batokâ in Telegram, so the input is actually under text. And I want to filter based on this text.
Hey @TH1,
If you wish to pin the data in the âExtract From Fileâ node and explain the overall goal of this workflow, including expected input and output, I can attempt to figure this out. If you do, make sure to include, why there is both manual trigger and telegram trigger (I hope it is clear that if telegram trigger is activated, the rest of the data starting from manual trigger and all the way to âMergeâ Code node is not going to be executed).
Otherwise, troubleshooting screenshots involves too much guess work.
Please give me some time, I try to get back to you later again.. sorry that I am new to this platform and new to n8n as well. Appreciate your patience and willingness to troubleshoot.
thanks for pointing out about the flow. I realize it is wrong. My new flow is as below:
I seem to have issue pinning the data, could it be that it is too huge?
It is very possible, you can share the JSON in the Google Doc, Github Gist or any other sharing service.
{
"car_park_no":
"AM18",
"address":
"BLK 308C ANG MO KIO AVENUE 1",
"x_coord":
"29257.6457",
"y_coord":
"38619.9953",
"car_park_type":
"MULTI-STOREY CAR PARK",
"type_of_parking_system":
"ELECTRONIC PARKING",
"short_term_parking":
"7AM-10.30PM",
"free_parking":
"NO",
"night_parking":
"NO",
"car_park_decks":
"3",
"gantry_height":
"2.15",
"car_park_basement":
"N",
"myNewField":
1
}
]
above is only part of it, so I need to filter by address which contains the text from Telegram.
Something like this?
wow, THANK YOU VERY MUCH. I am actually very lost in that JavaScript thingy to do this kind of filtering. Is the Python script going to be available for n8n soon? it seems to filter out correctly when the text is âBukit Batokâ as below, I will need some formatting to show each row in the Send text message, and will work on it.
Telgram output:
Found 76 carparks for âBukit Batokâ:
BLK 188A BUKIT BATOK WEST AVENUE 6
Carpark Number: BBM1
Coordinates: (18213.6562, 36507.8169)
BLK 628A BUKIT BATOK CENTRAL
Carpark Number: BBM2
Coordinates: (18714.471, 36997.6927)
BLK 289H BUKIT BATOK STREET 25
Carpark Number: BBM3
Coordinates: (19831.2917, 36294.3127)
BLK 288H BUKIT BATOK STREET 25
Carpark Number: BBM4
Coordinates: (19860.3631, 36409.798)
BLK 290H BUKIT BATOK STREET 24
Carpark Number: BBM5
Coordinates: (19610.472, 36154.6192)
BLK 291F BUKIT BATOK STREET 24
Carpark Number: BBM6
Coordinates: (19289.8168, 36112.2533)
BLK 154A BUKIT BATOK WEST AVENUE 8
Carpark Number: BBM7
Coordinates: (18025.9428, 36609.4062)
BLK 622A BUKIT BATOK CENTRAL
Carpark Number: BBM8
Coordinates: (18561.8095, 36898.4253)
BLK 395A BUKIT BATOK WEST AVENUE 5
Carpark Number: BBM9
Coordinates: (18924.8161, 38652.2819)
BLK 101/110 BUKIT BATOK WEST AVENUE 6
Carpark Number: U1
Coordinates: (18391.6404, 36723.769)
BLK 178/184 BUKIT BATOK WEST AVENUE 8
Carpark Number: U10
Coordinates: (18029.1321, 36437.8173)
BLK 166 BUKIT BATOK WEST AVENUE 8
Carpark Number: U11
Coordinates: (17982.2826, 36616.6603)
BLK 201/211 BUKIT BATOK STREET 21
Carpark Number: U12
Coordinates: (18668.6078, 36565.8437)
BLK 212/230 BUKIT BATOK STREET 21
Carpark Number: U13
Coordinates: (19086.17, 36658.92)
BLK 217/219 BUKIT BATOK STREET 21
Carpark Number: U14
Coordinates: (19276.68, 36568.93)
BLK 231/237 BUKIT BATOK EAST AVENUE 5
Carpark Number: U15
Coordinates: (19332.565, 36778.361)
BLK 238/241 BUKIT BATOK EAST AVENUE 5
Carpark Number: U16
Coordinates: (19291.0823, 36949.9677)
BLK 242/253 BUKIT BATOK EAST AVENUE 2/5
Carpark Number: U17
Coordinates: (19484.9573, 36912.4024)
BLK 254/265 BUKIT BATOK EAST AVENUE 4
Carpark Number: U18
Coordinates: (19699.5049, 37022.2461)
BLK 266/284 BUKIT BATOK EAST AVENUE 3/4
Carpark Number: U19
Coordinates: (19653.7625, 36736.2392)
BLK 111/132 BUKIT BATOK WEST AVENUE 6
Carpark Number: U2
Coordinates: (18316.8368, 36887.7302)
BLK 301/309 BUKIT BATOK STREET 31
Carpark Number: U21
Coordinates: (18569.9729, 37715.1464)
BLK 310/323 BUKIT BATOK STREET 32/33
Carpark Number: U22
Coordinates: (18339.7245, 38092.0958)
BLK 407-426 BUKIT BATOK WEST AVENUE 2/4
Carpark Number: U23
Coordinates: (18234.0951, 38341.652)
BLK 324/336 BUKIT BATOK STREET 32/33
Carpark Number: U24
Coordinates: (18465.58, 38439.7002)
BLK 333/334 BUKIT BATOK WEST AVENUE 4
Carpark Number: U24T
Coordinates: (18441.4863, 38506.9696)
BLK 337-353/355-356 BUKIT BATOK STREET 34
Carpark Number: U25
Coordinates: (18728.7311, 38350.9289)
BLK 354/357-370 BUKIT BATOK STREET 31
Carpark Number: U26
Coordinates: (18742.24, 38064.66)
BLK 371-373 BUKIT BATOK STREET 31
Carpark Number: U27
Coordinates: (18846.1378, 37962.5676)
BLK 374-376 BUKIT BATOK STREET 31
Carpark Number: U28
Coordinates: (18790.052, 37772.6738)
BLK 376 BUKIT BATOK MSCP
Carpark Number: U29
Coordinates: (18649.5445, 37851.9011)
BLK 133/139 BUKIT BATOK WEST AVENUE 6
Carpark Number: U3
Coordinates: (18098.9773, 37055.7538)
BLK 523-525 BUKIT BATOK STREET 52
Carpark Number: U30
Coordinates: (19027.5388, 37666.3629)
BLKS 526-534 BUKIT BATOK STREET 51
Carpark Number: U31
Coordinates: (18847.0784, 37666.2614)
BLKS 512-514 BUKIT BATOK STREET 52
Carpark Number: U32
Coordinates: (19018.5011, 37355.1895)
BLKS 535-542 BUKIT BATOK STREET 51/52
Carpark Number: U33
Coordinates: (18873.0414, 37452.2798)
BLKS 501-511 BUKIT BATOK STREET 52
Carpark Number: U34
Coordinates: (19139.7066, 37093.5044)
BLK 185/187 BUKIT BATOK WEST AVENUE 6
Carpark Number: U38
Coordinates: (18124.0483, 36539.8249)
BLK 631 BUKIT BATOK CENTRAL
Carpark Number: U39
Coordinates: (18837.6188, 36875.2113)
BLK 140/143 BUKIT BATOK STREET 11
Carpark Number: U4
Coordinates: (17973.0318, 36974.1108)
BLK 644A BUKIT BATOK CENTRAL
Carpark Number: U40
Coordinates: (18879.8441, 36750.5885)
BLK 632/644 BUKIT BATOK CENTRAL
Carpark Number: U41
Coordinates: (18955.5289, 36844.8175)
BLK 630 BUKIT BATOK CENTRAL
Carpark Number: U41A
Coordinates: (18690.779, 36915.3896)
BLK 404A BUKIT BATOK WEST AVENUE 7
Carpark Number: U43
Coordinates: (18275.4565, 38569.6475)
BLK 285A BUKIT BATOK EAST AVENUE 3
Carpark Number: U45
Coordinates: (19606.6244, 36561.0495)
BLK 297 - 299 BUKIT BATOK ST 22 BUKIT BATOK STREET 22
Carpark Number: U46
Coordinates: (18463.4479, 36256.9749)
BLK 350 BUKIT BATOK STREET 32
Carpark Number: U48
Coordinates: (18590.8011, 38166.1707)
210A BUKIT BATOK STREET 21
Carpark Number: U49
Coordinates: (18817.5304, 36385.1968)
BLK 144/149 BUKIT BATOK WEST AVENUE 6
Carpark Number: U5
Coordinates: (18135.2799, 36917.0123)
BLK 230A BUKIT BATOK ST 21 BUKIT BATOK STREET 21
Carpark Number: U50
Coordinates: (19356.5349, 36607.8807)
BLK 412A BUKIT BATOK WEST AVENUE 4
Carpark Number: U51
Coordinates: (18336.325, 38543.2265)
BLK 194 BUKIT BATOK WEST AVENUE 6
Carpark Number: U52
Coordinates: (18172.9985, 36305.5813)
BLK 296 BUKIT BATOK STREET 22
Carpark Number: U53
Coordinates: (18363.2733, 36194.2818)
241A BUKIT BATOK EAST AVENUE 5
Carpark Number: U54
Coordinates: (19312.2301, 36987.8524)
BLK 445 BUKIT BATOK WEST AVENUE 8
Carpark Number: U55
Coordinates: (17419.4393, 36994.0568)
BLK 443 BUKIT BATOK WEST AVENUE 8
Carpark Number: U56
Coordinates: (17317.656, 37581.4848)
BLK 293 BUKIT BATOK STREET 21
Carpark Number: U57
Coordinates: (19323.1576, 36459.7662)
BLK 292 BUKIT BATOK EAST AVENUE 6
Carpark Number: U59
Coordinates: (19327.2904, 36291.9827)
BLK 150/158 BUKIT BATOK STREET 11
Carpark Number: U6
Coordinates: (18071.3516, 36683.9531)
BLK 451 BUKIT BATOK WEST AVENUE 6
Carpark Number: U60
Coordinates: (18060.8019, 37237.9017)
BLK440 BUKIT BATOK WEST AVENUE 8
Carpark Number: U61
Coordinates: (17534.7152, 37528.3789)
BLK 453 BUKIT BATOK WEST AVENUE 6
Carpark Number: U62
Coordinates: (17844.6833, 37081.9943)
BLK 377A BUKIT BATOK STREET 31
Carpark Number: U63
Coordinates: (18710.2749, 37928.4781)
BLK 461 BUKIT BATOK WEST AVENUE 8
Carpark Number: U64
Coordinates: (17583.3446, 37408.1445)
BLK 439 BUKIT BATOK WEST AVENUE 8
Carpark Number: U65
Coordinates: (17611.6169, 37719.6743)
BLK 436 BUKIT BATOK WEST AVENUE 5
Carpark Number: U66
Coordinates: (17572.5965, 37864.1469)
BLK 432 BUKIT BATOK WEST AVENUE 8
Carpark Number: U67
Coordinates: (17873.2383, 38065.8645)
BLK 460 BUKIT BATOK WEST AVENUE 9
Carpark Number: U68
Coordinates: (17587.8746, 37337.6914)
BLK 467 BUKIT BATOK WEST AVENUE 9
Carpark Number: U69
Coordinates: (18000.4363, 37685.2975)
BLK 159/164 BUKIT BATOK STREET 11
Carpark Number: U7
Coordinates: (17847.5676, 36758.9474)
BLK 463 BUKIT BATOK STREET 41
Carpark Number: U70
Coordinates: (17773.0352, 37655.3275)
BLK 113C BUKIT BATOK WEST AVENUE 6
Carpark Number: U71
Coordinates: (18208.6126, 36824.4404)
BLK 469 BUKIT BATOK WEST AVE 9
Carpark Number: U72
Coordinates: (17815.862, 37483.2252)
BLK 165/168 BUKIT BATOK WEST AVENUE 8
Carpark Number: U8
Coordinates: (17825.5193, 36588.034)
BLK 169/177 BUKIT BATOK WEST AVENUE 8
Carpark Number: U9
Coordinates: (17748.6389, 36445.3951)
If the answers were helpful, kindly mark my answer as Solution. Thank you.
Cheers
Do you have the expertise for this JavaScript to be converted to Python? I am still more comfortable with Python.
// Get the API data
const apiData = $(âFetch Carpark Availabilityâ).first().json.items[0].carpark_data;
// Get the CSV data (assuming the CSV node outputs an array of objects)
const csvData = $input.all();
// Since the CSV node might output multiple items (each row as an item), we need to collect them
let allCsvData = ;
for (let i = 0; i < csvData.length; i++) {
allCsvData.push(csvData[i].json);
}
// Create a mapping from carpark number to availability from API data
const availabilityMap = {};
apiData.forEach(carpark => {
availabilityMap[carpark.carpark_number] = carpark.carpark_info;
});
// Merge the data
const mergedData = allCsvData.map(carpark => {
const carparkNumber = carpark.car_park_no;
return {
...carpark,
availability: availabilityMap\[carparkNumber\] || \[\]
};
});
// Now, we need to return the merged data as multiple items or a single item with an array?
// Since we want to pass multiple carparks, we return each as a separate item.
return mergedData.map(item => ({ json: item }));