elementor/duplicate-element deep-clones an element, including every nested child, and inserts the clone as the next sibling of the source.
IDs are regenerated throughout the cloned subtree.
At a glance
| Ability | elementor/duplicate-element |
| Toolset | Elementor — toolset/elementor |
| Group | Elementor › Elements & Widgets |
| Requires | Elementor, active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
Why the IDs have to change
Element IDs must be unique within a document. Two elements sharing an ID is a state Elementor does not expect, and the symptoms — an edit landing on the wrong element, a duplicate that disappears — are hard to trace back to the cause.
A naive clone copies the IDs along with everything else, producing a document where every element in the duplicated subtree has a twin. The editor then cannot tell them apart, and an edit to one can land on the other.
So every ID in the clone is regenerated — the element and all its descendants.
That has one consequence worth knowing: anything referencing an ID inside the source subtree does not carry across. Custom CSS targeting a specific element ID, an anchor link to a section, a motion effect keyed to an element — all of those still point at the original.
Inserting as the next sibling rather than at the end is deliberate. A duplicate belongs next to its source, and moving it afterwards is one call.
Not idempotent — each call produces another copy.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
post_id | integer | Yes | The post holding the Elementor document. |
element_id | string | Yes | The seven-character hex element ID. |
What comes back
| Name | Type | What it is |
|---|---|---|
post_id | integer | The post written. |
element_id | string | The ID of the element created or affected. |
element | object | The element as stored. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Duplicate that pricing card.
It resolves to one call:
{
"ability": "elementor/duplicate-element",
"parameters": {
"post_id": 412,
"element_id": "a1b2c3d"
}
}Worth knowing
- Every ID in the clone is new. References to the old IDs do not follow.
- Custom CSS and anchor links keyed to an element ID still point at the source.
- The clone lands as the next sibling.
- Not idempotent.
Related abilities
- Move Elementor Element — put the copy somewhere else
- Merge Elementor Element Settings — change the copy
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category