95 lines
3.4 KiB
Markdown
95 lines
3.4 KiB
Markdown
# n8n Workflows – MC Cars
|
||
|
||
This folder contains exportable n8n workflow definitions for the MC Cars qualification automation.
|
||
|
||
## Workflows
|
||
|
||
### 01 – Qualification Payment Email
|
||
**Trigger:** Postgres `NOTIFY` on channel `lead_qualified` (fires when `qualify_lead()` creates a sales order).
|
||
|
||
**Flow:**
|
||
1. Receives notification with `sales_order_id`, `customer_id`, etc.
|
||
2. Fetches full order + customer data from Postgres.
|
||
3. Sends HTML email to customer with:
|
||
- Booking summary (vehicle, dates, pricing)
|
||
- Kaution bank transfer instructions
|
||
- Payment link for the rental amount
|
||
|
||
### 02 – Mietvertrag PDF Email
|
||
**Trigger:** Same `lead_qualified` Postgres notification.
|
||
|
||
**Flow:**
|
||
1. Checks if `mietvertrag_template_path` is set in `site_settings`.
|
||
2. If no template → workflow stops (no error).
|
||
3. If template exists:
|
||
- Fetches customer + sales order data
|
||
- Downloads DOCX template from `document-templates` storage bucket
|
||
- Fills placeholders using JSZip (in a Code node)
|
||
- Converts filled DOCX to PDF via Gotenberg
|
||
- Sends PDF as email attachment to customer
|
||
|
||
## Setup Instructions
|
||
|
||
### 1. Create Postgres credential in n8n
|
||
- **Name:** `MC Cars Postgres`
|
||
- **Host:** `db`
|
||
- **Port:** `5432`
|
||
- **Database:** `postgres`
|
||
- **User:** `postgres`
|
||
- **Password:** (value of `POSTGRES_PASSWORD` from `.env`)
|
||
|
||
### 2. Create SMTP credential in n8n
|
||
- **Name:** `MC Cars SMTP`
|
||
- **Host:** `heracles.mxrouting.net`
|
||
- **Port:** `587` (STARTTLS) or `465` (SSL/TLS)
|
||
- **User:** `office@mc-cars.at`
|
||
- **Password:** use the mailbox password provided out-of-band (do not commit secrets to git)
|
||
- **From:** `office@mc-cars.at`
|
||
|
||
### 3. Mailbox reference (for future incoming-email workflows)
|
||
- **IMAP host:** `heracles.mxrouting.net` (port `993`, SSL/TLS)
|
||
- **POP3 host:** `heracles.mxrouting.net` (port `995`, SSL/TLS)
|
||
- **Username:** `office@mc-cars.at`
|
||
- **Password:** same mailbox password as SMTP
|
||
|
||
### 4. Import workflows
|
||
1. Open n8n at http://localhost:55590
|
||
2. Go to **Workflows** → **Import from file**
|
||
3. Import `01-qualification-payment-email.json`
|
||
4. Import `02-mietvertrag-pdf-email.json`
|
||
5. Open each workflow → assign the credentials created above → **Activate**
|
||
|
||
### 5. Upload Mietvertrag template (optional)
|
||
1. Open Admin panel → **Einstellungen** tab
|
||
2. Upload a DOCX file in the "Mietvertrag-Vorlage" section
|
||
3. The template should contain these placeholders:
|
||
|
||
| Placeholder | Replaced with |
|
||
|---|---|
|
||
| `{{KUNDE_NAME}}` | Customer full name |
|
||
| `{{KUNDE_EMAIL}}` | Customer email |
|
||
| `{{KUNDE_TELEFON}}` | Customer phone |
|
||
| `{{BESTELLNUMMER}}` | Sales order number (e.g. SO-2026-0001) |
|
||
| `{{FAHRZEUG}}` | Vehicle label (e.g. "Ferrari 488 GTB") |
|
||
| `{{DATUM_VON}}` | Rental start date (DD.MM.YYYY) |
|
||
| `{{DATUM_BIS}}` | Rental end date (DD.MM.YYYY) |
|
||
| `{{TAGE_GESAMT}}` | Total rental days |
|
||
| `{{WOCHENTAGE}}` | Number of weekdays |
|
||
| `{{WOCHENENDTAGE}}` | Number of weekend days |
|
||
| `{{TAGESSATZ}}` | Weekday daily subtotal |
|
||
| `{{WOCHENENDZUSCHLAG}}` | Weekend surcharge subtotal |
|
||
| `{{NETTO}}` | Net amount (excl. VAT) |
|
||
| `{{MWST}}` | VAT amount (19%) |
|
||
| `{{GESAMT}}` | Total amount (incl. VAT) |
|
||
| `{{KAUTION}}` | Deposit amount |
|
||
| `{{DATUM_HEUTE}}` | Today's date (DD.MM.YYYY) |
|
||
|
||
## Dependencies
|
||
|
||
- **Gotenberg** (docker service `gotenberg`) — converts DOCX → PDF via LibreOffice
|
||
- **n8n** needs the `jszip` npm package (pre-installed in n8n Docker image)
|
||
|
||
## Domain
|
||
|
||
All email links and sender addresses use `mc-cars.at`.
|