Skip to main content

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​

ParameterTypeDescription
uuidstringAutomation'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"
}
}