---
name: crm-data-hygiene
description: Audits CRM records for missing, contradictory or unusable data — empty disqualification reasons, status and evidence mismatches, stalled records with no next action — and reports what a human must fix. Use when the user asks to audit the CRM, check data quality, find bad records, or review how leads are being closed.
metadata:
  version: "1.1.1"
---

# crm-data-hygiene

> **Client-neutral reusable package.** No client names, tenant or workspace identifiers, account or
> resource IDs, customer records, credentials, or internal paths. All examples are synthetic.

| | |
|---|---|
| Live catalog name | CRM Data Hygiene |
| Live category | CRM & Sales |
| Catalog entry | 6 |
| Internal capability ID | `CAP-CRM-01` |
| Provider | CRM (provider-neutral) |
| Availability | Candidate; validate in the active Workspace |
| Deliverable type | `client_ready_guided_skill` |
| Validation status | Candidate; local package validation only |
| Version | 1.1.0 |


## OLLIE Runtime integration

Use this capability under the active OLLIE Operator. Read live Workspace Context and tenant
bindings for the required inputs below; this public package supplies no client facts or authority.
Consume `ask-ollie-authority-core` for authority, `outloop-access-fallback` for recovery and
resource verification, `email-lifecycle-core` for recipients, approvals and stored-copy delivery
verification, and the bootstrapper Runtime Contract for ownership, scheduling and completion.
These owners govern execution; this Skill does not implement a competing runtime.

Select the relevant expertise below for the requested outcome. Runtime governs combining Skills,
partial use and completing missing steps with other authorized capabilities. This Skill's domain
scope does not limit the Operator's wider authorized task. Preserve domain safety restrictions.
Verify findings against source evidence and read back any resulting artifact or authorized change.

## Business outcome

The CRM stops silently losing context, because every questionable record is surfaced to the person who can correct it.

## Operating modes

Read · Analyze · Draft

## Prerequisites — what must be true before this runs

- Workspace Context
- An approved CRM grant
- A documented status vocabulary confirmed against live values

## Required inputs

| Input | Source |
|---|---|
| Approved CRM instance and module scope | Workspace configuration |
| Status vocabulary and what each status means | Required — the actual values, not the labels |
| Required-field policy per stage | Workspace Context |
| Record owner roster | Configuration — who gets asked to fix what |

## Read-only is the design, not a limitation

This workflow **never writes to the CRM and never infers the missing value**. A reason field filled in by an
agent is worse than an empty one: it looks like human knowledge and is not. Ask the person who was there.

## Check the actual values, not the schema

Status vocabularies drift from their documentation. Read the values that are really in use, including the
misspelled and deprecated ones, before classifying anything. A rule written against the documented vocabulary
will silently skip half the records.

## Heuristics that earn their place

A disqualification reason fails when it is empty, under about ten characters, a person's name only, or vague
with no qualifying keyword. A status mismatch is when the free-text evidence describes a different outcome
than the status claims. Both are reported as questions, never as corrections.

## Action classification

| Action class | This workflow |
|---|---|
| Read | Records, field values, status history, notes, related lists, ownership |
| Analyze | Empty or meaningless reasons, status-versus-evidence mismatch, stage aging with no next action, duplicate and near-duplicate detection, misclassification |
| Draft | A per-owner list of records needing a human correction, each with the specific question to answer |
| Write with approval | **Not enabled.** This workflow never writes to the CRM |
| Destructive | None. Never merges, never deletes, never re-stages a record |

## Approval and delivery

The Operator applies Authority Core and the active Workspace approval policy to any requested
mutation. Email Lifecycle owns recipient classification, sending and stored-copy verification.
The action table defines this capability's domain scope; it grants no permission by itself.

## Expected output

A per-owner worklist: record reference, what looks wrong, the evidence, and the single question that would resolve it.

## Synthetic placeholders used in this package

These are illustrative only. Real values come from the client's own workspace configuration and are
never written back into this package.

| Placeholder | Meaning |
|---|---|
| `CRM_MODULE_PLACEHOLDER` | Audited module |
| `OWNER_PLACEHOLDER` | Record owner |
