Data Integrity Intermediate

The CRM Data-Integrity Triage Playbook

A repeatable triage workflow for diagnosing, containing, repairing, and verifying CRM data failures after automations run.

45 min Octacer Engineering May 27, 2026
A data steward inspecting a grid of record cells where one field cell sits conspicuously empty among the filled ones.

The CRM field that went blank: a data-integrity triage

A field went blank, truncated, or wrong after an automation ran — or an expected record or task never appeared. Work read-only first, name the exact failure, then pick the least invasive fix. This playbook routes you from symptom to root cause to a verified repair.

When this applies

Concrete symptoms this covers:

  • A converted record loses a field that the source record carried (for example, a date of birth dropped during Lead-to-Contact conversion). [58]
  • A generated document shows the wrong content in a field or subject line. [55]
  • A batch sync processes only the first item and skips the rest. [979]
  • A create fails because the record already exists, so nothing updates. [1069]
  • A lead's source shows blank ("Offline") while ad-sourced leads show a source. [1497]
  • An extracted field is cut off or contains garbage across many records. [2019][2020]
  • Live records are missing an automation-created activation or reminder task. [56]

Severity & impact

Classify by blast radius first, then by downstream harm.

Blast radius Signal Severity
One record Single failing sample, isolated field Low — fix and verify with that sample [58]
A batch One sync run drops or skips items Medium — pause the run, fix item handling [979]
A whole corpus Thousands of records share the defect High — validate against the full real corpus before redeploy [2020]

Downstream harm raises severity regardless of count:

  • A wrong document was generated and may have been sent. [55]
  • Attribution was lost, so reporting and routing are wrong. [1497]
  • A missing task means a live obligation (activation, reminder) has no owner. [56]

Roles

  • Incident owner — drives the triage, holds the decision log, calls the fix.
  • Data steward — owns the affected records; approves any write or backfill.
  • Comms lead — updates stakeholders and, if a wrong document went out, the affected client.
  • Escalation — the engineering or automation lead who authorizes a rollback or pause.

Triage steps

Read-only until you have named the exact failure. Do not write to any record while diagnosing.

  1. Reproduce with one known sample. Take a single source record that carries the value and run it through. Confirm the destination is missing or wrong. [58]
[ ] Pick ONE source record known to carry the value
[ ] Run the conversion/sync for just that record
[ ] Record: source value present? destination value present?
[ ] Capture the record id + execution log
  1. Name the exact failure. Not "it's wrong" — state precisely what broke: "a newline bled into the captured field" or "the fallback gave up before reaching the name." An exact name is what makes the fix testable. [2019]
  1. Read the per-item execution. Open the automation's run and check whether it processed every input item or only the first. A Code node that reads only the first input item silently drops the rest. [979]
[ ] Open the execution for the failing run
[ ] Count input items vs items actually processed
[ ] Flag if only item[0] was handled
[ ] Check for 409 conflicts / 500 errors in the run
  1. Check path routing. For a sync that separates Create / Update / Existing / Error paths, confirm each outcome routed correctly. A 409 duplicate belongs on the Existing path (minimal update, write back the matched record id), not the Error path — the Error path is for genuine validation failures. Duplicate matching can also key on phone last-8. [1069]
  1. Check attribution source. If a source field is blank, determine whether attribution rides a URL tracking parameter or a browser-session cookie. Ad leads carry attribution in the URL, which survives; session-cookie attribution breaks across a booking hand-off, leaving the source blank. [1497]
  1. Diff live vs test records. Separate genuine live records from test or debug records so any fix list touches only real data. [56]
[ ] Tag records as live vs test/debug
[ ] Build the affected-list from live records only
[ ] Confirm no unrelated live record is in scope

Decision points

Branch from the named failure to the root cause.

  • If only the first record is affected and the rest are skipped → item-linking or loop bug; the node processed only the first input item. [979]
  • If the value is truncated or garbled → extraction regex or fallback logic; a newline bled in or the fallback quit early. [2019]
  • If the record exists but a create was attempted → 409 duplicate path; route to Existing with a minimal update instead of Error. [1069]
  • If source is blank only for non-ad leads → cookie/session attribution gap; the browsing session was never linked to the booking. [1497]
  • If a live record is missing an expected task → automation skipped or never fired for that record; build a selective backfill list. [56]

Mitigation menu

Least invasive first. Stop at the smallest fix that resolves the named failure.

  1. Patch the field mapping to carry the value. Add the dropped field to the conversion mapping (a matching field plus a formula sync so the date carries across). [58][2346]
  2. Add a minimal-update fallback for 409s. Route duplicates to the Existing path, do a minimal update, and write the matched record id back to the source sheet. [1069]
  3. Restructure the sub-workflow to run sequentially per item, and strip empty enum values. Fix item-linking so every item is processed, run per-item to kill the race that produced 409 conflicts, and strip empty enums to avoid 500 errors. [979]
  4. Backfill missing tasks or records selectively. Apply only to the vetted live-record list, leaving test and unrelated records untouched. [56]
  5. Re-validate a corrected extraction against the full corpus before redeploy. For an extraction fix, validate against the full real sample set, not a handful of examples. [2020]

Escalate when

Escalate to the engineering/automation lead when:

  • The defect spans a whole corpus (thousands of records) rather than one batch. [2020]
  • A wrong document may already have been generated and sent. [55]
  • A fix requires writing to live records at scale (backfill). [56]

Rollback criteria — pause the sync before it corrupts more records when:

Verification & recovery

  • Verify with the exact failing sample. Re-run the original single record and confirm the destination now receives the value. [58]
  • Validate a batch fix against the full real corpus. For an extraction repair, run the corrected logic against the entire real sample set (not a few cases) before production. [2020]
  • Confirm formatting matches the approved reference. Check the output against the client-approved sample — for example, confirm the contact name is excluded from a subject line as requested and formatting is consistent across cases. Document any remaining mismatch rather than assume it fixed. [55]

Evidence & comms

Capture for every incident:

  • The failing record id.
  • The execution log for the failing run.
  • The before/after value of the affected field.

Comms template:

Incident: <field/record> blank|truncated|wrong after <automation>.
Blast radius: <one record | batch | corpus>.
Root cause: <named exact failure>.
Fix: <mapping patch | 409 fallback | sequential restructure | backfill | re-validate>.
Verified: <failing sample | full corpus | approved reference>.
Downstream: <document resent? | attribution corrected? | task created?>.

Post-incident

  • Link the retro to the incident record and the execution log.
  • Prevention:
  • Test conversions with real filled samples, not empty stubs. [58]
  • Handle items sequentially per input to avoid first-item-only drops and races. [979]
  • Keep explicit Create/Update/Existing/Error paths so duplicates never land on the Error path. [1069]
  • Carry attribution in the URL so it survives a hand-off instead of relying on a session cookie. [1497]
  • Validate corrected extractions against the full real corpus before redeploy. [2020]

Ready to Implement This Playbook?

Our team can implement these strategies for you, tailored to your specific business needs.

Schedule Consultation