This prompt is designed for Customer Data Platform (CDP) operators and data engineers who need to merge contact records arriving from multiple AI pipelines, APIs, or batch ingestion jobs into a single golden record. The job-to-be-done is not simple deduplication—it is conflict resolution across sources with different freshness, reliability, and completeness profiles. Use this prompt when you have two or more partial or conflicting contact records for the same person or entity and you need a single reconciled output that preserves source precedence rules, field-level provenance, and staleness handling. The ideal user has already run identity resolution to cluster records belonging to the same entity and now needs to collapse each cluster into one trustworthy record.
Prompt
Multi-Source Contact Record Reconciliation Prompt Template

When to Use This Prompt
Define the reconciliation job, the required inputs, and the operational boundaries where this prompt adds value versus where it breaks down.
Do not use this prompt for initial identity matching or pairwise deduplication—those are upstream tasks covered by the Contact Record Deduplication Prompt Template. Do not use it when all sources agree, as the reconciliation overhead adds latency without benefit. This prompt is also inappropriate when source reliability is unknown or unquantified; you must supply explicit source precedence rules and freshness metadata. If your pipeline cannot provide source_priority_order, record_timestamps, or field_completeness per source, stop and instrument your ingestion layer before attempting reconciliation. For regulated contact data (GDPR, CCPA), always route the final golden record through human review before committing to a system of record—this prompt produces a candidate record, not an audited decision.
The prompt expects structured inputs: a list of candidate records with source identifiers, timestamps, and optional confidence scores. It outputs a reconciled record with a survivorship_map showing which source won each field and why. Before deploying, build a test harness that validates: (1) the highest-priority source wins when it has a non-null value, (2) stale records lose to fresher records from lower-priority sources when staleness thresholds are exceeded, (3) the output never invents fields not present in any input, and (4) the provenance map is complete and auditable. Start with a small set of known-conflict clusters, verify the reconciliation logic matches your business rules, then scale to batch processing with a human-in-the-loop checkpoint for low-confidence merges.
Use Case Fit
Where the Multi-Source Contact Record Reconciliation Prompt Template delivers value and where it introduces unacceptable risk. Use these cards to decide if this prompt belongs in your pipeline or if you need a different approach.
Good Fit: Multi-Pipeline CDP Ingestion
Use when: you have contact records arriving from separate model pipelines (e.g., email extraction, voice transcript parsing, web form classification) and need a single golden record. Guardrail: require each source to provide a confidence score and provenance timestamp before reconciliation begins.
Bad Fit: Real-Time Identity Resolution
Avoid when: sub-second latency is required for live identity matching during user sessions. LLM-based reconciliation adds unacceptable delay. Guardrail: use deterministic matching (hash-based or rule-engine) for the real-time path and reserve this prompt for batch deduplication and merge jobs.
Required Inputs: Source Precedence Rules
Risk: without explicit source priority rules, the model will invent its own hierarchy, leading to inconsistent golden records across runs. Guardrail: provide a ranked list of source systems with clear tie-breaking logic (e.g., 'CRM overrides web forms; verified email beats unverified') as a [SOURCE_PRECEDENCE] variable in the prompt.
Operational Risk: Staleness Drift
Risk: a record from a high-precedence source may be stale while a lower-precedence source has fresher data. The model may blindly follow precedence rules and discard recent corrections. Guardrail: include a [STALENESS_THRESHOLD_DAYS] parameter and instruct the model to flag conflicts where a lower-precedence source is significantly newer.
Operational Risk: Hallucinated Merge Justifications
Risk: the model may fabricate plausible-sounding reasons for merging records that should remain separate, especially when names or addresses are similar but not identical. Guardrail: require the output to include a [MERGE_CONFIDENCE] score and route low-confidence merges to a human review queue before committing to the golden record.
Bad Fit: Single-Source Normalization
Avoid when: you only have one source of contact data and need field-level normalization. This prompt is over-engineered for single-source cleanup. Guardrail: use the Email Address Normalization or Phone Number Canonicalization prompts instead. Reserve reconciliation for multi-source merge scenarios.
Copy-Ready Prompt Template
A reusable prompt template for reconciling contact records from multiple sources into a single golden record with provenance tracking.
This prompt template is designed to be copied directly into your application code or prompt management system. It accepts multiple contact records from different sources, applies configurable precedence rules, resolves conflicts, and produces a reconciled golden record with field-level provenance. The template uses square-bracket placeholders that you must replace with your actual data and configuration before sending to the model. Every placeholder is documented so you can wire this into a CDP pipeline, CRM ingestion flow, or identity resolution system without guessing what each variable should contain.
textYou are a contact record reconciliation engine. Your task is to merge multiple contact records that may represent the same person into a single reconciled golden record. ## INPUT RECORDS [RECORDS] ## SOURCE PRECEDENCE RULES When the same field has conflicting values across sources, resolve using this priority order: [SOURCE_PRECEDENCE] ## CONFLICT RESOLUTION POLICY [CONFLICT_POLICY] ## STALENESS THRESHOLD Records older than [STALENESS_DAYS] days should be treated as low-confidence and flagged for review unless corroborated by a fresher source. ## OUTPUT SCHEMA Return a JSON object with this exact structure: { "golden_record": { "contact_id": "string (generated UUID v4)", "fields": { "[FIELD_NAME]": { "value": "any", "confidence": "high | medium | low", "source": "string (source identifier)", "conflict_resolved": true | false } } }, "provenance": { "source_records_used": ["source_id"], "source_records_discarded": ["source_id"], "discard_reasons": {"source_id": "string"}, "reconciliation_timestamp": "ISO 8601" }, "conflicts": [ { "field": "string", "conflicting_values": ["value"], "resolution_method": "precedence | recency | majority_vote | manual_review_required", "selected_value": "any", "justification": "string" } ], "review_required": true | false, "review_reasons": ["string"] } ## CONSTRAINTS [CONSTRAINTS] ## EXAMPLES [EXAMPLES] ## INSTRUCTIONS 1. Identify which input records likely represent the same person using available identifiers. 2. For each field, select the best value using source precedence rules and conflict resolution policy. 3. Flag any field where confidence is low or where automated resolution is unreliable. 4. Track exactly which source contributed each field value. 5. If staleness rules apply, downgrade confidence on old records. 6. Set review_required to true if any conflict requires human judgment. 7. Output only the JSON object. No markdown, no commentary.
To adapt this template, replace each bracketed placeholder with your actual data and rules. [RECORDS] should contain the raw contact records as JSON objects, each with a source identifier and timestamp. [SOURCE_PRECEDENCE] should be an ordered list of source names from most to least trusted. [CONFLICT_POLICY] defines your resolution strategy: precedence uses source ranking, recency picks the newest value, majority_vote requires agreement across sources, and manual_review_required escalates to a human. [CONSTRAINTS] lets you add domain-specific rules like "email must be RFC 5322 compliant" or "phone must be E.164 format." [EXAMPLES] should include at least one clean reconciliation and one conflict-heavy case to anchor model behavior. Before deploying, validate that the model reliably produces the exact output schema by running at least 20 test cases through your eval harness and checking for missing provenance fields, hallucinated source identifiers, and incorrect conflict resolution.
Prompt Variables
Required inputs for the Multi-Source Contact Record Reconciliation prompt. Each placeholder must be populated before the prompt is assembled and sent. Validation notes describe how to programmatically verify the input before incurring model cost.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[SOURCE_RECORDS] | Array of contact record objects from different model pipelines to reconcile | [{"source":"pipeline_a","record":{"email":"j.doe@acme.com","phone":"+15551234567"}}] | Parse check: must be valid JSON array with 2+ objects. Each object requires 'source' (string) and 'record' (object) keys. Reject if empty or single-source. |
[SOURCE_PRECEDENCE] | Ordered list defining which source pipeline wins in conflicts | ["crm_export", "email_parser", "web_form"] | Parse check: must be non-empty array of unique strings. Each value must match a 'source' value present in [SOURCE_RECORDS]. Reject if sources are missing from records. |
[FIELD_PRIORITY_RULES] | Per-field conflict resolution strategy: newest, most_complete, source_order, manual_review | {"email":"source_order","phone":"newest","name":"most_complete"} | Schema check: must be valid JSON object. Keys must match field names expected in output schema. Values must be one of the allowed enum strings. Reject unknown strategies. |
[STALENESS_THRESHOLD_DAYS] | Maximum age in days before a source record is considered stale and deprioritized | 90 | Type check: must be positive integer. Null allowed if staleness handling is disabled. If provided, each source record must have a 'last_updated' field or the prompt will fail at assembly. |
[OUTPUT_SCHEMA] | JSON Schema defining the expected golden record structure | {"type":"object","properties":{"email":{"type":"string"},"phone":{"type":"string"}},"required":["email"]} | Schema check: must be valid JSON Schema draft-07 or later. Required fields must be a subset of properties. Reject schemas with no required fields. |
[CONFIDENCE_THRESHOLD] | Minimum confidence score (0.0-1.0) for auto-accepting a reconciled field without human review | 0.85 | Range check: must be float between 0.0 and 1.0 inclusive. If set to 1.0, all fields require human review. If set to 0.0, all fields auto-accept. |
[PROVENANCE_REQUIRED] | Whether the output must include per-field source attribution | Type check: must be boolean. When true, output schema must include a 'provenance' object mapping each field to its source record ID. Reject if true and output schema lacks provenance structure. | |
[MAX_CONFLICT_FIELDS] | Maximum number of conflicting fields allowed before the entire record is escalated for human review | 3 | Type check: must be positive integer or null. If null, no field-count escalation occurs. If set, reconciliation stops and returns an escalation flag when conflict count exceeds this value. |
Implementation Harness Notes
How to wire the reconciliation prompt into a production CDP pipeline with validation, retries, and human review gates.
This prompt is designed to be called as a single step within a larger contact ingestion or merge pipeline. The application layer should first collect all candidate records for a given entity, assemble them into the [SOURCE_RECORDS] array with explicit source identifiers and timestamps, and inject the [SOURCE_PRECEDENCE] list based on your data trust hierarchy (e.g., CRM > Enrichment API > Manual Entry). The [CONFLICT_RESOLUTION_RULES] should be templated from your master data management policy, specifying field-level tiebreakers such as 'prefer most recent non-null value' or 'prefer source A for phone, source B for address'. Do not rely on the model to infer these rules from examples alone.
After receiving the model's output, validate the JSON structure against your golden record schema before ingestion. Check that provenance arrays reference only valid source_id values from the input, that conflict_resolution entries map to actual conflicting fields, and that the staleness_flag is present for any field sourced from a record older than your configured threshold. Implement a retry loop with a maximum of two additional attempts: on the first retry, include the validation errors in the [PREVIOUS_ERRORS] field; on the second retry, lower the temperature to 0 and request only the fields that failed validation. If the output still fails validation after three attempts, route the record to a human review queue with the original sources, the failed outputs, and the validation error log attached.
For model selection, use a model with strong JSON mode and instruction-following capabilities. Avoid models that tend to hallucinate source attributions or merge fields without clear provenance. Log every reconciliation attempt—including input sources, model output, validation results, and final disposition—to an audit table. This log becomes your evidence trail for governance reviews and your dataset for tuning source precedence rules over time. Never allow an unreviewed golden record to overwrite a system of record without human approval on the first 100 merges, and maintain a rollback path for at least 30 days after deployment.
Common Failure Modes
Multi-source reconciliation fails in predictable ways. Here are the most common failure modes and how to guard against them before they corrupt your golden records.
Source Precedence Inversion
What to watch: The model ignores declared source priority rules and selects values from lower-authority sources when conflicts arise. This happens when precedence instructions are buried in long prompts or expressed ambiguously. Guardrail: Place source priority rules at the top of the system prompt as an explicit ordered list. Validate output provenance against the priority table before accepting reconciled records.
Stale Record Preference
What to watch: The model favors older, more complete records over fresher but sparser updates, causing recently corrected fields to be overwritten by stale data. This is common when completeness heuristics override timestamp signals. Guardrail: Add explicit timestamp comparison rules that prioritize recency for mutable fields (phone, email, address) while allowing completeness preference only for stable fields (name, birthdate).
Silent Field Hallucination
What to watch: The model fabricates missing fields to produce a complete-looking golden record instead of leaving gaps. This is especially dangerous for identifiers and compliance fields where null is the correct answer. Guardrail: Require explicit null markers for fields with no source evidence. Add a post-reconciliation validator that flags any field value not traceable to at least one input source.
Provenance Chain Collapse
What to watch: The model merges records correctly but loses track of which source contributed each field, making audit and correction impossible. The output looks clean but is operationally untrustworthy. Guardrail: Require a per-field provenance map in the output schema. Test that every reconciled field has a corresponding source identifier and that the mapping survives batch processing without degradation.
Conflict Resolution Without Rationale
What to watch: The model resolves conflicting values but provides no explanation for its choice, making it impossible to review edge cases or calibrate rules. This turns reconciliation into an opaque black box. Guardrail: Include a required conflict_rationale field for any field where multiple sources disagree. Test that the rationale references specific source attributes (timestamp, authority level, completeness) rather than generic statements.
Partial Match Over-Merge
What to watch: The model merges records that share some attributes but actually represent different entities, creating composite records that belong to no real person. This is the most damaging failure mode for downstream operations. Guardrail: Implement a pre-merge match confidence threshold. Require the model to output a match_confidence score and merge_boundary justification. Route records below threshold to a human review queue instead of automatic merging.
Evaluation Rubric
Use this rubric to test the quality of reconciled contact records before shipping. Each criterion targets a specific failure mode in multi-source reconciliation, from source precedence violations to provenance gaps.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Source Precedence Adherence | Higher-priority source value selected for every conflicting field | Lower-priority source value appears in resolved field without explicit override justification | Inject controlled conflicts with known priority order; assert resolved field matches highest-priority non-null source |
Conflict Resolution Transparency | Every resolved conflict includes a conflict_flag, winning_source, and resolution_reason | Resolved field lacks provenance or conflict_flag is false when sources disagree | Supply two sources with conflicting values for same field; check output contains conflict_flag: true and non-empty resolution_reason |
Staleness Handling | Records with timestamp older than [STALENESS_THRESHOLD_DAYS] are flagged as stale and deprioritized | Stale record value selected over fresh record without staleness justification | Provide one fresh source and one source with timestamp exceeding threshold; assert stale record is not selected for conflicting fields |
Null vs. Missing Distinction | Explicit null in source is treated as intentional empty; missing field is treated as unknown and filled from other sources | Null value overwrites a valid value from another source, or missing field is incorrectly treated as null | Supply source A with explicit null for email and source B with valid email; assert resolved email uses source B value |
Provenance Completeness | Every field in golden record has a source_trace array listing all contributing sources with timestamps | Golden record field present but source_trace is empty, missing, or omits a contributing source | Parse output JSON; assert every non-null field has source_trace with at least one entry containing source_id and timestamp |
Duplicate Source Handling | When same source appears multiple times, only the most recent non-stale version contributes | Duplicate source entries cause field oscillation or repeated conflict flags without resolution | Supply three records: two from same source with different timestamps, one from different source; assert only latest same-source record participates in reconciliation |
Confidence Score Calibration | Overall confidence_score reflects proportion of fields with unanimous agreement vs. conflicts | Confidence score is 1.0 when conflicts exist, or below 0.5 when only one source disagrees on minor field | Calculate expected confidence as (unanimous_fields / total_fields); assert output confidence_score within 0.1 of expected value |
Output Schema Compliance | Golden record validates against [OUTPUT_SCHEMA] with all required fields present and correctly typed | Schema validation fails due to missing required field, wrong type, or extra hallucinated field | Run JSON Schema validator against output using [OUTPUT_SCHEMA]; assert zero validation errors |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base reconciliation prompt and a small test batch of 10-20 contact pairs. Use a frontier model with default temperature. Focus on getting the output structure right before tuning conflict resolution rules. Replace [SOURCE_PRECEDENCE_RULES] with a simple ordered list: ["CRM", "Enrichment", "Form"]. Use [STALENESS_THRESHOLD_DAYS] set to 90. Skip provenance tracking initially—just return the winning value per field.
Prompt modification
codeYou are reconciling contact records from multiple sources. For each field conflict, choose the value from the highest-precedence source that is not null or empty. If all sources are null, return null. Do not invent values. Source precedence (highest to lowest): [SOURCE_PRECEDENCE_RULES] Staleness threshold: ignore records older than [STALENESS_THRESHOLD_DAYS] days. Input records: [CONTACT_RECORDS] Output schema: [OUTPUT_SCHEMA]
Watch for
- Missing schema checks—validate output shape manually
- Overly broad instructions causing field invention
- No staleness handling if all records are old
- Silent preference for first-seen value over declared precedence

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us