---
id: ADR-CRM-DQ-012
title: Use ordinary record saves for the survivor
product_area: crm
module: data-quality
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
decision: >-
  After merge-specific reference moves, Entities persistence deletes absorbed
  records and saves the survivor’s planned fields and collections, submitting
  only custom values that change.
constrains:
  - WF-CRM-DQ-006
  - SVC-CRM-DQ-merges
  - DOM-CRM-DQ-004
origin: >-
  services-crm:docs/merging/architecture.md#5.1 One transaction (step 10);
  ADR-CRM-ENT-003 (complete payload, custom fields separate)
alternatives:
  - option: Write the final survivor directly
    why_not: This would bypass the owner’s validation and history behavior.
  - option: Resubmit every custom value
    why_not: >-
      An unchanged empty value newly marked required could prevent an otherwise
      valid merge.
consequences:
  - Ordinary save validation can fail the merge as an invalid survivor.
  - >-
    Employee moves avoid modification stamps that would fabricate
    employer-history changes.
supersedes: []
evidence:
  - >-
    services-crm at a8d1364f: modules/merges/services/merges/merge-execution.ts
    (writeSurvivor, changedCustomFieldsOf).
---

# Use ordinary record saves for the survivor

## Context

A merged record must satisfy the same validations as an ordinary edit.

## Decision

After merge-specific reference moves, Entities persistence deletes absorbed records and saves the survivor’s planned fields and collections, submitting only custom values that change.

## Alternatives Considered

Write the final survivor directly. This would bypass the owner’s validation and history behavior.

Resubmit every custom value. An unchanged empty value newly marked required could prevent an otherwise valid merge.

## Consequences

Ordinary save validation can fail the merge as an invalid survivor. Employee moves avoid modification stamps that would fabricate employer-history changes.
