Full JSON for Task ID: 581
{
"id": "581",
"status": "failed",
"input": {
"type": "EXCURSION",
"section": "all"
},
"output": {
"faq": {
"questions": [
{
"answer": "Jūnijā Uzbekistānā valda karsts vasaras klimats, gaisa temperatūrai dienā sasniedzot pat +40°C. Ieteicams ņemt līdzi vieglu, elpojošu apģērbu, galvassegu un saules aizsargkrēmu. Tuksnesī un kalnu rajonos vakari var būt nedaudz vēsāki.",
"category": "Labākais ceļojuma laiks",
"question": "Kādiem laikapstākļiem jāgatavojas ceļojuma laikā jūnijā?"
},
{
"answer": "Ceļojums prasa vidēju fizisko sagatavotību. Programmā iekļautas garākas pastaigas pilsētu ekskursijās un pārgājiens Čimgan kalnos. Tā kā senajās pilsētās segums ir nelīdzens, obligāti nepieciešami ērti, staigāšanai piemēroti apavi.",
"category": "Fiziskie prasības",
"question": "Cik fiziski aktīvs būs šis ceļojums?"
},
{
"answer": "Nakšņošana paredzēta viesnīcās Stambulā un Uzbekistānas pilsētās. Īpašs piedzīvojums būs viena nakts tradicionālajās jurtās pie Aidar ezera, kur baudīsim autentisku nomadu atmosfēru un vakaru pie ugunskura tuksnesī.",
"category": "Izmitināšana\/ēdināšana",
"question": "Kāda veida naktsmītnes ir paredzētas maršrutā?"
},
{
"answer": "Starppilsētu pārbraucieni organizēti ar dažādiem transporta veidiem laika ietaupīšanai: braucieni ar vilcienu maršrutos Samarkanda-Buhāra un Buhāra-Hiva, kā arī iekšzemes lidojums Urgenča-Taškenta. Ekskursijās izmantosim komfortablu autobusu.",
"category": "Transports\/bagāža",
"question": "Kā tiks organizēta pārvietošanās starp pilsētām?"
},
{
"answer": "Cenā iekļautas brokastis visās viesnīcās. Papildus nodrošinātas īpašas ēdienreizes: pusdienas uz kuģīša Stambulā, vakariņas jurtu nometnē un pusdienas kalnu čaihanā. Citās reizēs būs iespēja patstāvīgi iepazīt bagātīgo uzbeku virtuvi.",
"category": "Izmitināšana\/ēdināšana",
"question": "Vai cenā ir iekļautas ēdienreizes?"
},
{
"answer": "Ceļojumam obligāti nepieciešama pase, kas ir derīga vismaz 6 mēnešus pēc plānotā atgriešanās datuma. Lūdzam savlaicīgi pārbaudīt dokumentu derīguma termiņus pirms rezervācijas veikšanas.",
"category": "Dokumenti\/vīzas",
"question": "Kādi dokumenti nepieciešami ceļojumam?"
}
]
},
"hero": {
"title": "Uzbekistāna: Zīda ceļa pērles un tuksnesis",
"summary": "Dodies 11 dienu piedzīvojumā pa leģendāro Zīda ceļu Uzbekistānā un Stambulā. Atklāj Samarkandas tirkīza kupolus un Hivas viduslaiku arhitektūru, nakšņo autentiskās jurtās tuksneša zvaigžņu gaismā un baudi Tjanšāna kalnu varenību. Izgaršo austrumu virtuves nianses un viesmīlību, iepazīstot seno kultūru un tradīcijas. Šis rūpīgi plānotais maršruts piedāvā komfortablas viesnīcas, dabas pārgājienus un dziļu iegremdēšanos Vidusāzijas vēsturē."
},
"state": "Uzbekistāna",
"cities": [
"Rīga",
"Stambula",
"Samarkanda",
"Buhāra",
"Aidar ezers",
"Hiva",
"Taškenta"
],
"flight": {
"carrier": {
"name": "Turkish Airlines, Uzbekistan Airways",
"onboard_services": "Informācija nav norādīta"
},
"flight_schedule": {
"inbound": [
"30.06.2026. 09:35 Taškenta - 12:55 Stambula (TK0369)",
"30.06.2026. 15:50 Stambula - 18:55 Rīga (TK1775)"
],
"outbound": [
"19.06.2026. 19:50 Rīga - 23:10 Stambula (TK1776)",
"21.06.2026. 21:50 Stambula - 04:10 (+1 d.) Samarkanda (TK0372)"
],
"total_travel_time": "Turpceļā: ar stopoveru Stambulā; Atpakaļceļā: aptuveni 11h 20m"
},
"logistics_title": "UZBEKISTĀNA 11d\/10n (19.06.-30.06.2026.)",
"ground_transfers": [
{
"type": "Transfērs",
"description": "19.06. Stambula: Transfērs uz viesnīcu pēc ielidošanas 23:10"
},
{
"type": "Transfērs",
"description": "21.06. Stambula: 17:00 Izbraušana uz lidostu (ierašanās 19:00)"
},
{
"type": "Transfērs",
"description": "22.06. Samarkanda: Transfērs no lidostas uz viesnīcu (ierašanās 04:10)"
},
{
"type": "Transfērs",
"description": "23.06. Samarkanda: 10:30 Izbraukšana uz staciju"
},
{
"type": "Vilciens",
"description": "23.06. Samarkanda - Buhāra: 11:55 - 14:15"
},
{
"type": "Vilciens",
"description": "26.06. Buhāra - Hiva: 07:01 - 12:54"
},
{
"type": "Transfērs",
"description": "28.06. Hiva: 07:00 Izbraukšana uz Urgenčas lidostu (40 min brauciens)"
},
{
"type": "Iekšzemes lidojums",
"description": "28.06. Urgenča - Taškenta: 09:20 - 10:40 (Reiss HY52)"
},
{
"type": "Transfērs",
"description": "30.06. Taškenta: 07:00 Izbraukšana uz lidostu"
}
],
"baggage_allowance": {
"cabin": "Informācija nav norādīta",
"checked": "Informācija nav norādīta"
}
},
"hotels": [
{
"dining": [
{
"name": "Vakariņas zem klajas debess",
"description": "Tradicionālas uzbeku vakariņas, kas tiek pasniegtas pie ugunskura ar muzikālu pavadījumu."
}
],
"location": {
"area": "Kizilkuma tuksnesis, pie Aidara ezera"
},
"hotel_name": "Jurtu nometne pie Aidara ezera",
"star_rating": "Nav klasificēts",
"amenities_list": [
"Nakšņošana tradicionālajās jurtās",
"Vakara ugunskurs",
"Tautas mūzikas priekšnesumi",
"Piekļuve Aidara ezeram"
],
"wellness_features": [],
"article_description": "Izbaudiet neaizmirstamu nakti autentiskās jurtās, kas ļauj piedzīvot seno Centrālāzijas klejotāju dzīvesveidu Kizilkuma tuksneša sirdī. Šī naktsmītne piedāvā maģisku atmosfēru ar tradicionālām vakariņām un tautas mūziku pie ugunskura zem zvaigžņotām debesīm. Tā ir ideāla vieta, kur atslēgties no ikdienas un baudīt dabas mieru netālu no \"zilās jūras brīnuma\" — Aidara ezera.",
"room_specifications": "Apaļas formas teltis (jurtas), kas veidotas tradicionālā klejotāju stilā."
}
],
"pricing": {
"included": [],
"additional_costs": []
},
"program": [
{
"title": "1. diena: Lidojums uz Stambulu",
"day_number": 1,
"description": "Jūsu piedzīvojums sākas Rīgas lidostā ar reģistrāciju lidojumam, kas izlido plkst. 19:50. Vēlu vakarā, plkst. 23:10, ieradīsieties Stambulā – pilsētā, kas majestātiski plešas gan Eiropā, gan Āzijā, ko atdala slavenais Bosfora šaurums. Lidostā jūs sagaidīs transfērs, lai ērti nogādātu uz viesnīcu naktsmieram. Šī vēsturiskā metropole, trīs lielo impēriju bijusī galvaspilsēta, sagaidīs jūs ar savu neatkārtojamo atmosfēru. Nakts tiks aizvadīta viesnīcā, lai no rīta ar jauniem spēkiem sāktu iepazīt tās kultūras bagātības.",
"accommodation": {
"name": "Viesnīca Stambulā",
"category": "Standarta klase"
}
},
{
"title": "2. diena: Stambulas impēriju mantojums un Bosfora kruīzs",
"day_number": 2,
"description": "Rītu sāksiet ar krāšņā Lielā tirgus apmeklējumu un Stambulas arhitektūras pērļu – Ajas Sofijas un Zilās mošejas – apskati. Pēcpusdienā dosieties kruīzā pa leģendāro Bosfora šaurumu, baudot pusdienas un brīnišķīgus skatus uz Dolmabahčes un Beilerbeji pilīm, kā arī Rumeli cietoksni un Jaunavu torni. Brauciena laikā iepazīsiet pilsētas bagāto vēsturi, kas savieno Eiropu un Āziju. Vakarā plkst. 17:00 transfērs uz lidostu. Plkst. 21:50 lidojums TK0372 uz Samarkandu. Nakts paies lidmašīnā, tuvojoties Uzbekistānas senajām leģendām.",
"accommodation": {
"name": "Nakts lidmašīnā",
"category": "Lidojums"
}
},
{
"title": "3. diena: Zīda ceļa sirds Samarkanda",
"day_number": 3,
"description": "Agri no rīta ieradīsieties leģendārajā Samarkandā, kur pēc transfēra un īsas atpūtas viesnīcā sāksiet grandiozu pilsētas apskati. Apbrīnosiet Registānas laukumu un Gur-Emir mauzoleju – Tamerlana atdusas vietu ar tirkīza kupolu. Dienas turpinājumā apmeklēsiet Ulugbeka observatoriju un staigāsiet pa Shah-i-Zinda nekropoles šaurajām ieliņām. Iepazīsiet senās tradīcijas Konigil ciemā, vērojot zīda papīra tapšanu, un noslēgumā skatīsiet varenāko viduslaiku celtni – Bibi-Khanym mošeju. Vakarā brīvais laiks un nakšņošana.",
"accommodation": {
"name": "Viesnīca Samarkandā",
"category": ""
}
},
{
"title": "4. diena: Senā Buhāra un Zīda ceļa mantojums",
"day_number": 4,
"description": "Rītu sāksiet ar transfēru uz staciju, lai 11:55 ar vilcienu dotos uz Buhāru – pilsētu, kas ir kā \"dzīvs muzejs\" ar vairāk nekā 2000 gadu vēsturi. Pēc ierašanās 14:15 un pusdienām dosieties ekskursijā, apskatot pilsētas simbolu Poi Kalyan kompleksu un rosīgos Tirdzniecības kupolus. Maršruts vedīs pie senā Samanīdu mauzoleja, varenā Ark cietokšņa un Bolo Hauz mošejas ar tās unikālajām koka kolonnām. Vakara noslēgumā atpūtīsieties tradicionālajā tējnīcā \"Choyxona\", baudot tēju un austrumu atmosfēru. Nakšņošana viesnīcā Buhārā.",
"accommodation": {
"name": "Viesnīca Buhārā",
"category": "-"
}
},
{
"title": "5. diena: Tuksneša piedzīvojums un Aidara ezers",
"day_number": 5,
"description": "Šajā dienā dosieties prom no pilsētas kņadas, lai caur gleznainajiem Nuratas kalniem nokļūtu mežonīgajā Kizilkuma tuksnesī. Ceļojuma mērķis ir Aidara ezers – iespaidīgs \"zilās jūras brīnums\" smiltīs, kur varēsiet vērot flamingus, gārņus un citus putnus, kā arī peldēties siltajos sāļūdens viļņos. Vakara noslēgumā izbaudīsiet autentisku nomadu dzīvesveidu, nakšņojot tradicionālās jurtās. Jūs sagaida sātīgas uzbeku vakariņas un folkloras mūzika pie ugunskura zem zvaigžņotām debesīm, ļaujot pilnībā sajutīsiet senā Zīda ceļa atmosfēru un mieru.",
"accommodation": {
"name": "Kizilkuma jurtu nometne",
"category": "Jurtas"
}
},
{
"title": "6. diena: Kizilkuma tuksneša un Aidar ezera valdzinājums",
"day_number": 6,
"description": "Šodien atstāsiet pilsētas mūrus, lai dotos piedzīvojumā uz mežonīgo Kizilkuma tuksnesi. Brauciens vedīs cauri gleznainajiem Nuratas kalniem, paverot skatus uz unikālo dabas ainavu. Galamērķī sasniegsiet Aidar ezeru – \"zilo jūras brīnumu\" smiltīs, kur varēsiet vērot pelikānus, gulbjus un citus putnus vai veldzēties ezera siltajos ūdeņos. Dienu noslēgsiet autentiskā nometnē, baudot tradicionālas uzbeku vakariņas un vietējo folkloras ansambļa priekšnesumu pie ugunskura. Nakšņošana paredzēta jurtās, ļaujot pilnībā izjust nomadu dzīves romantiku zem plašajām tuksneša debesīm.",
"accommodation": {
"name": "Jurtu nometne pie Aidar ezera",
"category": "Jurtas"
}
},
{
"title": "7. diena: Atpūta pie Aidarkula ezera un Buhāra",
"day_number": 7,
"description": "Rītu sāksiet tuksneša klusumā, baudot brokastis tradicionālajā jurtu nometnē. Veltiet laiku mierīgai atpūtai pie plašā Aidarkula ezera – šis 'zilais brīnums' Kizilkuma tuksneša svelmē piedāvā lielisku iespēju peldēties vai vērot reto putnu sugas. Dienas vidū atvadīsieties no tuksneša eksotikas un caur Nuratas kalniem dosieties atpakaļ uz Buhāru. Vakarā ieradīsieties pilsētā un iekārtosieties viesnīcā. Izbaudiet brīvu vakaru, pastaigājoties pa senajām vecpilsētas ieliņām vai apmeklējot kādu no kolorītajiem tējas namiem, lai atgūtu spēkus pirms nākamās dienas brauciena.",
"accommodation": {
"name": "Viesnīca Buhārā",
"category": "3-4*"
}
},
{
"title": "8. diena: Hiva – tūkstoš un vienas nakts pasaka",
"day_number": 8,
"description": "Agri no rīta sēdīsieties vilcienā, lai dotos uz leģendāro Hivu (ceļā ~6 stundas). Ierodoties šajā tuksneša oāzē, jūs sagaidīs UNESCO mantojuma pērle Ichan Kala – pilnībā nocietināta vecpilsēta. Pēcpusdienas ekskursijā apbrīnosiet slaveno nepabeigto Kalta Minor minaretu un maģisko Juma mošeju ar tās 200 senajām koka kolonnām. Izpētīsiet grezno Tosh Hovli pili jeb \"Akmens namu\", kā arī Pakhlavan Mahmud mauzoleju, kura tirkīza kupols ir viens no pilsētas simboliem. Vakaru pavadīsiet, baudot šīs brīvdabas muzeja pilsētas viduslaiku atmosfēru.",
"accommodation": {
"name": "Viesnīca Hivā",
"category": "3-4*"
}
},
{
"title": "9. diena: Hivas amatnieki un dervišu dejas",
"day_number": 9,
"description": "Šo dienu veltīsiet nesteidzīgai Hivas atmosfēras baudīšanai un kultūras izziņai. Dienas pirmajā pusē paredzēts brīvais laiks, lai apmeklētu vietējo amatnieku darbnīcas un iegādātos autentiskus suvenīrus UNESCO aizsargātajā vecpilsētā. Kādā no mājīgajiem iekšpagalmiem izbaudīsiet tradicionālu tējas dzeršanas ceremoniju. Vakara programmā paredzēts īpašs notikums – dosieties uz folkloras šovu, kurā vērosiet priekšnesumus ar mūziku un dejām saskaņā ar mistiskajām dervišu tradīcijām. Tas būs emocionāls noslēgums uzturēšanās laikam Hivā. Nakšņošana viesnīcā Hivā.",
"accommodation": {
"name": "Viesnīca Hivā",
"category": "3-4*"
}
},
{
"title": "10. diena: Taškentas kontrasti un kultūras mantojums",
"day_number": 10,
"description": "Rītu sāksiet ar transfēru uz Urgenčas lidostu (40 min), lai dotos lidojumā uz Taškentu. Ierodoties galvaspilsētā, jūs sagaidīs unikāls padomju un moderno laiku sajaukums. Ekskursijas laikā apmeklēsiet dzīvīgo \"Chorsu\" bazāru, kur viesmīlīgie tirgotāji piedāvās austrumu gardumus, un izbaudīsiet braucienu krāšņajā Taškentas metro, kas līdzinās mākslas galerijai. Dienas kultūras programmā iekļauts Khast Imam komplekss, kurā glabājas pasaulē senākais Korāns, kā arī 16. gadsimta Kukeldash medrese. Apskati noslēgsiet pie varenā Amira Timura pieminekļa un Neatkarības laukumā.",
"accommodation": {
"name": "Viesnīca Taškentā",
"category": "4*"
}
},
{
"title": "11. diena: Atvadas no Uzbekistānas un mājupceļš",
"day_number": 11,
"description": "Ceļojuma noslēdzošajā dienā agri no rīta atvadīsieties no viesmīlīgās Uzbekistānas. Plkst. 07:00 paredzēts transfērs uz Taškentas lidostu, lai uzsāktu mājupceļu. Lidojums ar \"Turkish Airlines\" reisu TK0369 uz Stambulu izlidos plkst. 09:35. Pēc nolaišanās Stambulā plkst. 12:55 sekos īss tranzīta laiks starp lidojumiem. Pēcpusdienā, plkst. 15:50, turpināsiet ceļu ar reisu TK1775 uz Rīgu. Vakarā, plkst. 18:55, lidmašīna nolaidīsies Rīgas lidostā, noslēdzot spilgto un kultūras bagāto Vidusāzijas piedzīvojumu ar neaizmirstamām atmiņām par Zīda ceļa dārgumiem."
},
{
"title": "19.06. 1. diena: Ierašanās Stambulā",
"day_number": 1,
"description": "Jūsu ceļojums sākas ar lidojumu no Rīgas plkst. 19:50 (TK1776). Ielidošana Stambulā plkst. 23:10, kur jūs sagaidīs pilsētas unikālā aura – vieta, kas savieno Eiropu un Āziju. Pēc ielidošanas tiks nodrošināts transfērs uz viesnīcu ērtai atpūtai. Stambula, bijusī Romas, Bizantijas un Osmaņu impēriju galvaspilsēta, sola bagātīgu kultūras pieredzi turpmākajās dienās.",
"accommodation": {
"name": "Viesnīca Stambulā",
"category": "4*"
}
}
],
"about_trip": {
"content": "Uzbekistāna ir Vidusāzijas sirds, kur **Zīda ceļa maģija** atdzīvojas ik uz soļa, aicinot jūs ienirt \"Tūkstoš un vienas nakts\" pasaku valstībā. Šis ceļojums vedīs cauri gadsimtiem senām leģendām, kur bezgalīgi tuksneša plašumi harmoniski satiekas ar **majestātisku islāma arhitektūru** un tirkīzziliem mošeju kupoliem. Jūs atklāsiet zemi, kas gadsimtiem ilgi bijusi zinātnes un kultūras šūpulis, baudot **unikālu dabas skaistumu** gan Tjanšāna kalnu pakājē, gan noslēpumainajā Kizilkum tuksnesī.\\n\\nMaršrutā iekļautas spilgtākās **UNESCO pasaules mantojuma pērles**, ļaujot jums klātienē skatīt Samarkandas iespaidīgo Registānas laukumu un Hivas nocietināto vecpilsētu Ichan Kala. Jūs piedzīvosiet spilgtu autentiskumu, nakšņojot **tradicionālajās jurtās** pie Aidar ezera un baudot vakaru pie ugunskura zem zvaigžņotām debesīm. Programmu bagātinās arī **Bosfora šauruma kruīzs** Stambulā un viesošanās senās amatnieku darbnīcās, kur joprojām tiek lolotas gadsimtiem senas papīra un zīda izgatavošanas tradīcijas.\\n\\nŠis ceļojums ir ideāla izvēle tiem, kuri meklē līdzsvaru starp kultūras izzināšanu un dabas mieru, vienlaikus baudot **slaveno uzbeku viesmīlību**. *Vanilla Travel* eksperti ir parūpējušies par pārdomātu loģistiku, lai jūs varētu netraucēti nodoties gastronomiskiem atklājumiem, baudot plovu un tēju **autentiskās tējnīcās**. Tā būs **transformējoša pieredze**, kas ļaus jums sajust Austrumu dvēseli un atgriezties mājās ar sirdi sildošām atmiņām par sastaptajiem cilvēkiem un redzētajiem brīnumiem."
},
"traveler_reviews": {
"groups": [
{
"quote": "Vienmēr biju sapņojis redzēt Registānas laukumu. Tas bija pat varenāk nekā bildēs, un gids sniedza izcilu vēsturisko ieskatu par Zīda ceļu.",
"group_name": "Seniori 55+",
"highlights": [
"Samarkandas un Buhāras UNESCO mantojums",
"Ērti pārbraucieni ar vilcieniem starp pilsētām",
"Stambulas vēsturiskā bagātība un kruīzs",
"Autentiska tējas dzeršanas tradīcija"
],
"description": "Šis maršruts ir īsts kultūrvēsturisks dārgums senioriem, kuri novērtē vēsturi un arhitektūru. Samarkandas un Buhāras senās celtnes, kā arī Stambulas mošejas sniedz dziļu ieskatu civilizāciju vēsturē. Lai gan jūnija svelme prasa pielāgošanos, ceļošana ar vilcieniem starp pilsētām atvieglo pārvietošanos. Programma piedāvā unikālu iespēju savām acīm skatīt leģendāro Zīda ceļu un UNESCO mantojumu, noslēdzot ceļojumu ar mierīgāku dabas baudīšanu kalnos."
},
{
"quote": "Vakars tuksnesī pie ugunskura bija maģisks. Uzbekistāna mūs pārsteidza ar savu viesmīlību, un saulrieti virs Hivas mūriem bija neaizmirstami.",
"group_name": "Pāri",
"highlights": [
"Romantisks kruīzs pa Bosfora šaurumu",
"Nakšņošana jurtās zem zvaigznēm",
"Vakariņas ar folkloras šovu Hivā",
"Gleznainie skati Čimganas kalnos"
],
"description": "Ideāls ceļojums pāriem, kas vēlas iejusties \"Tūkstoš un vienas nakts\" pasakā. Romantiskais izbrauciens ar kuģīti Bosforā un saulrieti Hivas vecpilsētā rada neaizmirstamu atmosfēru. Nakšņošana tuksneša jurtās zem zvaigžņotām debesīm un vakariņas pie ugunskura piešķir eksotisku romantiku. Maršruts piedāvā līdzsvaru starp izzinošām ekskursijām un kopīgiem piedzīvojumiem, piemēram, vīna un vietējās virtuves baudīšanu, ļaujot veidot spilgtas atmiņas."
},
{
"quote": "Dinamisks ceļojums! Vienu dienu tu staigā pa senām pilsētām, nākamajā jau kāp kalnos un guli tuksnesī. Garlaicīgi nebija ne mirkli.",
"group_name": "Piedzīvojumu meklētāji",
"highlights": [
"Nakts tuksneša jurtās un Aidar ezers",
"Pārgājiens Čimganas kalnos pie ūdenskrituma",
"Brauciens ar trošu vagoniņu 2095m augstumā",
"Daudzveidīga loģistika: vilcieni, lidmašīnas, autobusi"
],
"description": "Šī programma ir radīta tiem, kas meklē autentisku pieredzi un daudzveidību. Ceļojums ietver ne tikai pilsētas, bet arī nakšņošanu jurtās Kizilkum tuksnesī un pārgājienus Čimganas kalnos ar seniem petroglifiem. Iespēja peldēties Aidar ezerā un braukt ar trošu vagoniņu virs kalnu ielejām sniedz aktīvu atpūtu. Pārvietošanās ar dažādiem transporta veidiem padara šo par dinamisku ekspedīciju cauri gadsimtiem."
}
]
}
},
"error": {
"name": "NodeOperationError",
"node": {
"id": "4cc68fce-3bca-4913-babe-3cbc7af993cf",
"name": "Filter",
"type": "n8n-nodes-base.filter",
"position": [
960,
0
],
"parameters": {
"options": [],
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1eb4f860-8502-4e88-b57a-1081d0ad6d48",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $json.original.width }}",
"rightValue": 1000
}
]
},
"looseTypeValidation": false
},
"typeVersion": 2.2
},
"tags": [],
"level": "warning",
"stack": "NodeOperationError: Bad request - please check your parameters\n at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n at Array.forEach (<anonymous>)\n at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
"context": [],
"message": "Bad request - please check your parameters",
"messages": [],
"timestamp": 1768364208271,
"workflowId": "MRKcIwSiExpUohb2",
"description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
"executionId": "26458",
"errorResponse": {
"name": "NodeOperationError",
"node": {
"id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
"name": "Filter",
"type": "@n8n\/n8n-nodes-langchain.agent",
"position": [
1728,
-16
],
"parameters": {
"text": "=Analyze this image\n\nurl: {{ $('Start').item.json.original_link }}\nquery: {{ $('Start').item.json.query }}\ntype: {{ $('Start').item.json.type }}\nquery category: {{ $('Start').item.json.query_category }}\npage title of the image found on: {{ $('Start').item.json.title }}",
"notice": "",
"options": {
"systemMessage": "You are a Vanilla Travel image quality analyst with expertise in visual content assessment. Your role is to analyze travel images using computer vision and determine whether they are relevant, high-quality, and appropriate for use in Vanilla Travel landing pages.\n\n**Your Sole Objective:**\nValidate image relevance and quality. Return a simple boolean decision (`is_relevant: true\/false`) with a specific rejection reason if the image fails validation.\n\n**You do NOT generate SEO metadata.** That is handled by a separate downstream node.\n\n**Quality Standards:**\n- **Accuracy:** Base decisions on actual image content, not assumptions\n- **Specificity:** Provide clear, actionable rejection reasons\n- **Consistency:** Apply validation criteria uniformly across all images\n- **Objectivity:** Focus on factual quality issues, not subjective preferences\n\n---\n\n## Validation Criteria\n\n### ✅ ACCEPT (is_relevant: true) if ALL of the following are true:\n\n1. **Destination Match**\n - Image clearly shows the destination mentioned in the program\n - Landmarks\/scenery are recognizable as the correct location\n - Geographic features match the region (e.g., Madagascar baobabs, not African savanna)\n\n2. **Search Query Alignment**\n - Image content matches the search query that found it\n - If query was \"lemur wildlife\", image must show lemurs\n - If query was \"baobab sunset\", image must show baobabs at sunset\n\n3. **Category Appropriateness**\n - Image fits the intended category (iconic\/program\/activities\/culture OR ship\/ports\/services\/cabins)\n - Iconic images show famous landmarks\n - Activity images show people doing activities\n - Cultural images show local culture\/traditions\n\n4. **Technical Quality**\n - Image is sharp, well-focused, properly exposed\n - Resolution appears sufficient (not pixelated or blurry)\n - Composition is professional (not amateur snapshots)\n - Colors are natural and accurate\n\n5. **No Watermarks or Branding**\n - No visible watermarks (Shutterstock, Getty, etc.)\n - No photographer logos or copyright text\n - No brand logos (unless part of authentic scene, e.g., cruise ship name)\n\n6. **Appropriate Content**\n - Family-friendly content (no violence, adult themes)\n - Authentic travel photography (not overly staged stock photos)\n - Represents real travel experiences\n\n### ❌ REJECT (is_relevant: false) if ANY of the following are true:\n\n1. **Wrong Destination**\n - Image shows a different country\/region\n - Landmarks don't match the destination\n - Example: Asian temple when program is for Madagascar\n\n2. **Search Query Mismatch**\n - Image doesn't match what was searched for\n - Example: Query was \"lemur wildlife\" but image shows only landscape\n - Example: Query was \"cruise ship pool\" but image shows cabin interior\n\n3. **Generic\/Non-Specific**\n - Image is too generic (could be anywhere)\n - Example: Generic beach photo without distinctive features\n - Example: Generic sunset without recognizable landmarks\n - Cannot identify specific destination from image alone\n\n4. **Quality Issues**\n - Blurry, out of focus, or pixelated\n - Poor composition (cropped awkwardly, bad framing)\n - Overexposed or underexposed\n - Low resolution (appears to be thumbnail or compressed)\n\n5. **Watermarks or Branding**\n - Visible watermark text (Shutterstock, Getty Images, etc.)\n - Photographer logo or copyright notice\n - Stock photo website branding\n\n6. **Inappropriate Content**\n - Not family-friendly\n - Overly staged\/artificial stock photo poses\n - Misleading or inauthentic representation\n\n7. **Wrong Category**\n - Image doesn't fit the intended category\n - Example: Cabin interior labeled as \"iconic\"\n - Example: Generic landscape labeled as \"activities\"\n\n---\n\n## Rejection Reason Guidelines\n\n**Be specific and actionable.** Explain exactly why the image was rejected.\n\n**Good rejection reasons:**\n- \"Image shows Asian temple architecture, not relevant to Madagascar destination\"\n- \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\"\n- \"Search query was 'lemur wildlife Ranomafana' but image shows only forest landscape without animals\"\n- \"Generic tropical beach photo, no distinctive features to identify as Madagascar\"\n- \"Image is blurry and pixelated, poor technical quality\"\n- \"Overly staged stock photo with models posing unnaturally\"\n\n**Bad rejection reasons:**\n- \"Not good enough\" (too vague)\n- \"Wrong image\" (not specific)\n- \"Quality issues\" (what kind of quality issues?)\n- \"Doesn't match\" (doesn't match what?)\n\n---\n\n## Confidence Score Guidelines\n\nAssign a confidence score (0.0 to 1.0) indicating how certain you are about the relevance decision.\n\n**High Confidence (0.8 - 1.0):**\n- Clear destination match with recognizable landmarks\n- Perfect search query alignment\n- Obvious quality issues (watermarks, blur)\n- Unambiguous accept\/reject decision\n\n**Medium Confidence (0.5 - 0.79):**\n- Destination is likely correct but not 100% certain\n- Image partially matches search query\n- Minor quality concerns but not deal-breakers\n- Could go either way\n\n**Low Confidence (0.0 - 0.49):**\n- Uncertain about destination match\n- Ambiguous search query alignment\n- Borderline quality issues\n- Need more context to decide\n\n**Examples:**\n\n- Baobab avenue at sunset in Madagascar: **0.95** (iconic landmark, unmistakable)\n- Generic tropical beach: **0.85** (clearly too generic, confident rejection)\n- Lemur in forest (query was \"lemur Ranomafana\"): **0.75** (shows lemur but can't verify location)\n- Landscape that might be Madagascar: **0.45** (uncertain, could be anywhere)\n\n---\n\n## Special Cases\n\n### Cruise Ship Images\n\n**Accept if:**\n- Ship name\/features match the cruise program\n- Image shows specific ship amenities mentioned in program\n- Port destinations match the itinerary\n\n**Reject if:**\n- Wrong ship (different cruise line or ship name)\n- Generic cruise ship photo (can't identify specific ship)\n- Port doesn't match itinerary\n\n### Wildlife Images\n\n**Accept if:**\n- Animal species matches the destination (lemurs in Madagascar, kangaroos in Australia)\n- Image quality allows clear identification of species\n- Natural habitat setting (not zoo or captivity)\n\n**Reject if:**\n- Wrong species for destination\n- Zoo\/captivity setting (unless program includes zoo visit)\n- Cannot identify species clearly\n\n### Cultural Images\n\n**Accept if:**\n- Cultural elements are authentic to the destination\n- Traditional clothing, crafts, or practices match the region\n- Market\/village scenes are genuine\n\n**Reject if:**\n- Cultural elements don't match destination (wrong traditional dress, wrong architecture)\n- Overly touristy\/staged cultural performances\n- Generic \"ethnic\" imagery without specific cultural context\n\n---\n\n## CRITICAL: JSON Output Format\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n\n**WRONG ❌:**\n```\n```json\n{\"is_relevant\": true}\n```\n```\n\n**WRONG ❌:**\n```\nThis image shows a baobab tree. {\"is_relevant\": true}\n```\n\n**CORRECT ✅:**\n```\n{\"is_relevant\": true, \"rejection_reason\": null, \"confidence_score\": 0.95, \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"}\n```\n\n**CRITICAL:** You MUST include the `image_url` field in your output, copying it exactly from the input data. This is essential for downstream nodes to associate the validation result with the correct image.\n\n\n## Example Outputs\n\n### Example 1: Accepted Image (High Confidence)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\",\n \"search_query\": \"baobab avenue Madagascar sunset golden hour\",\n \"query_category\": \"iconic\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": true,\n \"rejection_reason\": null,\n \"confidence_score\": 0.95,\n \"quality_notes\": \"Perfect match: iconic Avenue of the Baobabs at sunset, high quality professional photo\",\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"\n}\n```\n\n---\n\n### Example 2: Rejected Image (Wrong Destination)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\",\n \"search_query\": \"Madagascar trekking hiking mountains\",\n \"query_category\": \"activities\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": false,\n \"rejection_reason\": \"Image shows Asian temple architecture with pagoda-style roof, not relevant to Madagascar destination\",\n \"confidence_score\": 0.92,\n \"quality_notes\": \"High quality image but wrong geographic region\",\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\"\n}\n```\n\n---\n\n### Example 3: Rejected Image (Watermark)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\",\n \"search_query\": \"lemur wildlife Ranomafana National Park\",\n \"query_category\": \"program\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": false,\n \"rejection_reason\": \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\",\n \"confidence_score\": 1.0,\n \"quality_notes\": \"Image content is perfect (lemur in natural habitat) but watermark disqualifies it\",\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\"\n}\n```\n\n---\n\n### Example 4: Rejected Image (Generic\/Non-Specific)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\",\n \"search_query\": \"Madagascar coastline beach turquoise water\",\n \"query_category\": \"program\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": false,\n \"rejection_reason\": \"Generic tropical beach photo without distinctive features, could be any destination\",\n \"confidence_score\": 0.85,\n \"quality_notes\": \"Beautiful image but lacks Madagascar-specific landmarks or characteristics\",\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\"\n}\n```\n\n---\n\n### Example 5: Rejected Image (Search Query Mismatch)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/33333\/forest-landscape.jpg\",\n \"search_query\": \"lemur wildlife Ranomafana National Park Madagascar\",\n \"query_category\": \"program\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": false,\n \"rejection_reason\": \"Search query was 'lemur wildlife' but image shows only forest landscape without any visible animals\",\n \"confidence_score\": 0.88,\n \"quality_notes\": \"Image may be from Madagascar rainforest but doesn't match search intent (wildlife)\"\n}\n```\n\n---\n\n### Example 6: Accepted Image (Medium Confidence)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/44444\/snorkeling-coral.jpg\",\n \"search_query\": \"snorkeling coral reef Madagascar underwater\",\n \"query_category\": \"activities\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": true,\n \"rejection_reason\": null,\n \"confidence_score\": 0.72,\n \"quality_notes\": \"Shows snorkeling activity with coral reef, likely Madagascar but cannot verify specific location from underwater shot\"\n}\n```\n\n---\n\n## Quality Checklist\n\nBefore returning the JSON, verify:\n\n- [ ] Analyzed the actual image content using vision capabilities\n- [ ] Checked destination match against program context\n- [ ] Verified search query alignment\n- [ ] Assessed technical quality (sharpness, composition, exposure)\n- [ ] Looked for watermarks or branding\n- [ ] Confirmed content is family-friendly and authentic\n- [ ] Assigned appropriate confidence score (0.0-1.0)\n- [ ] Provided specific rejection reason if is_relevant=false\n- [ ] Set rejection_reason to null if is_relevant=true\n- [ ] JSON is valid and matches schema exactly\n\n---\n\n**This prompt focuses purely on validation logic, enabling cost-effective filtering before expensive SEO metadata generation.**\n\n",
"passthroughBinaryImages": true
},
"promptType": "define",
"needsFallback": false,
"hasOutputParser": true,
"aiAgentStarterCallout": ""
},
"typeVersion": 3.1
},
"tags": [],
"level": "warning",
"stack": "NodeOperationError: Bad request - please check your parameters\n at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n at Array.forEach (<anonymous>)\n at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
"context": [],
"message": "Bad request - please check your parameters",
"messages": [],
"timestamp": 1768364208248,
"workflowId": "MRKcIwSiExpUohb2",
"description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
"executionId": "26458",
"errorResponse": {
"name": "NodeOperationError",
"node": {
"id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
"name": "Filter",
"type": "@n8n\/n8n-nodes-langchain.agent",
"position": [
1728,
-16
],
"parameters": {
"text": "=Analyze this image\n\nurl: {{ $('Start').item.json.original_link }}\nquery: {{ $('Start').item.json.query }}\ntype: {{ $('Start').item.json.type }}\nquery category: {{ $('Start').item.json.query_category }}\npage title of the image found on: {{ $('Start').item.json.title }}",
"notice": "",
"options": {
"systemMessage": "You are a Vanilla Travel image quality analyst with expertise in visual content assessment. Your role is to analyze travel images using computer vision and determine whether they are relevant, high-quality, and appropriate for use in Vanilla Travel landing pages.\n\n**Your Sole Objective:**\nValidate image relevance and quality. Return a simple boolean decision (`is_relevant: true\/false`) with a specific rejection reason if the image fails validation.\n\n**You do NOT generate SEO metadata.** That is handled by a separate downstream node.\n\n**Quality Standards:**\n- **Accuracy:** Base decisions on actual image content, not assumptions\n- **Specificity:** Provide clear, actionable rejection reasons\n- **Consistency:** Apply validation criteria uniformly across all images\n- **Objectivity:** Focus on factual quality issues, not subjective preferences\n\n---\n\n## Validation Criteria\n\n### ✅ ACCEPT (is_relevant: true) if ALL of the following are true:\n\n1. **Destination Match**\n - Image clearly shows the destination mentioned in the program\n - Landmarks\/scenery are recognizable as the correct location\n - Geographic features match the region (e.g., Madagascar baobabs, not African savanna)\n\n2. **Search Query Alignment**\n - Image content matches the search query that found it\n - If query was \"lemur wildlife\", image must show lemurs\n - If query was \"baobab sunset\", image must show baobabs at sunset\n\n3. **Category Appropriateness**\n - Image fits the intended category (iconic\/program\/activities\/culture OR ship\/ports\/services\/cabins)\n - Iconic images show famous landmarks\n - Activity images show people doing activities\n - Cultural images show local culture\/traditions\n\n4. **Technical Quality**\n - Image is sharp, well-focused, properly exposed\n - Resolution appears sufficient (not pixelated or blurry)\n - Composition is professional (not amateur snapshots)\n - Colors are natural and accurate\n\n5. **No Watermarks or Branding**\n - No visible watermarks (Shutterstock, Getty, etc.)\n - No photographer logos or copyright text\n - No brand logos (unless part of authentic scene, e.g., cruise ship name)\n\n6. **Appropriate Content**\n - Family-friendly content (no violence, adult themes)\n - Authentic travel photography (not overly staged stock photos)\n - Represents real travel experiences\n\n### ❌ REJECT (is_relevant: false) if ANY of the following are true:\n\n1. **Wrong Destination**\n - Image shows a different country\/region\n - Landmarks don't match the destination\n - Example: Asian temple when program is for Madagascar\n\n2. **Search Query Mismatch**\n - Image doesn't match what was searched for\n - Example: Query was \"lemur wildlife\" but image shows only landscape\n - Example: Query was \"cruise ship pool\" but image shows cabin interior\n\n3. **Generic\/Non-Specific**\n - Image is too generic (could be anywhere)\n - Example: Generic beach photo without distinctive features\n - Example: Generic sunset without recognizable landmarks\n - Cannot identify specific destination from image alone\n\n4. **Quality Issues**\n - Blurry, out of focus, or pixelated\n - Poor composition (cropped awkwardly, bad framing)\n - Overexposed or underexposed\n - Low resolution (appears to be thumbnail or compressed)\n\n5. **Watermarks or Branding**\n - Visible watermark text (Shutterstock, Getty Images, etc.)\n - Photographer logo or copyright notice\n - Stock photo website branding\n\n6. **Inappropriate Content**\n - Not family-friendly\n - Overly staged\/artificial stock photo poses\n - Misleading or inauthentic representation\n\n7. **Wrong Category**\n - Image doesn't fit the intended category\n - Example: Cabin interior labeled as \"iconic\"\n - Example: Generic landscape labeled as \"activities\"\n\n---\n\n## Rejection Reason Guidelines\n\n**Be specific and actionable.** Explain exactly why the image was rejected.\n\n**Good rejection reasons:**\n- \"Image shows Asian temple architecture, not relevant to Madagascar destination\"\n- \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\"\n- \"Search query was 'lemur wildlife Ranomafana' but image shows only forest landscape without animals\"\n- \"Generic tropical beach photo, no distinctive features to identify as Madagascar\"\n- \"Image is blurry and pixelated, poor technical quality\"\n- \"Overly staged stock photo with models posing unnaturally\"\n\n**Bad rejection reasons:**\n- \"Not good enough\" (too vague)\n- \"Wrong image\" (not specific)\n- \"Quality issues\" (what kind of quality issues?)\n- \"Doesn't match\" (doesn't match what?)\n\n---\n\n## Confidence Score Guidelines\n\nAssign a confidence score (0.0 to 1.0) indicating how certain you are about the relevance decision.\n\n**High Confidence (0.8 - 1.0):**\n- Clear destination match with recognizable landmarks\n- Perfect search query alignment\n- Obvious quality issues (watermarks, blur)\n- Unambiguous accept\/reject decision\n\n**Medium Confidence (0.5 - 0.79):**\n- Destination is likely correct but not 100% certain\n- Image partially matches search query\n- Minor quality concerns but not deal-breakers\n- Could go either way\n\n**Low Confidence (0.0 - 0.49):**\n- Uncertain about destination match\n- Ambiguous search query alignment\n- Borderline quality issues\n- Need more context to decide\n\n**Examples:**\n\n- Baobab avenue at sunset in Madagascar: **0.95** (iconic landmark, unmistakable)\n- Generic tropical beach: **0.85** (clearly too generic, confident rejection)\n- Lemur in forest (query was \"lemur Ranomafana\"): **0.75** (shows lemur but can't verify location)\n- Landscape that might be Madagascar: **0.45** (uncertain, could be anywhere)\n\n---\n\n## Special Cases\n\n### Cruise Ship Images\n\n**Accept if:**\n- Ship name\/features match the cruise program\n- Image shows specific ship amenities mentioned in program\n- Port destinations match the itinerary\n\n**Reject if:**\n- Wrong ship (different cruise line or ship name)\n- Generic cruise ship photo (can't identify specific ship)\n- Port doesn't match itinerary\n\n### Wildlife Images\n\n**Accept if:**\n- Animal species matches the destination (lemurs in Madagascar, kangaroos in Australia)\n- Image quality allows clear identification of species\n- Natural habitat setting (not zoo or captivity)\n\n**Reject if:**\n- Wrong species for destination\n- Zoo\/captivity setting (unless program includes zoo visit)\n- Cannot identify species clearly\n\n### Cultural Images\n\n**Accept if:**\n- Cultural elements are authentic to the destination\n- Traditional clothing, crafts, or practices match the region\n- Market\/village scenes are genuine\n\n**Reject if:**\n- Cultural elements don't match destination (wrong traditional dress, wrong architecture)\n- Overly touristy\/staged cultural performances\n- Generic \"ethnic\" imagery without specific cultural context\n\n---\n\n## CRITICAL: JSON Output Format\n\nYou MUST return ONLY a valid JSON object. Follow these rules strictly:\n\n1. ✅ **Output ONLY JSON** - No explanatory text before or after\n2. ✅ **No markdown** - Do not wrap in ```json code blocks\n3. ✅ **Start with {** - First character must be opening brace\n4. ✅ **End with }** - Last character must be closing brace\n5. ✅ **Valid JSON syntax** - Proper quotes, commas, brackets\n6. ✅ **Match schema exactly** - All required fields, correct types\n\n**WRONG ❌:**\n```\n```json\n{\"is_relevant\": true}\n```\n```\n\n**WRONG ❌:**\n```\nThis image shows a baobab tree. {\"is_relevant\": true}\n```\n\n**CORRECT ✅:**\n```\n{\"is_relevant\": true, \"rejection_reason\": null, \"confidence_score\": 0.95, \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"}\n```\n\n**CRITICAL:** You MUST include the `image_url` field in your output, copying it exactly from the input data. This is essential for downstream nodes to associate the validation result with the correct image.\n\n\n## Example Outputs\n\n### Example 1: Accepted Image (High Confidence)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\",\n \"search_query\": \"baobab avenue Madagascar sunset golden hour\",\n \"query_category\": \"iconic\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": true,\n \"rejection_reason\": null,\n \"confidence_score\": 0.95,\n \"quality_notes\": \"Perfect match: iconic Avenue of the Baobabs at sunset, high quality professional photo\",\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/12345\/baobab.jpg\"\n}\n```\n\n---\n\n### Example 2: Rejected Image (Wrong Destination)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\",\n \"search_query\": \"Madagascar trekking hiking mountains\",\n \"query_category\": \"activities\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": false,\n \"rejection_reason\": \"Image shows Asian temple architecture with pagoda-style roof, not relevant to Madagascar destination\",\n \"confidence_score\": 0.92,\n \"quality_notes\": \"High quality image but wrong geographic region\",\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/67890\/asian-temple.jpg\"\n}\n```\n\n---\n\n### Example 3: Rejected Image (Watermark)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\",\n \"search_query\": \"lemur wildlife Ranomafana National Park\",\n \"query_category\": \"program\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": false,\n \"rejection_reason\": \"Visible 'SHUTTERSTOCK' watermark in bottom right corner\",\n \"confidence_score\": 1.0,\n \"quality_notes\": \"Image content is perfect (lemur in natural habitat) but watermark disqualifies it\",\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/11111\/lemur-watermarked.jpg\"\n}\n```\n\n---\n\n### Example 4: Rejected Image (Generic\/Non-Specific)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\",\n \"search_query\": \"Madagascar coastline beach turquoise water\",\n \"query_category\": \"program\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": false,\n \"rejection_reason\": \"Generic tropical beach photo without distinctive features, could be any destination\",\n \"confidence_score\": 0.85,\n \"quality_notes\": \"Beautiful image but lacks Madagascar-specific landmarks or characteristics\",\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/22222\/generic-beach.jpg\"\n}\n```\n\n---\n\n### Example 5: Rejected Image (Search Query Mismatch)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/33333\/forest-landscape.jpg\",\n \"search_query\": \"lemur wildlife Ranomafana National Park Madagascar\",\n \"query_category\": \"program\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": false,\n \"rejection_reason\": \"Search query was 'lemur wildlife' but image shows only forest landscape without any visible animals\",\n \"confidence_score\": 0.88,\n \"quality_notes\": \"Image may be from Madagascar rainforest but doesn't match search intent (wildlife)\"\n}\n```\n\n---\n\n### Example 6: Accepted Image (Medium Confidence)\n\n**Input:**\n```json\n{\n \"image_url\": \"https:\/\/images.pexels.com\/photos\/44444\/snorkeling-coral.jpg\",\n \"search_query\": \"snorkeling coral reef Madagascar underwater\",\n \"query_category\": \"activities\",\n \"destination\": \"Madagaskara\"\n}\n```\n\n**Output:**\n```json\n{\n \"is_relevant\": true,\n \"rejection_reason\": null,\n \"confidence_score\": 0.72,\n \"quality_notes\": \"Shows snorkeling activity with coral reef, likely Madagascar but cannot verify specific location from underwater shot\"\n}\n```\n\n---\n\n## Quality Checklist\n\nBefore returning the JSON, verify:\n\n- [ ] Analyzed the actual image content using vision capabilities\n- [ ] Checked destination match against program context\n- [ ] Verified search query alignment\n- [ ] Assessed technical quality (sharpness, composition, exposure)\n- [ ] Looked for watermarks or branding\n- [ ] Confirmed content is family-friendly and authentic\n- [ ] Assigned appropriate confidence score (0.0-1.0)\n- [ ] Provided specific rejection reason if is_relevant=false\n- [ ] Set rejection_reason to null if is_relevant=true\n- [ ] JSON is valid and matches schema exactly\n\n---\n\n**This prompt focuses purely on validation logic, enabling cost-effective filtering before expensive SEO metadata generation.**\n\n",
"passthroughBinaryImages": true
},
"promptType": "define",
"needsFallback": false,
"hasOutputParser": true,
"aiAgentStarterCallout": ""
},
"typeVersion": 3.1
},
"tags": {
"reWrapped": true
},
"level": "warning",
"stack": "NodeOperationError: Bad request - please check your parameters\n at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:95:11\n at Array.forEach (<anonymous>)\n at executeBatch (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/helpers\/executeBatch.ts:84:15)\n at processTicksAndRejections (node:internal\/process\/task_queues:105:5)\n at ExecuteContext.toolsAgentExecute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/agents\/ToolsAgent\/V3\/execute.ts:46:66)\n at ExecuteContext.execute (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_483a58943c290d26157214acd0d782a6\/node_modules\/@n8n\/n8n-nodes-langchain\/nodes\/agents\/Agent\/V3\/AgentV3.node.ts:139:10)\n at WorkflowExecute.executeNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1045:8)\n at WorkflowExecute.runNode (\/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1226:11)\n at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:1662:27\n at \/usr\/local\/lib\/node_modules\/n8n\/node_modules\/.pnpm\/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_ec37920eb95917b28efaa783206b20f3\/node_modules\/n8n-core\/src\/execution-engine\/workflow-execute.ts:2274:11",
"context": [],
"message": "Bad request - please check your parameters",
"messages": [
"400 You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp']."
],
"timestamp": 1768364208225,
"workflowId": "tRZE9BCl6vJpwlSR",
"description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
"executionId": "26459",
"functionality": "regular"
},
"functionality": "regular"
},
"functionality": "regular"
}
}