AutomationFlowsAI & RAG › Translate: Class

Translate: Class

Translate: Class. Uses lmChatOpenAi, httpRequest, agent, executeWorkflowTrigger. Event-driven trigger; 21 nodes.

Event trigger★★★★☆ complexityAI-powered21 nodesOpenAI ChatHTTP RequestAgentExecute Workflow TriggerTool Workflow
AI & RAG Trigger: Event Nodes: 21 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → Execute Workflow Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Translate: Class",
  "nodes": [
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "google-anthropic-claude-opus-4.6",
          "mode": "list",
          "cachedResultName": "google-anthropic-claude-opus-4.6"
        },
        "builtInTools": {},
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.3,
      "position": [
        -3328,
        -464
      ],
      "id": "1c4d7e4a-0166-4408-bc16-416f070bdcc7",
      "name": "OpenAI Class Method Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "fieldToSplitOut": "d.results",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        -4000,
        -688
      ],
      "id": "412f13ac-cf7c-45f5-bf19-053523999676",
      "name": "Split Class Methods"
    },
    {
      "parameters": {
        "url": "=https://abg-sap-dev01.swan.int:8001/sap/opu/odata/sap/ZSWAN_N8N_TRANSLATION_SRV/ClassComponent",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBasicAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "=$filter",
              "value": "=ClassName eq '{{ encodeURIComponent($('Set Data').item.json.ClassName) }}' and ComponentType eq '1'"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            }
          ]
        },
        "options": {
          "allowUnauthorizedCerts": true
        }
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [
        -4224,
        -688
      ],
      "id": "4341a6f8-e48e-4245-a534-7ff7d17a3fb5",
      "name": "QueryClassMethods",
      "credentials": {
        "httpBasicAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=# Role\nYou are a SAP ABAP documentation and translation agent.\n\n# Context\n- Method: `{{ $json.ComponentName }}`\n- Source Language: `{{ $('Set Data').item.json.SourceLanguage }}`\n- Target Language: `{{ $('Set Data').item.json.TargetLanguage }}`\n\n# CRITICAL RULES\n- Call each tool **MAXIMUM ONCE**. Never call the same tool twice.\n- Always follow the exact call sequence below. No deviations.\n- After your last action, output a **Final Summary** and STOP.\n\n# Pre-Check (no tool call needed)\nIf source language (`{{ $('Set Data').item.json.SourceLanguage }}`) and target language (`{{ $('Set Data').item.json.TargetLanguage }}`) are **identical**:\n\u2192 Output: `SKIPPED: Source and target language are identical.` \u2192 **STOP.**\n\n---\n\n# Execution Plan\n\n## Call 1: `Get Primary Class Method Text`\nRead the existing description. Remember the result as **PRIMARY_TEXT**.\n\n\u2192 **PRIMARY_TEXT is not empty?** \u2192 Go to Call 3.  \n\u2192 **PRIMARY_TEXT is empty?** \u2192 Go to Call 2a.\n\n## Call 2a: `Get Class Method Implementation` *(only if PRIMARY_TEXT was empty)*\nRead the ABAP source code. Analyze:\n- The method name `{{ $json.ComponentName }}`\n- The source code logic\n\nCreate a concise description (max 60 chars) in **{{ $('Set Data').item.json.SourceLanguage }}** that describes **WHAT** the method does.\n\n## Call 2b: `Set Primary Class Method Text` *(only if you created a new description)*\nSave your generated description. This is now your **PRIMARY_TEXT**.\n\n## Call 3: `Get Class Method Languages`\nCheck the returned language list.\n\n\u2192 **Target language `{{ $('Set Data').item.json.TargetLanguage }}` is in the list?**  \n   Output: `SKIPPED: Translation already exists.` \u2192 **STOP.**\n\n\u2192 **Target language is NOT in the list?** \u2192 Go to Call 4.\n\n## Call 4: `Set Class Method Text`\nTranslate **PRIMARY_TEXT** into `{{ $('Set Data').item.json.TargetLanguage }}` (max 60 chars).\nSave the translation. \u2192 **STOP.**\n\n---\n\n# Final Summary (always output this at the end)",
        "options": {
          "maxIterations": 10
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        -3088,
        -688
      ],
      "id": "bc152608-bbdc-43e3-854e-943fccba7dfd",
      "name": "Translate Class Method"
    },
    {
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "SourceLanguage"
            },
            {
              "name": "TargetLanguage"
            },
            {
              "name": "ClassName"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "typeVersion": 1.1,
      "position": [
        -5488,
        -592
      ],
      "id": "2140ca91-afa3-4192-a02d-16b791be35b9",
      "name": "Start"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -5712,
        -784
      ],
      "id": "cafd4de9-479d-46a7-9700-7ebcd19c73a8",
      "name": "When clicking \u2018Execute workflow\u2019"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "532c51f2-55c5-4535-a685-ca57807e2edb",
              "name": "SourceLanguage",
              "value": "EN",
              "type": "string"
            },
            {
              "id": "f54d6157-ed8c-472d-a524-224566596f3a",
              "name": "TargetLanguage",
              "value": "DE",
              "type": "string"
            },
            {
              "id": "3df95c02-096a-4fa0-a801-9038ec6be323",
              "name": "ClassName",
              "value": "ZSWAN_TRANS_SAMPLE_CALCULATOR",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -5488,
        -784
      ],
      "id": "fc303518-b6b6-4fac-881b-6e06dd05f9f5",
      "name": "Set Mock Data"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "be94721c-6117-4418-8684-66d9c575fd03",
              "name": "SourceLanguage",
              "value": "={{ $json.SourceLanguage }}",
              "type": "string"
            },
            {
              "id": "45b72077-9236-498e-9913-023aa5497a82",
              "name": "TargetLanguage",
              "value": "={{ $json.TargetLanguage }}",
              "type": "string"
            },
            {
              "id": "733f5ab7-6eb3-4a80-96f2-5a8426dda7c8",
              "name": "ClassName",
              "value": "={{ $json.ClassName }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -5264,
        -688
      ],
      "id": "c3dad9a2-c17b-4917-b978-2d98e56bc8f0",
      "name": "Set Data"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "QQucYk6B1JMbYjE3",
          "mode": "list",
          "cachedResultUrl": "/workflow/QQucYk6B1JMbYjE3",
          "cachedResultName": "Tool: Get Class Method Languages"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "ClassName": "={{ $json.ClassName }}",
            "MethodName": "={{ $json.ComponentName }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "ClassName",
              "displayName": "ClassName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "MethodName",
              "displayName": "MethodName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        -3200,
        -464
      ],
      "id": "47d31483-3c58-4013-8394-894fc35d11ec",
      "name": "Get Class Method Languages"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "8F9uRQwfEHgxcSft",
          "mode": "list",
          "cachedResultUrl": "/workflow/8F9uRQwfEHgxcSft",
          "cachedResultName": "Tool: Get Class Method Text"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "ClassName": "={{ $json.ClassName }}",
            "MethodName": "={{ $json.ComponentName }}",
            "Language": "={{ $json.SourceLanguage }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "ClassName",
              "displayName": "ClassName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "MethodName",
              "displayName": "MethodName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "Language",
              "displayName": "Language",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        -3072,
        -464
      ],
      "id": "6dadf9a5-0848-458d-a174-9c1ef0ce6267",
      "name": "Get Class Method Primrary Text"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "qGJFyOoH3G2xcp0J",
          "mode": "list",
          "cachedResultUrl": "/workflow/qGJFyOoH3G2xcp0J",
          "cachedResultName": "Tool: Get Class Method Implementation"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "ClassName": "={{ $json.ClassName }}",
            "MethodName": "={{ $json.ComponentName }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "ClassName",
              "displayName": "ClassName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "MethodName",
              "displayName": "MethodName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        -2944,
        -464
      ],
      "id": "99c76b58-a153-44a8-99d2-4cce01f02b58",
      "name": "Get Class Method Implementation"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "NupIlYYe3P1kVMfj",
          "mode": "list",
          "cachedResultUrl": "/workflow/NupIlYYe3P1kVMfj",
          "cachedResultName": "GetCSFR"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {},
          "matchingColumns": [
            "ServerUrl"
          ],
          "schema": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        },
        "options": {}
      },
      "type": "n8n-nodes-base.executeWorkflow",
      "typeVersion": 1.3,
      "position": [
        -5040,
        -688
      ],
      "id": "b90e4a10-33e1-4b38-af48-6d992656b73f",
      "name": "GetCSFR"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        -3776,
        -688
      ],
      "id": "a6386080-c513-4d4e-8e76-7bf06959c784",
      "name": "Loop Over Items"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "a3bb3657-b068-48be-9291-ac380b3e1927",
              "name": "ClassName",
              "value": "={{ $json.ClassName }}",
              "type": "string"
            },
            {
              "id": "6755c113-ca6d-4827-be82-f84d95867f6c",
              "name": "ComponentName",
              "value": "={{ $json.ComponentName }}",
              "type": "string"
            },
            {
              "id": "d59d058f-7090-4635-926c-a0f38170ee83",
              "name": "ComponentType",
              "value": "={{ $json.ComponentType }}",
              "type": "string"
            },
            {
              "id": "18da98c8-3e9a-41c7-a340-bb0296fe0be0",
              "name": "MethodCategory",
              "value": "={{ $json.MethodCategory }}",
              "type": "string"
            },
            {
              "id": "aed9f689-8c46-432d-af7b-8295f77c423b",
              "name": "SourceLanguage",
              "value": "={{ $('Set Data').item.json.SourceLanguage }}",
              "type": "string"
            },
            {
              "id": "b3c36d19-ff2c-4ce8-adac-2ca147115460",
              "name": "CsfrToken",
              "value": "={{ $('GetCSFR').item.json['x-csrf-token'] }}",
              "type": "string"
            },
            {
              "id": "4a59041e-d8b8-481f-8732-ee5fa0ee42c3",
              "name": "CsfrCookie",
              "value": "={{ $('GetCSFR').item.json.cookies }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -3552,
        -768
      ],
      "id": "8c932b59-1798-41f2-929d-dbc29eb0f82f",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "google-anthropic-claude-opus-4.6",
          "mode": "list",
          "cachedResultName": "google-anthropic-claude-opus-4.6"
        },
        "builtInTools": {},
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.3,
      "position": [
        -4816,
        -464
      ],
      "id": "1a0b4433-104a-45aa-a943-6afbbf6481c1",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=# Role\nYou are a SAP ABAP documentation and translation agent.\n\n# Context\n- Class: `{{ $('Set Data').item.json.ClassName }}`\n- Source Language (also called as Masterlanguage): `{{ $('Set Data').item.json.SourceLanguage }}`\n- Target Language: `{{ $('Set Data').item.json.TargetLanguage }}`\n\n# CRITICAL RULES\n- Call each tool **MAXIMUM ONCE**. Never call the same tool twice.\n- Always follow the exact call sequence below. No deviations.\n- After your last action, output a **Final Summary** and STOP.\n\nTools:\n- Get Class Primary Text: Get class description of Masterlanguage (Source Lanuage), the text we need to translate from SAP \n- Get Class Languages: List of languages in ISO Code which text are available\n- Set Target Language Class Text: Set translated text in SAP \n\n# Task:\n## 1. Pre-Check (no tool call needed)\nIf source language (`{{ $('Set Data').item.json.SourceLanguage }}`) and target language (`{{ $('Set Data').item.json.TargetLanguage }}`) are **identical**:\n\u2192 Output: `SKIPPED: Source and target language are identical.` \u2192 **STOP.**\n## 2. Check if translation is required by using the Tool 'Get Class Languages'. If this contains the Target language then stop.  \n\u2192 Output: `SKIPPED: Target language already exists` \u2192 **STOP.**\n## 3. Use the 'Get Class Primary Text' Tool to get current text, translate it and bring it back to SAP using the 'Set Target Language Class' tool\n",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        -4704,
        -688
      ],
      "id": "1d188c3a-2f57-422e-8e0c-af43fc8d6323",
      "name": "Translate Class Description"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "bOue8CkrQlzHTuvt",
          "mode": "list",
          "cachedResultUrl": "/workflow/bOue8CkrQlzHTuvt",
          "cachedResultName": "Tool: Get Class Languages"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "ClassName": "={{ $('Set Data').item.json.ClassName }}"
          },
          "matchingColumns": [
            "ClassName"
          ],
          "schema": [
            {
              "id": "ClassName",
              "displayName": "ClassName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        -4688,
        -464
      ],
      "id": "69ba640b-48ff-4153-8fc0-ad5662f76e23",
      "name": "Get Class Languages"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "DWs5BQiaQ1qwGVFD",
          "mode": "list",
          "cachedResultUrl": "/workflow/DWs5BQiaQ1qwGVFD",
          "cachedResultName": "Tool: Get Class Text"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "ClassName": "={{ $('Set Data').item.json.ClassName }}",
            "Language": "={{ $('Set Data').item.json.SourceLanguage }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "ClassName",
              "displayName": "ClassName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "Language",
              "displayName": "Language",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        -4560,
        -464
      ],
      "id": "bac1e59d-8512-4674-8de3-5390f90f3e4f",
      "name": "Get Class Primary Text"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "mgXaOLcc1u4xwBAL",
          "mode": "list",
          "cachedResultUrl": "/workflow/mgXaOLcc1u4xwBAL",
          "cachedResultName": "Tool: Create Or Update Class Method Text"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "Language": "={{ $('Set Data').item.json.TargetLanguage }}",
            "ClassName": "={{ $json.ClassName }}",
            "MethodName": "={{ $json.ComponentName }}",
            "Text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Text', ``, 'string') }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "ClassName",
              "displayName": "ClassName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "MethodName",
              "displayName": "MethodName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "Language",
              "displayName": "Language",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "Text",
              "displayName": "Text",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        -2816,
        -464
      ],
      "id": "3f3621c1-585b-4e2c-9928-d02a0f7faf82",
      "name": "Set Class Method Text"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "mgXaOLcc1u4xwBAL",
          "mode": "list",
          "cachedResultUrl": "/workflow/mgXaOLcc1u4xwBAL",
          "cachedResultName": "Tool: Create Or Update Class Method Text"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "ClassName": "={{ $json.ClassName }}",
            "MethodName": "={{ $json.ComponentName }}",
            "Language": "={{ $('Set Data').item.json.SourceLanguage }}",
            "Text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Text', ``, 'string') }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "ClassName",
              "displayName": "ClassName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "MethodName",
              "displayName": "MethodName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "Language",
              "displayName": "Language",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "Text",
              "displayName": "Text",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        -2688,
        -464
      ],
      "id": "26bfd66a-b4ce-48b5-ba38-e6c346ad5721",
      "name": "Set Primary Class Method Text"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "YyyGgE2K7LfrtvLJ",
          "mode": "list",
          "cachedResultUrl": "/workflow/YyyGgE2K7LfrtvLJ",
          "cachedResultName": "Tool: Create Or Update Class Text"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "Language": "={{ $('Set Data').item.json.TargetLanguage }}",
            "ClassName": "={{ $('Set Data').item.json.ClassName }}",
            "Text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Text', ``, 'string') }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "ClassName",
              "displayName": "ClassName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "Language",
              "displayName": "Language",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "Text",
              "displayName": "Text",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 2.2,
      "position": [
        -4432,
        -464
      ],
      "id": "589997c6-e1ff-4fa9-b10c-f444a1c18f77",
      "name": "Set Target Language Class Text"
    }
  ],
  "connections": {
    "Split Class Methods": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "QueryClassMethods": {
      "main": [
        [
          {
            "node": "Split Class Methods",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Class Method Model": {
      "ai_languageModel": [
        [
          {
            "node": "Translate Class Method",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Translate Class Method": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start": {
      "main": [
        [
          {
            "node": "Set Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Set Mock Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Mock Data": {
      "main": [
        [
          {
            "node": "Set Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Data": {
      "main": [
        [
          {
            "node": "GetCSFR",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Class Method Languages": {
      "ai_tool": [
        [
          {
            "node": "Translate Class Method",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Class Method Primrary Text": {
      "ai_tool": [
        [
          {
            "node": "Translate Class Method",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Class Method Implementation": {
      "ai_tool": [
        [
          {
            "node": "Translate Class Method",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "GetCSFR": {
      "main": [
        [
          {
            "node": "Translate Class Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Translate Class Method",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Translate Class Description",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Translate Class Description": {
      "main": [
        [
          {
            "node": "QueryClassMethods",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Class Languages": {
      "ai_tool": [
        [
          {
            "node": "Translate Class Description",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Class Primary Text": {
      "ai_tool": [
        [
          {
            "node": "Translate Class Description",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Set Class Method Text": {
      "ai_tool": [
        [
          {
            "node": "Translate Class Method",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Set Primary Class Method Text": {
      "ai_tool": [
        [
          {
            "node": "Translate Class Method",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Set Target Language Class Text": {
      "ai_tool": [
        [
          {
            "node": "Translate Class Description",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": false
  },
  "versionId": "35b7741f-cd53-4070-a872-d676a880aa36",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "qHOUPZTjsDnQmVUr",
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Translate: Class. Uses lmChatOpenAi, httpRequest, agent, executeWorkflowTrigger. Event-driven trigger; 21 nodes.

Source: https://github.com/SWANGmbH/abap-ai-translation/blob/cfc400be4a96bcf6126c784f970722a70386511f/workflows/class.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

The best content automation template in the market is now even better—with “deep research” on time-sensitive topics\! Unlike most n8n content automation templates that are mainly for “demo purposes,”

OpenAI, HTTP Request, XML +11
AI & RAG

Typeform IA - YT. Uses typeformTrigger, agent, lmChatOpenAi, toolWorkflow. Event-driven trigger; 75 nodes.

Typeform Trigger, Agent, OpenAI Chat +7
AI & RAG

Template Nodes Example. Uses CUSTOM, formTrigger, executeWorkflowTrigger, chatTrigger. Event-driven trigger; 70 nodes.

Custom, Form Trigger, Execute Workflow Trigger +23
AI & RAG

Template Carnaval - time instagram. Uses toolWorkflow, lmChatOpenAi, memoryBufferWindow, agent. Event-driven trigger; 56 nodes.

Tool Workflow, OpenAI Chat, Memory Buffer Window +10
AI & RAG

🤖🧑‍💻 AI Agent for Top n8n Creators Leaderboard Reporting. Uses httpRequest, lmChatOpenAi, executeWorkflowTrigger, toolWorkflow. Event-driven trigger; 49 nodes.

HTTP Request, OpenAI Chat, Execute Workflow Trigger +8