Inferensys

Prompt

Multi-Source Contact Record Reconciliation Prompt Template

A practical prompt playbook for CDP operators and data engineers merging contact records from multiple model pipelines into reconciled golden records with source precedence, conflict resolution, and provenance tracking.
Data scientist building training data pipeline on laptop, data preprocessing visible, technical workspace.
PROMPT PLAYBOOK

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.

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.

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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

PROMPT PLAYBOOK

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.

text
You 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.

IMPLEMENTATION TABLE

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.

PlaceholderPurposeExampleValidation 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.

PROMPT PLAYBOOK

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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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).

03

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.

04

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.

05

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.

06

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.

IMPLEMENTATION TABLE

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.

CriterionPass StandardFailure SignalTest 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

ADAPTATION OPTIONS

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

code
You 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
Prasad Kumkar

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.