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:
- Login – Authentifizierung an der ComBinder REST API
- Produkte abrufen – alle Masterprodukte des aktiven Workspace laden
- Schleife über alle Produkte – jedes Produkt wird einzeln verarbeitet
- Deutschen Quelltext holen –
DESCRIPTION_SHORTin Deutsch abrufen - KI-Übersetzung – den Text per API an das KI-Modell senden
- Englischen Text speichern – die Übersetzung in ComBinder zurückschreiben
- 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_LONGwiederholen - 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:
| Variable | Beispielwert |
|---|---|
sourceLang | deu |
targetLang | eng |
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
| Zielseite | Ankertextvorschlag |
|---|---|
| Blog: REST API Referenz | „vollständige API-Dokumentation“ |
| Blog: n8n Setup & Login-Workflow | „ComBinder per n8n anbinden“ |
| Blog: Einstellungen & Monitor | „REST API aktivieren“ |
| ComBinder Download | „aktuelle ComBinder-Version” |