{"workflow":{"id":13921,"name":"Plan AI-powered travel itineraries with Apify, OpenAI, and Google Docs","views":30,"recentViews":2,"totalViews":30,"createdAt":"2026-03-06T16:52:42.657Z","description":"## Who is this for\n\nTravel agencies, freelance travel planners, or anyone who wants to automate personalized trip planning by combining real-time hotel and flight data with AI-generated recommendations.\n\n## What this workflow does\n\n- Collects travel details (airports, dates, travelers) through an n8n form\n- Scrapes the top 5 hotels from Booking.com sorted by review score via Apify\n- Scrapes the best available flights from Google Flights via Apify\n- Generates restaurant, attraction, and day-by-day itinerary recommendations using OpenAI\n- Merges all results into a formatted Google Doc and returns the link to the user\n\n## How to set up\n\n1. Create an [Apify](https://apify.com) account and add your API token as both an \"Apify API\" credential and an \"HTTP Query Auth\" credential (parameter name: `token`)\n2. Add your OpenAI API key as an \"OpenAI\" credential\n3. Connect your Google account via OAuth2 and update the `folderId` in the \"Create Document\" node to your Google Drive folder\n4. Activate the workflow and share the form URL\n\n## Requirements\n\n- Apify account with API token (for Booking.com and Google Flights scrapers)\n- OpenAI API key\n- Google account with Docs and Drive access\n\n## How to customize\n\n- Swap the form trigger for a webhook or chatbot input\n- Change the output from Google Docs to email, Slack, or Notion\n- Adjust the OpenAI prompt to focus on budget travel, luxury, or specific interests","workflow":{"id":"sjh-_Xf1ekuPpodwk_WTV","meta":{"instanceId":"96add2e303f72aa16a39eea436903593869549c40bd26622ad76490ad225eb9e"},"name":"Plan travel itineraries with AI using Apify, OpenAI, and Google Docs","tags":[],"nodes":[{"id":"c82e7927-b801-4c02-bae7-cbfd2e7e1c4f","name":"Travel Form","type":"n8n-nodes-base.formTrigger","position":[-896,416],"webhookId":"a14afaf8-316a-4217-9316-434bfa443f63","parameters":{"options":{},"formTitle":"✈️ Travel Planner","formFields":{"values":[{"fieldLabel":"Departure Airport (IATA Code)","placeholder":"e.g., JFK, LAX, LHR","requiredField":true},{"fieldLabel":"Destination City","placeholder":"e.g., Paris, Tokyo, Barcelona","requiredField":true},{"fieldLabel":"Destination Airport (IATA Code)","placeholder":"e.g., CDG, NRT, BCN","requiredField":true},{"fieldType":"date","fieldLabel":"Check-in Date","requiredField":true},{"fieldType":"date","fieldLabel":"Check-out Date","requiredField":true},{"fieldType":"number","fieldLabel":"Number of Travelers","placeholder":"1","requiredField":true}]},"responseMode":"lastNode","formDescription":"Plan your perfect trip! Enter your travel details below and we'll find the best flights, accommodations, restaurants, and attractions for you."},"typeVersion":2.2},{"id":"de1f428d-c665-4016-84f9-cc9de570d228","name":"Set Variables","type":"n8n-nodes-base.set","position":[-688,416],"parameters":{"options":{},"assignments":{"assignments":[{"id":"departure_airport","name":"departureAirport","type":"string","value":"={{ $json['Departure Airport (IATA Code)'].toUpperCase() }}"},{"id":"destination_city","name":"destination","type":"string","value":"={{ $json['Destination City'] }}"},{"id":"destination_airport","name":"destinationAirport","type":"string","value":"={{ $json['Destination Airport (IATA Code)'].toUpperCase() }}"},{"id":"checkin_date","name":"checkinDate","type":"string","value":"={{ $json['Check-in Date'] }}"},{"id":"checkout_date","name":"checkoutDate","type":"string","value":"={{ $json['Check-out Date'] }}"},{"id":"travelers","name":"travelers","type":"number","value":"={{ $json['Number of Travelers'] }}"}]}},"typeVersion":3.4},{"id":"0109421d-6ef5-41cf-85d1-b8f892ab59bb","name":"Booking.com Scraper","type":"@apify/n8n-nodes-apify.apify","position":[-352,240],"parameters":{"actorId":{"__rl":true,"mode":"list","value":"oeiQgfg5fsmIJB7Cn","cachedResultUrl":"https://console.apify.com/actors/oeiQgfg5fsmIJB7Cn/input","cachedResultName":"Booking Scraper (voyager/booking-scraper)"},"customBody":"={\n  \"search\": \"{{ $json.destination }}\",\n  \"checkIn\": \"{{ $json.checkinDate }}\",\n  \"checkOut\": \"{{ $json.checkoutDate }}\",\n  \"rooms\": 1,\n  \"adults\": {{ $json.travelers }},\n  \"children\": 0,\n  \"currency\": \"USD\",\n  \"language\": \"en-us\",\n  \"maxItems\": 5,\n  \"sortBy\": \"bayesian_review_score\"\n}","actorSource":"store"},"credentials":{"apifyApi":{"id":"murr7tyAFVneGWWl","name":"Apify account"}},"typeVersion":1},{"id":"3b5b153e-5078-49c3-a22d-57bc3221e33a","name":"HTTP Request Hotels","type":"n8n-nodes-base.httpRequest","position":[-80,240],"parameters":{"url":"=https://api.apify.com/v2/datasets/{{ $json.defaultDatasetId }}/items","options":{},"authentication":"genericCredentialType","genericAuthType":"httpQueryAuth"},"credentials":{"httpQueryAuth":{"id":"ksdwxg5JDsoHsUBy","name":"apify"}},"typeVersion":4.2},{"id":"a16337c7-a806-4433-b00a-17603e7abe01","name":"Google Flights Scraper","type":"@apify/n8n-nodes-apify.apify","position":[-352,480],"parameters":{"actorId":{"__rl":true,"mode":"list","value":"1dYHRKkEBHBPd0JM7","cachedResultUrl":"https://console.apify.com/actors/1dYHRKkEBHBPd0JM7/input","cachedResultName":"Google Flights Scraper (johnvc/Google-Flights-Data-Scraper-Flight-and-Price-Search)"},"customBody":"={\n  \"departure_id\": \"{{ $json.departureAirport }}\",\n  \"arrival_id\": \"{{ $json.destinationAirport }}\",\n  \"outbound_date\": \"{{ $json.checkinDate }}\",\n  \"return_date\": \"{{ $json.checkoutDate }}\",\n  \"adults\": {{ $json.travelers }},\n  \"travel_class\": 1,\n  \"currency\": \"USD\"\n}","actorSource":"store"},"credentials":{"apifyApi":{"id":"murr7tyAFVneGWWl","name":"Apify account"}},"typeVersion":1},{"id":"ab18c15d-6213-41a5-a018-5e21d6cda637","name":"HTTP Request Flights","type":"n8n-nodes-base.httpRequest","position":[-80,480],"parameters":{"url":"={{ $json.output.flightResults }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpQueryAuth"},"credentials":{"httpQueryAuth":{"id":"ksdwxg5JDsoHsUBy","name":"apify"}},"typeVersion":4.2},{"id":"9a30f3b5-0dec-444a-a60c-b8f048ac4cad","name":"AI Recommendations","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[-304,720],"parameters":{"text":"=You are a travel expert. Please provide comprehensive travel recommendations for {{ $('Set Variables').item.json.destination }}.\n\nTravel dates: {{ $('Set Variables').item.json.checkinDate }} to {{ $('Set Variables').item.json.checkoutDate }}\nNumber of travelers: {{ $('Set Variables').item.json.travelers }}\n\nPlease provide:\n\n1. **TOP 10 RESTAURANTS** - Include a mix of local cuisine, fine dining, and casual options. For each restaurant provide:\n   - Name\n   - Type of cuisine\n   - Price range ($, $$, $$$, $$$$)\n   - Brief description\n   - Must-try dish\n\n2. **TOP 10 MONUMENTS & HISTORICAL SITES** - Include famous landmarks and hidden gems. For each provide:\n   - Name\n   - Brief history/description\n   - Best time to visit\n   - Estimated visit duration\n   - Entry fee (if any)\n\n3. **TOP 10 PLACES TO VISIT** - Include parks, neighborhoods, markets, viewpoints, etc. For each provide:\n   - Name\n   - Description\n   - Best time to visit\n   - Tips for visitors\n\n4. **LOCAL TIPS** - Provide:\n   - Best transportation options\n   - Local customs to be aware of\n   - Safety tips\n   - Best neighborhoods to stay in\n   - Common scams to avoid\n\n5. **SUGGESTED ITINERARY** - Create a day-by-day suggested itinerary based on the travel dates.\n\nFormat your response in a clear, organized manner with proper sections and bullet points.","promptType":"define"},"typeVersion":1.4},{"id":"bca8f877-e48e-4862-877e-924b0ed70ac2","name":"OpenAI Recommendations Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-224,896],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{},"builtInTools":{}},"credentials":{"openAiApi":{"id":"DQX28WREINIoUWoo","name":"Teo openai"}},"typeVersion":1.3},{"id":"5f433cd4-00c3-454b-a25f-09702f6cc23f","name":"Merge All Data","type":"n8n-nodes-base.merge","position":[240,496],"parameters":{"numberInputs":3},"typeVersion":3},{"id":"08cd8ec8-c779-49b1-a179-6d0738aa1b6e","name":"Process All Data","type":"n8n-nodes-base.code","position":[464,496],"parameters":{"jsCode":"// Get all input items from all inputs\nconst allItems = [];\n\n// Input 0: Hotels from Booking.com HTTP Request\nconst hotelsInput = $input.all().filter((item, index) => {\n  return $('HTTP Request Hotels').all().some(h => h.json === item.json);\n});\n\n// Input 1: Flights from Google Flights HTTP Request  \nconst flightsInput = $input.all().filter((item, index) => {\n  return $('HTTP Request Flights').all().some(f => f.json === item.json);\n});\n\n// Input 2: AI Recommendations\nconst aiInput = $input.all().filter((item, index) => {\n  return $('AI Recommendations').all().some(a => a.json === item.json);\n});\n\n// Get trip details from Set Variables\nconst tripDetails = $('Set Variables').first().json;\n\n// Process Hotels - directly from array\nlet hotels = [];\nfor (const item of $('HTTP Request Hotels').all()) {\n  const data = item.json;\n  \n  // If it's an array of hotels directly\n  if (Array.isArray(data)) {\n    hotels = data.slice(0, 5).map(h => ({\n      name: h.name || 'Unknown Hotel',\n      rating: h.rating || 'N/A',\n      price: h.price ? `$${Math.round(h.price)}` : 'N/A',\n      location: h.address?.full || h.location || 'N/A',\n      url: h.url || null,\n      stars: h.stars || null,\n      reviews: h.reviews || null\n    }));\n  }\n  // If it's a single hotel object with these fields\n  else if (data.name && data.url) {\n    hotels.push({\n      name: data.name,\n      rating: data.rating || 'N/A',\n      price: data.price ? `$${Math.round(data.price)}` : 'N/A',\n      location: data.address?.full || 'N/A',\n      url: data.url,\n      stars: data.stars || null,\n      reviews: data.reviews || null\n    });\n  }\n}\n\n// Limit to top 5 hotels, sorted by rating\nif (hotels.length > 5) {\n  hotels = hotels.sort((a, b) => (b.rating || 0) - (a.rating || 0)).slice(0, 5);\n}\n\n// Process Flights\nlet flights = [];\nfor (const item of $('HTTP Request Flights').all()) {\n  const data = item.json;\n  \n  // Handle array response\n  if (Array.isArray(data)) {\n    for (const flightData of data) {\n      if (flightData.best_flights) {\n        flights = flights.concat(flightData.best_flights.map(f => ({\n          airline: f.flights?.[0]?.airline || 'Unknown',\n          flightNumber: f.flights?.[0]?.flight_number || '',\n          price: flightData.price_insights?.lowest_price || f.price || 'N/A',\n          duration: f.total_duration || 'N/A',\n          stops: (f.flights?.length || 1) - 1,\n          departure: f.flights?.[0]?.departure_airport?.time || 'N/A',\n          arrival: f.flights?.[f.flights?.length - 1]?.arrival_airport?.time || 'N/A',\n          departureAirport: f.flights?.[0]?.departure_airport?.id || '',\n          arrivalAirport: f.flights?.[f.flights?.length - 1]?.arrival_airport?.id || '',\n          airplane: f.flights?.[0]?.airplane || '',\n          // No direct booking URL from Google Flights API\n        })));\n      }\n      if (flightData.other_flights) {\n        flights = flights.concat(flightData.other_flights.slice(0, 2).map(f => ({\n          airline: f.flights?.[0]?.airline || 'Unknown',\n          flightNumber: f.flights?.[0]?.flight_number || '',\n          price: f.price || 'N/A',\n          duration: f.total_duration || 'N/A',\n          stops: (f.flights?.length || 1) - 1,\n          departure: f.flights?.[0]?.departure_airport?.time || 'N/A',\n          arrival: f.flights?.[f.flights?.length - 1]?.arrival_airport?.time || 'N/A',\n          departureAirport: f.flights?.[0]?.departure_airport?.id || '',\n          arrivalAirport: f.flights?.[f.flights?.length - 1]?.arrival_airport?.id || '',\n          airplane: f.flights?.[0]?.airplane || '',\n        })));\n      }\n    }\n  }\n  // Handle single object response\n  else if (data.best_flights) {\n    flights = flights.concat(data.best_flights.map(f => ({\n      airline: f.flights?.[0]?.airline || 'Unknown',\n      flightNumber: f.flights?.[0]?.flight_number || '',\n      price: data.price_insights?.lowest_price || f.price || 'N/A',\n      duration: f.total_duration || 'N/A',\n      stops: (f.flights?.length || 1) - 1,\n      departure: f.flights?.[0]?.departure_airport?.time || 'N/A',\n      arrival: f.flights?.[f.flights?.length - 1]?.arrival_airport?.time || 'N/A',\n      departureAirport: f.flights?.[0]?.departure_airport?.id || '',\n      arrivalAirport: f.flights?.[f.flights?.length - 1]?.arrival_airport?.id || '',\n      airplane: f.flights?.[0]?.airplane || '',\n    })));\n  }\n}\n\n// Limit flights to top 5\nflights = flights.slice(0, 5);\n\n// Process AI Recommendations\nlet recommendations = '';\nfor (const item of $('AI Recommendations').all()) {\n  if (item.json.text) {\n    recommendations = item.json.text;\n  } else if (item.json.output) {\n    recommendations = item.json.output;\n  }\n}\n\nreturn [{\n  json: {\n    tripDetails: {\n      destination: tripDetails.destination,\n      departureAirport: tripDetails.departureAirport,\n      destinationAirport: tripDetails.destinationAirport,\n      checkIn: tripDetails.checkinDate,\n      checkOut: tripDetails.checkoutDate,\n      travelers: tripDetails.travelers\n    },\n    hotels: hotels,\n    flights: flights,\n    recommendations: recommendations,\n    generatedAt: new Date().toISOString()\n  }\n}];"},"typeVersion":2},{"id":"d7efd999-bab6-41c9-844d-dcfc2a5822b3","name":"Create Document","type":"n8n-nodes-base.googleDocs","position":[816,496],"parameters":{"title":"=Travel Plan - {{ $json.tripDetails.departureAirport }} to {{ $json.tripDetails.destinationAirport }} for {{ $json.tripDetails.travelers }} people","folderId":"YOUR_FOLDER_ID"},"credentials":{"googleDocsOAuth2Api":{"id":"uBO7KvVNNtXcLs8T","name":"Google Docs account"}},"typeVersion":2},{"id":"2fc9cb4d-a0bb-4fe3-b964-fdce703d1ce0","name":"Prepare Document Content","type":"n8n-nodes-base.code","position":[1040,496],"parameters":{"jsCode":"const docInfo = $('Create Document').first().json;\nconst travelPlan = $('Process All Data').first().json;\nconst documentId = docInfo.id || docInfo.documentId || docInfo.docId;\n\nlet content = `✈️ TRAVEL PLAN: ${travelPlan.tripDetails.destination}\\n`;\ncontent += `Generated: ${travelPlan.generatedAt}\\n\\n`;\ncontent += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n`;\ncontent += `📋 TRIP DETAILS\\n`;\ncontent += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n`;\ncontent += `From: ${travelPlan.tripDetails.departureAirport}\\n`;\ncontent += `To: ${travelPlan.tripDetails.destinationAirport}\\n`;\ncontent += `Check-in: ${travelPlan.tripDetails.checkIn}\\n`;\ncontent += `Check-out: ${travelPlan.tripDetails.checkOut}\\n`;\ncontent += `Travelers: ${travelPlan.tripDetails.travelers}\\n\\n`;\n\ncontent += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n`;\ncontent += `✈️ FLIGHTS\\n`;\ncontent += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n`;\nif (travelPlan.flights && travelPlan.flights.length > 0) {\n  travelPlan.flights.forEach((f, i) => {\n    content += `${i+1}. ${f.airline} ${f.flightNumber || ''}\\n`;\n    content += `   💰 Price: $${f.price}\\n`;\n    content += `   ⏱️ Duration: ${f.duration} min | ${f.stops} stop(s)\\n`;\n    content += `   🛫 ${f.departure} → 🛬 ${f.arrival}\\n`;\n    if (f.airplane) content += `   ✈️ Aircraft: ${f.airplane}\\n`;\n    content += `\\n`;\n  });\n  content += `🔗 Search flights: https://www.google.com/travel/flights?q=flights%20from%20${travelPlan.tripDetails.departureAirport}%20to%20${travelPlan.tripDetails.destinationAirport}\\n`;\n} else {\n  content += `No flight data available\\n`;\n}\n\ncontent += `\\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n`;\ncontent += `🏨 TOP RECOMMENDED HOTELS\\n`;\ncontent += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n`;\nif (travelPlan.hotels && travelPlan.hotels.length > 0) {\n  travelPlan.hotels.forEach((h, i) => {\n    content += `\\n${i+1}. ${h.name}\\n`;\n    content += `   ⭐ Rating: ${h.rating}/10`;\n    if (h.stars) content += ` (${h.stars}-star)`;\n    if (h.reviews) content += ` - ${h.reviews} reviews`;\n    content += `\\n`;\n    content += `   💰 Price: ${h.price}\\n`;\n    content += `   📍 Location: ${h.location}\\n`;\n    if (h.url) content += `   🔗 Book here: ${h.url}\\n`;\n  });\n} else {\n  content += `No hotel data available\\n`;\n}\n\ncontent += `\\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n`;\ncontent += `🎯 AI RECOMMENDATIONS\\n`;\ncontent += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n`;\ncontent += travelPlan.recommendations || 'No recommendations available';\n\nreturn [{\n  json: {\n    documentId: documentId,\n    documentUrl: `https://docs.google.com/document/d/${documentId}/edit`,\n    content: content\n  }\n}];"},"typeVersion":2},{"id":"cc3d3c09-77a9-4b46-9404-48a172e3d84a","name":"Update Document","type":"n8n-nodes-base.googleDocs","position":[1248,496],"parameters":{"actionsUi":{"actionFields":[{"text":"={{ $json.content }}","action":"insert"}]},"operation":"update","documentURL":"={{ $json.documentId }}"},"credentials":{"googleDocsOAuth2Api":{"id":"uBO7KvVNNtXcLs8T","name":"Google Docs account"}},"typeVersion":2},{"id":"899c6918-0e89-407c-9c41-93113a5cbb74","name":"Prepare Form Ending","type":"n8n-nodes-base.code","position":[1472,496],"parameters":{"jsCode":"// Get the document URL from Prepare Document Content node\nconst preparedData = $('Prepare Document Content').first().json;\n\nreturn [{\n  json: {\n    documentUrl: preparedData.documentUrl\n  }\n}];"},"typeVersion":2},{"id":"cafd3d14-46ac-4845-9ba6-4ff2656a71f0","name":"Form Ending","type":"n8n-nodes-base.form","position":[1696,496],"webhookId":"3caa2ff7-aceb-431f-be7b-985ac55668f7","parameters":{"options":{},"operation":"completion","completionTitle":"✅ Your travel plan is ready!","completionMessage":"=📄 View your document here:\n\n{{ $json.documentUrl }}\n\nYour personalized travel plan includes:\n• Top 3 recommended hotels\n• Available flights\n• Restaurant recommendations\n• Must-see monuments & attractions\n• Local tips & suggested itinerary\n\nEnjoy your trip! ✈️🌍"},"typeVersion":2.4},{"id":"84c80c0b-f354-43a1-a0a3-527f7680e916","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1408,16],"parameters":{"width":460,"height":920,"content":"## Try It Out!\n### Collect travel details via a form, then scrape flights and hotels while AI generates recommendations — all compiled into a Google Doc.\n\nGreat for travel agencies, personal trip planning, or any service that needs to deliver a complete travel brief automatically.\n\n### How it works\n* User submits a travel form with airports, dates, and number of travelers.\n* Three parallel tasks run: Booking.com hotel scraping, Google Flights scraping, and OpenAI recommendation generation.\n* Results are merged, formatted, and written to a new Google Doc.\n* The user receives a link to their personalized travel plan.\n\n### Setup steps\n* Create an [Apify](https://apify.com) account and add your API token as both an \"Apify API\" credential and an \"HTTP Query Auth\" credential (parameter name: `token`).\n* Add your OpenAI API key as an \"OpenAI\" credential.\n* Connect Google Docs via OAuth2 and update the `folderId` in the \"Create Document\" node.\n* Activate the workflow and share the form URL.\n\n### Requirements\n* Apify account (for Booking.com and Google Flights scrapers)\n* OpenAI API key\n* Google account with Docs and Drive access\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"},"typeVersion":1},{"id":"edb7e1c3-61b9-482d-b953-00328f402eec","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-928,192],"parameters":{"color":7,"width":440,"height":420,"content":"## 1. Trigger and input\nThe form collects departure/destination airports, dates, and traveler count. The Set node normalizes these into variables used by all downstream nodes."},"typeVersion":1},{"id":"389ecca6-1893-4e00-b38f-8314f1b62af2","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-432,32],"parameters":{"color":7,"width":500,"height":660,"content":"## 2. Parallel data fetching\n[Apify integration docs](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-apify/)\n\nThree tasks run in parallel: Booking.com scrapes top 5 hotels by review score, Google Flights scrapes the best flights, and OpenAI generates restaurant, attraction, and itinerary recommendations."},"typeVersion":1},{"id":"3c7f0f3a-10de-4e6c-bd88-f89aebfb05a1","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[208,288],"parameters":{"color":7,"width":480,"height":420,"content":"## 3. Merge and process\nAll three data streams are merged into a single item. The Code node structures hotels, flights, and AI recommendations into a clean object for the Google Doc."},"typeVersion":1},{"id":"d13a3f3e-fa66-451f-a733-6bde3e4789b6","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[784,288],"parameters":{"color":7,"width":1120,"height":420,"content":"## 4. Generate Google Doc and respond\n[Google Docs node docs](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googledocs/)\n\nA new Google Doc is created, populated with the formatted travel plan, and the form completion page returns the document link to the user."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","availableInMCP":false,"executionOrder":"v1"},"versionId":"e0c24208-6d3e-4cfe-96a2-b008d62805fe","connections":{"Travel Form":{"main":[[{"node":"Set Variables","type":"main","index":0}]]},"Set Variables":{"main":[[{"node":"Booking.com Scraper","type":"main","index":0},{"node":"Google Flights Scraper","type":"main","index":0},{"node":"AI Recommendations","type":"main","index":0}]]},"Merge All Data":{"main":[[{"node":"Process All Data","type":"main","index":0}]]},"Create Document":{"main":[[{"node":"Prepare Document Content","type":"main","index":0}]]},"Update Document":{"main":[[{"node":"Prepare Form Ending","type":"main","index":0}]]},"Process All Data":{"main":[[{"node":"Create Document","type":"main","index":0}]]},"AI Recommendations":{"main":[[{"node":"Merge All Data","type":"main","index":2}]]},"Booking.com Scraper":{"main":[[{"node":"HTTP Request Hotels","type":"main","index":0}]]},"HTTP Request Hotels":{"main":[[{"node":"Merge All Data","type":"main","index":0}]]},"Prepare Form Ending":{"main":[[{"node":"Form Ending","type":"main","index":0}]]},"HTTP Request Flights":{"main":[[{"node":"Merge All Data","type":"main","index":1}]]},"Google Flights Scraper":{"main":[[{"node":"HTTP Request Flights","type":"main","index":0}]]},"Prepare Document Content":{"main":[[{"node":"Update Document","type":"main","index":0}]]},"OpenAI Recommendations Model":{"ai_languageModel":[[{"node":"AI Recommendations","type":"ai_languageModel","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":20,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.form":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.googleDocs":{"count":2},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.formTrigger":{"count":1},"n8n-nodes-base.httpRequest":{"count":2},"@apify/n8n-nodes-apify.apify":{"count":2},"@n8n/n8n-nodes-langchain.chainLlm":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Theodoros Mastromanolis","username":"teomastro","bio":"Software Engineer, Greece","verified":true,"links":["https://teomastro.com/"],"avatar":"https://gravatar.com/avatar/c6cdc90428b7945c9b4d04fdc5f5922c7cac54304d6d18a114d13a1986cd7085?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":495,"icon":"file:googleDocs.svg","name":"n8n-nodes-base.googleDocs","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googledocs/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Miscellaneous"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Google Docs"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSItMTggMCA5MCA4MCI+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iLjUiIHk9Ii41Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzU0OGRmNiIgZD0ibTM2IDAgMjIgMjJ2NTNhNC45OSA0Ljk5IDAgMCAxLTUgNUg1YTQuOTkgNC45OSAwIDAgMS01LTVWNWE0Ljk5IDQuOTkgMCAwIDEgNS01eiIvPjxwYXRoIGQ9Ik0xNCA0MGgzMHYzSDE0em0wIDdoMzB2M0gxNHptMCA4aDMwdjNIMTR6bTAgN2gyMXYzSDE0eiIvPjxwYXRoIGZpbGw9IiNhYmQwZmIiIGQ9Im0zNiAwIDIyIDIySDQxYy0yLjc3IDAtNS0yLjQ4LTUtNS4yNXoiLz48cGF0aCBmaWxsPSIjM2U1YmI5IiBkPSJNNDAuNzUgMjIgNTggMjkuMTI1VjIyeiIvPjwvZz48L3N5bWJvbD48L3N2Zz4="},"displayName":"Google Docs","typeVersion":2,"nodeCategories":[{"id":11,"name":"Miscellaneous"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":1123,"icon":"fa:link","name":"@n8n/n8n-nodes-langchain.chainLlm","codex":{"data":{"alias":["LangChain"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Chains","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Basic LLM Chain","color":"#909298"},"iconData":{"icon":"link","type":"icon"},"displayName":"Basic LLM Chain","typeVersion":2,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1225,"icon":"file:form.svg","name":"n8n-nodes-base.formTrigger","codex":{"data":{"alias":["table","submit","post"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"On form submission"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form Trigger","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1274,"icon":"file:form.svg","name":"n8n-nodes-base.form","codex":{"data":{"alias":["_Form","form","table","submit","post","page","step","stage","multi"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.form/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Form"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":45,"name":"Miscellaneous"},{"id":51,"name":"Multimodal AI"}],"image":[]}}