Files
claude_settings/plans/snuggly-juggling-hoare.md
root 4277b10f55 Kanbanize Kartenerstellung dokumentiert: Arrival-Rule-Workaround, Board-Struktur
- Neuer Abschnitt "Karten erstellen (Aufgaben-Workflow)" mit Workflow A/B
- Bekannte Struktur erweitert: Workflows, Columns, Lanes für Board 1
- Pitfalls ergänzt: Arrival Rule, Parent-Link API, linkedCards read-only
- Settings und Plans aktualisiert

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:09:09 +01:00

153 lines
4.9 KiB
Markdown

# Plan: n8n Workflow — UPS-Rechnungen abholen und weiterleiten
## Ziel
Täglicher n8n-Workflow, der UPS-Rechnungsmails aus dem Postfach `vinos-monitoring@mailbox.org` per IMAP abruft, das ZIP-Attachment entpackt und die enthaltenen Rechnungen per SMTP an `rechnung@vinos.de` weiterleitet.
---
## Parameter
| Parameter | Wert |
|-----------|------|
| Postfach | `vinos-monitoring@mailbox.org` |
| Empfänger | `rechnung@vinos.de` |
| Absender-Filter | `@ups.com` |
| Intervall | Täglich (07:00) |
| Nach Verarbeitung | Mail in Ordner "Verarbeitet" verschieben |
| IMAP-Server | `imap.mailbox.org:993` (SSL/TLS) |
| SMTP-Server | `smtp.mailbox.org:465` (SSL/TLS) |
---
## Voraussetzungen (manuell, vor Workflow-Erstellung)
### 1. n8n Credentials anlegen (Web-UI)
In n8n unter **Settings → Credentials → Add Credential**:
**IMAP-Credential:**
- Typ: **IMAP**
- Host: `imap.mailbox.org`
- Port: `993`
- User: `vinos-monitoring@mailbox.org`
- Passwort: Mailbox.org-Passwort
- SSL/TLS: Ja
**SMTP-Credential:**
- Typ: **SMTP**
- Host: `smtp.mailbox.org`
- Port: `465`
- User: `vinos-monitoring@mailbox.org`
- Passwort: Mailbox.org-Passwort
- SSL/TLS: Ja
### 2. Ordner "Verarbeitet" im Postfach anlegen
Per Webmail auf mailbox.org oder per IMAP-Client einen Ordner `Verarbeitet` erstellen.
---
## Workflow-Aufbau (6 Nodes)
```
Schedule Trigger → Email Read (IMAP) → IF (hat ZIP-Attachment?)
→ Compression (Decompress) → Send Email (SMTP)
→ IMAP Move to Folder
```
### Node 1: Schedule Trigger
- **Typ:** `n8n-nodes-base.scheduleTrigger`
- **Konfiguration:** Täglich um 07:00 Uhr (`0 7 * * *`)
### Node 2: Email Read (IMAP)
- **Typ:** `n8n-nodes-base.emailReadImap`
- **Postfach:** `vinos-monitoring@mailbox.org`
- **Ordner:** INBOX
- **Filter:** Ungelesene Mails
- **Attachments:** Herunterladen aktiviert
- **Credential:** IMAP (mailbox.org)
### Node 3: IF — Hat ZIP-Attachment?
- **Typ:** `n8n-nodes-base.if`
- **Bedingung:** Binary-Daten vorhanden UND Dateiname endet auf `.zip`
- **Zweck:** Nur Mails mit ZIP-Anhang verarbeiten
### Node 4: Compression — ZIP entpacken
- **Typ:** `n8n-nodes-base.compression`
- **Operation:** Decompress
- **Input:** Binary-Feld des ZIP-Attachments
- **Output:** Entpackte Dateien als Binary-Daten
### Node 5: Send Email (SMTP)
- **Typ:** `n8n-nodes-base.sendEmail` (oder `n8n-nodes-base.emailSend`)
- **Von:** `vinos-monitoring@mailbox.org`
- **An:** `rechnung@vinos.de`
- **Betreff:** `UPS-Rechnung` + Datum aus Original-Mail
- **Body:** Kurzer Hinweistext (z.B. "Anbei die entpackte UPS-Rechnung")
- **Attachments:** Entpackte Dateien aus Node 4
- **Credential:** SMTP (mailbox.org)
### Node 6: IMAP — Mail verschieben
- **Typ:** `n8n-nodes-base.emailReadImap` (oder HTTP-Request an IMAP)
- **Operation:** Mail als gelesen markieren + in Ordner "Verarbeitet" verschieben
- **Hinweis:** n8n hat keine native "IMAP Move"-Operation — ggf. per Code-Node (IMAP-Befehl MOVE) oder als "gelesen markieren" vereinfachen
---
## Bekannte Einschränkung: IMAP Move
n8n's IMAP-Node kann Mails lesen, aber das Verschieben in einen anderen Ordner ist nicht nativ unterstützt. Optionen:
1. **Nur als gelesen markieren** — einfachste Lösung, Node 2 liest dann nur ungelesene
2. **Code-Node mit IMAP-Bibliothek** — per JavaScript direkt IMAP MOVE ausführen
3. **HTTP-Request an Mailbox.org API** — falls vorhanden
**Empfehlung:** Option 1 (als gelesen markieren) für den Start. "Nur ungelesene lesen" verhindert Doppelverarbeitung zuverlässig.
---
## Umsetzung
### Schritt 1: Workflow-Grundgerüst via API erstellen
- POST an `https://flow.wvits.de/api/v1/workflows`
- 5-6 Nodes (je nach IMAP-Move-Lösung)
- Credentials als Platzhalter (in UI verknüpfen)
### Schritt 2: Credentials in n8n-UI verknüpfen
- IMAP-Credential den Email-Read-Nodes zuweisen
- SMTP-Credential dem Send-Email-Node zuweisen
### Schritt 3: Testlauf
- Test-Mail mit ZIP-Anhang an `vinos-monitoring@mailbox.org` senden
- Workflow manuell in der UI ausführen
- Prüfen: ZIP entpackt? Mail bei `rechnung@vinos.de` angekommen?
### Schritt 4: Workflow aktivieren
- `POST /api/v1/workflows/{id}/activate`
---
## Verifikation
1. **API-Test:** `GET /api/v1/workflows/{id}` — Node-Struktur prüfen
2. **Manueller Testlauf:** In n8n-UI "Execute Workflow"
3. **Prüfpunkte:**
- [ ] IMAP-Verbindung zu mailbox.org funktioniert
- [ ] Ungelesene Mails werden abgerufen
- [ ] ZIP-Attachment wird erkannt und gefiltert
- [ ] ZIP wird entpackt, Dateien korrekt
- [ ] SMTP-Versand an rechnung@vinos.de funktioniert
- [ ] Entpackte Dateien sind als Attachment in der Mail
- [ ] Verarbeitete Mail wird als gelesen markiert
4. **Fehlerfall:** Mail ohne ZIP → IF-Node filtert korrekt
---
## Dateien
| Datei | Zweck |
|-------|-------|
| `/home/rwiegand/Nextcloud/vinos/n8n/.env` | API-Key + Base-URL (vorhanden) |
| `/home/rwiegand/Nextcloud/vinos/n8n/README.md` | Projekt-Doku (Update nach Abschluss) |