> ## Documentation Index
> Fetch the complete documentation index at: https://help.hoopai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data Quality & Cleanup

> Keep your HoopAI CRM data clean and reliable with duplicate detection, formatting rules, and automated cleanup workflows.

Clean, consistent contact data is the foundation of effective marketing, sales, and reporting. Messy data leads to duplicate outreach, broken automations, inaccurate reports, and wasted spend. HoopAI provides tools to detect problems, fix them in bulk, and prevent them from recurring.

## Data quality dashboard overview

Monitor the health of your contact database from the Contacts section. Key indicators to track include:

* **Total contacts** -- your full database size
* **Duplicate rate** -- the percentage of records that share an email, phone number, or name with another record
* **Incomplete records** -- contacts missing critical fields like email, phone, or name
* **Bounce rate** -- the percentage of email addresses that have hard-bounced
* **Unsubscribe rate** -- contacts who have opted out of communications

<Tip>
  Review your data quality metrics at least monthly. Schedule a recurring task or calendar reminder to run a data audit on the first of each month.
</Tip>

## Duplicate detection and merging

Duplicates are the most common data quality issue. They cause contacts to receive the same message twice, split conversation history across records, and distort reporting numbers.

<Steps>
  <Step title="Open Manage Duplicates">
    In the **Contacts** section, click the **three-dot menu** in the top right corner and select **Manage Duplicates**.
  </Step>

  <Step title="Select the matching field">
    Choose which field to use for duplicate detection:

    * **Email** -- finds contacts sharing the same primary email
    * **Phone** -- finds contacts sharing the same primary phone number
    * **Name** -- finds contacts with identical first and last names
  </Step>

  <Step title="Review duplicate groups">
    The system generates groups of matching records. Expand each group to compare the contact details side by side. Up to 10,000 entries are shown per scan.
  </Step>

  <Step title="Resolve each group">
    For each group, choose:

    * **Merge** -- combine records into one master contact (up to 10 at a time)
    * **Reject** -- mark as not duplicates (for legitimate contacts sharing a value)
    * **Review** -- open a detailed comparison view before deciding
  </Step>
</Steps>

<Warning>
  Merging contacts is permanent and cannot be undone. Always verify which record you designate as the master and which field values you keep before confirming.
</Warning>

## Incomplete record identification

Contacts missing key fields are harder to reach and segment. Identify and fix them proactively.

<Tabs>
  <Tab title="Smart lists">
    Create smart lists that filter for missing data:

    * Email is empty
    * Phone is empty
    * First name is empty
    * Company is empty

    Save these as reusable smart lists (e.g., "Missing Email", "Missing Phone") and check them regularly.
  </Tab>

  <Tab title="Bulk update">
    Select contacts from a smart list and use **Bulk Actions** to update fields. For example, update missing tags or assign contacts to a re-engagement campaign to collect updated information.
  </Tab>

  <Tab title="Workflow enrichment">
    Build a workflow that triggers when a contact is created with missing fields. Send an automated email or SMS asking the contact to complete their profile through a form.
  </Tab>
</Tabs>

## Property formatting rules

Inconsistent formatting creates confusion and breaks automation conditions. Standardize these common fields:

| Field               | Problem                                                                                                       | Solution                                                                                |
| ------------------- | ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| **Phone numbers**   | Mixed formats (555-1234, (555) 123-4567, +15551234567)                                                        | Use E.164 format for imports. HoopAI normalizes phone numbers automatically on inbound. |
| **Names**           | Inconsistent casing (john doe, JOHN DOE, John doe)                                                            | Capitalize on import. Use workflow actions to normalize casing.                         |
| **Email addresses** | Uppercase or extra spaces ([John@Email.COM](mailto:John@Email.COM), [john@email.com](mailto:john@email.com) ) | Convert to lowercase and trim whitespace before import.                                 |
| **Tags**            | Duplicates with different casing ("VIP" vs. "vip")                                                            | Audit tags in **Settings > Tags** and merge duplicates.                                 |
| **Dates**           | Mixed formats (03/06/2026, 2026-03-06, March 6 2026)                                                          | Use ISO 8601 (YYYY-MM-DD) for all date custom fields.                                   |

## Automated data cleanup workflows

Use HoopAI workflows to fix data quality issues automatically as they arise.

<CardGroup cols={2}>
  <Card title="Format phone numbers" icon="phone">
    Trigger on contact creation. Use a custom webhook or code action to strip non-numeric characters and add the country code.
  </Card>

  <Card title="Tag inactive contacts" icon="tag">
    Trigger on a schedule. Check if a contact has had no activity in 90 days and add an "Inactive" tag for review.
  </Card>

  <Card title="Remove bounced emails" icon="envelope-circle-xmark">
    Trigger when an email bounces. Add a "Hard Bounce" tag and remove the contact from active email lists.
  </Card>

  <Card title="Request missing info" icon="envelope-open-text">
    Trigger on contact creation when the email or phone field is empty. Send a message asking the contact to complete their profile.
  </Card>
</CardGroup>

## List hygiene best practices

<AccordionGroup>
  <Accordion title="Remove hard bounces immediately">
    Hard-bounced email addresses will never deliver. Keeping them in active lists damages your sender reputation and deliverability. Tag and exclude them from all email campaigns.
  </Accordion>

  <Accordion title="Segment by engagement">
    Create smart lists for engaged (opened or clicked in the last 90 days) and disengaged contacts. Sending only to engaged contacts improves deliverability and reduces spam complaints.
  </Accordion>

  <Accordion title="Honor unsubscribes and DNC">
    Contacts flagged as Do Not Contact or unsubscribed must not receive marketing messages. HoopAI enforces this automatically, but verify your workflows do not bypass these flags.
  </Accordion>

  <Accordion title="Validate on import">
    Before importing a CSV, clean it externally: remove duplicates, fix formatting, trim whitespace, and validate email addresses with a verification service.
  </Accordion>

  <Accordion title="Archive stale contacts">
    Contacts with no activity in 12 or more months and no reply to re-engagement campaigns should be archived or deleted. They add noise and inflate your database size.
  </Accordion>
</AccordionGroup>

## Regular maintenance schedule

Consistency is key. Follow this recommended maintenance cadence:

| Frequency              | Task                                                                              |
| ---------------------- | --------------------------------------------------------------------------------- |
| **Weekly**             | Review and resolve new duplicates from the Manage Duplicates scan                 |
| **Monthly**            | Audit smart lists for missing data and run enrichment workflows                   |
| **Monthly**            | Review bounce and unsubscribe rates in email analytics                            |
| **Quarterly**          | Full database audit -- check tag consistency, field formatting, inactive contacts |
| **After every import** | Run duplicate scan and verify field mapping accuracy                              |

<Note>
  Data quality is not a one-time project. It requires ongoing discipline. Build these tasks into your team's standard operating procedures.
</Note>
