Preview

CustomerUnificationDecision is in Preview status and is subject to change without notice. For more information about Preview status, see the GraphQL API policy.

CustomerUnificationDecision

Immutable clerical decision row for a party pair (merge, reject, defer, or unmerge).

This page contains

    Fields

    decisionId: ID!

    Surrogate id of this decision record.

    pairId: ID!

    Pair this decision applies to.

    advisorId: ID!

    Advisor scope for the pair.

    leftSourceSystem: String!

    Left party source system at decision time.

    leftSourceId: String!

    Left party source id at decision time.

    rightSourceSystem: String!

    Right party source system at decision time.

    rightSourceId: String!

    Right party source id at decision time.

    decision: CustomerUnificationDecisionType! PREVIEW

    Outcome that was recorded.

    reviewer: String!

    Authenticated principal name stored as reviewer.

    reviewedAt: DateTime

    When the decision was recorded (RFC 3339); null when no review timestamp is available.

    notes: String

    Optional audit note.

    fieldSelections: String

    Opaque JSON of per-field merge resolutions when applicable.

    Parent objects of CustomerUnificationDecision

    CustomerUnificationCluster PREVIEW

    Cluster of duplicate party records reachable from an entry-point pair. The size field is always 1 + the number of members; the primary record is the cluster anchor surfaced first.

    CustomerUnificationDecisionConflictError PREVIEW

    A merge or reject decision already exists for this pair; unmerge first to record a new decision.

    CustomerUnificationDecisionPage PREVIEW

    One page of historical decisions for audit and support.

    CustomerUnificationReviewQueueItem PREVIEW

    A pending merge cluster: transitively linked party pairs grouped into one connected component for clerical review. Listing rows use the representative pair id and primary party display fields; full members are loaded on the cluster detail query.

    Mutations for CustomerUnificationDecision

    customerUnificationMarkClusterNotDuplicate PREVIEW

    Record a NOT_DUPLICATE outcome for every pair (i, j) of the supplied party identifiers, idempotently. Pairs whose latest decision is already a terminal REJECT are counted as succeeded without persisting a duplicate row. Per-pair failures (missing pair, prior MERGE conflict) are isolated; the invariant succeeded + failed = number of distinct party-id pairs holds when the request is accepted.

    customerUnificationMergeCluster PREVIEW

    Record a MERGE decision for every (primary, member) pair in an N-record cluster using a single set of field selections supplied by the caller. Per-pair failures (missing pair, prior terminal decision) are isolated and reflected in succeeded / failed counters; the invariant succeeded + failed = memberPartyIds.length holds when the request is accepted.

    customerUnificationSubmitDecisionByAdvisorId PREVIEW

    Record one merge, reject, defer, or unmerge outcome for a single pair.

    Queries for CustomerUnificationDecision

    customerUnificationDecisionsByAdvisorId PREVIEW

    Paged history of recorded decisions scoped to an advisor, with optional filters on reviewer, outcome, and reviewed-at range.

    customerUnificationDecisionsByCustomerId PREVIEW

    Paged Changed By audit history for a single canonical customer. Returns every clerical decision where this customer's absorbed source identifiers (via gold.party_aliases) appear on either side of the pair. Use the optional decisionIds filter to power Export Selected for CSV.

    customerUnificationDecisionsByCustomerIdAndMarketplaceTenant PREVIEW

    Paged Changed By audit history for a single canonical customer, scoped by marketplace tenant. Anchors on silver.party_xref so absorbed source identifiers across every advisor in the marketplace still match. Authorized for ROLE_CHANNEL_ADMIN only.