diff --git a/Travel-App (Trigger).json b/Travel-App (Trigger).json new file mode 100644 index 0000000..ce24fc1 --- /dev/null +++ b/Travel-App (Trigger).json @@ -0,0 +1,885 @@ +{ + "updatedAt": "2026-08-09T20:46:43.000Z", + "createdAt": "2026-08-09T20:43:23.999Z", + "id": "doN3KThk2oqKsAHn", + "name": "Travel-App (Trigger)", + "active": false, + "isArchived": true, + "nodes": [ + { + "parameters": { + "method": "POST", + "url": "http://192.168.178.133:3001/searches/add", + "sendBody": true, + "bodyParameters": { + "parameters": [ + { + "name": "chatId", + "value": "={{ $('Telegram Trigger').item.json.message.chat.id }}" + }, + { + "name": "query", + "value": "={{ $('Edit Fields').item.json.positiveKeyword}}" + }, + { + "name": "negativeKeywords", + "value": "={{ $('Edit Fields').item.json.negativeKeywords }}" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.4, + "position": [ + 464, + -160 + ], + "id": "b62c99a2-4ad2-445a-995e-d6c186ce1c6d", + "name": "HTTP Request" + }, + { + "parameters": { + "rules": { + "values": [ + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 3 + }, + "conditions": [ + { + "leftValue": "={{ $('Telegram Trigger').item.json.message.text.split(/\\s+/)[0] }}", + "rightValue": "/add", + "operator": { + "type": "string", + "operation": "equals" + }, + "id": "e8bd8b22-bfe4-445b-8874-df28d37430d1" + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "/add" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 3 + }, + "conditions": [ + { + "id": "32dcfdef-6614-491e-b611-41f8fa942824", + "leftValue": "={{ $('Telegram Trigger').item.json.message.text.split(/\\s+/)[0] }}", + "rightValue": "/addseller", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "/addseller" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 3 + }, + "conditions": [ + { + "id": "de8d96a8-f966-4ce1-b8aa-b5f3fa74139d", + "leftValue": "={{ $('Telegram Trigger').item.json.message.text.split(/\\s+/)[0] }}", + "rightValue": "/searches", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "/searches" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 3 + }, + "conditions": [ + { + "id": "966937a6-0cad-4318-bc88-2a71e2fcb45e", + "leftValue": "={{ $('Telegram Trigger').item.json.message.text.split(/\\s+/)[0] }}", + "rightValue": "/edit", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "/edit" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 3 + }, + "conditions": [ + { + "id": "9320369c-fe7b-4e75-9738-b711fa484714", + "leftValue": "={{ $('Telegram Trigger').item.json.message.text.split(/\\s+/)[0] }}", + "rightValue": "/delete", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "/delete" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.switch", + "typeVersion": 3.4, + "position": [ + 16, + 96 + ], + "id": "abde6ad8-883b-4783-88b7-8b572e6e47c5", + "name": "Switch" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "51c90eec-93b9-4eab-9e0d-281ece7b3c26", + "name": "positiveKeyword", + "value": "={{ $json.message.text.trim().match(/^\\/add\\s+(.*?)(?=\\s-|$)/)?.[1]}}", + "type": "string" + }, + { + "id": "07598e9f-8cca-4646-80f2-d194fcbf228d", + "name": "negativeKeywords", + "value": "={{ $json.message.text.trim().match(/-.*/)?.[0].split(/\\s/).map(w => w.replace(/^-/, '')) }}", + "type": "string" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [ + 240, + -160 + ], + "id": "ca1e01ef-47a1-4b7f-9b35-5b74e63e2f8d", + "name": "Edit Fields" + }, + { + "parameters": { + "method": "POST", + "url": "http://192.168.178.133:3001/sellers/add", + "sendBody": true, + "bodyParameters": { + "parameters": [ + { + "name": "sellers", + "value": "={{ $('Edit Fields1').item.json.sellerTerm}}" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.4, + "position": [ + 464, + 32 + ], + "id": "f7881a47-86a4-45f5-93fc-30a53b391994", + "name": "HTTP Request1" + }, + { + "parameters": { + "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}", + "text": "=🏬 *Verkäufer-Suche für \"{{ $('Switch').item.json.positiveKeyword}}\"*\n\n{{ $('HTTP Request1').item.json.message }}\n\n📋 *Gefundene Verkäufer:*\n{{ $('HTTP Request1').item.json.allFound.join('\\n• ') }}", + "additionalFields": {} + }, + "type": "n8n-nodes-base.telegram", + "typeVersion": 1.2, + "position": [ + 688, + 32 + ], + "id": "d95e7d4c-4821-445f-a458-2332a133d68c", + "name": "Send a text message", + "webhookId": "9ee73736-1928-48f5-a939-be01a81b0508", + "credentials": { + "telegramApi": { + "id": "rDFxPFGGKagsBKLV", + "name": "Telegram eBayNotifyBot" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "51c90eec-93b9-4eab-9e0d-281ece7b3c26", + "name": "sellers", + "value": "={{ $json.message.text.trim().split(/\\s+/).slice(1) }}", + "type": "string" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [ + 240, + 32 + ], + "id": "26854121-21a9-44b2-a38d-65f6675e0970", + "name": "Edit Fields1" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "58a1139d-5e78-4e26-8bd3-5c6a2891b2fd", + "name": "text", + "value": "={{ $json.text.split(\";\").slice(1).map(w => w.trim()).join() }}", + "type": "string" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [ + 16, + 1056 + ], + "id": "7821fe72-005f-4d0c-b9b2-a8bcf57726ea", + "name": "Edit Fields3" + }, + { + "parameters": { + "method": "POST", + "url": "http://192.168.178.133:3001/sellers/add", + "sendBody": true, + "bodyParameters": { + "parameters": [ + { + "name": "sellers", + "value": "={{ $('Edit Fields3').item.json.text}}" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.4, + "position": [ + 240, + 1056 + ], + "id": "83b6a858-fcab-44b6-af5a-9fbc651ba97c", + "name": "HTTP Request2" + }, + { + "parameters": { + "content": "# Initialize Data", + "height": 432, + "width": 704 + }, + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [ + -288, + 784 + ], + "id": "70e6e855-901b-4534-a4f9-30e960efca85", + "name": "Sticky Note" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "93c23110-ed6e-4325-98de-92ad2e381eea", + "name": "text", + "value": ";mediamarkt ;Media Markt Henstedt-Ulzburg ;Media Markt Nürnberg-City ;MediaMarkt H-Ernst-August-Platz ;MediaMarkt Köln-Kalk ;MediaMarkt Tech Village Hamburg ;MediaMarkt_München_Solln ;Mediamarkt B-Ware ;Mediamarkt Berlin Tempelhof ;mediamarkt-Delmenhorst ;mediamarkt-Hannover-Wuelfel ;mediamarkt-aachen-aquis-plaza ;mediamarkt-aalen ;mediamarkt-albstadt ;mediamarkt-alzey ;mediamarkt-amberg ;mediamarkt-ansbach ;mediamarkt-ansbach-bruecken-center ;mediamarkt-aschaffenburg ;mediamarkt-aschaffenburg-city ;mediamarkt-augsburg-goeggingen ;mediamarkt-augsburg-oberhausen ;mediamarkt-backnang ;mediamarkt-bad-duerrheim ;mediamarkt-bad-homburg ;mediamarkt-bad-kreuznach ;mediamarkt-bad-neustadt ;mediamarkt-bad-oeynhausen ;mediamarkt-baden-baden ;mediamarkt-bamberg ;mediamarkt-baunatal ;mediamarkt-bayreuth ;mediamarkt-bergisch-gladbach ;mediamarkt-berlin-biesdorf ;mediamarkt-berlin-charlottenburg ;mediamarkt-berlin-friedrichshain ;mediamarkt-berlin-gesundbrunnen ;mediamarkt-berlin-gropiusstadt ;mediamarkt-berlin-hohenschoenhausen ;mediamarkt-berlin-leipziger-platz ;mediamarkt-berlin-marzahn ;mediamarkt-berlin-mitte ;mediamarkt-berlin-neukoelln ;mediamarkt-berlin-prenzlauerberg ;mediamarkt-berlin-schoeneweide ;mediamarkt-berlin-spandau ;mediamarkt-berlin-spandau-arcaden ;mediamarkt-berlin-steglitz ;mediamarkt-berlin-tegel ;mediamarkt-berlin-waltersdorf ;mediamarkt-berlin-wedding ;mediamarkt-bielefeld ;mediamarkt-bischofsheim ;mediamarkt-bocholt ;mediamarkt-bochum-hofstede ;mediamarkt-bochum-ruhrpark ;mediamarkt-bonn ;mediamarkt-bornheim ;mediamarkt-boulevard-steglitz ;mediamarkt-brandenburg ;mediamarkt-braunschweig ;mediamarkt-braunschweig-schloss-ark ;mediamarkt-bremen-habenhausen ;mediamarkt-bremen-roland-center ;mediamarkt-bremen-stuhr ;mediamarkt-bremen-waterfront ;mediamarkt-bremen-weserpark ;mediamarkt-bremerhaven ;mediamarkt-bruchsal ;mediamarkt-buchholz ;mediamarkt-buxtehude ;mediamarkt-castrop-rauxel ;mediamarkt-celle ;mediamarkt-chemnitz-roehrsdorf ;mediamarkt-chemnitz-roter-turm ;mediamarkt-chemnitz-sachsenallee ;mediamarkt-coburg ;mediamarkt-cottbus ;mediamarkt-darmstadt-city ;mediamarkt-deggendorf ;mediamarkt-dessau ;mediamarkt-dessau-city ;mediamarkt-dietzenbach ;mediamarkt-donauwoerth ;mediamarkt-dorsten ;mediamarkt-dortmund ;mediamarkt-dortmund-eving ;mediamarkt-dortmund-hoerde ;mediamarkt-dresden-centrum ;mediamarkt-dresden-elbepark ;mediamarkt-dresden-kaufpark ;mediamarkt-dueren ;mediamarkt-duesseldorf-arcaden ;mediamarkt-duesseldorf-metrostrasse ;mediamarkt-duisburg-forum ;mediamarkt-duisburg-grossenbaum ;mediamarkt-duisburg-marxloh ;mediamarkt-egelsbach ;mediamarkt-eisenach ;mediamarkt-eislingen ;mediamarkt-elmshorn ;mediamarkt-emden ;mediamarkt-emmendingen ;mediamarkt-erding ;mediamarkt-erfurt-city ;mediamarkt-erfurt-tec ;mediamarkt-erfurt-thueringenpark ;mediamarkt-erlangen ;mediamarkt-erlangen-arcaden ;mediamarkt-eschweiler ;mediamarkt-essen ;mediamarkt-essen-limbecker-platz ;mediamarkt-esslingen ;mediamarkt-europa-center-berlin ;mediamarkt-euskirchen ;mediamarkt-fellbach ;mediamarkt-flensburg ;mediamarkt-forchheim ;mediamarkt-frankfurt-borsigallee ;mediamarkt-frankfurt-nordwestzentr ;mediamarkt-frankfurt-skylineplaza ;mediamarkt-frankfurt-zeil ;mediamarkt-freiburg ;mediamarkt-freiburg-city ;mediamarkt-freising ;mediamarkt-friedberg ;mediamarkt-friedrichshafen ;mediamarkt-fulda ;mediamarkt-gießen ;mediamarkt-goettingen ;mediamarkt-goettingen-kauf-park ;mediamarkt-goslar ;mediamarkt-greifswald ;mediamarkt-gruendau-lieblos ;mediamarkt-guenthersdorf ;mediamarkt-guetersloh ;mediamarkt-halberstadt ;mediamarkt-halle-peissen ;mediamarkt-halstenbek ;mediamarkt-hamburg-altona ;mediamarkt-hamburg-bergedorf ;mediamarkt-hamburg-billstedt ;mediamarkt-hamburg-elbe-ekz ;mediamarkt-hamburg-harburg ;mediamarkt-hamburg-hummelsbuettel ;mediamarkt-hamburg-nedderfeld ;mediamarkt-hamburg-oststeinbek ;mediamarkt-hamburg-poppenbuettel ;mediamarkt-hamburg-wandsbek ;mediamarkt-hameln ;mediamarkt-hamm ;mediamarkt-hanau ;mediamarkt-hannover-isernhagen ;mediamarkt-hannover-vahrenheide ;mediamarkt-heide ;mediamarkt-heidelberg ;mediamarkt-heidelberg-rohrbach ;mediamarkt-heidenheim ;mediamarkt-heilbronn ;mediamarkt-heppenheim ;mediamarkt-herzogenrath ;mediamarkt-hilden ;mediamarkt-hildesheim ;mediamarkt-hof ;mediamarkt-homburg ;mediamarkt-hueckelhoven ;mediamarkt-huerth ;mediamarkt-idar-oberstein ;mediamarkt-ingolstadt ;mediamarkt-ingolstadt-westpark ;mediamarkt-itzehoe ;mediamarkt-jena ;mediamarkt-jena-city ;mediamarkt-kaiserslautern ;mediamarkt-kaiserslautern-merkurstr ;mediamarkt-karlsfeld ;mediamarkt-karlsruhe ;mediamarkt-karlsruhe-2 ;mediamarkt-karlsruhe-durlach ;mediamarkt-kassel ;mediamarkt-kassel-koenigsplatz ;mediamarkt-kempten-allgaeu ;mediamarkt-kempten-beim-fenepark ;mediamarkt-kerpen ;mediamarkt-kiel ;mediamarkt-kiel-sophienhof ;mediamarkt-kirchheim ;mediamarkt-koblenz ;mediamarkt-koblenz-bubenheim ;mediamarkt-koeln-city-am-dom ;mediamarkt-koeln-marsdorf ;mediamarkt-koeln-maybachstrasse ;mediamarkt-koeln-weiden ;mediamarkt-konstanz ;mediamarkt-krefeld ;mediamarkt-kulmbach ;mediamarkt-lahr ;mediamarkt-landau ;mediamarkt-landsberg ;mediamarkt-landshut ;mediamarkt-landshut-west ;mediamarkt-leer ;mediamarkt-leinfelden-echterdingen ;mediamarkt-leipzig-gruenau ;mediamarkt-leipzig-hbf ;mediamarkt-leipzig-hoefe ;mediamarkt-leipzig-paunsdorf ;mediamarkt-leonberg-leo-center ;mediamarkt-limburg ;mediamarkt-lingen ;mediamarkt-lippstadt ;mediamarkt-ludwigsburg ;mediamarkt-ludwigshafen-oggersheim ;mediamarkt-luebeck ;mediamarkt-luebeck-daenischburg ;mediamarkt-luedenscheid ;mediamarkt-lueneburg ;mediamarkt-luenen ;mediamarkt-magdeburg-am-pfahlberg ;mediamarkt-magdeburg-boerdepark ;mediamarkt-magdeburg-city ;mediamarkt-main-taunus-zentrum ;mediamarkt-mainz ;mediamarkt-mainz-city ;mediamarkt-mannheim ;mediamarkt-mannheim-city ;mediamarkt-mannheim-sandhofen ;mediamarkt-marburg ;mediamarkt-marktredwitz ;mediamarkt-marl ;mediamarkt-meerane ;mediamarkt-memmingen ;mediamarkt-moenchengladbach ;mediamarkt-moers ;mediamarkt-mosbach ;mediamarkt-muc-euroindustriepark ;mediamarkt-muehldorf-am-inn ;mediamarkt-muelheim ;mediamarkt-muelheim-rrz ;mediamarkt-muenchen-haidhausen ;mediamarkt-muenchen-oez ;mediamarkt-muenchen-pasing ;mediamarkt-muenchen-pep ;mediamarkt-muenster ;mediamarkt-muenster-arkaden ;mediamarkt-nagold ;mediamarkt-neckarsulm ;mediamarkt-neu-isenburg ;mediamarkt-neu-ulm ;mediamarkt-neubrandenburg ;mediamarkt-neuburg-an-der-donau ;mediamarkt-neumarkt ;mediamarkt-neumuenster ;mediamarkt-neunkirchen ;mediamarkt-neuss ;mediamarkt-neuss-rheinpark-center ;mediamarkt-neustadt ;mediamarkt-neuwied ;mediamarkt-nienburg ;mediamarkt-noerdlingen ;mediamarkt-norderstedt ;mediamarkt-nordhausen ;mediamarkt-nordhorn ;mediamarkt-nuernberg-kleinreuth ;mediamarkt-nuernberg-langwasser ;mediamarkt-nuernberg-schoppershof ;mediamarkt-oberhausen ;mediamarkt-offenbach-ringcenter ;mediamarkt-offenburg ;mediamarkt-oldenburg-schlosshoefe ;mediamarkt-osnabrueck-belm ;mediamarkt-osnabrueck-city ;mediamarkt-paderborn ;mediamarkt-papenburg ;mediamarkt-passau ;mediamarkt-passau-stadtgalerie ;mediamarkt-pforzheim ;mediamarkt-pfungstadt ;mediamarkt-pirmasens ;mediamarkt-plauen ;mediamarkt-porta-westfalica ;mediamarkt-potsdam ;mediamarkt-potsdam-city ;mediamarkt-ravensburg ;mediamarkt-recklinghausen ;mediamarkt-regensburg ;mediamarkt-regensburg-im-donau-ekz ;mediamarkt-remscheid ;mediamarkt-rendsburg ;mediamarkt-reutlingen ;mediamarkt-reutlingen-betzingen ;mediamarkt-rheine ;mediamarkt-riesa ;mediamarkt-rosenheim ;mediamarkt-rostock-brinckmansdorf ;mediamarkt-rostock-city ;mediamarkt-rostock-sievershagen ;mediamarkt-saarbruecken-burbach ;mediamarkt-saarbruecken-europa-gale ;mediamarkt-saarbruecken-saarbasar ;mediamarkt-saarlouis ;mediamarkt-salzgitter ;mediamarkt-sankt-augustin ;mediamarkt-schorndorf ;mediamarkt-schwabach ;mediamarkt-schwaebisch-gmuend ;mediamarkt-schwaebisch-hall ;mediamarkt-schwedt ;mediamarkt-schweinfurt ;mediamarkt-schweinfurt-city ;mediamarkt-schwentinental ;mediamarkt-schwerin ;mediamarkt-senden ;mediamarkt-siegen-city-galerie ;mediamarkt-sindelfingen ;mediamarkt-singen ;mediamarkt-sinsheim ;mediamarkt-smart-peine ;mediamarkt-solingen ;mediamarkt-speyer ;mediamarkt-stade ;mediamarkt-stadthagen ;mediamarkt-stralsund ;mediamarkt-straubing ;mediamarkt-stuttgart-feuerbach ;mediamarkt-stuttgart-koenigstrasse ;mediamarkt-stuttgart-milaneo ;mediamarkt-traunreut ;mediamarkt-traunstein ;mediamarkt-trier ;mediamarkt-tuebingen ;mediamarkt-ulm ;mediamarkt-velbert ;mediamarkt-viernheim ;mediamarkt-wandsbeker-quarree ;mediamarkt-weiden ;mediamarkt-weilheim ;mediamarkt-weiterstadt ;mediamarkt-wetzlar ;mediamarkt-wiesbaden-aeppelallee ;mediamarkt-wiesbaden-hasengarten ;mediamarkt-wilhelmshaven ;mediamarkt-wolfsburg ;mediamarkt-wolfsburg-city ;mediamarkt-worms ;mediamarkt-wuerzburg ;mediamarkt-wuerzburg-city ;mediamarkt-wuerzburg-duerrbachau ;mediamarkt-wuppertal ;mediamarkt-wuppertal-city ;mediamarkt-zella-mehlis ;mediamarkt-zwickau ;mediamarkt-zwickau-am-glueck-auf-ce", + "type": "string" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [ + -208, + 832 + ], + "id": "688b6b22-f8d9-46c4-a44a-efacbb010612", + "name": "Mediamarkt" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "93c23110-ed6e-4325-98de-92ad2e381eea", + "name": "text", + "value": ";saturn ;Saturn B-Ware ;Saturn Köln Porz ;Saturn München Neuhauser Straße ;Saturn-Dresden ;saturn-berlin-koepenick ;saturn-berlin-reinickendorf ;saturn-bielefeld ;saturn-bochum ;saturn-bremen ;saturn-chemnitz ;saturn-dortmund ;saturn-duesseldorf-sevens ;saturn-gummersbach ;saturn-halle ;saturn-karlsruhe ;saturn-kleve ;saturn-koblenz ;saturn-koeln-hohestrasse ;saturn-krefeld ;saturn-leverkusen ;saturn-moenchengladbach-city ;saturn-muenchen-riem ;saturn-pforzheim ;saturn-weimar ;saturn-wiesbaden-luisenforum ;saturn_berlin_alexanderplatz", + "type": "string" + } + ] + }, + "options": {} + }, + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [ + -208, + 1056 + ], + "id": "b76d9a5d-2c9d-4df5-beb2-d425b4690cd2", + "name": "Saturn" + }, + { + "parameters": { + "jsCode": "const searches = $json.searches || [];\n\nif (searches.length === 0) {\n return [{ json: { text: \"⚠️ Keine aktiven Suchaufträge vorhanden.\" } }];\n}\n\nlet message = \"📋 *Deine aktiven Suchaufträge:*\\n\\n\";\n\nsearches.forEach((s) => {\n const negatives = (s.negative_keywords || []).join(\", \") || \"Keine\";\n message += `*ID #${s.id}*: \"${s.query}\"\\n`;\n message += `🚫 Ausschlüsse: _${negatives}_\\n`;\n message += `\\n`;\n});\n\nmessage += \"💡 *Befehle:*\\n\";\nmessage += \"• `/edit NegativKeyword1, NegativKeyword2` zum Ändern\\n\";\nmessage += \"• `/delete ` zum Löschen\";\n\nreturn [{ json: { text: message } }];" + }, + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [ + 464, + 224 + ], + "id": "34c96931-7239-4077-bcf4-7b2424088a43", + "name": "Code in JavaScript" + }, + { + "parameters": { + "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}", + "text": "={{ $('Code in JavaScript').item.json.text }}", + "additionalFields": {} + }, + "type": "n8n-nodes-base.telegram", + "typeVersion": 1.2, + "position": [ + 688, + 224 + ], + "id": "7e48d438-83bb-4eab-88d7-daefde557b98", + "name": "Send a text message1", + "webhookId": "1c6fb687-7be7-4b5e-9306-207bdb1fe0f4", + "credentials": { + "telegramApi": { + "id": "rDFxPFGGKagsBKLV", + "name": "Telegram eBayNotifyBot" + } + } + }, + { + "parameters": { + "url": "http://192.168.178.133:3001/searches", + "options": {} + }, + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.4, + "position": [ + 240, + 224 + ], + "id": "8829edf4-9ab2-4249-be85-2d47516c6645", + "name": "HTTP Request3" + }, + { + "parameters": { + "jsCode": "const text = $(\"Telegram Trigger\").first().json.message.text.trim();\n\n// Regulärer Ausdruck prüft das Format: /edit \nconst match = text.match(/^\\/edit\\s+(\\d+)\\s+(.+)$/s);\n\nif (!match) {\n return [{ \n json: { \n error: true, \n text: \"❌ *Falsches Format!*\\n\\nVerwende:\\n`/edit Keyword1, Keyword2`\\n\\nBeispiel:\\n`/edit 3 Defekt, Panzerglas, Hülle`\" \n } \n }];\n}\n\nconst id = match[1];\nconst rawKeywords = match[2];\n\n// Keywords am Komma trennen und Leerzeichen entfernen\nconst keywordsArray = rawKeywords.split(\",\").map(k => k.trim()).filter(Boolean);\n\nreturn [{\n json: {\n error: false,\n id: id,\n negative_keywords: keywordsArray\n }\n}];" + }, + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [ + 240, + 512 + ], + "id": "01246c59-5e14-461c-bf52-6cc34baabcdd", + "name": "Code in JavaScript1" + }, + { + "parameters": { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 3 + }, + "conditions": [ + { + "id": "803c95e8-608d-4a41-b74c-ac0d901f5f21", + "leftValue": "={{ $json.error }}", + "rightValue": "true", + "operator": { + "type": "boolean", + "operation": "true", + "singleValue": true + } + } + ], + "combinator": "and" + }, + "options": {} + }, + "type": "n8n-nodes-base.if", + "typeVersion": 2.3, + "position": [ + 464, + 512 + ], + "id": "64bcf172-177d-458d-9d2e-de97d4de7b78", + "name": "If" + }, + { + "parameters": { + "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}", + "text": "={{ $json.text }}", + "additionalFields": {} + }, + "type": "n8n-nodes-base.telegram", + "typeVersion": 1.2, + "position": [ + 688, + 416 + ], + "id": "426b3b4b-7525-458c-971e-1c05778e1540", + "name": "Send a text message2", + "webhookId": "b55f6aa2-2f36-4b2c-95f7-81399e1046e9", + "credentials": { + "telegramApi": { + "id": "rDFxPFGGKagsBKLV", + "name": "Telegram eBayNotifyBot" + } + } + }, + { + "parameters": { + "method": "PUT", + "url": "=http://192.168.178.133:3001/searches/{{ $json.id }}", + "sendBody": true, + "specifyBody": "json", + "jsonBody": "={\n \"negative_keywords\": {{ JSON.stringify($json.negative_keywords) }}\n}", + "options": {} + }, + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.4, + "position": [ + 688, + 608 + ], + "id": "c9af0add-be49-4716-a38e-ce1ec277ec16", + "name": "HTTP Request4" + }, + { + "parameters": { + "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}", + "text": "=✅ Negativ-Keywords für ID #{{$json.search.id}} aktualisiert auf {{$json.search.negative_keywords.join(\", \")}}", + "additionalFields": {} + }, + "type": "n8n-nodes-base.telegram", + "typeVersion": 1.2, + "position": [ + 912, + 608 + ], + "id": "4cc7f56e-6384-47e1-a70c-4ae49f7c3148", + "name": "Send a text message3", + "webhookId": "4d589850-4a4d-4e9a-9aec-530be93ab442", + "credentials": { + "telegramApi": { + "id": "rDFxPFGGKagsBKLV", + "name": "Telegram eBayNotifyBot" + } + } + }, + { + "parameters": { + "jsCode": "const text = $(\"Telegram Trigger\").first().json.message.text.trim();\nconst match = text.match(/^\\/delete\\s+(\\d+)$/);\n\nif (!match) {\n return [{ \n json: { \n error: true, \n text: \"❌ *Falsches Format!*\\n\\nVerwende:\\n`/delete `\\n\\nBeispiel:\\n`/delete 3`\" \n } \n }];\n}\n\nreturn [{\n json: {\n error: false,\n id: match[1]\n }\n}];" + }, + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [ + 592, + 1376 + ], + "id": "87bcdf36-2a57-4f16-8682-fdba260255e0", + "name": "Code in JavaScript2" + }, + { + "parameters": { + "method": "DELETE", + "url": "=http://192.168.178.133:3001/searches/{{ $json.id }}", + "options": {} + }, + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.4, + "position": [ + 1040, + 1472 + ], + "id": "fbcebff8-d6e7-44ae-91d2-7f9b3490da57", + "name": "HTTP Request5" + }, + { + "parameters": { + "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}", + "text": "={{ $json.message }}", + "additionalFields": {} + }, + "type": "n8n-nodes-base.telegram", + "typeVersion": 1.2, + "position": [ + 1264, + 1472 + ], + "id": "cc7aca63-32e0-424b-8fd8-6d949de2b488", + "name": "Send a text message5", + "webhookId": "32fc7d22-9c29-474d-aeb5-c5f7901c87e2", + "credentials": { + "telegramApi": { + "id": "rDFxPFGGKagsBKLV", + "name": "Telegram eBayNotifyBot" + } + } + }, + { + "parameters": { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 3 + }, + "conditions": [ + { + "id": "803c95e8-608d-4a41-b74c-ac0d901f5f21", + "leftValue": "={{ $json.error }}", + "rightValue": "true", + "operator": { + "type": "boolean", + "operation": "true", + "singleValue": true + } + } + ], + "combinator": "and" + }, + "options": {} + }, + "type": "n8n-nodes-base.if", + "typeVersion": 2.3, + "position": [ + 816, + 1120 + ], + "id": "d9d27ec7-38da-4019-941b-077b7ceb9dde", + "name": "If1" + }, + { + "parameters": { + "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}", + "text": "={{ $json.text }}", + "additionalFields": {} + }, + "type": "n8n-nodes-base.telegram", + "typeVersion": 1.2, + "position": [ + 1120, + 960 + ], + "id": "003bf9f5-848f-4e88-b339-0a8ab76e6289", + "name": "Send a text message4", + "webhookId": "25829a6d-f1a1-4c4c-90c4-b66522aa3769", + "credentials": { + "telegramApi": { + "id": "rDFxPFGGKagsBKLV", + "name": "Telegram eBayNotifyBot" + } + } + } + ], + "connections": { + "Edit Fields": { + "main": [ + [ + { + "node": "HTTP Request", + "type": "main", + "index": 0 + } + ] + ] + }, + "Switch": { + "main": [ + [ + { + "node": "Edit Fields", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Edit Fields1", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "HTTP Request3", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Code in JavaScript1", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Code in JavaScript2", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request": { + "main": [ + [] + ] + }, + "HTTP Request1": { + "main": [ + [ + { + "node": "Send a text message", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Fields1": { + "main": [ + [ + { + "node": "HTTP Request1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Fields3": { + "main": [ + [ + { + "node": "HTTP Request2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mediamarkt": { + "main": [ + [] + ] + }, + "Saturn": { + "main": [ + [ + { + "node": "Edit Fields3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code in JavaScript": { + "main": [ + [ + { + "node": "Send a text message1", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request3": { + "main": [ + [ + { + "node": "Code in JavaScript", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code in JavaScript1": { + "main": [ + [ + { + "node": "If", + "type": "main", + "index": 0 + } + ] + ] + }, + "If": { + "main": [ + [ + { + "node": "Send a text message2", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "HTTP Request4", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request4": { + "main": [ + [ + { + "node": "Send a text message3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code in JavaScript2": { + "main": [ + [ + { + "node": "If1", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request5": { + "main": [ + [ + { + "node": "Send a text message5", + "type": "main", + "index": 0 + } + ] + ] + }, + "If1": { + "main": [ + [ + { + "node": "Send a text message4", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "HTTP Request5", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1", + "binaryMode": "separate", + "availableInMCP": false + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "61e736f1-e672-4294-922a-4663b0757c73", + "activeVersionId": null, + "triggerCount": 0, + "shared": [ + { + "updatedAt": "2026-08-09T20:43:24.010Z", + "createdAt": "2026-08-09T20:43:24.010Z", + "role": "workflow:owner", + "workflowId": "doN3KThk2oqKsAHn", + "projectId": "cSAaWNJydnksD5EB" + } + ], + "activeVersion": null, + "tags": [] +} \ No newline at end of file