Metadata-Version: 2.5
Name: crm-csv-preflight
Version: 0.1.1
Summary: Read-only preflight scan for CRM/lead CSVs before HubSpot, Salesforce, or Pipedrive import: duplicates, bad emails, blanks, personal domains, malformed phones.
Project-URL: Homepage, https://pureservices.store/?utm_source=pypi&utm_medium=cli&utm_campaign=preflight
Project-URL: Free browser check, https://pureservices.store/tools/csv-teaser?utm_source=pypi&utm_medium=cli&utm_campaign=preflight
Author: Sales List Rescue
License-Expression: MIT
License-File: LICENSE
Keywords: crm,csv,data-cleaning,deduplication,email-validation,hubspot,lead-list,pipedrive,salesforce
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Office/Business
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# crm-csv-preflight

Read-only preflight scan for CRM and lead-list CSVs **before** you import them into HubSpot, Salesforce, Pipedrive, or any CRM. It catches the problems that usually wreck an import: duplicate emails, invalid or missing emails, personal-domain addresses, malformed phones, ragged rows, and blank companies.

- Never modifies your file
- Never touches the network, no telemetry
- Standard library only, Python 3.8+
- Handles UTF-8 (with BOM), cp1252, and latin-1; sniffs comma, semicolon, tab, and pipe delimiters

## Install

```bash
pip install crm-csv-preflight
```

## Use

```bash
crm-csv-preflight leads.csv            # human-readable summary
crm-csv-preflight leads.csv --json     # machine-readable output for scripts/CI
```

The exit code is `1` when a blocker is found (for example, no email column), so you can gate an import step in a script.

## Example output (synthetic sample file)

```text
crm-csv-preflight 0.1.0  sample_leads.csv
rows=12 columns=8 encoding=utf-8-sig delimiter=','

Column mapping:
  Company                      -> company
  Contact Name                 -> full_name
  Email                        -> email
  Title                        -> title
  Phone                        -> phone
  Website                      -> website
  LinkedIn                     -> linkedin
  Notes                        -> notes

Issues:
  invalid email        2
  duplicate emails     2
  bad phone            1
  missing company      1
  personal domain      1
Rows with a fixable problem (approx): 41.7%
```

## Want it cleaned, not just reported?

The scanner only reports. If you'd rather have it cleaned for you: Quick Clean returns a cleaned CSV (same-email duplicates merged, possible duplicates noted, never merged) plus a QA report and change log within 24 hours for up to 200 rows. Async, no calls.

- [Quick Clean, $25 for up to 200 rows](https://buy.stripe.com/cNi7sK3JS8Z50915Me73G0d?utm_source=pypi&utm_medium=readme&utm_campaign=quick-clean&utm_content=preflight-011&client_reference_id=pypi-readme)
- [Free in-browser CSV check](https://pureservices.store/tools/csv-teaser?utm_source=pypi&utm_medium=readme&utm_campaign=preflight)
- [Sales List Rescue](https://pureservices.store/?utm_source=pypi&utm_medium=readme&utm_campaign=preflight)

Use `--no-footer` to hide the one-line help footer in the CLI output.

## License

MIT
