← Back

Full JSON for Task ID: 585

{
    "id": "585",
    "status": "failed",
    "input": {
        "text": "Ceļojums piemērots: visiem, kuriem varētu interesēt nebeidzamu kontrastu pilsēta ar bagātīgu vēsturisku mantojumu, elpu aizraujošu modernu arhitektūru – vieta, kur Austrumi un Rietumi sadodas rokās.\r\nGaisa temperatūra: ap 27 C dienā, ap 20 C naktī\r\nŪdens temperatūra: 20C\r\nLaikapstākļi: lietus iespējamība 15%\r\nLaika starpība ar Latviju: + 2 stundas\r\nValūta: Azerbaidžānas manats (AZN) 1 AZN = ~ 0.50 EUR\r\nAzerbaidžānā lielākā sabiedrības daļa ir musulmaņi. Mēs aicinām ceļotājus respektēt vietējās tradīcijas un likumus, jo īpaši apmeklējot reliģiskas vietas.\r\nJāņem līdz: peldkostīms, līdzekļi pret UV starojumu, galvassega, saulesbrilles, viegls, visu ķermeni nosedzošs apģērbs.\r\nGrupu ceļojumā pavadīs latviski, krieviski, angliski runājošs FlyMeAway grupas vadītājs un tās lielums būs max. 21 personas!\r\nEkskursiju programma norisināsies krievu valodā un visiem ceļotājiem tā jau IR IEKĻAUTA ceļojuma komplekta cenā. Tāpat iekļautas ir arī četras pusdienas ekskursiju laikā, kā arī divas kopīgas vakariņas.\r\nPirmā iemaksa 300 EUR, pilna apmaksa par ceļojumu jāveic līdz 10.05.2026.\r\nVārda maiņa - bez maksas iespējama līdz 02.06.2026!\r\nAtļautais bagāžas apjoms katram ceļotājam: 30 kg reģistrējamā bagāža, 8 kg rokas bagāža.\r\nLidojumus izpilda avio kompānija Turkish Airlines.\r\nVisos lidojumos pasniedz silto maltīti ar dzērienu pēc izvēles, kā arī izklaidei pieejams plašs klāsts ar filmām, mūziku vai izglītojošiem raidījumiem\r\nLidojuma kopējais ilgums turpceļā: 7h 55min\r\nRīga – Stambula: 3h 20min\/\/19 JUN RIX IST 10.55 - 14.15 (Boeing 737-800)\r\nStambula – Baku: 2h 50min\/\/19 JUN IST GYD  16.00 - 19.50 (Airbus A321-200neo)\r\nLidojuma kopējais ilgums atpakaļceļā: 8h 35min\r\nBaku - Stambula: 3h 15min\/\/24 JUN GYD IST 11.30 - 13.45 (Airbus A321-200neo)\r\nStambula – Rīga: 3h 05min\/\/24 JUN IST RIX 16.00 - 19.05 (Boeing 737-800)\r\nCeļojuma apdrošināšana: Klientiem vecumā līdz 80 gadiem (ieskaitot) komplekta cenā jau ir iekļauta ERGO paplašinātā polise!",
        "type": "EXCURSION",
        "section": "all"
    },
    "output": {
        "faq": {
            "questions": [
                {
                    "answer": "Jā, Latvijas pilsoņiem un nepilsoņiem ieceļošanai Azerbaidžānā nepieciešama vīza. Tās noformēšana un izmaksas jau ir pilnībā iekļautas ceļojuma cenā. Līdzi jābūt pasei, kuras derīguma termiņš ir vismaz 6 mēneši pēc ceļojuma beigām. Sarežģītāku jautājumu gadījumā sazinieties ar Vanilla Travel.",
                    "category": "Dokumenti\/vīzas",
                    "question": "Vai ceļojumam uz Azerbaidžānu ir nepieciešama vīza?"
                },
                {
                    "answer": "Jūnijā Baku valda vasarīgi silts laiks – dienā gaisa temperatūra ir ap 27°C, naktī ap 20°C. Ūdens temperatūra jūrā ir ap 20°C. Lietus iespējamība ir zema, bet ieteicams ņemt līdzi saulesbrilles, galvassegu un vieglu, nosedzošu apģērbu aizsardzībai no saules.",
                    "category": "Labākais ceļojuma laiks",
                    "question": "Kādi laikapstākļi ir gaidāmi ceļojuma laikā jūnijā?"
                },
                {
                    "answer": "Ceļojums piemērots cilvēkiem ar vidēju fizisko sagatavotību. Ekskursiju dienas ilgst 5–9 stundas, ietverot pastaigas pa pilsētu un dabas objektiem, piemēram, Gobustānas parku. Jābūt gataviem staigāt pa nelīdzenu reljefu. Ceļojums nav piemērots cilvēkiem ar būtiskiem kustību traucējumiem.",
                    "category": "Fiziskie prasības",
                    "question": "Cik fiziski aktīvs būs šis ceļojums?"
                },
                {
                    "answer": "Dzīvošana paredzēta modernā 4 zvaigžņu viesnīcā \"Holiday Inn Baku\" pilsētas centrā, standarta numuros ar skatu uz jūru. Cenā iekļautas brokastis, četras pusdienas un divas vakariņas, kā arī viesnīcas baseina un SPA centra apmeklējums. Viesnīca atrodas tuvu vecpilsētai.",
                    "category": "Izmitināšana\/ēdināšana",
                    "question": "Kur mēs dzīvosim un kāda ēdināšana ir iekļauta?"
                },
                {
                    "answer": "Lidojumu izpilda \"Turkish Airlines\" caur Stambulu. Cenā iekļauta reģistrējamā bagāža līdz 30 kg un rokas bagāža līdz 8 kg. Lidojuma laikā tiek pasniegta siltā maltīte un dzērieni. Uz vietas Azerbaidžānā grupa pārvietojas ar komfortablu tūrisma autobusu.",
                    "category": "Transports\/bagāža",
                    "question": "Kādi ir bagāžas noteikumi un transports?"
                },
                {
                    "answer": "Ceļojuma cenā ir iekļautas visas ekskursijas, ieejas biļetes, vīza un apdrošināšana (līdz 80 g.v.). Papildu izmaksas veido tikai alkoholiskie dzērieni pusdienās un vakariņās, kā arī personīgie tēriņi suvenīriem. Citas slēptās izmaksas nav paredzētas.",
                    "category": "Papildu izmaksas",
                    "question": "Ar kādām papildu izmaksām jārēķinās ceļojuma laikā?"
                },
                {
                    "answer": "Rezervācijai nepieciešama pirmā iemaksa 300 EUR. Pilna apmaksa jāveic līdz 2026. gada 10. maijam. Vārda maiņa bez maksas iespējama līdz 2. jūnijam. Lai pieteiktos ceļojumam vai precizētu detaļas, lūdzu, sazinieties ar Vanilla Travel konsultantiem.",
                    "category": "Rezervācijas process",
                    "question": "Kā notiek ceļojuma rezervācija un apmaksa?"
                }
            ]
        },
        "hero": {
            "title": "Atklāj Baku: Uguns zemes maģija un kontrasti",
            "summary": "Izbaudiet 6 dienu ekskursiju programmu kontrastiem bagātajā Azerbaidžānā, kur senas Austrumu tradīcijas satiekas ar futūristisku arhitektūru. Apskatiet UNESCO sargāto Baku vecpilsētu un mīklainos Gobustānas dubļu vulkānus, piedalieties autentiskā kulinārijas meistarklasē un baudiet vīna degustāciju gleznainajā Šamahi reģionā. Jūs nakšņosiet augstas klases 4* viesnīcā pilsētas centrā un iepazīsiet \"Uguns zemi\" zinoša gida pavadībā nelielā grupā, baudot cenā iekļautas maltītes un relaksāciju pie Kaspijas jūras."
        },
        "flight": {
            "carrier": {
                "name": "Turkish Airlines",
                "onboard_services": "Siltā maltīte ar dzērienu pēc izvēles, plašs izklaides klāsts (filmas, mūzika, izglītojoši raidījumi)"
            },
            "flight_schedule": {
                "inbound": [
                    "24. jūnijs: Baku (GYD) – Stambula (IST) 11:30 - 13:45 (Airbus A321-200neo)",
                    "24. jūnijs: Stambula (IST) – Rīga (RIX) 16:00 - 19:05 (Boeing 737-800)"
                ],
                "outbound": [
                    "19. jūnijs: Rīga (RIX) – Stambula (IST) 10:55 - 14:15 (Boeing 737-800)",
                    "19. jūnijs: Stambula (IST) – Baku (GYD) 16:00 - 19:50 (Airbus A321-200neo)"
                ],
                "total_travel_time": "Turpceļā: 7h 55min; Atpakaļceļā: 8h 35min"
            },
            "logistics_title": "Lidojumu un transporta loģistika: Jāņu brīvdienas Baku",
            "ground_transfers": [
                {
                    "type": "Ierašanās",
                    "description": "Transfērs no Baku lidostas uz viesnīcu (~ 30 min.)"
                },
                {
                    "type": "Izbraukšana",
                    "description": "Transfērs no viesnīcas uz Baku lidostu"
                }
            ],
            "baggage_allowance": {
                "cabin": "8 kg",
                "checked": "30 kg"
            }
        },
        "hotels": [
            {
                "dining": [
                    {
                        "name": "Marina 18",
                        "description": "Restorāns ar panorāmas skatu uz Kaspijas jūru, kas piedāvā visdažādāko tautu virtuves gardumus."
                    },
                    {
                        "name": "Sagi",
                        "description": "Bārs, kurā viesi var nesteidzīgi nobaudīt dažādus dzērienus."
                    }
                ],
                "location": {
                    "area": "Baku pilsētas centrs"
                },
                "hotel_name": "Holiday Inn Baku By IHG",
                "star_rating": "4*",
                "amenities_list": [
                    "Iekšējais peldbaseins",
                    "Spa un skaistumkopšanas centrs",
                    "Sauna",
                    "Tvaika pirts",
                    "Fitnesa centrs",
                    "Bankomāts",
                    "Valūtas maiņa",
                    "Bezmaksas pazemes autostāvvieta"
                ],
                "wellness_features": [
                    "Iekšējais peldbaseins",
                    "Spa un skaistumkopšanas centrs",
                    "Sauna",
                    "Tvaika pirts",
                    "Fitnesa centrs"
                ],
                "article_description": "Šī modernā viesnīca atrodas pašā Baku sirdī, piedāvājot lielisku izejas punktu gan vecpilsētas, gan mūsdienīgo iepirkšanās centru iepazīšanai. Viesi var baudīt pilnīgu relaksāciju plašajā spa centrā un peldbaseinā vai vērot elpu aizraujošo Kaspijas jūras panorāmu no restorāna, apvienojot augstākā līmeņa komfortu ar \"Vēju pilsētas\" dinamisko atmosfēru.",
                "room_specifications": "Plaši numuri ar gaisa kondicionieri, TV, Wi-Fi, minibāru, fēnu un tējkannu. Ceļojuma grupai paredzēti standarta numuri ar skatu uz jūru."
            }
        ],
        "pricing": {
            "included": [
                "Lidojums Rīga – Stambula – Baku – Stambula – Rīga (Turkish Airlines)",
                "30 kg reģistrējamā bagāža un 8 kg rokas bagāža",
                "Siltā maltīte un dzērieni lidojumu laikā",
                "Transfērs lidosta – viesnīca – lidosta",
                "Dzīvošana 4* viesnīcā Holiday Inn Baku (standarta numuri ar skatu uz jūru)",
                "Brokastis viesnīcā",
                "4 pusdienas ekskursiju laikā",
                "2 kopīgas vakariņas",
                "Ekskursiju programma ar krieviski runājošu vietējo gidu",
                "Ieejas maksas apskates objektos (Širvanšaha pils, Jaunavas tornis, Paklāju muzejs, Gobustānas parks, Atešgas Uguns templis u.c.)",
                "Kulinārijas nodarbība un vīna tūre ar degustāciju",
                "Atpūta labiekārtotā pludmalē (saulessargu un pludmales krēslu noma)",
                "Viesnīcas iekšējā peldbaseina apmeklējums",
                "ERGO paplašinātā ceļojuma apdrošināšana (klientiem līdz 80 gadiem)",
                "Azerbaidžānas vīzas noformēšana un izmaksas",
                "Grupas vadītāja pakalpojumi",
                "Vārda maiņa līdz 02.06.2026"
            ],
            "additional_costs": [
                "Alkoholiskie dzērieni pusdienu un vakariņu laikā"
            ]
        },
        "program": [
            {
                "title": "1. diena: Lidojums uz Baku un ierašanās",
                "day_number": 1,
                "description": "Ceļojums sāksies ar lidojumu no Rīgas plkst. 10:55 ar Turkish Airlines caur Stambulu. Lidojuma laikā baudīsiet siltu maltīti, un kopējais ceļā pavadītais laiks būs nepilnas 8 stundas. Vakarā, plkst. 19:50, nolaidīsimies Baku lidostā – vietā, kur austrumu tradīcijas satiekas ar rietumu modernismu. Pēc pasu kontroles formalitātēm jūs sagaidīs transfērs, lai dotos uz aptuveni 30 minūšu attālo viesnīcu pilsētas centrā. Iekārtosieties numuros un atpūtīsieties modernajā naktsmītnē, kas atrodas lieliskā vietā netālu no vecpilsētas un Kaspijas jūras promenādes.",
                "accommodation": {
                    "name": "Holiday Inn Baku",
                    "category": "4*"
                }
            },
            {
                "title": "2. diena: Baku vecpilsētas šarms un mūsdienu arhitektūra",
                "day_number": 2,
                "description": "Plkst. 10:00 sāksiet Baku iepazīšanu, dodoties pa dzīvīgo Nizami ielu uz UNESCO sarakstā iekļauto vecpilsētu Ičerišeheru. Šeit apskatīsiet vēsturisko Širvanšaha pili, noslēpumaino Jaunavas torni un unikālo Miniatūro grāmatu muzeju. Pēc iekļautām pusdienām vietējā restorānā ekskursija turpināsies ar mūsdienu kontrastiem – fotografēšanās pauzi pie ikoniskajiem Liesmu torņiem un elpu aizraujošiem panorāmas skatiem no Hailendas parka. Dienas noslēgumā baudīsiet relaksējošu pastaigu pa Kaspijas jūras piekrastes bulvāri, apskatot panorāmas ratu un Paklāju muzeju. Ekskursijas ilgums ap 5 stundām. Vakars brīvs atpūtai viesnīcā.",
                "accommodation": {
                    "name": "Holiday Inn Baku",
                    "category": "4*"
                }
            },
            {
                "title": "3. diena: Gobustānas parks un Abšeronas pussala",
                "day_number": 3,
                "description": "No rīta plkst. 09:00 dosieties ~70 km braucienā uz Gobustānas nacionālo parku, kur aplūkosiet senos klinšu grebumus un Mēness ainavai līdzīgos dubļu vulkānus. Pēc Bibiheibatas mošejas un pirmā naftas urbuma apskates baudīsiet pusdienas restorānā. Pēcpusdienā Abšeronas pussalā apmeklēsiet zoroastriešu Atešgas uguns templi un Janardaga degošo kalnu, kur liesmas paceļas tieši no zemes. Atpakaļceļā piestāsiet pie arhitektoniski iespaidīgā Heidara Alijeva centra. Vakarā nakšņošana \"Holiday Inn Baku\" viesnīcā un kopīgas vakariņas.",
                "accommodation": {
                    "name": "Holiday Inn Baku",
                    "category": "4*"
                }
            },
            {
                "title": "4. diena: Atpūta pie Kaspijas jūras un kulinārijas meistarklase",
                "day_number": 4,
                "description": "Rītu iesāksiet plkst. 08:30, dodoties 30 km braucienā uz Mardakanas provinci Abšeronas pussalas piekrastē. Šeit baudīsiet relaksējošu atpūtu labiekārtotā Kaspijas jūras pludmalē, kur cenā iekļauti saulessargi un krēsli. Dienas turpinājumā piedalīsieties aizraujošā kulinārijas meistarklasē, lai profesionāla pavāra uzraudzībā apgūtu Azerbaidžānas virtuves noslēpumus. Pašu gatavotos tradicionālos ēdienus vēlāk nobaudīsiet gardās pusdienās, iepazīstot reģiona autentiskās garšas. Pēc aptuveni 8 stundu ekskursijas atgriezīsieties Baku, lai izbaudītu brīvu vakaru.",
                "accommodation": {
                    "name": "Holiday Inn Baku By IHG",
                    "category": "4*"
                }
            },
            {
                "title": "5. diena: Šamahi senatne un zīda noslēpumi",
                "day_number": 5,
                "description": "Plkst. 09:00 uzsāksiet ceļu uz Azerbaidžānas rietumiem, lai iepazītu vienu no valsts senākajām pilsētām – Šamahi. Dienas gaitā apmeklēsiet \"Abqora\" vīna darītavu, kur baudīsiet ekskursiju un degustāciju, kam sekos pusdienas vietējā restorānā. Vēlāk dosieties uz Baskāla ciematu, lai viesotos \"Kelagayi\" zīda šaļļu aušanas darbnīcā un paši piedalītos unikālajā radīšanas procesā. Ekskursija ilgs aptuveni 9 stundas. Vakarā atgriezīsieties Baku un pēc nelielas atpūtas dosieties uz svinīgām atvadu vakariņām. Nakšņošana \"Holiday Inn Baku\" viesnīcā.",
                "accommodation": {
                    "name": "Holiday Inn Baku",
                    "category": "4*"
                }
            },
            {
                "title": "6. diena: Mājupceļš uz Rīgu",
                "day_number": 6,
                "description": "Noslēdzošajā ceļojuma rītā baudīsiet brokastis \"Holiday Inn Baku\" viesnīcā, lai nesteidzīgi sagatavotos izbraukšanai. Pēc numuru atbrīvošanas jūs gaidīs transfers uz Baku lidostu, lai uzsāktu mājupceļu. \"Turkish Airlines\" lidojums ar pārsēšanos Stambulā izlido plkst. 11:30. Atpakaļceļa kopējais ilgums būs 8 stundas un 35 minūtes, kuru laikā tiks pasniegta silta maltīte. Rīgā ielidosiet vakarpusē, plkst. 19:05, noslēdzot spilgto piedzīvojumu kontrastu pilnajā \"Vēju pilsētā\" un ņemot līdzi spilgtas atmiņas par Kaukāza viesmīlību."
            }
        ],
        "about_trip": {
            "content": "Baku jūs sagaidīs kā pārsteidzoša **kontrastu metropole**, kurā senatnīgais Austrumu šarms harmoniski savijas ar futūristisku Rietumu arhitektūru. Šī dinamiskā **Vēju pilsēta** atrodas Kaspijas jūras piekrastē un piedāvā unikālu iespēju piedzīvot brīdi, kad vēsturiskie karavānu ceļi satiekas ar mūsdienu neona gaismām. Jūs sajutīsiet Abšeronas pussalas maģisko auru, kur dabas stihijas un **Mūžīgā uguns** leģendas veidojušas ne tikai elpu aizraujošu ainavu, bet arī vietējo iedzīvotāju nelokāmo raksturu un kultūru.\n\nCeļojuma laikā jūs izstaigāsiet **UNESCO Pasaules mantojuma** sarakstā iekļauto Ičerišehēras vecpilsētu, kuras šaurās ieliņas glabā gadsimtiem senus noslēpumus. Programma vedīs ārpus pilsētas, lai atklātu mistisko Gobustānas parku un pasaulē unikālos **dubļu vulkānus**, kā arī seno zoroastriešu Uguns templi. Jūs sagaida arī izsmalcināta vīna degustācija un autentiska kulinārijas meistarklase, kurā pašu rokām gatavosiet **Azerbaidžānas virtuves** šedevrus, lai pilnībā izprastu šīs zemes bagātīgās tradīcijas.\n\nVanilla Travel eksperti ir rūpīgi izplānojuši šo maršrutu **ekskluzīvā nelielā grupā**, lai nodrošinātu personisku pieeju un nevainojamu loģistiku. Jūs baudīsiet komfortu modernajos **Holiday Inn Baku** numuros un pilnībā iekļautu ekskursiju programmu ar gardām maltītēm. Šis piedzīvojums ir ideāli piemērots ceļotājiem, kuri vēlas Jāņu brīvdienas pavadīt, apvienojot vēstures izziņu ar **atpūtu pie jūras** un ļaujoties viesmīlīgās Kaukāza kultūras valdzinājumam."
        },
        "traveler_reviews": {
            "groups": [
                {
                    "quote": "Ļoti novērtējām, ka par visu bija padomāts un nebija slēpto izmaksu. Gids bija zinošs, un viesnīca ļoti ērta. Ceļojums bija bagātīgs, bet ne pārāk nogurdinošs.",
                    "group_name": "Seniori 55+",
                    "highlights": [
                        "Pilns serviss (vīzas, apdrošināšana, ēdināšana)",
                        "Ekskursijas saprotamā krievu valodā",
                        "Vēsturiski UNESCO objekti un muzeji",
                        "Ērta 4* viesnīca pilsētas centrā"
                    ],
                    "description": "Lieliska izvēle senioriem, kas novērtē pilnībā organizētu atpūtu, kur cenā iekļauts gandrīz viss – no vīzas un apdrošināšanas (līdz 80 g.v.) līdz pat pilnai ēdināšanai ekskursiju dienās. Vēstures cienītājiem patiks UNESCO sarakstā iekļautā vecpilsēta un Gobustānas senie zīmējumi. Turkish Airlines lidojumi ar ēdināšanu un bagāžu nodrošina ērtu nokļūšanu. Jāņem vērā, ka programma ir samērā aktīva ar pastaigām, taču 4* viesnīca centrā sniedz lielisku atpūtu. Ekskursijas krievu valodā daudziem būs liela priekšrocība."
                },
                {
                    "quote": "Baku mūs apbūra! Vīna darītavas apmeklējums bija izcils, un vakara pastaigas pa promenādi bija ļoti romantiskas. Lielisks līdzsvars starp ekskursijām un atpūtu.",
                    "group_name": "Pāri",
                    "highlights": [
                        "Vīna tūre un degustācija Šamahi",
                        "SPA centrs un baseins viesnīcā",
                        "Romantiska vecpilsētas atmosfēra",
                        "Kopīgas vakariņas ar vietējo kolorītu"
                    ],
                    "description": "Šis ceļojums ir ideāli piemērots pāriem, kuri meklē eksotisku galamērķi ar augstu komforta līmeni. Baku kontrasti – no senās Ičerišeheras līdz modernajiem Liesmu torņiem – rada romantisku atmosfēru. Nakšņošana 4* Holiday Inn viesnīcā ar SPA centru un baseinu ļauj relaksēties pēc ekskursijām. Programma ir daudzveidīga, ietverot gan vīna darītavas apmeklējumu un degustāciju Šamahi, gan atpūtu pludmalē pie Kaspijas jūras, padarot to par lielisku randiņu nedēļas garumā."
                },
                {
                    "quote": "Kā solo ceļotāja jutos ļoti droši un aprūpēta. Grupa bija draudzīga, un man patika, ka nebija jārūpējas par loģistiku vai jāmeklē restorāni vienai.",
                    "group_name": "Solo ceļotāji",
                    "highlights": [
                        "Maza grupa (max 21 persona)",
                        "Drošība ar grupas vadītāju no Latvijas",
                        "Kopīgas maltītes jaunu draugu iegūšanai",
                        "Droša un moderna viesnīca centrā"
                    ],
                    "description": "Drošs un aizraujošs veids, kā iepazīt Azerbaidžānu vienatnē, pievienojoties nelielai grupai (maksimums 21 persona). Kopīgās pusdienas un vakariņas rada lielisku iespēju socializēties, savukārt brīvie vakari ļauj baudīt pilsētu savā ritmā. Grupas vadītāja klātbūtne no Rīgas un organizēts transports sniedz drošības sajūtu eksotiskā valstī. Holiday Inn viesnīca ir droša un atrodas centrā, un vienvietīgā numura piemaksa garantē privātumu pēc piedzīvojumiem bagātas dienas."
                },
                {
                    "quote": "Dubļu vulkāni bija kaut kas neticams – īsta Mēness ainava! Azerbaidžāna pārsteidza ar savu mežonīgo dabu un viesmīlību, kas apvienota ar modernu pilsētvidi.",
                    "group_name": "Piedzīvojumu meklētāji",
                    "highlights": [
                        "Dubļu vulkāni un Mēness ainavas",
                        "Degošais kalns Janardags",
                        "Kulinārijas meistarklase ar vietējiem ēdieniem",
                        "Austrumu un Rietumu kultūru kontrasti"
                    ],
                    "description": "Lai gan šis ir komfortabls grupas ceļojums, tas piedāvā unikālus dabas brīnumus piedzīvojumu kārotājiem. Iespēja redzēt dubļu vulkānus Gobustānā un \"degošo kalnu\" Janardagu ir unikāla pieredze, ko nevar gūt nekur citur Eiropā. Maršruts ved arī ārpus pilsētas uz Kaukāza kalnu pakāji Šamahi reģionā. Kulinārijas meistarklase un tirgus apmeklējums ļauj autentiski izgaršot vietējo kultūru, savukārt pelde Kaspijas jūrā piešķir ceļojumam daudzveidību."
                }
            ]
        }
    },
    "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": 1768397369560,
        "workflowId": "MRKcIwSiExpUohb2",
        "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
        "executionId": "27140",
        "errorResponse": {
            "name": "NodeOperationError",
            "node": {
                "id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
                "name": "Filter",
                "type": "@n8n\/n8n-nodes-langchain.agent",
                "position": [
                    1936,
                    -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": 1768397369538,
            "workflowId": "MRKcIwSiExpUohb2",
            "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
            "executionId": "27140",
            "errorResponse": {
                "name": "NodeOperationError",
                "node": {
                    "id": "c76b905d-a45d-4b5e-ae82-e104969e1e78",
                    "name": "Filter",
                    "type": "@n8n\/n8n-nodes-langchain.agent",
                    "position": [
                        1936,
                        -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": 1768397369517,
                "workflowId": "tRZE9BCl6vJpwlSR",
                "description": "You uploaded an unsupported image. Please make sure your image has of one the following formats: ['png', 'jpeg', 'gif', 'webp'].",
                "executionId": "27144",
                "functionality": "regular"
            },
            "functionality": "regular"
        },
        "functionality": "regular"
    }
}