Compliance
    September 7, 20266 min read

    How to Import 50,000 Leads Without Breaking Your List

    By Aisel Verdieva

    Content, Apex Sales AI

    How to Import 50,000 Leads Without Breaking Your List

    The short answer

    A lead list is a liability until it has been de-duplicated, normalised, scrubbed against Do-Not-Call, and stamped with a state so quiet-hour rules can apply. Doing that work at import takes about twenty minutes for 50,000 rows. Skipping it costs you dial time, number reputation, and — in a TCPA-regulated space — potentially a great deal more.

    This is the walkthrough, in order, with the decisions you have to make at each step.

    Before you upload: audit the file

    Open the CSV and answer five questions. Two minutes, and it will save you an hour.

  1. How many rows, and how many unique phone numbers? A gap between these two is your duplicate count. In Excel or Sheets: =COUNTA(B:B) against =SUMPRODUCT(1/COUNTIF(B2:B50000,B2:B50000)).
  2. Is there a state column, and is it populated? This drives quiet-hour enforcement. A blank state field means the system cannot protect you.
  3. What format are the phone numbers in? Mixed formats — (555) 123-4567, 555.123.4567, +15551234567 — will defeat duplicate detection unless normalised.
  4. Is there a consent field? Source, timestamp, and the disclosure language as displayed. If your vendor did not supply these, ask before you dial.
  5. How old is the list? Anything over thirty days needs a fresh scrub regardless of what the vendor did before selling it.
  6. If question four has no good answer, stop. That is not a data-hygiene problem, it is a compliance problem, and importing it does not make it go away.

    Step 1 — Normalise the phone numbers

    Strip everything that is not a digit, then handle the leading country code consistently. Every downstream step — deduplication, DNC matching, delivery — depends on this.

    In a spreadsheet, a workable formula is a nested SUBSTITUTE chain removing spaces, parentheses, hyphens, and periods, then a RIGHT(...,10) to take the last ten digits. Do this before anything else.

    Step 2 — Decide your duplicate policy deliberately

    Most import tools default to something. Choose instead, because the three options produce genuinely different outcomes:

    PolicyWhat happensUse when
    SkipExisting record wins; new row discardedYour CRM data is richer than the vendor's
    MergeFields combine; new data fills gapsMost common and usually correct
    CreateBoth records existAlmost never — this is how you double-dial

    Merge is the right default for nearly everyone. "Create" is the setting that produces the experience of calling the same person twice in one afternoon from two different records, which is the fastest way to burn a lead.

    Step 3 — Scrub against DNC on the way in

    This is the step that matters most, and the one people postpone.

    The National Do Not Call Registry held roughly 258.5 million phone numbers as of 30 September 2025, up 1.9% year over year (FTC). Registrations are permanent. On a purchased consumer list, a non-trivial share of the file will match.

    Two things to understand about scrubbing:

    Scrubbing at import is necessary but not sufficient. Numbers move onto the registry between your import and your send. The control that actually protects you is a check that runs immediately before each call or message. APEX does both — a scrub during the CSV import pipeline, and a DNC check before every outbound call and text, with blocked sends written to an audit log.

    Do not delete the matches. Suppress them. A deleted record can be re-imported next month by someone who does not know. A suppressed record with a reason on it stays suppressed.

    APEX handles CSV imports of up to 50,000 rows with DNC scrubbing in the pipeline and a retry-safe design, so a partial failure does not leave you guessing which half went in.

    Step 4 — Fill in the state, always

    Federal telemarketing rules restrict calls and texts to 8:00 a.m. – 9:00 p.m. in the recipient's local time. States including Florida, Oklahoma, Alabama, Louisiana, Mississippi, Maryland, Oregon, Washington, Rhode Island, and Texas impose tighter windows, and Texas SB 140 (effective 1 September 2025) added treble damages and mandatory attorney's fees for texting violations.

    Your platform cannot enforce any of this on a record with a blank state field. Where the state is missing, derive it from area code as a fallback and flag those records so you know they are inferred rather than sourced.

    Step 5 — Tag the import session

    Give every import a name and a date: medicare-aged-2026-09-19. This one habit gives you three things later:

  7. You can measure performance by list source, which is how you learn which vendors are worth buying from again.
  8. You can detach a bad list from a campaign in one action instead of hunting records.
  9. You can re-scrub or retire a specific batch without touching anything else.
  10. APEX supports filtering by import session directly, so a tagged batch remains addressable as a group.

    Step 6 — Set the pipeline state before you dial

    Do not import leads into an undifferentiated pool. Assign stage, priority, and owner at import. On a team, round-robin distribution at import means nobody spends Monday morning deciding who gets what.

    Step 7 — Verify before you launch

    Five checks, three minutes:

  11. Row count in matches expected count, minus known duplicates and suppressions.
  12. Spot-check ten records for correct field mapping — the classic failure is city landing in the state column.
  13. Confirm the suppression count is non-zero on a purchased list. A zero-suppression result on a large cold list usually means the scrub did not run.
  14. Confirm the audit log has entries.
  15. Dial three records manually before starting a queue of two thousand.
  16. The maintenance cadence

    Importing clean is half the job. Lists decay.

    Weekly: merge duplicates from the week's imports, mark hard-failed numbers as bad so they stop consuming dial time.

    Monthly: re-scrub anything older than thirty days. Thirty-one days is widely treated as the floor for list-level scrubbing.

    Quarterly: retire lists that have produced nothing. A list with three thousand records and zero replies across two campaigns is not an asset, it is a source of failed sends that damages your number reputation.

    Before every seasonal push: full re-scrub, full de-duplication, full time-zone verification. Ahead of the annual enrollment window running 15 October to 7 December, do this in September, not October.

    Related reading

  17. TCPA compliance in 2026: where the rules actually stand
  18. CRM for insurance agents: what actually matters in 2026
  19. How auto-advance power dialing actually works
  20. FAQ

    How often should I re-scrub my lead list against DNC?

    Thirty-one days is commonly treated as the floor for list-level scrubbing. But list-level scrubbing is not the control that protects you — a check at the moment of send is, because registrations happen continuously. Do both: periodic list scrubs to keep the data clean, and a per-send check to prevent the violation.

    What is the maximum CSV size I can import into APEX?

    50,000 rows per import, with DNC scrubbing running as part of the import pipeline and a retry-safe design so a partial failure is recoverable. For larger files, split them into batches and tag each import session separately — which is better practice anyway, because it keeps source attribution intact.

    Should I delete DNC matches from my list?

    No — suppress them. A deleted record can be innocently re-imported later by someone who does not know its history. A suppressed record carries its reason with it and stays suppressed across future imports.

    Why does my import show fewer records than my CSV?

    Usually duplicates being merged, or DNC matches being suppressed. Both are the system working correctly. Check the import summary for the breakdown before assuming data loss, and reconcile the numbers: original rows minus duplicates minus suppressions should equal what landed.

    Do I need consent records for leads I bought?

    Yes, and you should require them from the vendor: the URL and the exact disclosure language as displayed, the named sellers in the consent, a timestamp with IP address, a consent-verification certificate token, and the opt-in method. If a vendor will not supply these, you are carrying the risk for their data collection practices.

    What if the list has no state column?

    Derive it from area code as a fallback, and flag those records as inferred. Area codes are imperfect — people keep numbers when they move — so treat inferred states as lower confidence and, where the stakes are high, verify before working the record.

    Related Feature

    Want to learn more about DNC Check?

    Lead ImportDNCData HygieneCompliance
    Share:

    Aisel Verdieva

    Content, Apex Sales AI

    Helping insurance agents grow their business through automation, compliance, and proven strategies.

    Ready to transform your insurance sales?

    Join thousands of agents using Apex to automate follow-ups, stay compliant, and close more deals.