Wie ihr mit wenigen Klicks alle Produktbeschreibungen KI-gestützt übersetzen und optimieren lasst – vollautomatisch, ohne Programmierkenntnisse


Das Problem: Mehrsprachige Produkttexte sind zeitintensiv

Wer Produkte in mehreren Märkten verkauft, kennt das Problem: Jede Produktbeschreibung muss in jeder Sprache gepflegt werden. Kurzbeschreibung, Langtext, Feature-Werte – das summiert sich bei hunderten Produkten schnell auf tausende manuelle Einträge. Übersetzungsagenturen sind teuer, maschinenübersetzte Texte klingen oft hölzern, und der Pflegeaufwand steigt mit jedem neuen Markt.

Mit der Kombination aus ComBinder PIM, n8n und einem KI-Sprachmodell (z. B. GPT-4 von OpenAI oder Claude von Anthropic) lässt sich dieser Prozess vollständig automatisieren – und das Ergebnis ist deutlich besser als klassische maschinelle Übersetzung.


Die Idee: REST API als Brücke

ComBinder stellt seit der aktuellen Version eine REST API bereit, über die Produkttexte direkt gelesen und geschrieben werden können. n8n übernimmt die Orchestrierung: Es ruft die Texte ab, sendet sie an die KI, und schreibt die übersetzte (oder optimierte) Version zurück – für jedes Produkt, in jeder gewünschten Sprache.

Der Ablauf in drei Schritten:

ComBinder          n8n                    KI-Modell
    │                │                        │
    │◄── Login ──────│                        │
    │                │                        │
    │◄── Produkte ───│                        │
    │    abrufen     │                        │
    │                │                        │
    │◄── Text holen ─│                        │
    │    (Deutsch)   │                        │
    │                │──── Übersetzen ────────►│
    │                │◄─── Ergebnis ───────────│
    │                │                        │
    │◄── Text ───────│                        │
    │    speichern   │                        │
    │    (Englisch)  │                        │
    │                │                        │
    │◄── Logout ─────│                        │

Der Workflow im Detail

Was der Workflow tut

Der n8n-Workflow, den ihr am Ende dieses Artikels als fertiges JSON herunterladen könnt, führt folgende Schritte automatisch aus:

  1. Login – Authentifizierung an der ComBinder REST API
  2. Produkte abrufen – alle Masterprodukte des aktiven Workspace laden
  3. Schleife über alle Produkte – jedes Produkt wird einzeln verarbeitet
  4. Deutschen Quelltext holenDESCRIPTION_SHORT in Deutsch abrufen
  5. KI-Übersetzung – den Text per API an das KI-Modell senden
  6. Englischen Text speichern – die Übersetzung in ComBinder zurückschreiben
  7. Logout – Sitzung sauber beenden

Erweiterungsmöglichkeiten

Der Workflow ist bewusst modular aufgebaut. Ihr könnt ihn leicht erweitern für:

  • Weitere Sprachen – einfach zusätzliche Übersetzungsschritte hinzufügen (Französisch, Spanisch, Niederländisch …)
  • Langbeschreibungen – den gleichen Ablauf für DESCRIPTION_LONG wiederholen
  • Feature-Werte – technische Merkmale sprachgerecht übersetzen
  • Textoptimierung statt Übersetzung – bestehende Texte durch die KI verbessern lassen (SEO-Optimierung, kürzere Formulierungen, aktivere Sprache)
  • Geplante Ausführung – statt manuell täglich oder wöchentlich per Cron-Trigger automatisch starten

Schritt-für-Schritt: Einrichtung

Voraussetzungen

  • ComBinder ist gestartet und die REST API ist in den Einstellungen aktiviert (Port 8765)
  • n8n läuft (Docker Desktop oder native Installation)
  • Ein API-Key eines KI-Dienstes (OpenAI, Anthropic o. ä.)
  • Ein ComBinder-Benutzer für die API-Anbindung ist angelegt

1. Workflow importieren

Ladet das JSON am Ende dieses Artikels herunter und importiert es in n8n:
Workflows → Import from file → JSON auswählen

2. OpenAI API-Key eintragen

Öffnet den Node „KI Übersetzen” und tragt euren OpenAI-API-Key im Header Authorization ein:

Authorization: Bearer sk-…euer-key…

3. Zugangsdaten anpassen

Im Node „ComBinder Login” tragt ihr Benutzername und Passwort eures API-Benutzers ein.

4. Quell- und Zielsprache festlegen

Im Node „Konfiguration” stellt ihr per Set-Node ein:

VariableBeispielwert
sourceLangdeu
targetLangeng

5. Ausführen

Klickt auf „Execute Workflow” – der Workflow läuft durch alle Produkte durch. Im ComBinder REST API Monitor (Einstellungen → REST API → Monitor öffnen) könnt ihr alle API-Aufrufe live mitverfolgen.


Das Prompt: So spricht ihr mit der KI

Das Herzstück ist der Prompt, den ihr an das KI-Modell schickt. Ein gutes Prompt für Produkttexte:

Du bist ein professioneller Übersetzer für Produktbeschreibungen.
Übersetze den folgenden deutschen Produkttext ins Englische.
Behalte den Tonfall bei (sachlich, informativ).
Gib ausschließlich den übersetzten Text zurück, ohne Erklärungen.

Text: {{ $json.value }}

Für Textoptimierung statt Übersetzung ändert ihr den Prompt:

Du bist ein erfahrener Texter für E-Commerce-Produktbeschreibungen.
Optimiere den folgenden Produkttext für maximale Kaufmotivation:
- Aktive Sprache, konkrete Vorteile statt technischer Merkmale
- Maximal 150 Zeichen
- Keine Füllwörter

Text: {{ $json.value }}

Tipps aus der Praxis

Batch-Verarbeitung nutzen – Verarbeitet nicht zu viele Produkte auf einmal. Der Workflow arbeitet die Produkte nacheinander ab; bei sehr großen Katalogen empfiehlt sich ein SplitInBatches-Node mit Pause zwischen den Batches, um API-Rate-Limits zu vermeiden.

Nur fehlende Übersetzungen befüllen – Fügt nach dem Holen des Quelltexts einen IF-Node ein, der prüft, ob der Zieltext schon befüllt ist. So werden vorhandene Übersetzungen nicht überschrieben.

Ergebnisse prüfen – Führt den Workflow beim ersten Mal nur für 2–3 Testprodukte aus. Überprüft die Texte in ComBinder, bevor ihr den gesamten Katalog verarbeitet.

Kosten im Blick behalten – Jeder API-Aufruf ans KI-Modell kostet. Bei 500 Produkten mit je 100 Wörtern Quelltext rechnet ihr mit ca. 0,10–0,30 € pro Durchlauf (bei GPT-4o). GPT-4o-mini ist deutlich günstiger und für einfache Übersetzungen oft ausreichend.


Fazit

Die Kombination aus ComBinder REST API, n8n und einem KI-Modell schließt eine der aufwändigsten Lücken im Produktdatenmanagement: die mehrsprachige Textpflege. Was früher Stunden manueller Arbeit bedeutete, läuft nun vollautomatisch ab – und durch die direkte Anbindung ans PIM-System sind alle Texte sofort im richtigen Format an der richtigen Stelle.

Der Workflow ist der Ausgangspunkt. Passt ihn an euren Katalog, eure Sprachen und euren KI-Dienst an – die Möglichkeiten sind unbegrenzt.


Anhang: n8n Workflow JSON


{
  "name": "ComBinder – KI Textübersetzung",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [-400, 240],
      "id": "a1b2c3d4-0001-0001-0001-000000000001",
      "name": "Manuell starten"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            { "id": "cfg-01", "name": "sourceLang", "value": "deu", "type": "string" },
            { "id": "cfg-02", "name": "targetLang", "value": "eng", "type": "string" },
            { "id": "cfg-03", "name": "comBinderUrl", "value": "http://host.docker.internal:8765", "type": "string" },
            { "id": "cfg-04", "name": "username", "value": "n8n-user", "type": "string" },
            { "id": "cfg-05", "name": "password", "value": "geheimes-passwort", "type": "string" }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [-160, 240],
      "id": "a1b2c3d4-0002-0002-0002-000000000002",
      "name": "Konfiguration"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $json.comBinderUrl }}/api/auth/login",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"username\": \"{{ $json.username }}\",\n  \"password\": \"{{ $json.password }}\"\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [80, 240],
      "id": "a1b2c3d4-0003-0003-0003-000000000003",
      "name": "ComBinder Login"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            { "id": "tok-01", "name": "token", "value": "={{ $json.data.token }}", "type": "string" },
            { "id": "tok-02", "name": "comBinderUrl", "value": "={{ $('Konfiguration').item.json.comBinderUrl }}", "type": "string" },
            { "id": "tok-03", "name": "sourceLang", "value": "={{ $('Konfiguration').item.json.sourceLang }}", "type": "string" },
            { "id": "tok-04", "name": "targetLang", "value": "={{ $('Konfiguration').item.json.targetLang }}", "type": "string" }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [320, 240],
      "id": "a1b2c3d4-0004-0004-0004-000000000004",
      "name": "Token speichern"
    },
    {
      "parameters": {
        "url": "={{ $json.comBinderUrl }}/api/product",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            { "name": "Authorization", "value": "=Bearer {{ $json.token }}" }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [560, 240],
      "id": "a1b2c3d4-0005-0005-0005-000000000005",
      "name": "Produkte laden"
    },
    {
      "parameters": {
        "fieldToSplitOut": "data",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [800, 240],
      "id": "a1b2c3d4-0006-0006-0006-000000000006",
      "name": "Produkte aufteilen"
    },
    {
      "parameters": {
        "url": "={{ $('Token speichern').item.json.comBinderUrl }}/api/product/{{ $json.id }}/texts/short/{{ $('Token speichern').item.json.sourceLang }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            { "name": "Authorization", "value": "=Bearer {{ $('Token speichern').item.json.token }}" }
          ]
        },
        "options": {
          "response": {
            "response": { "neverError": true }
          }
        }
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [1040, 240],
      "id": "a1b2c3d4-0007-0007-0007-000000000007",
      "name": "Quelltext holen"
    },
    {
      "parameters": {
        "conditions": {
          "options": { "caseSensitive": true },
          "conditions": [
            {
              "id": "if-01",
              "leftValue": "={{ $json.success }}",
              "rightValue": true,
              "operator": { "type": "boolean", "operation": "equals" }
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [1280, 240],
      "id": "a1b2c3d4-0008-0008-0008-000000000008",
      "name": "Text vorhanden?"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.openai.com/v1/chat/completions",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            { "name": "Authorization", "value": "Bearer sk-EUER-OPENAI-KEY" },
            { "name": "Content-Type", "value": "application/json" }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"model\": \"gpt-4o-mini\",\n  \"messages\": [\n    {\n      \"role\": \"system\",\n      \"content\": \"Du bist ein professioneller Übersetzer für Produktbeschreibungen. Übersetze den folgenden deutschen Produkttext ins Englische. Behalte den sachlichen, informativen Tonfall bei. Gib ausschließlich den übersetzten Text zurück, ohne Erklärungen.\"\n    },\n    {\n      \"role\": \"user\",\n      \"content\": \"{{ $json.data.value }}\"\n    }\n  ],\n  \"temperature\": 0.3\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [1520, 120],
      "id": "a1b2c3d4-0009-0009-0009-000000000009",
      "name": "KI Übersetzen"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            { "id": "res-01", "name": "translatedText", "value": "={{ $json.choices[0].message.content }}", "type": "string" },
            { "id": "res-02", "name": "productId", "value": "={{ $('Produkte aufteilen').item.json.id }}", "type": "string" }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [1760, 120],
      "id": "a1b2c3d4-0010-0010-0010-000000000010",
      "name": "Übersetzung extrahieren"
    },
    {
      "parameters": {
        "method": "PUT",
        "url": "={{ $('Token speichern').item.json.comBinderUrl }}/api/product/{{ $json.productId }}/texts/short/{{ $('Token speichern').item.json.targetLang }}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            { "name": "Authorization", "value": "=Bearer {{ $('Token speichern').item.json.token }}" },
            { "name": "Content-Type", "value": "application/json" }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"value\": \"{{ $json.translatedText }}\"\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [2000, 120],
      "id": "a1b2c3d4-0011-0011-0011-000000000011",
      "name": "Übersetzung speichern"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $('Token speichern').item.json.comBinderUrl }}/api/auth/logout",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            { "name": "Authorization", "value": "=Bearer {{ $('Token speichern').item.json.token }}" }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [2240, 240],
      "id": "a1b2c3d4-0012-0012-0012-000000000012",
      "name": "Logout"
    }
  ],
  "pinData": {},
  "connections": {
    "Manuell starten": {
      "main": [[{ "node": "Konfiguration", "type": "main", "index": 0 }]]
    },
    "Konfiguration": {
      "main": [[{ "node": "ComBinder Login", "type": "main", "index": 0 }]]
    },
    "ComBinder Login": {
      "main": [[{ "node": "Token speichern", "type": "main", "index": 0 }]]
    },
    "Token speichern": {
      "main": [[{ "node": "Produkte laden", "type": "main", "index": 0 }]]
    },
    "Produkte laden": {
      "main": [[{ "node": "Produkte aufteilen", "type": "main", "index": 0 }]]
    },
    "Produkte aufteilen": {
      "main": [[{ "node": "Quelltext holen", "type": "main", "index": 0 }]]
    },
    "Quelltext holen": {
      "main": [[{ "node": "Text vorhanden?", "type": "main", "index": 0 }]]
    },
    "Text vorhanden?": {
      "main": [
        [{ "node": "KI Übersetzen", "type": "main", "index": 0 }],
        []
      ]
    },
    "KI Übersetzen": {
      "main": [[{ "node": "Übersetzung extrahieren", "type": "main", "index": 0 }]]
    },
    "Übersetzung extrahieren": {
      "main": [[{ "node": "Übersetzung speichern", "type": "main", "index": 0 }]]
    },
    "Übersetzung speichern": {
      "main": [[{ "node": "Logout", "type": "main", "index": 0 }]]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": false
  },
  "meta": {
    "instanceId": "combinder-ki-uebersetzung-workflow-v1"
  },
  "id": "ComBinderKITranslate01",
  "tags": ["ComBinder", "KI", "Übersetzung", "Produktdaten"]
}

Interne Verlinkungsempfehlungen

ZielseiteAnkertextvorschlag
Blog: REST API Referenzvollständige API-Dokumentation
Blog: n8n Setup & Login-WorkflowComBinder per n8n anbinden
Blog: Einstellungen & MonitorREST API aktivieren
ComBinder Download„aktuelle ComBinder-Version”