Update form translation
update_form_translationSave translated copy for one language version of a form. Pass the translated title / description / fields / report / systemText / booking / feedback, mirroring the shape returned by get_form_translation; fields you omit keep their current value and partial translation is allowed. Translation fields[] must not introduce codes that do not exist on the source form. Pass isActive=false to pause just this language version, independently of the form's overall isActive.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"formId": "<formId>",
"language": "<language>"
},
"name": "update_form_translation"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Translated form title. Plain text. | |
| fields | No | Translated questions mirroring the source structure: same codes, translated text. The current draft comes from get_form_translation (or the clone create_form_translation returns) — edit the text in place and send it back. Merging is by code, not position, so a partial list is fine and omitted questions stay untranslated. | |
| formId | Yes | The source form UUID | |
| report | No | Translated report display text, mirroring the stored report that get_form_translation returns — the nested overallAnalysis / dimensionAnalysis / outcomeAnalysis shape, NOT the flattened `report` input of create_form / update_form. Scores, formulas, thresholds and codes always come from the source; only the text keys below are applied. An ai_quiz report needs no translation: the AI writes it in the respondent's language from the source report.aiReport. | |
| booking | No | Translated copy for the result-page booking block (the block that offers a call). Whether the block shows at all always comes from the source form — this only translates its wording. Omit a key or send it empty to keep falling back to the source text. | |
| feedback | No | Translated copy for the result-page feedback block. Whether it shows and its answer type always come from the source form — this only translates its wording. Replaced WHOLESALE on every save: pass every key you want translated; omitted or empty keys fall back to the source text. Read the source text and choice codes from feedbackSource in get_form_translation / create_form_translation. | |
| isActive | No | Enable/pause this language version (independent of the form's overall isActive). | |
| language | Yes | Which language version to update | |
| systemText | No | Translated answer-page system copy, as an open key→text map (e.g. { "submitButton": "Absenden", "nextPage": "Weiter" }). Keys are the answer-page copy keys — read the ones already set from get_form_translation, and note that keys the answer page does not know are stored but never rendered. Every key is optional; an empty value falls back to the built-in text for this language. | |
| description | No | Translated form description. Write HTML, never Markdown: <strong>bold</strong> not **bold**, <ul><li> not "- item", <h2> not "## heading". |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| formId | No | The source form | |
| updated | No | Which parts of the translation this call changed | |
| language | No | Language that was saved |