---
title: "Clone Decision Engine Message"
method: POST
path: "/decision-engine/flow/{flowId}/messages/{messageId}/clone"
---

# Clone Decision Engine Message

`POST /decision-engine/flow/{flowId}/messages/{messageId}/clone`

## Request

- Base URL: `https://api.hightouch.com/api/v1`
- URL: `https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone`
- Auth: HTTP bearer

Clone a message within a flow. The copy keeps the source message's
config, tags, guardrails, and variables, and is created disabled.

## Path parameters

- `flowId` string, required
- `messageId` string, required

## Request body

- DecisionEngineMessageClone: Request body for cloning a Decision Engine message
  - `name` string: Name for the copy. Defaults to "Copy of <source message name>".

## Response `200`

Ok

- union
  - DecisionEngineMessage: Decision Engine Message (Public API)
    - `id` string, required
    - `name` string, required
    - `channelId` string, required
    - `config` object, required
    - `tags` object
    - `guardrails` DecisionEngineMessageGuardrails: Guardrail fields on a message (max sends, eligibility dates, etc.)
      - `maxSendsPerUser` number, double
      - `maxSendsPerUserWindowDays` number, double
      - `minOtherMessagesInBetween` number, double
      - `firstEligibleSendDate` string
      - `lastEligibleSendDate` string
    - `variables` DecisionEngineVariable[]
      - `name` string, required: The variable name (must be unique within a message)
      - `config` object
        - `localizationEnabled` boolean: When true, the Decision Engine uses each variant's localeValues to select locale-appropriate content at runtime. When false or omitted, only the default variant value is used, even if localeValues are present.
        - `maxSendsPerUserWindowDays` number, double: Rolling window in days for the maxSendsPerUser limit
        - `maxSendsPerUser` number, double: Maximum number of times this variable's variants can be sent to a single user
      - `variants` DecisionEngineVariableVariant[], required
        - `value` string, required: The default (non-localized) value for this variant
        - `tags` object: Key-value tags for categorizing this variant
        - `firstEligibleSendDate` string: Earliest date this variant is eligible to be sent (ISO 8601)
        - `lastEligibleSendDate` string: Latest date this variant is eligible to be sent (ISO 8601)
        - `userAudienceFilter` unknown
        - `localeValues` object: Localized values for this variant, keyed by locale code (e.g. "en-US", "de-DE"). These are only used at runtime when `localizationEnabled` is true on the parent variable. You can stage translations by providing localeValues while leaving localizationEnabled unset or false.
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - DecisionEngineErrorResponse
    - `message` string, required: Why the request failed.
  - ValidateErrorJSON
    - `message` 'Validation failed', required
    - `details` object, required
  - 'Internal Server Error'

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `422`: Validation Failed
- `500`: Something went wrong

## Changes

- **2026-09-11** `06eff2ce6d4c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hightouch/apis/hightouch-api/changes/decision-engine/flow/:flowId/messages/:messageId/clone/post.md)

---

[API](https://skmtc.dev/hightouch/apis/hightouch-api.md) - [All operations](https://skmtc.dev/hightouch/apis/hightouch-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hightouch/apis/hightouch-api/revisions/7f9793951e4f?raw)
