DocumentationWorkflowsApps and services

DeepL: Translate node

Translates text with DeepL. It runs on the anymize DeepL access, so you don't need your own key. Billed per character, and the block reports the credits it used. Learn how to configure it, map inputs and outputs, run a test and resolve common errors.

8 min readUpdated

What this node does

Translates text with DeepL. It runs on the anymize DeepL access, so you don't need your own key. Billed per character, and the block reports the credits it used.

Use DeepL: Translate as a clearly defined step in an anymize workflow.

  • Processes one input.
  • Provides one output for following steps.
  • Runs as a regular step in the flow.

Set up the node

  1. 01Open a workflow and add DeepL: Translate from the node catalog.
  2. 02Complete the required fields and map values from previous steps.
  3. 03Run the node with a small test record and inspect its output.
  4. 04Connect the successful output and activate the workflow after an end-to-end test.

Operations and modes

DeepL: Translate has one focused purpose. Its available settings appear when you select the node.

Settings

FieldMeaningArea
TextWhat should be translated. Drag a field from the input panel here or type fixed text. Leave it empty and the block takes the text from the incoming item, including an attached text file (txt, csv, md, json, html).Standard
Target languageWhich language to translate into. If the language comes from your data, switch the field to expression mode (top right) and write something like {{ $json.target_lang }}.Standard
Anonymise before sendingOn (default): names, addresses, numbers and other personal data are replaced with placeholders before the text goes to DeepL, and swapped back for the real values in the translation. DeepL never sees the plain data. Costs nothing extra. Turn it off only for text you are sure carries nothing personal.Standard
Source languageNormally leave it on „Detect automatically“: DeepL finds the source language itself. Set it only when the text is short or mixes several languages.Standard
ToneFormal or casual. Only takes effect in languages that make the distinction (German, French, Spanish, Italian, Dutch, Polish, Portuguese, Japanese, Russian) - elsewhere DeepL ignores it.Standard
Protect anonymisation placeholdersOn (default): placeholders of the form [[category-hash]] are wrapped so DeepL ignores them and returns them unchanged. Turn it off only if you know for sure the text contains none.Standard
Attach the translation as a text fileAlso attaches the translation as a .txt to the item, so later blocks can pass it on as a file - as an email attachment, or uploaded to a drive.Standard
Run once per itemOff (default): the node runs once for the whole input. On: if it receives several items (e.g. from Split Out), it runs once PER item, and {{ $json }} is that one item each time. This is how you work through a file list entry by entry.Standard
If one item fails"Skip" writes an `error` field for the failed item and keeps processing the rest, instead of losing the whole run to a single unreadable file.Standard
Pause between items (milliseconds)Wait before every run except the first. 1000 = 1 second per item. Useful when the other side would otherwise throttle you. Maximum 300000 (5 minutes).Standard

Inputs and outputs

InputMeaningType
textText to translate. Overrides the config field.text
target_langTarget language as a DeepL code, e.g. EN-US. Overrides the config field.text
OutputMeaningType
textThe translation.text
detected_source_langLanguage DeepL detected in the source text.text
target_langLanguage it was translated into.text
billed_charactersCharacters DeepL charged for. The basis for the credits.number
creditsCredits this step cost.number
input_textThe source text, unchanged.text
anonymizedtrue when the text was anonymised before DeepL saw it.boolean
anonymized_inputExactly the text DeepL received. With anonymisation on, that is the placeholder text.text
placeholdersHow many placeholders the block put in.number
restored_placeholdersHow many of them were swapped back for the real values in the translation.number

This node can process lists item by item. Error handling and the delay between items are available in advanced settings.

Example and test run

Translate a customer request: begin with a small, recognizable record. Inspect the output and only map fields that are present there.

Test-run example

{
  "text": "Guten Tag, wir bitten um ein Angebot für 20 Lizenzen zum 1. Oktober.",
  "target_lang": "EN-US"
}

Access and security

Before activation, review which data enters this step and what its output contains.

Store keys and credentials in the protected connection manager. Never paste them into normal workflow fields, test data or descriptions.

Troubleshooting

  • No output: inspect the latest run and confirm that the previous node returned the expected fields.
  • Empty variable: open the previous step output and use a field name from the real test data.
  • List processed once: enable per-item execution in advanced settings.