n8n + Intrexx Integration: Hybrid-Architektur für KI-Workflows

Das Problem mit Monolithen

Kennen Sie das? Sie haben Intrexx im Einsatz und wollen einen KI-Workflow implementieren. Ihr Entwickler beginnt, in Groovy zu programmieren:

  • 200 Zeilen Code für einen Claude-API-Call
  • JSON-Parsing von Hand (kein JSON-Schema-Validator)
  • Retry-Logik selbst bauen (mit Exponential Backoff)
  • Error-Handling für 15 verschiedene API-Fehlercodes
  • Logging in Intrexx Log-Dateien (schwer durchsuchbar)

Nach 3 Wochen Entwicklung läuft der Workflow – aber jede Änderung (andere KI-API, anderer Prompt, andere Fehlerbehandlung) bedeutet wieder stundenlange Groovy-Sessions.

❌ Das Monolith-Problem: Intrexx kann alles – aber manche Dinge (KI-Orchestrierung, komplexe API-Choreographien, visuelle Workflow-Anpassungen) sind mit Low-Code-Groovy unnötig aufwändig.

Sie sind nicht allein. Wir sehen dieses Muster bei 80% unserer Intrexx-Kunden: Intrexx ist brillant für Datenbanken, UIs, Rechtemanagement – aber sobald es um flexible KI-Workflows geht, wünscht man sich etwas Agileres.

Die Lösung: Hybrid-Architektur

Was wenn Sie Intrexx für das nutzen, was es am besten kann (strukturierte Business-Logik, Datenhaltung, User-Interfaces) und n8n für KI-Orchestrierung einsetzen (visueller Workflow-Editor, 400+ vorgefertigte Integrationen, native KI-Nodes)?

Spoiler: Genau das ist unsere Spezialität bei himmelblau.digital. In den letzten 2 Jahren haben wir 15+ Projekte mit dieser Hybrid-Architektur umgesetzt – dieser Artikel zeigt Ihnen genau wie.


Warum n8n + Intrexx die perfekte Ehe ist

Intrexx: Die stabile Basis

Stärke Warum?
Datenbank-Modellierung Relationaler Designer, automatische Indexierung, DSGVO-Features
User-Interfaces Drag-&-Drop Page Builder, responsive Layouts, 50+ UI-Komponenten
Rechtemanagement Granulare Berechtigungen (Feld-Level), LDAP/AD-Integration
Prozess-Management BPMN 2.0 Workflows, Eskalations-Management, Audit-Logs
Stabilität Enterprise-Grade, seit 20+ Jahren im Markt, deutscher Support

n8n: Der agile Workflow-Layer

Stärke Warum?
KI-Orchestrierung Native Nodes für OpenAI, Claude, Gemini, Mistral – kein Code nötig
400+ Integrationen Vorgefertigte Nodes für Slack, Gmail, Notion, Airtable, ...
Visueller Editor Änderungen in Minuten statt Stunden (kein Code-Deploy)
Error-Handling Retry-Logik, Exponential Backoff, Error-Trigger – out of the box
Async-First Perfekt für langlaufende KI-Anfragen (30+ Sekunden)

Die Synergie: 1 + 1 = 3

💡 Best-of-Both-Worlds

  • Intrexx verwaltet Business-Daten, Users, Rechte
  • n8n orchestriert KI-Workflows, API-Calls, Integrationen
  • Kommunikation via Groovy Hooks (Intrexx → n8n) und REST API (n8n → Intrexx)
  • Ergebnis: Stabilität + Agilität = schnellere Time-to-Market

Konkretes Beispiel: Rechnungsprüfung mit KI

  • Intrexx: Rechnung wird hochgeladen, Datenbank-Eintrag erstellt, User-Interface zeigt Status
  • Intrexx Groovy Hook: Sendet PDF + Metadata an n8n Webhook (10 Zeilen Code)
  • n8n Workflow: Claude Vision API → Daten extrahieren → Validierung → Callback an Intrexx (5 Nodes, visuell)
  • Intrexx: Empfängt Ergebnis, updated Datenbank, sendet E-Mail an Prüfer

Entwicklungszeit: 2 Tage statt 2 Wochen (reiner Groovy-Ansatz)


Technische Architektur

Kommunikationsfluss: Intrexx ↔ n8n

┌─────────────────────────────────────────────────────────────────┐
│                        USER ACTION                              │
│         (Upload Rechnung in Intrexx-Formular)                   │
└────────────────────────┬────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────────┐
│                   INTREXX EVENT HANDLER                         │
│  • afterSave-Trigger feuert                                     │
│  • Groovy Hook wird ausgeführt                                  │
└────────────────────────┬────────────────────────────────────────┘
                         │
                         │ HTTP POST Request
                         │ (JSON Payload: PDF Base64 + Metadata)
                         ▼
┌─────────────────────────────────────────────────────────────────┐
│                    n8n WEBHOOK NODE                             │
│  • Empfängt Request                                             │
│  • Authentifizierung prüfen (API-Key)                           │
│  • Workflow startet                                             │
└────────────────────────┬────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────────┐
│                  n8n WORKFLOW LOGIC                             │
│  1. Base64 → Binary Conversion                                  │
│  2. Claude Vision API Call (OCR + Extraktion)                   │
│  3. Validierung (Betrag > 0, Datum gültig, etc.)                │
│  4. IF-Condition: Confidence Score > 90%?                       │
│     ├─ JA: Auto-Approve                                         │
│     └─ NEIN: Flag für manuelle Prüfung                          │
└────────────────────────┬────────────────────────────────────────┘
                         │
                         │ HTTP POST Request
                         │ (JSON Payload: Extrahierte Daten + Status)
                         ▼
┌─────────────────────────────────────────────────────────────────┐
│                  INTREXX REST API                               │
│  • n8n sendet Ergebnis zurück                                   │
│  • Intrexx Workflow-Handler verarbeitet Response                │
└────────────────────────┬────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────────┐
│                 INTREXX DATABASE UPDATE                         │
│  • Felder werden geupdated (Betrag, Datum, Status)              │
│  • Workflow-Status: "Geprüft" oder "Manuelle Prüfung nötig"     │
│  • E-Mail-Benachrichtigung an Prüfer                            │
└────────────────────────┬────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────────┐
│                     USER NOTIFICATION                           │
│        (E-Mail: "Rechnung geprüft – Details ansehen")           │
└─────────────────────────────────────────────────────────────────┘

Komponenten im Detail

1. Intrexx Groovy Hook (Sender)

// ====================================
// Intrexx Event Handler: afterSave
// Trigger: Rechnung wurde hochgeladen
// ====================================

import groovy.json.JsonOutput
import groovy.json.JsonSlurper
import java.net.HttpURLConnection

// 1. Rechnung aus Intrexx Record holen
def invoiceFile = g_record.getFile("invoice_pdf")
if (invoiceFile == null) {
    g_log.error("Keine Rechnung gefunden")
    return
}

// 2. PDF zu Base64 konvertieren
def invoiceBase64 = invoiceFile.getBytes().encodeBase64().toString()

// 3. n8n Webhook URL (aus Intrexx Config lesen)
def n8nWebhookUrl = g_appCfg.getValue("n8n_webhook_url")
def apiKey = g_appCfg.getValue("n8n_api_key")

// 4. Payload erstellen
def payload = [
    invoice_id: g_record.getIntegerValue("id"),
    pdf_base64: invoiceBase64,
    supplier_name: g_record.getStringValue("supplier_name"),
    upload_timestamp: new Date().format("yyyy-MM-dd'T'HH:mm:ss'Z'")
]

try {
    // 5. HTTP POST Request an n8n
    def connection = new URL(n8nWebhookUrl).openConnection() as HttpURLConnection
    connection.setRequestMethod("POST")
    connection.doOutput = true
    connection.setRequestProperty("Content-Type", "application/json")
    connection.setRequestProperty("X-API-Key", apiKey)
    connection.setConnectTimeout(5000)  // 5 Sekunden Connect-Timeout
    connection.setReadTimeout(30000)    // 30 Sekunden Read-Timeout

    def writer = new OutputStreamWriter(connection.outputStream, "UTF-8")
    writer.write(JsonOutput.toJson(payload))
    writer.flush()
    writer.close()

    // 6. Response lesen
    def responseCode = connection.responseCode

    if (responseCode == 200) {
        def response = connection.inputStream.text
        def json = new JsonSlurper().parseText(response)

        // 7. Optional: Sofort-Response verarbeiten (falls sync)
        if (json.workflow_id) {
            g_record.setValue("n8n_workflow_id", json.workflow_id)
            g_record.setValue("processing_status", "In Verarbeitung")
        }

        g_log.info("n8n Workflow gestartet: ${json.workflow_id}")
    } else {
        g_log.error("n8n HTTP Error: ${responseCode}")
        g_record.setValue("processing_status", "Fehler beim Senden")
    }

} catch (Exception e) {
    g_log.error("n8n Request fehlgeschlagen: ${e.message}")
    g_record.setValue("processing_status", "Fehler")
}

2. n8n Workflow (Processor)

Visueller Workflow in n8n (5 Nodes):

  1. Webhook Trigger – Empfängt Request von Intrexx
  2. Convert Base64 to Binary – PDF dekodieren
  3. Claude Vision API – OCR + Datenextraktion
  4. Validate Data – Confidence Score prüfen
  5. HTTP Request – Callback an Intrexx REST API

Pseudo-Code für Claude Vision Node:

// n8n Node: Claude Vision API
{
  "model": "claude-3-7-sonnet-20250219",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "application/pdf",
            "data": "{{ $json.pdf_base64 }}"
          }
        },
        {
          "type": "text",
          "text": `Extrahiere aus dieser Rechnung:
1. Rechnungsnummer
2. Rechnungsbetrag (Brutto in EUR)
3. Rechnungsdatum (Format: YYYY-MM-DD)
4. Lieferant
5. Confidence Score (0-100%)

Antwort als JSON:
{
  "invoice_number": "...",
  "amount": 1234.56,
  "date": "2026-01-10",
  "supplier": "Firma XY GmbH",
  "confidence": 95
}`
        }
      ]
    }
  ]
}

3. Intrexx REST API (Receiver)

n8n sendet Ergebnis zurück an Intrexx REST API:

POST https://intrexx.your-company.de/api/invoices/{{invoice_id}}/update
Headers:
  Content-Type: application/json
  Authorization: Bearer YOUR_INTREXX_API_TOKEN

Body:
{
  "extracted_amount": 1234.56,
  "extracted_date": "2026-01-10",
  "extracted_invoice_number": "RE-2026-001",
  "ai_confidence": 95,
  "processing_status": "Auto-Approved",
  "processed_at": "2026-01-13T14:32:00Z"
}

Intrexx verarbeitet diesen Request in einem REST API Handler (Groovy-Klasse oder Workflow-Trigger).


Setup-Guide: Erste Integration in 30 Minuten

Voraussetzungen:

  • Intrexx 23.03+ (mit Groovy Support)
  • n8n installiert (Self-hosted oder Cloud)
  • Netzwerk-Zugriff zwischen Intrexx und n8n

Schritt 1: n8n Webhook erstellen (5 Min.)

  1. n8n öffnen → Neuer Workflow
  2. Node hinzufügen: Webhook
  3. HTTP Method: POST
  4. Path: /intrexx/invoice-check
  5. Authentication: Header Auth (Name: X-API-Key)
  6. Webhook URL kopieren (z.B. https://n8n.your-company.de/webhook/intrexx/invoice-check)

Schritt 2: Intrexx Groovy Hook erstellen (10 Min.)

  1. Intrexx Portal Manager öffnen
  2. Applikation öffnen → Datengruppe Rechnungen
  3. Event Handler hinzufügen: afterSave
  4. Groovy Script erstellen (siehe Code oben)
  5. n8n Webhook URL + API-Key in Intrexx Config speichern
  6. Testen: Rechnung hochladen → Intrexx Log prüfen

Schritt 3: n8n Workflow bauen (10 Min.)

  1. Node 1: Webhook (bereits erstellt)
  2. Node 2: Function Node – Base64 to Binary
  3. Node 3: HTTP Request – Claude API
  4. Node 4: IF Node – Confidence > 90%?
  5. Node 5: HTTP Request – Callback an Intrexx
  6. Workflow aktivieren

Schritt 4: Intrexx REST API Handler (5 Min.)

  1. Intrexx REST API aktivieren (Admin Panel)
  2. API-Token generieren (für n8n)
  3. Groovy Handler für /api/invoices/{id}/update
  4. Testen: n8n sendet Test-Request → Intrexx Datenbank prüfen

✅ Fertig! Sie haben jetzt eine funktionierende Intrexx ↔ n8n Integration. Nächster Schritt: Workflow für Ihren konkreten Use Case anpassen.


7 Use Cases mit Code-Beispielen

1. KI-Rechnungsprüfung

Szenario: Eingangsrechnungen automatisch prüfen (Betrag, Datum, Lieferant extrahieren).

Intrexx: Rechnung hochladen → Groovy Hook sendet PDF an n8n
n8n: Claude Vision API → Daten extrahieren → Callback an Intrexx
Intrexx: Felder automatisch befüllen, E-Mail an Prüfer

ROI: 127% im ersten Jahr (siehe Backend-KI-Workflows Guide)


2. E-Mail-Klassifizierung

Szenario: Eingehende E-Mails (Support, Vertrieb, Beschwerden) automatisch kategorisieren.

Intrexx: E-Mail-Connector empfängt Mail → Groovy Hook sendet Text an n8n
n8n: Claude Text API → Kategorie + Priorität bestimmen → Callback
Intrexx: E-Mail in richtige Queue routen, Ticket erstellen

n8n Prompt-Beispiel:

Klassifiziere diese E-Mail:

Betreff: {{ $json.subject }}
Text: {{ $json.body }}

Kategorien:
- SUPPORT (technische Frage)
- VERTRIEB (Interesse an Produkt)
- BESCHWERDE (Unzufriedenheit)
- RECHNUNG (Rechnungsfrage)
- SONSTIGES

Priorität:
- HOCH (Beschwerde, dringend)
- MITTEL (Support, Vertrieb)
- NIEDRIG (Info, Newsletter)

Antwort als JSON:
{
  "category": "SUPPORT",
  "priority": "MITTEL",
  "confidence": 92,
  "suggested_assignee": "Team Support"
}

3. Vertrags-Zusammenfassung

Szenario: 50-seitigen Vertrag in 5 Bullet Points zusammenfassen.

Intrexx: Vertrag hochladen → Groovy Hook sendet PDF an n8n
n8n: Claude Long Context API (200k Tokens) → Zusammenfassung generieren
Intrexx: Zusammenfassung im UI anzeigen, E-Mail an Geschäftsführer


4. Meeting-Protokoll-Generator

Szenario: Audio-Aufnahme von Meeting automatisch transkribieren + zusammenfassen.

Intrexx: Meeting-Audio hochladen → Groovy Hook sendet an n8n
n8n:

  1. OpenAI Whisper API → Transkription
  2. Claude API → Zusammenfassung (Agenda, Beschlüsse, Todos)
  3. Callback an Intrexx

Intrexx: Protokoll in Datenbank speichern, E-Mail an Teilnehmer, Todos in Task-Liste


5. Angebots-Erstellung mit KI

Szenario: Vertrieb gibt Eckdaten ein → KI generiert vollständiges Angebot.

Intrexx: Vertriebsformular ausfüllen (Kunde, Produkte, Budget) → Groovy Hook
n8n: Claude API → Angebot generieren (mit Firmen-Templates, Preisliste) → Callback
Intrexx: Angebot als PDF generieren, E-Mail an Kunde + CRM-Update

ROI: 275% (siehe Backend-KI-Workflows Guide)


6. Duplikate-Erkennung in Datenbank

Szenario: Neuer Kontakt wird angelegt → KI prüft ob Duplikat existiert.

Intrexx: Kontakt-Formular abschicken → Groovy Hook sendet Daten an n8n
n8n:

  1. Intrexx REST API abfragen (alle ähnlichen Namen)
  2. Claude API → "Sind diese 3 Kontakte Duplikate?"
  3. Callback mit Duplikat-Warnung

Intrexx: Warnung anzeigen: "Achtung: Möglicherweise Duplikat zu Kontakt #1234"

ROI: 450% (siehe Backend-KI-Workflows Guide)


7. Support-Antwort-Vorschläge

Szenario: Support-Ticket kommt rein → KI schlägt Antwort vor (aus Wissensdatenbank).

Intrexx: Neues Ticket → Groovy Hook sendet Ticket-Text an n8n
n8n:

  1. Vector Search in Wissensdatenbank (Pinecone/Weaviate)
  2. Claude API → Antwort formulieren (basierend auf gefundenen Artikeln)
  3. Callback mit Antwort-Vorschlag

Intrexx: Antwort-Vorschlag im Ticket anzeigen (mit "Senden"-Button)

ROI: 185% (siehe Backend-KI-Workflows Guide)


Best Practices & Fehlerbehandlung

Sicherheit

  • HTTPS: Immer Zertifikat verwenden (Let's Encrypt)
  • API-Key Authentifizierung: Header X-API-Key in jedem Request
  • IP-Whitelisting: n8n akzeptiert nur Requests von Intrexx-Server-IP
  • Request-Signing: HMAC-SHA256 für kritische Workflows
  • DSGVO: Keine personenbezogenen Daten in Logs (n8n + Intrexx)

Fehlerbehandlung

In Intrexx Groovy Hook:

try {
    // n8n Request
} catch (SocketTimeoutException e) {
    g_log.error("n8n Timeout: ${e.message}")
    g_record.setValue("processing_status", "Timeout - Retry geplant")
    // Optional: Retry-Flag setzen für Timer Job
} catch (IOException e) {
    g_log.error("n8n Connection Error: ${e.message}")
    g_record.setValue("processing_status", "Verbindungsfehler")
} catch (Exception e) {
    g_log.error("Unbekannter Fehler: ${e.message}")
    g_record.setValue("processing_status", "Fehler")
}

In n8n Workflow:

  • Error-Trigger Node: Fängt Fehler ab, sendet Alert (Slack, E-Mail)
  • Retry Logic: Exponential Backoff (3 Versuche: 5s, 15s, 45s)
  • Fallback-Werte: Bei niedrigem Confidence Score → Manuelle Prüfung
  • Timeout-Limits: Claude API max. 30 Sekunden (dann Fehler)

Performance

  • Async-First: Intrexx wartet nicht auf n8n Response (außer bei Sync-Workflows)
  • Batch-Processing: 100 E-Mails auf einmal klassifizieren (n8n Loop Node)
  • Caching: Häufig genutzte Prompts/Responses cachen (Redis in n8n)
  • Load Balancing: n8n horizontal skalieren (mehrere Instanzen)

Monitoring

  • n8n Execution History: Alle Workflow-Runs tracken (mit Input/Output)
  • Intrexx Logs: Groovy Hook Fehler in separates Log schreiben
  • Alerts: Slack/E-Mail bei >5 Fehlern pro Stunde
  • Dashboards: Grafana für n8n-Metriken (Success Rate, Durchlaufzeit)

Häufig gestellte Fragen (FAQ)

Warum nicht nur Intrexx ODER n8n nutzen?
+

Intrexx ist perfekt für strukturierte Business-Logik, Datenbanken, User-Interfaces und Rechtemanagement.

n8n ist perfekt für flexible KI-Orchestrierung, API-Aufrufe, Retry-Logik und asynchrone Workflows.

Die Kombination vereint Stabilität (Intrexx) mit Agilität (n8n) – statt mit Intrexx-Groovy 200 Zeilen für einen API-Call zu schreiben, delegiert man an n8n (3 Nodes, visuell).

Konkretes Beispiel: Rechnungsprüfung

  • Nur Intrexx: 200 Zeilen Groovy, 3 Wochen Entwicklung
  • Nur n8n: Keine Business-Datenbank, kein Rechtemanagement
  • Hybrid: 10 Zeilen Groovy (Trigger) + 5 n8n Nodes = 2 Tage
Wie sicher ist die Webhook-Kommunikation?
+

Best Practices für Sicherheit:

  1. HTTPS: Immer gültiges Zertifikat (Let's Encrypt kostenlos)
  2. Webhook-Authentifizierung: API-Key im Header (X-API-Key)
  3. IP-Whitelisting: n8n akzeptiert nur Requests von Intrexx-Server-IP
  4. Request-Signing: HMAC-SHA256 für kritische Workflows
  5. Timeout-Limits: Max. 30 Sekunden pro Request
  6. Rate Limiting: Max. 100 Requests/Min. in n8n konfigurieren

Bei sensiblen Daten: On-Premise-Deployment beider Systeme im gleichen Netzwerk (kein Internet-Transit).

Was passiert wenn n8n down ist?
+

Fehlerbehandlung in Intrexx Groovy Hook:

  • Try-Catch mit Timeout: Nach 30 Sekunden Fehler werfen
  • Fallback auf Default-Wert: z.B. Status "Manuelle Prüfung"
  • Error-Logging: Fehler in separates Log schreiben
  • Status-Flag setzen: processing_status = "pending_retry"
  • Retry-Mechanismus: Intrexx Timer Job (alle 15 Min. prüfen ob Retry nötig)
  • Optional: n8n Health-Check vor Request (GET /healthz)
  • Monitoring-Alert: Bei >5 Fehlern/Stunde → Slack-Benachrichtigung

Bei kritischen Prozessen: Active-Standby n8n-Cluster (Load Balancer mit automatischem Failover) oder manuelle Fallback-Logik in Intrexx (z.B. E-Mail an Admin statt KI-Verarbeitung).


Fazit: Die Zukunft ist hybrid

Die Kombination von Intrexx (Low-Code) und n8n (No-Code) ist die pragmatischste Lösung für Backend-KI-Workflows im Mittelstand:

  • Schnellere Time-to-Market: 2 Tage statt 2 Wochen
  • Höhere Agilität: Workflow-Änderungen in Minuten (visuell in n8n)
  • Beste Entwickler-Experience: Kein 200-Zeilen-Groovy-Albtraum
  • Kostengünstiger: n8n Open Source (selbst-hostet) + Intrexx Lizenz
  • DSGVO-konform: On-Premise-Deployment möglich

🚀 Interesse an n8n + Intrexx Integration?

Wir haben in den letzten 2 Jahren 15+ Projekte mit dieser Hybrid-Architektur umgesetzt – von Rechnungsprüfung bis Meeting-Protokolle.

Nächster Schritt: Kostenloses 30-Min. Beratungsgespräch

Jetzt Termin vereinbaren

Weiterführende Artikel: