Skip to content

Execute a merge draft by applying explicit survivor/source decisions.

POST
/api/workspace/entity/{entityIdOrKey}/record-merge/execute
curl --request POST \
--url https://example.com/api/workspace/entity/example/record-merge/execute \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "SurvivorInstanceId": "example", "SourceInstanceId": "example", "SurvivorRowVersion": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "SourceRowVersion": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Surface": 0, "FieldDecisions": [ { "FieldKey": "example", "Decision": 0 } ], "TableDecisions": [ { "FieldKey": "example", "Mode": 0, "SelectedSourceRowIds": [ "example" ] } ], "OperationKey": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Reason": "example" }'

Requires Reason of 1–1000 characters after trimming. It is stored in the same transaction with the archive of the source record and of any coalesced association rows, as their lifecycle audit evidence.

entityIdOrKey
required
string
access_token
string

Optional access token for clients that cannot set Authorization headers. Prefer Authorization: Bearer <token> when possible.

Execute a prepared record merge with explicit survivor/source and field decisions.

object
SurvivorInstanceId

Record that survives the merge.

string
nullable
SourceInstanceId

Record merged into the survivor and archived.

string
nullable
SurvivorRowVersion

Current survivor row version expected by the caller.

string format: uuid
SourceRowVersion

Current source row version expected by the caller.

string format: uuid
Surface
integer format: int32
Allowed values: 0 1 2
FieldDecisions

Per-field survivor or source decisions; omitted fields keep the survivor value.

Array<object>
nullable

One scalar-field merge decision.

object
FieldKey
string
nullable
Decision
integer format: int32
Allowed values: 0 1 2
TableDecisions

Per-table decisions for owned table rows.

Array<object>
nullable

One table-field merge decision.

object
FieldKey
string
nullable
Mode
integer format: int32
Allowed values: 0 1 2
SelectedSourceRowIds
Array<string>
nullable
OperationKey

Caller-generated UUID reused only for an exact retry of the same merge.

string format: uuid
Reason
required

Required audit reason for the merge. Must contain 1–1000 characters after trimming leading and trailing whitespace; it is stored with the archive of the source record and of coalesced association rows.

string

OK

Media typeapplication/json
object
Data
Any of:

Completed merge operation summary.

object
Id
required
string
EntityDefinitionId
required
string
SurvivorInstanceId
required
string
SourceInstanceId
required
string
ActorUserId
required
string
Surface
required
integer format: int32
Allowed values: 0 1 2
Status
required
integer format: int32
Allowed values: 0
CompletedAt
required
string format: date-time
SurvivorRowVersionAfter
string format: uuid
nullable
SourceRowVersionAfter
string format: uuid
nullable
Errors
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Warnings
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Success
boolean
Example
{
"Data": null,
"Errors": [
{
"Type": 0,
"Severity": 0
}
],
"Warnings": [
{
"Type": 0,
"Severity": 0
}
]
}

Bad Request

Media typeapplication/json
object
Data
Any of:

Completed merge operation summary.

object
Id
required
string
EntityDefinitionId
required
string
SurvivorInstanceId
required
string
SourceInstanceId
required
string
ActorUserId
required
string
Surface
required
integer format: int32
Allowed values: 0 1 2
Status
required
integer format: int32
Allowed values: 0
CompletedAt
required
string format: date-time
SurvivorRowVersionAfter
string format: uuid
nullable
SourceRowVersionAfter
string format: uuid
nullable
Errors
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Warnings
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Success
boolean
Example
{
"Data": null,
"Errors": [
{
"Type": 0,
"Severity": 0
}
],
"Warnings": [
{
"Type": 0,
"Severity": 0
}
]
}

Access refused, without a body; or recordMerge.replay.resultNotViewable with the envelope: a replayed merge whose survivor is not readable.

Media typeapplication/json
object
Data
Any of:

Completed merge operation summary.

object
Id
required
string
EntityDefinitionId
required
string
SurvivorInstanceId
required
string
SourceInstanceId
required
string
ActorUserId
required
string
Surface
required
integer format: int32
Allowed values: 0 1 2
Status
required
integer format: int32
Allowed values: 0
CompletedAt
required
string format: date-time
SurvivorRowVersionAfter
string format: uuid
nullable
SourceRowVersionAfter
string format: uuid
nullable
Errors
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Warnings
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Success
boolean
Example
{
"Data": null,
"Errors": [
{
"Type": 0,
"Severity": 0
}
],
"Warnings": [
{
"Type": 0,
"Severity": 0
}
]
}

Not Found

Media typeapplication/json
object
Data
Any of:

Completed merge operation summary.

object
Id
required
string
EntityDefinitionId
required
string
SurvivorInstanceId
required
string
SourceInstanceId
required
string
ActorUserId
required
string
Surface
required
integer format: int32
Allowed values: 0 1 2
Status
required
integer format: int32
Allowed values: 0
CompletedAt
required
string format: date-time
SurvivorRowVersionAfter
string format: uuid
nullable
SourceRowVersionAfter
string format: uuid
nullable
Errors
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Warnings
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Success
boolean
Example
{
"Data": null,
"Errors": [
{
"Type": 0,
"Severity": 0
}
],
"Warnings": [
{
"Type": 0,
"Severity": 0
}
]
}

Conflict

Media typeapplication/json
object
Data
Any of:

Completed merge operation summary.

object
Id
required
string
EntityDefinitionId
required
string
SurvivorInstanceId
required
string
SourceInstanceId
required
string
ActorUserId
required
string
Surface
required
integer format: int32
Allowed values: 0 1 2
Status
required
integer format: int32
Allowed values: 0
CompletedAt
required
string format: date-time
SurvivorRowVersionAfter
string format: uuid
nullable
SourceRowVersionAfter
string format: uuid
nullable
Errors
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Warnings
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Success
boolean
Example
{
"Data": null,
"Errors": [
{
"Type": 0,
"Severity": 0
}
],
"Warnings": [
{
"Type": 0,
"Severity": 0
}
]
}

Service Unavailable

Media typeapplication/json
object
Data
Any of:

Completed merge operation summary.

object
Id
required
string
EntityDefinitionId
required
string
SurvivorInstanceId
required
string
SourceInstanceId
required
string
ActorUserId
required
string
Surface
required
integer format: int32
Allowed values: 0 1 2
Status
required
integer format: int32
Allowed values: 0
CompletedAt
required
string format: date-time
SurvivorRowVersionAfter
string format: uuid
nullable
SourceRowVersionAfter
string format: uuid
nullable
Errors
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Warnings
Array<object>
nullable
object
Code
required
string
nullable
Message
required
string
nullable
Target
string
nullable
Field
string
nullable
Metadata
object
key
additional properties
string
nullable
Type
integer format: int32
Allowed values: 0 1 2
Severity
integer format: int32
Allowed values: 0 1 2
Success
boolean
Example
{
"Data": null,
"Errors": [
{
"Type": 0,
"Severity": 0
}
],
"Warnings": [
{
"Type": 0,
"Severity": 0
}
]
}