Clone Decision Engine Message
curl --request POST \
--url https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>"
}
'import requests
url = "https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone"
payload = { "name": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>'})
};
fetch('https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone"
payload := strings.NewReader("{\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"channelId": "<string>",
"config": {},
"tags": {},
"guardrails": {
"maxSendsPerUser": 123,
"maxSendsPerUserWindowDays": 123,
"minOtherMessagesInBetween": 123,
"firstEligibleSendDate": "<string>",
"lastEligibleSendDate": "<string>"
},
"variables": [
{
"name": "<string>",
"variants": [
{
"value": "<string>",
"tags": {},
"firstEligibleSendDate": "<string>",
"lastEligibleSendDate": "<string>",
"userAudienceFilter": "<unknown>",
"localeValues": {}
}
],
"config": {
"localizationEnabled": true,
"maxSendsPerUserWindowDays": 123,
"maxSendsPerUser": 123
}
}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"message": "<string>"
}{
"message": "Validation failed",
"details": {}
}{
"message": "<string>"
}API Reference
Clone Decision Engine Message
Clone a message within a flow. The copy keeps the source message’s config, tags, guardrails, and variables, and is created disabled.
POST
/
decision-engine
/
flow
/
{flowId}
/
messages
/
{messageId}
/
clone
Clone Decision Engine Message
curl --request POST \
--url https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>"
}
'import requests
url = "https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone"
payload = { "name": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>'})
};
fetch('https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone"
payload := strings.NewReader("{\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hightouch.com/api/v1/decision-engine/flow/{flowId}/messages/{messageId}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"channelId": "<string>",
"config": {},
"tags": {},
"guardrails": {
"maxSendsPerUser": 123,
"maxSendsPerUserWindowDays": 123,
"minOtherMessagesInBetween": 123,
"firstEligibleSendDate": "<string>",
"lastEligibleSendDate": "<string>"
},
"variables": [
{
"name": "<string>",
"variants": [
{
"value": "<string>",
"tags": {},
"firstEligibleSendDate": "<string>",
"lastEligibleSendDate": "<string>",
"userAudienceFilter": "<unknown>",
"localeValues": {}
}
],
"config": {
"localizationEnabled": true,
"maxSendsPerUserWindowDays": 123,
"maxSendsPerUser": 123
}
}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"message": "<string>"
}{
"message": "Validation failed",
"details": {}
}{
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The UUID of the flow
The UUID of the message to clone
Body
application/json
Request body for cloning a Decision Engine message
Name for the copy. Defaults to "Copy of
Response
Ok
Decision Engine Message (Public API)
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Guardrail fields on a message (max sends, eligibility dates, etc.)
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?