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
- 01Open a workflow and add DeepL: Translate from the node catalog.
- 02Complete the required fields and map values from previous steps.
- 03Run the node with a small test record and inspect its output.
- 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
| Field | Meaning | Area |
|---|---|---|
| Text | What 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 language | Which 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 sending | On (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 language | Normally leave it on „Detect automatically“: DeepL finds the source language itself. Set it only when the text is short or mixes several languages. | Standard |
| Tone | Formal 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 placeholders | On (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 file | Also 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 item | Off (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
| Input | Meaning | Type |
|---|---|---|
| text | Text to translate. Overrides the config field. | text |
| target_lang | Target language as a DeepL code, e.g. EN-US. Overrides the config field. | text |
| Output | Meaning | Type |
|---|---|---|
| text | The translation. | text |
| detected_source_lang | Language DeepL detected in the source text. | text |
| target_lang | Language it was translated into. | text |
| billed_characters | Characters DeepL charged for. The basis for the credits. | number |
| credits | Credits this step cost. | number |
| input_text | The source text, unchanged. | text |
| anonymized | true when the text was anonymised before DeepL saw it. | boolean |
| anonymized_input | Exactly the text DeepL received. With anonymisation on, that is the placeholder text. | text |
| placeholders | How many placeholders the block put in. | number |
| restored_placeholders | How 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.