curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/campaigns/{campaignId}/steps/{stepId}/copy-arm \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.tryfuse.ai/api/v1/business/campaigns/{campaignId}/steps/{stepId}/copy-arm"
payload = {}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.tryfuse.ai/api/v1/business/campaigns/{campaignId}/steps/{stepId}/copy-arm', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"stepId": "6a8dce2ef83628aea1088041",
"copiedStepCount": 3
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Copy one arm of an A/B split into the other
Replaces every step of one arm of an A/B split with copies of the other arm’s steps, nested conditions and their lanes included, so the two arms can then differ in a single step. Each copied step gets its own copies of its attachments. Only before the campaign starts. Only the token owner may edit steps. Rate limit: 30 requests/minute and 1,000/day per token owner, shared by every campaign, scheduled-send, campaign-template and knowledge-hub endpoint.
Errors:
404CAMPAIGN_NOT_FOUND— No campaign with this id exists, it belongs to another account (including a campaign delegated to you or shared by your team’s visibility settings), or it has been deleted.404SEQUENCE_STEP_NOT_FOUND— No step with this id belongs to this campaign.409SEQUENCE_BUSY— Another change to this campaign’s steps is still being saved. Retry in a few seconds.409SEQUENCE_STRUCTURE_LOCKED— The campaign has started: a branched sequence’s steps can no longer be added, removed or moved.422STEP_NOT_A_SPLIT— The step is not an A/B split.422VALIDATION_FAILED— fromBranchKey or toBranchKey is not a or b, or both name the same arm;paramnames the field.429RATE_LIMITED— More than 30 campaign requests in a minute, or 1,000 in a day, for this token owner (the bucket is shared by every /business/campaigns, /business/scheduled-sends, /business/campaign-templates and /business/knowledge-hubs call).500UNEXPECTED_ERROR— An unhandled failure, such as an attachment file that could not be copied; nothing was changed.
Requires one of the following token scopes: campaigns.
curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/campaigns/{campaignId}/steps/{stepId}/copy-arm \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.tryfuse.ai/api/v1/business/campaigns/{campaignId}/steps/{stepId}/copy-arm"
payload = {}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.tryfuse.ai/api/v1/business/campaigns/{campaignId}/steps/{stepId}/copy-arm', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"stepId": "6a8dce2ef83628aea1088041",
"copiedStepCount": 3
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Authorizations
Your API token (af_…) as the Basic-auth username, with an empty password.
Path Parameters
The campaign's id (24-character hex ObjectId), as returned by POST /business/campaigns or as the campaignId of a GET /business/campaigns row.
The sequence step's id, as returned by GET /business/campaigns/{campaignId}/steps (24-character hex ObjectId).