Duplicate Automation
Copy an automation into a new draft.
The copy includes the trigger, steps, language, timezone, and reentry policy. The name is the source name plus (Copy), or (Copy N) with the lowest N that is not already taken. A (Copy) or (Copy N) suffix on the source name is replaced, not added to, so a copy of Welcome series (Copy) is named Welcome series (Copy 2). The response is the new automation, with a new uuid and new step uuids.
An audience branch is copied with structure branched and the tree in steps. When the source has steps null, the copy does too. See Structure.
Request
POST /automations/{uuid}/duplicate
This endpoint takes no request body.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
uuid | string | Automation's UUID |
Example Request
curl -X POST "https://email.easy.tools/api/v1/automations/976854b8-692b-4f5e-aca9-30b3053de7ae/duplicate" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
Response
Success Response (201 Created)
The new automation. status is draft. Fields match Get Automation.
{
"data": {
"uuid": "4feb2b7d-a7e1-4555-b1c8-f12cdbbbe023",
"name": "Welcome series (Copy)",
"status": "draft",
"structure": "linear",
"trigger": {
"type": "contact_added_to_list",
"list_uuid": "cd9a83c7-f3ac-49ff-8031-adf6b455d8b8",
"segment_uuid": null,
"product_uuid": null,
"variant_uuid": null,
"waitlist_uuid": null,
"conditions": null
},
"reentry_policy": "multiple_times",
"timezone_mode": "contact",
"timezone_uuid": null,
"language": null,
"steps": [
{
"uuid": "14d323a4-d877-480e-83d9-f4248ba4a981",
"type": "timer",
"delay_value": 1,
"delay_unit": "days",
"name": null,
"subject": null,
"preheader": null,
"from_name": null,
"reply_to": null,
"from_identity": null,
"from_email": null,
"content": null,
"content_editable_via_api": null,
"content_overwrite_required": null,
"branches": null
},
{
"uuid": "bcb76e25-cd62-4a51-b548-fb745f9ed975",
"type": "send_email",
"delay_value": null,
"delay_unit": null,
"name": "Welcome",
"subject": "Welcome",
"preheader": null,
"from_name": null,
"reply_to": null,
"from_identity": "e050fca6-7eeb-45a1-b3e7-3a1ebff6e375",
"from_email": "hello@example.com",
"content": "Hello **there**",
"content_editable_via_api": true,
"content_overwrite_required": false,
"branches": null
}
],
"created_at": "2026-09-29T16:03:47Z",
"updated_at": "2026-09-29T16:03:47Z"
}
}
Response Fields
See Automation Object.
Error Responses
Not Found Error (404)
{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Automation with UUID '976854b8-692b-4f5e-aca9-30b3053de7ae' not found"
}
}
Conflict Error (409 — Copy Name Exhausted)
A unique copy name could not be chosen.
{
"error": {
"code": "AUTOMATION_DUPLICATE_NAME_EXHAUSTED",
"message": "Cannot generate a unique name for the duplicated automation"
}
}