ai
Identity Resolution Review: Merge Proposals With Reason Codes From an AI Agent on Rails
An identity resolution review process decides which uncertain record pairs a person merges, splits or keeps apart. The Identity Reviewer works at propose level (L2) on any customer data platform (CDP): it turns match evidence into proposals with reason codes and shows the effect on consent state. An identity steward applies every change, because a false merge can expose one person's data to another.
Rail level: L2 · Risk: high · Function: data and analytics
By Art Kukharenko · Published · Updated
All AI agent railsWho this is for: identity stewards, data architects and DPOs. This page belongs to the AI agent rails method and the data and analytics playbook. For the matching mechanics, read identity resolution explained.
Before: the manual workflow
The manual identity review is a steward working through uncertain pairs from the matching engine, usually the band between auto-merge and no link. Each pair means comparing fields, checking history and often opening source systems. Queues grow, so thresholds drift to shrink them. Decisions sit in tickets, so the same pair can return next month. Consent rarely appears on the review screen.
Why can a false merge leak one person's data?
A false merge leaks data because every downstream system treats the merged profile as one person, so anything keyed to it can reach the wrong human. The table shows where that happens.
Scroll horizontally to see all columns.
| Where it lands | What goes wrong | Why it is hard to undo |
|---|---|---|
| Email, portal or access request | Person A's balance or history reaches Person B | Disclosure cannot be recalled. GDPR Article 4(12) counts unauthorised disclosure as a personal data breach where security fails 1, so ask your DPO |
| Consent state | Scopes combine. If a survivor rule keeps the latest grant, A's withdrawal is lost and A is contacted unlawfully | Proof of who consented to what is blurred |
| Suppression | Most-restrictive logic stops mail that B asked for | The harm is quiet, so nobody reports it |
| Audience sync | The merged profile reaches an ad platform or partner | The copy has left your systems |
| Decisions | Combined attributes feed an offer, limit or eligibility check | GDPR Article 22 may apply, and credit scoring is high-risk under EU AI Act Annex III 4 |
| The graph | One shared value links many people. Adobe calls this graph collapse 10, and Segment cites shared in-store iPads as a cause 9 | Each new link enlarges the error |
A false split costs less, though not nothing. An unsubscribed person can get mail through a second profile unless suppression sits on the identifier, and an access request can miss records.
What happens to consent when profiles merge?
Consent should follow the most restrictive state per purpose and channel, with suppression kept on the identifier, as identity resolution explained and the suppression architecture set out. On this rail a rule service computes the before and after state and attaches it to the proposal. The model never calculates consent, and the steward sees the effect before deciding.
Why does a person apply every change?
A person applies every change because merges are hard to reverse, errors fall on individuals, and the session already holds sensitive data.
- Reversal is uneven. Reltio's merge page says the merged profile no longer exists 8. Segment's settings page does not describe undoing merges 9. Adobe says to contact its team to fix collapsed graphs 10. Ask each vendor in writing.
- Averages hide harm. High overall precision still leaves specific people with the wrong data.
- Accountability. GDPR Article 5 requires accuracy and the ability to show compliance, and Article 16 gives a right to correction 23.
- The Rule of Two. The session holds sensitive features, and field values began as untrusted input from forms and feeds 5. It must not also hold the power to change state.
So the level stays at L2 and does not move up, as the rail levels explain. This describes the agent, not the engine. Exact matches on agreed keys can still auto-merge in the identity engine, under thresholds that stewards own through change control. This rail covers the review band only.
After: the job on rails, step by step
The identity review on rails keeps the engine's evidence as the source, adds a proposal, and leaves the write with the steward.
- Trigger. The identity engine places a pair in the review queue.
- Rules filter. Blocked values, hard conflicts, legal holds and open access requests are flagged first.
- Agent proposes. The Identity Reviewer reads pseudonymised features, scores and merge history, then proposes merge, split or keep apart, with reason codes and a confidence.
- Services check. A validator rejects any reason code with no matching feature. A rule service attaches the consent preview.
- Steward decides. The steward sees the evidence first, then the proposal, and applies or rejects it in the engine's own console. A second steward reviews any change that alters consent state.
- Engine writes. The change becomes an event with lineage. Downstream systems re-key, and suppression stays on identifiers.
- Learning. Decisions and reversals feed the labelled set through the Trainer.
A split takes more care than a merge. Recompute both profiles from identifier-level history, re-key downstream, then list what was sent while the two were merged. The DPO assesses that list. Article 33 sets a 72-hour clock for a notifiable breach, and 33(5) requires a record of every breach 11.
What rules do and what the model does
Rules and the engine produce the evidence and enforce limits, while the model reads across fields for patterns a threshold misses, such as whether two records describe one person or a household.
Scroll horizontally to see all columns.
| Task | Done by | Why |
|---|---|---|
| Score candidate pairs | Identity engine | Reproducible, with versioned thresholds |
| Block placeholders; flag holds and open requests | Rule | Exact, and must never be missed |
| Spot household, generation or shared-device patterns | Model flags | Needs reading across several features |
| Write reason codes | Model, from a fixed catalogue | Plain language tied to evidence |
| Check codes; compute consent effect | Validator and rule service | Must be exact |
| Apply or reject | Identity steward | The accountable decision |
What does a good reason code look like?
A good reason code names one piece of evidence a reviewer can check, and it comes from a versioned catalogue, not the model's narration. The explainable AI article explains why an explanation must reflect what the system actually did. The catalogue below is illustrative, so build your own with your stewards.
Scroll horizontally to see all columns.
| Code | Direction | Meaning | Evidence required |
|---|---|---|---|
| R-LOGIN | For | Both records link to one verified login | Login event reference |
| R-ACCT | For | Same customer number across systems | Exact key comparison |
| R-SOFT | For | Name, date of birth and postcode agree | Keyed comparison results |
| N-CONFLICT | Against | Two different verified account IDs | Both references |
| N-HOUSE | Against | Same address and surname, different first name | Feature comparison |
| N-GEN | Against | Same name and address, dates of birth a generation apart | Date band comparison |
| N-SHARED | Against | Device or contact point linked to many profiles | Link count over a limit |
| H-REJECTED | Against | A steward rejected this pair before | Prior decision reference |
Engines can supply the raw material. Splink's waterfall chart shows how each comparison adds to or subtracts from one pair's match weight 6. Senzing describes "why", "why not" and "how" functions that return match detail and an entity's history 12. Ground codes in evidence like that, so the agent translates and does not invent.
The rail card
The rail card below fixes what the Identity Reviewer may do, and systems enforce each limit, so a prompt cannot widen it.
Scroll horizontally to see all columns.
| Field | Value |
|---|---|
| Job | Propose identity merges and splits with reason codes for a person to apply. |
| Trigger | A review queue from the identity engine. |
| Data scope | Pseudonymised match features, match scores and review history. No sensitive attributes as match features. |
| Tool scope | Read: candidate pairs, match features, merge history. Propose: merge or split with reason codes. Execute: none. |
| Output contract | Proposal, reason codes, confidence, and the effect on consent state. |
| Gate | An identity steward applies or rejects every proposal. |
| Limits | Queue size per run; no access to raw contact details. |
| Ledger | Candidate IDs by reference, reason codes, decision, steward, model version. |
| Evaluation | Labelled pairs, including known false merges. |
| Owner and kill switch | Head of data or identity steward. An Orchestrator pause returns the queue to manual review. |
Run it on a private model inside your environment, as the on-premise LLM article describes, with no external model for this data. PrivyCDP's AI layer offers limits on data access and review of results, and its immutable audit ledger records each AI-assisted action with the human or system actor that authorised it.
What the ledger shows for one run
The ledger entry for one run shows what was proposed, on what evidence and who decided, with records held by reference. The JSON is illustrative: its fields and values are invented, and it is not a product API.
{
"rail": "identity-reviewer",
"correlation_id": "c-41d2",
"candidates_ref": "pair-88213",
"proposal": "keep_apart",
"reason_codes": ["N-HOUSE", "N-SHARED"],
"consent_preview_ref": "cp-7731",
"decision": {"outcome": "keep_apart", "by_role": "identity steward", "steward_ref": "u-112"},
"model_version": "private-model-v3"
}
Three ways it fails, and the control for each
The Identity Reviewer fails in ways specific to merging people, and each control below sits outside the model.
Scroll horizontally to see all columns.
| Failure | What it looks like | Control |
|---|---|---|
| The steward stops reading | Proposals are accepted in seconds. In a small radiology study, experienced readers fell from 82% to 45.5% correct when a purported AI was wrong 13. The domain differs, but the warning holds. | Show evidence before the proposal. Seed known false merges into the live queue. Report catch rate by rail and reason code. |
| A plausible reason with no evidence | The model writes "likely the same person" and cites a feature it never saw. | A fixed catalogue, and a validator that rejects any code without a matching feature. |
| One link collapses many people | A shared value joins a large cluster, and consent changes across all of it. | A rule refuses a merge above a cluster-size limit. Test with two seeded people who share a device and one email. |
Metrics that are honest
Honest metrics for identity review measure correctness on known pairs and reversals over time, not queue speed alone. Baseline each before the agent starts.
- Precision on labelled pairs, including known false merges, by reason code.
- Merge reversal rate. Reversals lag, so sample recent merges too.
- Seeded false merges caught in the live queue.
- Cluster-size outliers, which often signal collapse.
- Override rate. A rate near zero may mean rubber-stamping.
- Audit coverage. Anything below 100% is a defect.
Report by rail, role and reason code, not by named steward. Annex III point 4(b) of the EU AI Act lists monitoring workers' performance as a high-risk use 4, so take advice before building a per-person view.
How vendor tools compare
Vendor tools differ most on whether they offer a review queue and how they reverse a merge. The table records each page, checked on 1 November 2026. "Not stated" means the page opened did not say, not that the feature is absent.
Scroll horizontally to see all columns.
| Tool | Review support | Explanation | Reversal | Source |
|---|---|---|---|---|
| Reltio | Potential Match Review, up to five profiles; top buttons act on every profile on the page | Matching attributes highlighted | Not stated on pages opened | 78 |
| Tamr Curator Hub | Steward queue; preview before applying | Agents explain logic, with confidence scores | Not stated; history log | 14 |
| Splink (open source) | Clerical labelling; threshold tool | Waterfall chart per pair | You build it, in your environment | 615 |
| Amperity Stitch | No queue mentioned | Match categories 5 to 0, configurable cutoff | IDs can change as data arrives | 16 |
| Twilio Segment | No queue described | Identifier limits and priority | Not described; tightening rules later is discouraged | 9 |
| Adobe Experience Platform | Graph simulation before rollout | Linking rules | Contact Adobe to fix collapsed graphs | 10 |
A master data tool with a steward console is often the better answer, particularly if you already run one. A script is enough when matching is deterministic, because the job is then key hygiene and blocked values, with no queue to review. Choose this agent only if your queue is large, your patterns are hard to write as rules, and you can run a private model. If the queue is small, a steward with good evidence on screen needs no agent.
Checklist
Use this checklist before the agent reads a live queue.
- The engine exposes match evidence, thresholds and versions.
- Features are pseudonymised, with no sensitive attributes or raw contact details.
- A versioned reason-code catalogue exists, and a validator enforces it.
- A rule service computes the consent preview using most-restrictive logic.
- Suppression sits on identifiers and survives merge, split and erasure.
- The steward sees evidence before the proposal.
- A cluster-size limit is set, with an alert.
- A labelled set includes known false merges, and is rerun on any model, prompt or tool change.
- A split procedure covers re-keying and a DPO review of what was sent.
Back to the AI agent rails hub. To write this rail for your own team, download the rail card template.
Browse use casesFunction playbooksAgent roster
FAQ
What is an identity resolution review process?
It is the step where people decide uncertain matches the engine should not settle alone. Pairs in the middle score band go to a queue, a steward checks the evidence, and the change is applied or rejected with a logged reason. On rails, an agent prepares a proposal with reason codes, and the steward still decides.
Can AI merge customer profiles automatically?
An agent should not. A false merge can show one person's data to another and combine consent scopes, and reversal varies by vendor. So the Identity Reviewer proposes at L2 and a steward applies. The identity engine may still auto-merge exact matches on agreed keys, under thresholds that stewards own through change control.
What happens to consent when two profiles merge?
Take the most restrictive state per purpose and channel, and keep suppression on the identifier so a merge cannot revive an address. A rule service should show the result as a preview before the decision. Test this with two seeded people who share a device and one email, through both merge and split.
Is a false merge a data breach?
It can be. GDPR Article 4(12) covers a breach of security leading to unauthorised disclosure of, or access to, personal data. If a false merge sent one person's data to another, your DPO should assess it, record it under Article 33(5), and decide on notification within the 72-hour clock. Take advice on the facts.
How do you undo a false merge?
Recompute both profiles from identifier-level history, and do not rely on editing the merged record. Then re-key downstream systems, restore each person's consent state from the ledger, and list what was sent while they were merged. Vendors differ widely, so ask each in writing how splits reach segments and destinations, and test it first.
Sources
- GDPR Article 4
- GDPR Article 5
- GDPR Article 16
- EU AI Act, Annex III
- Meta, Agents Rule of Two (31 October 2025)
- Splink, Waterfall chart
- Reltio, Review potential matches
- Reltio, Merge potential matches
- Twilio Segment, Identity resolution settings
- Adobe, Identity graph linking rules
- GDPR Article 33
- Senzing, Explainable entity resolution
- RSNA, press release on Dratsch et al., Radiology (2 May 2023)
- Tamr, Curator Hub (19 November 2025)
- Splink documentation
- Amperity, How Stitch works
This article is general information, not legal advice.
Further reading
- AI Identity Resolution Review Agent
- AI Agents for Data Quality
- AI Agent for Data Quality Triage: Data
- Agent rails
- AI Agent Permissions Template Download
Published: · Updated:
Editorial dates describe content changes. Confirm current sources before making legal, security or purchasing decisions.