VICIfast
Operations

Duplicate Checking when loading leads

VICIdial can catch and drop duplicate records as they load — by list, by campaign, or system-wide, with an optional 90-day window and status filter.

VICIfast Support
··3 min read
Duplicate Checking when loading leads

Nothing burns agent time and annoys contacts faster than dialing the same number twice. When you import a file, the VICIdial Lead loader can run a Duplicate check as each record comes in, so a number that already lives in your database is caught before it ever becomes a new Lead. You choose how wide the net is.

Three scopes for the check

  • By list ID — only compares against the list you are loading into. The narrowest, fastest check.
  • By campaign — compares against every list tied to a chosen campaign, useful when one campaign pulls from several lists.
  • System-wide — compares against every lead on the box. The widest net and the strongest guard against re-loading old data.

There are also variants that only look at leads loaded within the last 90 days. That window is handy when you intentionally recycle older data but never want a number that arrived in the last quarter. Picking the right scope is a balance: too narrow and you re-load numbers from a sister list, too wide and you might block a legitimately fresh contact.

A duplicate match is decided on the phone number, and depending on the form settings it can also factor in the title and alternate phone. That detail matters in households or businesses where several people share one line: if you want each person treated as a distinct record, you may need to lean on the wider matching rules rather than phone alone. Think through what counts as the same person for your campaign before you choose, because the answer shapes how aggressive the check should be.

How the check decides

flowchart TD
  A[New row] --> B{Match found in scope?}
  B -->|No| C[Insert as new lead]
  B -->|Yes| D{Match selected status?}
  D -->|Yes| E[Drop as duplicate]
  D -->|No| F[Status mismatch action]
  F --> G[Optionally move existing lead]

Limit the check to certain statuses

Once you have chosen a scope, you can narrow the check to specific dispositions. This lets you say: treat a number as a duplicate only if the existing record is, for example, a sale or a do-not-call, but allow it back in if the old copy was never worked. It is a precise tool for deciding which past outcomes should block a fresh load.

Pair that with the Status Mismatch Action and you get even finer control. If a row dupes out by phone number but does not match the statuses you selected, you can opt to move the existing not-quite-duplicate lead into the list you are loading, either the most recent occurrence or all of them.

In practice, most teams start with a system-wide check against do-not-call and sale statuses, then loosen it as they learn how their data behaves. That gives you the strongest protection against re-dialing someone you have already closed or who has opted out, while still letting genuinely new prospects through. Whatever combination you land on, write it down so the next person who loads a file uses the same rules and your list stays consistent over time.

The Status Mismatch Action can migrate large numbers of leads between lists. Test it on a small file first so you understand exactly what moves before you point it at a full import.

For how lists and campaigns relate, read the VICIdial lists and leads guide, and to ground yourself on the container these records sit in, see what is a VICIdial list.

Clean, de-duplicated lists keep your dial rate honest and your contacts happy. VICIfast gives you a hardened VICIdial box, provisioned in under 40 seconds, where these checks just work. See VICIfast pricing to get started.

Frequently asked

Does duplicate checking slow down the import?
A little, especially the system-wide scope on a large database, but the time cost is small next to the wasted dials a duplicate causes.
Can I allow a number back in if it was never worked?
Yes. Limit the check to specific statuses so only certain past outcomes count as a duplicate.
What is the 90-day option for?
It only treats records loaded in the last 90 days as duplicates, so you can recycle older data while still blocking recent contacts.

About VICIfast LLC

VICIfast LLC operates a managed VICIdial hosting + BYOI service for outbound and inbound call centers. We run the dialers, the carriers, the recordings pipeline, and the compliance plumbing so operators don’t have to.

Citing this article

VICIfast Engineering. “Duplicate Checking when loading leads”. VICIfast LLC, June 22, 2026. Retrieved from https://vicifast.com/blog/vicidial-duplicate-checking-on-load

Have questions?

Related posts

You might be interested in

VICIfast newsletter

Liked this? Get the next one in your inbox.

We ship the kind of stuff you just read — concrete, numbers-first, no drip. One email when a new post goes live. Unsubscribe in one click.

Comments

Comments are reviewed before they appear. We never publish your email.

No comments yet — be the first.