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>
This commit is contained in:
152
plans/snuggly-juggling-hoare.md
Normal file
152
plans/snuggly-juggling-hoare.md
Normal file
@@ -0,0 +1,152 @@
|
||||
# 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) |
|
||||
Reference in New Issue
Block a user