DupliGuard — the duplicate detector your Perfex CRM was missing
DupliGuard finds duplicate Leads, Customers and Contacts in your Perfex CRM and helps you clean them up safely. Built native to Perfex 3.x, fully self-hosted, no external services, no recurring fees.
Every CRM with more than 500 contacts has duplicates. Same lead submitted twice from a landing page, the same customer added under two slightly different company names, the same contact created by two different sales reps. DupliGuard scans all three tables, groups what matches, and lets you decide what to do — one cluster at a time, with full visibility, zero destructive operations.
Why DupliGuard is different
- Reviews, never auto-merges. No silent data loss. The buyer sees both records side-by-side, picks the master, then chooses how to resolve the cluster. The original CRM rows are never deleted by DupliGuard.
- Three deterministic rules, no ML black box. Exact email, phone (digits-only, last 8 chars to handle international format variations), and email domain. Every match is auditable, reproducible and explainable to a customer.
- Built for Perfex, not a generic dedupe library. Knows that Customer email lives on the primary contact, that lead phone formats vary, that converted leads should not be re-flagged. The compare view surfaces the columns each entity actually has.
- Self-hosted, source included. No external API calls, no data leaves your server, no monthly fee. Install once on your VPS and own it.
What’s inside
Dashboard
- 4 KPI cards — total groups, lead duplicates, customer duplicates, contact duplicates
- One-click “Run Scan Now” with live progress feedback (no page reload)
- Last-scan banner: when, by whom, manual or cron
- Recent activity log with deep links back to each affected group
Scan engine
- Email exact match — lowercased + trimmed, score: high
- Phone — non-digits stripped, last 8 digits compared (handles +country prefixes and formatting), score: medium
- Email domain — groups records sharing a corporate domain, generic webmail (gmail / yahoo / hotmail / outlook / icloud / proton / etc.) automatically excluded, score: low
- Adjustable minimum-score threshold to keep low-confidence noise out of the dashboard
- Idempotent — safe to re-run any time, groups upsert by (entity, field, value)
- Smart re-detection: a group previously marked Safe re-opens automatically when fresh duplicates appear
Group review
- Filterable groups table: status, score, entity type, match field
- Side-by-side compare view with all key columns surfaced per entity
- One-click “Pick as master” radio per record
- Direct deep link to the original Lead / Customer / Contact in a new tab
Three resolution actions
- Mark as Safe — the cluster is not actually a duplicate (e.g. two siblings sharing one email). Excluded from future scans.
- Mark as Duplicate — flagged for the team’s awareness, no destructive change. Use it when you want to preserve evidence without acting yet.
- Convert to Note — attaches a structured note to the master Lead or Customer listing every duplicate ID, the matched field, the score and the timestamp. Source rows stay intact — you can review the note and decide what to do in your normal Perfex workflow.
Settings
- Per-entity scan toggles (Leads / Customers / Contacts)
- Per-rule toggles (email / phone / domain)
- Adjustable minimum score (low / medium / high)
- One-click cron toggle — wire DupliGuard into Perfex’s native cron tick for hands-off recurring scans
Security & reliability
- CSRF-protected AJAX on every action
html_escape() on every dynamic value rendered in views - CodeIgniter query builder only — zero raw SQL with interpolated variables
- Two-tier permissions: view (read-only) and manage (run scan + apply actions)
- Idempotent installer (safe to re-activate), versioned migration framework, clean uninstaller (drops only the module’s tables — your CRM data stays put)
- No external API calls, no telemetry, no third-party JS bundled
Internationalization
- English + Spanish language packs (124 strings each)
- Every UI string runs through Perfex’s
_l() helper — ready for community translation - Full UTF-8, zero mojibake
How it scales
DupliGuard’s scanner runs in a single pass per (entity, rule) combination, grouping records in PHP. Even on a 50,000-row Perfex install the full scan completes in a few seconds. No background workers, no queue dependencies, no separate cron container required — just enable the toggle and the existing Perfex cron tick takes care of the rest.
Live demo
URL: https://onboarding.ticempresarial.com/perfex/admin
Email: admin@demo.com
Password: 14789632
Open the dashboard, click Run Scan Now, browse the detected groups, open a side-by-side compare and try each of the three actions. Everything is live.
Requirements
- Perfex CRM 3.0.0 or later
Support
Direct author support included for 6 months: bug fixes, install help, configuration questions. Submit a ticket on Envato or email us directly.
What’s NOT included (transparency)
v1.0 is intentionally focused on safe, deterministic detection. The following are not in this release — they are on the roadmap for v1.1+:
- Fuzzy name / company matching (Levenshtein, Jaro-Winkler)
- International phone normalization via libphonenumber
- Real-time prevention alerts on the Lead / Customer create forms
- Field-level merge (we deliberately keep merge out of v1.0 — lost data equals refunds)
- Tax ID / VAT / RUC matching
- Custom fields detection
If any of these is critical for your workflow, drop us a line before purchasing — we will tell you straight whether the upcoming release will cover it or whether you should wait.
Why we built this
We run a CRM consultancy. The single most common manual cleanup our clients pay for is “find duplicate leads / customers and consolidate them”. Every existing tool was either an Excel macro you ran offline, a generic dedupe SaaS that wanted to slurp your CRM into a third-party cloud, or a destructive auto-merge that lost data. So we built DupliGuard — the safe, native, in-CRM duplicate finder we wanted to buy, but couldn’t.
DupliGuard is a community-built add-on for Perfex CRM. We are not affiliated with Perfex Ltd.