GPT-Flugangebot-Analysator in Echtzeit: automatisch scrapen, bewerten und auf WordPress veröffentlichen
Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 19 Nodes. Hauptsächlich werden Set, Html, Slack, Wordpress, FormTrigger und andere Nodes verwendet. Fluggutschein-Analysator mit GPT, Google Flügen und WordPress, inklusive Wetterdaten
- •Slack Bot Token oder Webhook URL
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
- •OpenAI API Key
Verwendete Nodes (19)
Kategorie
{
"id": "VQW0RtIUeCMJ7yjt",
"meta": {
"instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502",
"templateCredsSetupCompleted": true
},
"name": "GPT-Realtime Flight Deal Analyzer: Auto-Scrape, Evaluate & Publish to WordPress",
"tags": [],
"nodes": [
{
"id": "f1712506-beee-4416-9654-19be82d7840f",
"name": "Eingabeformular Benutzer",
"type": "n8n-nodes-base.formTrigger",
"position": [
-1200,
416
],
"webhookId": "9dd4fdea-0ac3-46d7-8652-986eb07af62a",
"parameters": {
"path": "japan-flight-analyzer",
"options": {},
"formTitle": "Japan Flight Price Analyzer",
"formFields": {
"values": [
{
"fieldLabel": "Departure City",
"requiredField": true
},
{
"fieldLabel": "Preferred Month (e.g., January, February)",
"requiredField": true
},
{
"fieldType": "number",
"fieldLabel": "Maximum Budget (USD)",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Flexible Dates?",
"fieldOptions": {
"values": [
{
"option": "Yes"
},
{
"option": "No"
}
]
},
"requiredField": true
}
]
},
"responseMode": "responseNode",
"formDescription": "Enter your travel preferences to find the cheapest flights to Japan"
},
"typeVersion": 2.1
},
{
"id": "22959199-f3dd-48b8-8045-c0e0f1417098",
"name": "Formulardaten extrahieren",
"type": "n8n-nodes-base.set",
"position": [
-976,
416
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "8f3a4c1d-2e5b-4f9c-8d6a-1b2c3d4e5f6a",
"name": "departureCity",
"type": "string",
"value": "={{ $json.departureCity }}"
},
{
"id": "9g4b5d2e-3f6c-5g0d-9e7b-2c3d4e5f6g7h",
"name": "preferredMonth",
"type": "string",
"value": "={{ $json.preferredMonth }}"
},
{
"id": "0h5c6e3f-4g7d-6h1e-0f8c-3d4e5f6g7h8i",
"name": "maxBudget",
"type": "number",
"value": "={{ $json.maxBudget }}"
},
{
"id": "1i6d7f4g-5h8e-7i2f-1g9d-4e5f6g7h8i9j",
"name": "flexibleDates",
"type": "string",
"value": "={{ $json.flexibleDates }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d3ff8f1d-79b4-4885-b4de-0c6d9a9e7774",
"name": "Flugpreise erfassen",
"type": "n8n-nodes-base.httpRequest",
"position": [
-752,
416
],
"parameters": {
"url": "https://www.google.com/travel/flights",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "q",
"value": "=flights to Tokyo Japan from {{ $json.departureCity }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "ffd6909a-9826-404e-93a6-30a8d387a450",
"name": "Flugdaten extrahieren",
"type": "n8n-nodes-base.html",
"position": [
-528,
416
],
"parameters": {
"options": {},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "e86841f8-1a3c-4885-be51-0ce817b14af8",
"name": "AI-Eingabe vorbereiten",
"type": "n8n-nodes-base.set",
"position": [
-304,
416
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2j7e8g5h-6i9f-8j3g-2h0e-5f6g7h8i9j0k",
"name": "flightData",
"type": "string",
"value": "={{ $json.body }}"
},
{
"id": "3k8f9h6i-7j0g-9k4h-3i1f-6g7h8i9j0k1l",
"name": "userPreferences",
"type": "string",
"value": "=Departure: {{ $('Extract Form Data').item.json.departureCity }}, Month: {{ $('Extract Form Data').item.json.preferredMonth }}, Budget: ${{ $('Extract Form Data').item.json.maxBudget }}, Flexible: {{ $('Extract Form Data').item.json.flexibleDates }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9b74c540-e201-4358-bed1-c649b00aa26b",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
592,
688
],
"parameters": {
"model": "gpt-realtime",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "mv2ECvRtbAK63G2g",
"name": "OpenAi account"
}
},
"typeVersion": 1
},
{
"id": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
"name": "AI-Fluganalysator",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
592,
416
],
"parameters": {
"text": "=You are a travel data analyst specializing in flight pricing and weather-based travel planning.\n\nAnalyze the following flight data, user preferences, and real-time weather forecasts to identify:\n1. The cheapest available flight options to Japan (Tokyo, Osaka, Sapporo)\n2. Optimal travel periods based on price trends AND weather conditions\n3. Whether the user's budget is realistic\n4. Weather-based recommendations for activities and packing\n5. Best booking strategies considering seasonal weather patterns\n\nCombined Data:\n{{ $json.combinedData }}\n\nProvide a comprehensive analysis with:\n- Cheapest flights found (price, dates, airline)\n- Recommended travel periods with weather insights\n- Budget analysis\n- Weather-appropriate travel tips\n- Seasonal activity recommendations\n- Alternative airports or routes if beneficial",
"options": {
"systemMessage": "You are an expert travel analyst. Provide clear, actionable insights about flight prices and travel recommendations."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "73e0589c-fe21-4fcd-aa71-f8d66e9a684e",
"name": "Strukturierter Ausgabe-Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
728,
640
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "5d5a0e60-769c-47e9-b3a0-0da9e5cd9374",
"name": "Analyseergebnisse formatieren",
"type": "n8n-nodes-base.set",
"position": [
944,
416
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "4l9g0i7j-8k1h-0l5i-4j2g-7h8i9j0k1l2m",
"name": "aiAnalysis",
"type": "string",
"value": "={{ $json.output }}"
},
{
"id": "5m0h1j8k-9l2i-1m6j-5k3h-8i9j0k1l2m3n",
"name": "userEmail",
"type": "string",
"value": "={{ $('User Input Form').item.json.submittedAt }}"
},
{
"id": "6n1i2k9l-0m3j-2n7k-6l4i-9j0k1l2m3n4o",
"name": "weatherData",
"type": "object",
"value": "={{ $('Parse Weather Data').item.json }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "85fdefe0-5e22-46ac-9850-abc01e1e5ac7",
"name": "An Slack senden",
"type": "n8n-nodes-base.slack",
"position": [
1168,
224
],
"webhookId": "b28fd4b2-1063-482f-87cb-aeabb8e075ad",
"parameters": {
"text": "=🛫 *Japan Flight Analysis Complete!*\n\n*Search Criteria:*\nFrom: {{ $('Extract Form Data').item.json.departureCity }}\nMonth: {{ $('Extract Form Data').item.json.preferredMonth }}\nBudget: ${{ $('Extract Form Data').item.json.maxBudget }}\n\n*Current Weather in Japan:*\n🌡️ Tokyo: {{ $('Parse Weather Data').item.json.tokyoWeather.temperature_2m }}°C\n🌡️ Osaka: {{ $('Parse Weather Data').item.json.osakaWeather.temperature_2m }}°C\n🌡️ Sapporo: {{ $('Parse Weather Data').item.json.sapporoWeather.temperature_2m }}°C\n\n*AI Analysis:*\n{{ $json.aiAnalysis }}\n\n---\nAnalysis generated at: {{ $now.toLocaleString() }}",
"otherOptions": {}
},
"typeVersion": 2.2
},
{
"id": "eae457f3-c26c-4cdd-8c28-ae30906c90d8",
"name": "Auf WordPress veröffentlichen",
"type": "n8n-nodes-base.wordpress",
"position": [
1168,
416
],
"parameters": {
"title": "=Best Time to Visit Japan - {{ $('Extract Form Data').item.json.preferredMonth }} Analysis",
"additionalFields": {
"categories": [
"Travel",
"Japan",
"Flight Deals"
]
}
},
"typeVersion": 1
},
{
"id": "3a055535-f7a6-4c40-a332-1aac3cf1d7e3",
"name": "Benutzer antworten",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
1168,
608
],
"parameters": {
"options": {},
"respondWith": "text",
"responseBody": "=✅ Your Japan flight analysis with weather forecast is complete!\n\n*Current Weather Conditions:*\nTokyo: {{ $('Parse Weather Data').item.json.tokyoWeather.temperature_2m }}°C\nOsaka: {{ $('Parse Weather Data').item.json.osakaWeather.temperature_2m }}°C\nSapporo: {{ $('Parse Weather Data').item.json.sapporoWeather.temperature_2m }}°C\n\n*Flight & Travel Analysis:*\n{{ $json.aiAnalysis }}\n\nWe've also:\n- Posted the detailed analysis with weather insights to our blog\n- Sent a summary to our Slack channel\n\nThank you for using our service!"
},
"typeVersion": 1.1
},
{
"id": "4eec3335-0910-4bc5-a628-c348e393e71f",
"name": "Wetterdaten abrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
-80,
488
],
"parameters": {
"url": "https://api.open-meteo.com/v1/forecast",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "latitude",
"value": "35.6762,34.6937,43.0642"
},
{
"name": "longitude",
"value": "139.6503,135.5023,141.3469"
},
{
"name": "current",
"value": "temperature_2m,weather_code,wind_speed_10m"
},
{
"name": "daily",
"value": "temperature_2m_max,temperature_2m_min,precipitation_sum,weather_code"
},
{
"name": "forecast_days",
"value": "7"
},
{
"name": "timezone",
"value": "Asia/Tokyo"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "4ac42cfa-b298-4592-a6a5-925276d83052",
"name": "Wetterdaten parsen",
"type": "n8n-nodes-base.set",
"position": [
144,
488
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"name": "tokyoWeather",
"type": "object",
"value": "={{ $json.current[0] }}"
},
{
"name": "osakaWeather",
"type": "object",
"value": "={{ $json.current[1] }}"
},
{
"name": "sapporoWeather",
"type": "object",
"value": "={{ $json.current[2] }}"
},
{
"name": "weatherForecast",
"type": "object",
"value": "={{ $json.daily }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "eb0e253e-9212-49c1-b9cb-cd98b09180f4",
"name": "AI-Eingabe mit Wetter anreichern",
"type": "n8n-nodes-base.set",
"position": [
368,
488
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"name": "combinedData",
"type": "string",
"value": "=Flight Data:\n{{ $('Prepare AI Input').item.json.flightData }}\n\nUser Preferences:\n{{ $('Prepare AI Input').item.json.userPreferences }}\n\nReal-Time Weather in Japan:\nTokyo: {{ $json.tokyoWeather.temperature_2m }}°C, Wind: {{ $json.tokyoWeather.wind_speed_10m }} km/h\nOsaka: {{ $json.osakaWeather.temperature_2m }}°C, Wind: {{ $json.osakaWeather.wind_speed_10m }} km/h\nSapporo: {{ $json.sapporoWeather.temperature_2m }}°C, Wind: {{ $json.sapporoWeather.wind_speed_10m }} km/h\n\n7-Day Forecast Summary:\n{{ JSON.stringify($json.weatherForecast) }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5a6ef54e-768b-4dfc-bc07-62cc968da7e1",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1232,
-16
],
"parameters": {
"width": 1040,
"height": 352,
"content": "## Introduction\nAutomates flight deal discovery and intelligent analysis for travel bloggers and deal hunters. Scrapes live pricing, enriches with weather data, applies AI evaluation, and auto-publishes to WordPress—eliminating manual research and accelerating content delivery.\n\n## How It Works\nUser submits route via form, scrapes real-time flight prices and weather data, AI analyzes deal quality considering weather conditions, formats results, publishes to WordPress, sends Slack notification—fully automated from input to publication.\n\n## Workflow Template\nForm Input → Extract Data → Scrape Flight Prices → Extract Pricing → Fetch Weather → Parse Weather → Prepare AI Input → AI Analysis → Parse Output → Format Results → Publish WordPress → Slack Alert → User Response\n\n\n\n"
},
"typeVersion": 1
},
{
"id": "ec131a77-255a-4352-a1e0-5e8f1135c9a3",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
-32
],
"parameters": {
"color": 5,
"width": 720,
"height": 432,
"content": "## Prerequisites\nn8n instance, Google Flights access, weather API key, OpenAI/compatible AI service, WordPress site with API access, Slack workspace\n\n## Use Cases\nTravel blog automation, flight deal newsletters, price comparison services, seasonal travel planning, destination weather analysis, automated social media content\n\n## Customization\nModify AI analysis criteria, adjust weather impact weighting, customize WordPress post templates, add email distribution, integrate additional data sources, expand to hotel/rental deals\n\n## Benefits\nEliminates manual price checking, combines multiple data sources automatically, delivers AI-enhanced insights, accelerates publishing workflow, scales across unlimited routes, provides weather-aware recommendations"
},
"typeVersion": 1
},
{
"id": "37b94a42-06bd-476a-9216-c34314ebfbd3",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1216,
576
],
"parameters": {
"color": 3,
"width": 752,
"height": 144,
"content": "## Setup Instructions\n1. **Form Setup:** Configure user input fields for flight routes and preferences\n2. **APIs:** Connect Google Flights scraping endpoint, weather API credentials, OpenAI/Chat Model API key\n3. **Publishing:** Set WordPress credentials, target blog category, Slack webhook URL\n4. **AI Configuration:** Define analysis prompts, output structure, parser rules\n"
},
"typeVersion": 1
},
{
"id": "e09e7cfe-b73f-4a8e-9d2c-04f482bb9951",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-176,
-16
],
"parameters": {
"color": 4,
"width": 320,
"height": 272,
"content": "## Workflow Steps\n1. **Data Collection:** Form captures route, scrapes Google Flights pricing, fetches destination weather via API\n2. **AI Processing:** Enriches flight data with weather context, analyzes deal quality using OpenAI/Chat Model with structured output parsing\n3. **Publishing:** Formats analysis results, creates WordPress post, sends Slack notification, delivers response to user\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "a37e634d-2ee9-40b9-8547-9bfc40faa6d7",
"connections": {
"f1712506-beee-4416-9654-19be82d7840f": {
"main": [
[
{
"node": "22959199-f3dd-48b8-8045-c0e0f1417098",
"type": "main",
"index": 0
}
]
]
},
"e86841f8-1a3c-4885-be51-0ce817b14af8": {
"main": [
[
{
"node": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
"type": "main",
"index": 0
},
{
"node": "4eec3335-0910-4bc5-a628-c348e393e71f",
"type": "main",
"index": 0
}
]
]
},
"22959199-f3dd-48b8-8045-c0e0f1417098": {
"main": [
[
{
"node": "d3ff8f1d-79b4-4885-b4de-0c6d9a9e7774",
"type": "main",
"index": 0
}
]
]
},
"9b74c540-e201-4358-bed1-c649b00aa26b": {
"ai_languageModel": [
[
{
"node": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"c6707ac3-8c1e-4b2d-bd22-efe043a8dc64": {
"main": [
[
{
"node": "5d5a0e60-769c-47e9-b3a0-0da9e5cd9374",
"type": "main",
"index": 0
}
]
]
},
"4eec3335-0910-4bc5-a628-c348e393e71f": {
"main": [
[
{
"node": "4ac42cfa-b298-4592-a6a5-925276d83052",
"type": "main",
"index": 0
}
]
]
},
"4ac42cfa-b298-4592-a6a5-925276d83052": {
"main": [
[
{
"node": "eb0e253e-9212-49c1-b9cb-cd98b09180f4",
"type": "main",
"index": 0
}
]
]
},
"ffd6909a-9826-404e-93a6-30a8d387a450": {
"main": [
[
{
"node": "e86841f8-1a3c-4885-be51-0ce817b14af8",
"type": "main",
"index": 0
}
]
]
},
"d3ff8f1d-79b4-4885-b4de-0c6d9a9e7774": {
"main": [
[
{
"node": "ffd6909a-9826-404e-93a6-30a8d387a450",
"type": "main",
"index": 0
}
]
]
},
"5d5a0e60-769c-47e9-b3a0-0da9e5cd9374": {
"main": [
[
{
"node": "85fdefe0-5e22-46ac-9850-abc01e1e5ac7",
"type": "main",
"index": 0
},
{
"node": "eae457f3-c26c-4cdd-8c28-ae30906c90d8",
"type": "main",
"index": 0
},
{
"node": "3a055535-f7a6-4c40-a332-1aac3cf1d7e3",
"type": "main",
"index": 0
}
]
]
},
"73e0589c-fe21-4fcd-aa71-f8d66e9a684e": {
"ai_outputParser": [
[
{
"node": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"eb0e253e-9212-49c1-b9cb-cd98b09180f4": {
"main": [
[
{
"node": "c6707ac3-8c1e-4b2d-bd22-efe043a8dc64",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Content-Erstellung, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Cheng Siong Chin
@cschinDr. Cheng Siong CHIN serves as a Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.
Diesen Workflow teilen