Files
n8n-workspace/Booking (receiver).json
2001-01-01 00:00:00 +00:00

200 lines
9.3 KiB
JSON

{
"updatedAt": "2026-08-09T18:54:47.787Z",
"createdAt": "2026-07-25T04:55:57.932Z",
"id": "b84Fmd6xTFjt0A8D",
"name": "Booking (receiver)",
"active": true,
"isArchived": false,
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "booking-result",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2.1,
"position": [
0,
0
],
"id": "8dc9e219-bacc-452e-adaf-35fc4903548d",
"name": "Webhook",
"webhookId": "3ddfdc90-2a1a-4d22-8017-d5ee79ba6099"
},
{
"parameters": {
"jsCode": "// Unterstützt sowohl $input.item.json.body (Webhook) als auch $input.item.json direkt\nconst payload = $input.item.json.body || $input.item.json;\n\nconst rawPrice = payload.price;\nconst hotelName = payload.hotelName || \"Unbekanntes Hotel\";\n\n// Falls kein Preis gefunden wurde, senden wir die Hotel-Info trotzdem mit (hilft beim Debugging in n8n)\nif (!rawPrice) {\n return [{\n json: {\n success: false,\n reason: \"Kein Preis im Payload gefunden\",\n hotelName: hotelName,\n url: payload.url,\n timestamp: payload.timestamp || new Date().toISOString()\n }\n }];\n}\n\n// Preis bereinigen (z. B. \"€ 1.017\" -> 1017 oder \"1.016,70 €\" -> 1016.7)\nlet cleanPrice = null;\n\nif (rawPrice.includes(',')) {\n // Deutsche Formate mit Cents (z. B. \"1.016,70 €\" -> 1016.70)\n const normalized = rawPrice.replace(/\\./g, '').replace(',', '.').replace(/[^\\d.]/g, '');\n cleanPrice = parseFloat(normalized);\n} else {\n // Ganzzahlen (z. B. \"€ 1.017\" -> 1017)\n cleanPrice = parseInt(rawPrice.replace(/[^\\d]/g, ''), 10);\n}\n\n// Vollständiges Ergebnis an n8n zurückgeben\nreturn [{\n json: {\n success: true,\n jobId: payload.jobId,\n hotelName: hotelName,\n cleanPrice: cleanPrice,\n rawPrice: rawPrice,\n geniusPrice: cleanPrice*0.90,\n rating: payload.rating,\n reviewCount: payload.reviewCount,\n address: payload.address,\n image: payload.image,\n url: payload.url,\n timestamp: payload.timestamp\n }\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
208,
0
],
"id": "fed7037a-ae62-44b4-8d0b-7c51ff6675d0",
"name": "Code in JavaScript"
},
{
"parameters": {
"chatId": "302560724",
"text": "=Hotel Update\n\n*{{ $json.hotelName }}*\nPreis: {{ $json.cleanPrice }} € (Rohwert: {{ $json.rawPrice }}, -10%: {{$json.geniusPrice}} € )\nBewertung: {{ $json.rating }} ({{ $json.reviewCount }} Bewertungen)\nAdresse: {{ $json.address }}\n\n[Auf Booking.com ansehen]({{ $json.url }})",
"additionalFields": {
"appendAttribution": false,
"parse_mode": "Markdown"
}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
592,
0
],
"id": "4273d21f-06f5-4438-bb04-660082203602",
"name": "Send a text message",
"webhookId": "96f70b22-e539-4570-9430-46f8c9b98bf3",
"credentials": {
"telegramApi": {
"id": "0VfHBSP6pKSlq4f8",
"name": "scraperservicebot"
}
}
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1",
"binaryMode": "separate"
},
"staticData": null,
"meta": {
"templateCredsSetupCompleted": true
},
"pinData": {},
"versionId": "a02b8fb4-b954-444b-a9f6-9a3a8021fd66",
"activeVersionId": "a02b8fb4-b954-444b-a9f6-9a3a8021fd66",
"triggerCount": 1,
"shared": [
{
"updatedAt": "2026-07-25T04:55:57.934Z",
"createdAt": "2026-07-25T04:55:57.934Z",
"role": "workflow:owner",
"workflowId": "b84Fmd6xTFjt0A8D",
"projectId": "cSAaWNJydnksD5EB"
}
],
"activeVersion": {
"updatedAt": "2026-07-25T06:52:16.000Z",
"createdAt": "2026-07-25T06:46:46.092Z",
"versionId": "a02b8fb4-b954-444b-a9f6-9a3a8021fd66",
"workflowId": "b84Fmd6xTFjt0A8D",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "booking-result",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2.1,
"position": [
0,
0
],
"id": "8dc9e219-bacc-452e-adaf-35fc4903548d",
"name": "Webhook",
"webhookId": "3ddfdc90-2a1a-4d22-8017-d5ee79ba6099"
},
{
"parameters": {
"jsCode": "// Unterstützt sowohl $input.item.json.body (Webhook) als auch $input.item.json direkt\nconst payload = $input.item.json.body || $input.item.json;\n\nconst rawPrice = payload.price;\nconst hotelName = payload.hotelName || \"Unbekanntes Hotel\";\n\n// Falls kein Preis gefunden wurde, senden wir die Hotel-Info trotzdem mit (hilft beim Debugging in n8n)\nif (!rawPrice) {\n return [{\n json: {\n success: false,\n reason: \"Kein Preis im Payload gefunden\",\n hotelName: hotelName,\n url: payload.url,\n timestamp: payload.timestamp || new Date().toISOString()\n }\n }];\n}\n\n// Preis bereinigen (z. B. \"€ 1.017\" -> 1017 oder \"1.016,70 €\" -> 1016.7)\nlet cleanPrice = null;\n\nif (rawPrice.includes(',')) {\n // Deutsche Formate mit Cents (z. B. \"1.016,70 €\" -> 1016.70)\n const normalized = rawPrice.replace(/\\./g, '').replace(',', '.').replace(/[^\\d.]/g, '');\n cleanPrice = parseFloat(normalized);\n} else {\n // Ganzzahlen (z. B. \"€ 1.017\" -> 1017)\n cleanPrice = parseInt(rawPrice.replace(/[^\\d]/g, ''), 10);\n}\n\n// Vollständiges Ergebnis an n8n zurückgeben\nreturn [{\n json: {\n success: true,\n jobId: payload.jobId,\n hotelName: hotelName,\n cleanPrice: cleanPrice,\n rawPrice: rawPrice,\n geniusPrice: cleanPrice*0.90,\n rating: payload.rating,\n reviewCount: payload.reviewCount,\n address: payload.address,\n image: payload.image,\n url: payload.url,\n timestamp: payload.timestamp\n }\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
208,
0
],
"id": "fed7037a-ae62-44b4-8d0b-7c51ff6675d0",
"name": "Code in JavaScript"
},
{
"parameters": {
"chatId": "302560724",
"text": "=Hotel Update\n\n*{{ $json.hotelName }}*\nPreis: {{ $json.cleanPrice }} € (Rohwert: {{ $json.rawPrice }}, -10%: {{$json.geniusPrice}} € )\nBewertung: {{ $json.rating }} ({{ $json.reviewCount }} Bewertungen)\nAdresse: {{ $json.address }}\n\n[Auf Booking.com ansehen]({{ $json.url }})",
"additionalFields": {
"appendAttribution": false,
"parse_mode": "Markdown"
}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
592,
0
],
"id": "4273d21f-06f5-4438-bb04-660082203602",
"name": "Send a text message",
"webhookId": "96f70b22-e539-4570-9430-46f8c9b98bf3",
"credentials": {
"telegramApi": {
"id": "0VfHBSP6pKSlq4f8",
"name": "scraperservicebot"
}
}
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"index": 0
}
]
]
}
},
"authors": "Prasanna Ranjan",
"name": "Version a02b8fb4",
"description": "",
"autosaved": true
},
"tags": []
}