49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
# n8n-Integration
|
|
|
|
## Empfohlene Node-Reihenfolge
|
|
|
|
```text
|
|
Schedule Trigger
|
|
-> PostgreSQL: aktive Kunden laden
|
|
-> Loop Over Items
|
|
-> PostgreSQL: Monatsmetriken und Verlauf laden
|
|
-> Code: Monatsdaten vorbereiten
|
|
-> Code: Claude Request bauen
|
|
-> HTTP Request: Anthropic Messages API
|
|
-> Code: Claude JSON extrahieren
|
|
-> Code: Render Payload bauen
|
|
-> HTTP Request: Report Renderer /render
|
|
-> Speicher / E-Mail / Kundenportal
|
|
-> PostgreSQL: Reportlauf protokollieren
|
|
```
|
|
|
|
## Anthropic HTTP Request
|
|
|
|
- Methode: `POST`
|
|
- URL: `https://api.anthropic.com/v1/messages`
|
|
- Header:
|
|
- `x-api-key`: aus Credential oder Secret
|
|
- `anthropic-version`: `2023-06-01`
|
|
- `content-type`: `application/json`
|
|
- Body: `={{ $json.claudeRequest }}`
|
|
- Response: JSON
|
|
|
|
## Renderer HTTP Request
|
|
|
|
- Methode: `POST`
|
|
- URL im gleichen Docker-Netz: `http://report-renderer:8080/render`
|
|
- Body Content Type: JSON
|
|
- Body: gesamtes aktuelles Item
|
|
- Response Format: File
|
|
- Binary Property: `data`
|
|
|
|
Danach kann `data` als E-Mail-Anhang, S3-Upload oder Datei verwendet werden.
|
|
|
|
## Datenschutz und Fehlerbehandlung
|
|
|
|
- Jeden Kunden im Loop als separates Item verarbeiten.
|
|
- Kunden-ID und Berichtsmonat vor jedem Node erhalten.
|
|
- Bei Claude- oder Renderfehlern keinen leeren Report versenden.
|
|
- Reportlauf erst nach erfolgreicher Ablage als `completed` markieren.
|
|
- Eindeutigen DB-Schluessel auf Kunde, Jahr und Monat setzen.
|