{ "name": "Lead Qualified -> Payment Email", "nodes": [ { "parameters": { "triggerOnNotify": true, "channel": "lead_qualified", "additionalFields": {} }, "id": "pg-trigger", "name": "Postgres Trigger", "type": "n8n-nodes-base.postgresTrigger", "typeVersion": 1, "position": [ 250, 300 ], "credentials": { "postgres": { "id": "1", "name": "MC Cars Postgres" } } }, { "parameters": { "operation": "executeQuery", "query": "SELECT c.id, c.name, c.email, c.phone,\n so.order_number, so.total_eur, so.deposit_eur,\n so.date_from, so.date_to, so.vehicle_label,\n so.daily_subtotal, so.weekend_subtotal,\n so.subtotal_eur, so.vat_eur,\n so.total_days, so.weekday_count, so.weekend_day_count\nFROM public.customers c\nJOIN public.sales_orders so ON so.customer_id = c.id\nWHERE so.id = '{{ $json.sales_order_id }}'::uuid", "additionalFields": {} }, "id": "fetch-order-data", "name": "Fetch Order Data", "type": "n8n-nodes-base.postgres", "typeVersion": 2.5, "position": [ 470, 300 ], "credentials": { "postgres": { "id": "1", "name": "MC Cars Postgres" } } }, { "parameters": { "mode": "runOnceForEachItem", "language": "javaScript", "jsCode": "const item = $json;\n\nconst formatEur = (value) => {\n const n = Number(value || 0);\n return new Intl.NumberFormat(\"de-AT\", { style: \"currency\", currency: \"EUR\" }).format(n);\n};\n\nconst formatDate = (value) => {\n if (!value) return \"-\";\n const d = new Date(value);\n if (Number.isNaN(d.getTime())) return String(value);\n return new Intl.DateTimeFormat(\"de-AT\", { day: \"2-digit\", month: \"2-digit\", year: \"numeric\" }).format(d);\n};\n\nconst orderNumber = item.order_number || \"\";\nconst dateFrom = formatDate(item.date_from);\nconst dateTo = formatDate(item.date_to);\nconst rentalRange = `${dateFrom} bis ${dateTo}`;\nconst paymentLink = `https://www.mc-cars.at/zahlung/${encodeURIComponent(orderNumber)}`;\n\nconst depositEur = formatEur(item.deposit_eur);\nconst rentalEur = formatEur(item.total_eur);\nconst subtotalEur = formatEur(item.subtotal_eur);\nconst vatEur = formatEur(item.vat_eur);\n\nconst safeName = item.name || \"Kundin/Kunde\";\nconst vehicle = item.vehicle_label || \"-\";\n\nconst subject = `MC Cars - Buchung bestaetigt (${orderNumber}) - Zahlungsinfos`;\n\nconst html = `\n
| \n MC Cars \n Ihre Miete wurde freigegeben\n | \n ||||||||||||||
| \n Guten Tag ${safeName}, \n\n Ihre Buchung wurde auf Basis der von Ihnen bereitgestellten Informationen geprueft und freigegeben.\n Nachfolgend finden Sie die Zahlungsanweisungen fuer Kaution und Mietbetrag.\n \n\n
1) Kaution per Ueberweisung\nBitte ueberweisen Sie die Kaution in Hoehe von ${depositEur} mit folgendem Verwendungszweck: Kaution ${orderNumber}. \n\n2) Mietbetrag online bezahlen\nDen Mietbetrag von ${rentalEur} koennen Sie direkt ueber folgenden Link bezahlen: \n\n\n Zur Zahlung (${orderNumber})\n \n\nFalls Sie Fragen haben, antworten Sie einfach auf diese E-Mail. \nFreundliche Gruesse | \n