copy_variant
Copy a document's working version (name, slug and EVERY field) from one locale to another, server-side and atomically. USE THIS to move content that landed in the wrong language branch — re-typing it field by field loses fields.
Instructions
Copy a document's working version (name, slug and EVERY field) from one locale to another, server-side and atomically. USE THIS to move content that landed in the wrong language branch — re-typing it field by field loses fields. It REPLACES the target locale's draft (its unpublished edits are lost; its published version stays live until you publish_content the copy). The text is copied as-is: to translate it afterwards, run assist_writing {task:'translate'} and save with set_field. Returns the target locale's new draft in the get_content shape. To copy into a NEW item instead, use duplicate_content. Requires the content.update permission (Admin, Editor, Author — an Author only within their own sections).
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": {
"documentId": "<documentId>",
"fromLocale": "<fromLocale>",
"toLocale": "<toLocale>"
},
"name": "copy_variant"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site slug or id to act in (multisite). Omit to use this server's default site. Call list_sites to see what exists — an empty tree or search usually means the wrong site, not missing content. | |
| toLocale | Yes | Locale to copy TO; must differ from fromLocale. | |
| documentId | Yes | The item's documentId (stable across locales and versions), e.g. from list_tree, list_content or get_content. | |
| fromLocale | Yes | Locale to copy FROM, e.g. 'en' (list_sites → locales). |