Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Productivity
  3. BambooForge Partner Dedupe: Find & Merge Duplicate Contacts v 19.0
  4. Sales Conditions FAQ

BambooForge Partner Dedupe: Find & Merge Duplicate Contacts

by BambooForge Labs
Odoo

$ 90.25

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 17.0 18.0 19.0
  • Description
  • Manifest
  • Documentation
  • License
BambooForge Partner Dedupe
BambooForge Partner Dedupe by BambooForge Labs · Find & Merge Duplicate Contacts
Odoo 19.0 License OPL-1 No Enterprise required
Find & Merge Duplicate Contacts for Odoo 19
Email · Phone · Tax ID · Name Fuzzy name matching Safe merge (Odoo engine) Suggested master Scheduled scans Multi-company
60-second tour

See it in action

Scan, review the duplicate groups, pick the contact to keep and merge — safely, end to end.

4match criteria, mix & match
Fuzzyname matching with typo tolerance
Safemerge via Odoo's own engine
0Enterprise modules needed
Clean data, less effort

The Community answer to duplicate contacts

Duplicate contacts come from imports, web leads and typos. This app finds them with smart, normalized matching, lets you review them in groups, and merges safely — reusing Odoo's own merge engine so nothing is lost.

Detection that actually finds them

@

Email & phone matching

Normalized comparison — case and formatting are ignored, so "+1 (415) 555-0100" and "415.555.0100" are recognised as the same number.

Aa

Fuzzy name matching

Legal suffixes dropped, words sorted, similarity scored — "Acme Corp", "ACME Corporation Ltd" and "John Smith" vs "Smith, John" all match.

#

Tax ID matching

Match on VAT / tax ID with punctuation and case stripped, catching the same registration entered differently.

Smart false-positive guard

A company and its own contacts share details but aren't duplicates — they're never grouped, so your review list stays clean.

Suggested master

The most complete contact is suggested to keep automatically; override it per group with one click before merging.

Safe merge engine

Merging reuses Odoo's built-in engine: every order, invoice, message and link is re-pointed to the survivor before the duplicates go.

Review workflow

Pending, Merged, Ignored and Error states, per-group confidence, Merge All, and Reset to retry — a real workflow, not a blind batch.

Scheduled scans

An optional weekly scan surfaces duplicates as they appear. Detection is automatic; merging always stays your call.

Multi-company

Runs and groups are company-scoped via record rules, keeping each company's cleanup separate.

Up and running in four steps

1

New scan

Choose what to match on and the scope.

2

Scan

Duplicates are grouped with a suggested master.

3

Review

Merge the real ones, ignore the rest.

4

Stay clean

Schedule scans to catch new duplicates.

Guided tour

Real screens, real data

Every screenshot below is the actual app running on Odoo 19 — no mockups.

Scan configuration form
Step 1

Configure & scan

Tick the criteria to match on, set the name similarity and scope, then Scan. The counts of groups and removable duplicates fill in instantly.

Duplicate groups review list
Step 2

Review every group

Each row shows what matched, the contacts involved, the suggested master and a confidence score — Merge or Ignore right from the list.

Duplicate group detail
Step 3

Pick the master, merge safely

Open a group to compare the contacts side by side, choose which one survives, and merge with Odoo's own engine.

Scan history
Step 4

Keep a history of scans

Every run is saved with its group and duplicate counts, so you can track how clean your database stays over time.

Clean up your contacts — without the risk

Install in seconds. No Enterprise, no external libraries, no lock-in. Works on Odoo 19 Community and Enterprise.

Full manual included. The app ships with a complete in-app documentation page (Apps > this module > Documentation) covering setup, matching, reviewing, safe merging and FAQs. Questions? bambooforge.labs@gmail.com

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Contacts (contacts)
• Discuss (mail)
Lines of code 634
Technical Name bambooforge_partner_dedupe
LicenseOPL-1

BambooForge Partner Dedupe

Keep your contact database clean. This app scans your contacts for duplicates by email, phone, tax ID and fuzzy name matching, groups the matches for review, suggests which record to keep, and merges them safely using Odoo's own merge engine — so every link, document and transaction is preserved. No Enterprise needed.

This page is the complete manual. Follow it top to bottom and you can install, run your first scan, review and merge duplicates, schedule scans and fix the common issues without contacting support.

  • Overview
  • Requirements
  • Installation
  • Quick start
  • How matching works
  • Reviewing and merging
  • The suggested master
  • Scheduling scans
  • Frequently asked questions
  • Support
  • Upgrading & version compatibility
  • Uninstallation
  • Changelog

Overview

Duplicate contacts creep into every database: imports, web leads, typos, the same company entered twice. This app finds them and helps you clean up:

  • Scan your contacts on any combination of email, phone/mobile, tax ID and name, with configurable fuzzy name matching.
  • Review the results as duplicate groups, each with a suggested master, a confidence score and the matched value.
  • Merge safely — the actual merge is performed by Odoo's built-in merge engine, which re-points every related record (orders, invoices, messages…) to the surviving contact before deleting the duplicates.
  • Ignore false positives, re-scan any time, and keep a history of runs.
  • Schedule scans to catch duplicates as they appear.

It deliberately reuses the platform's merge logic, so merging is exactly as safe as Odoo's own "Merge Contacts" tool — with far better detection and a review workflow on top.

Requirements

  • Odoo 17.0.
  • The Contacts app (contacts). Installing this app pulls it in automatically.

No Enterprise modules and no external Python libraries are required.

Installation

  1. Copy bambooforge_partner_dedupe into your addons path.
  2. Update the apps list (Apps > Update Apps List).
  3. Search for Dedupe and click Install.

A new top-level Dedupe app appears, and a Find Duplicates entry is added under the Contacts app.

Quick start

  1. Open Dedupe > Scans and click New.
  2. Choose what to Match On — any combination of Email, Phone/Mobile, Tax ID and Name. For names, set the Name Similarity (0–1): 1.0 means identical after normalization, lower values catch typos and word-order differences.
  3. Pick a Scope (all contacts, companies only, or individuals) and whether to include archived contacts.
  4. Click Scan.

The run switches to Scanned and the Groups and Duplicates stat buttons fill in. Open the Duplicate Groups tab to review.

How matching works

Each criterion normalizes the value before comparing, so cosmetic differences do not hide a duplicate:

  • Email — trimmed and lower-cased.
  • Phone/Mobile — reduced to digits and compared on the last nine, so +1 (415) 555-0100 and 415.555.0100 match.
  • Tax ID — stripped of punctuation and upper-cased.
  • Name — lower-cased, punctuation removed, legal-form suffixes (Ltd, Inc, GmbH, Corp…) dropped, words sorted — then compared with a similarity ratio against the Name Similarity threshold, so Acme Corp and ACME Corporation Ltd match, as do John Smith and Smith, John.

Contacts that belong to the same commercial entity (a company and its own child contacts) are never grouped as duplicates, avoiding the most common false positive.

Reviewing and merging

In the Duplicate Groups list each row shows what was matched, the matched value, the contacts involved, the suggested master to keep, a confidence score and a status. From there you can:

  • Merge a group — the master is kept and the other contacts are merged into it. Open a group first if you want to change which contact is the master.
  • Ignore a group you have judged to be distinct.
  • Reset an ignored or errored group back to pending.
  • Merge All Pending from the run to process every group at once (with a confirmation).

Merging uses Odoo's engine, which re-points foreign keys and reference fields, merges values into the master, logs the operation and deletes the source contacts. For safety the engine merges up to three contacts at a time; larger groups are merged in several automatic passes.

The suggested master

For each group the app suggests keeping the most complete contact — the one with the most filled-in fields (email, phone, address, tax ID…), breaking ties in favour of the oldest record. You can override this on the group before merging.

Scheduling scans

A scheduled action Dedupe: Scheduled Duplicate Scan ships disabled. Enable it under Settings > Technical > Scheduled Actions to create a fresh scan on a schedule (weekly by default) so duplicates are surfaced as they appear. The scan only detects; merging always stays a manual, reviewed action.

Frequently asked questions

Will merging lose any data?
No. The merge re-points every related record (orders, invoices, activities, messages, etc.) to the surviving contact before the duplicates are removed — this is Odoo's own merge behaviour.
A merge shows an Error status.
The engine refuses some merges for safety — for example contacts in a parent/child relationship, or contacts linked to more than one user. The reason is stored on the group; fix the underlying issue and Reset to retry.
Two different companies share a tax ID and were grouped — is that wrong?
That is a genuine match worth reviewing. If they are truly distinct, Ignore the group. Only contacts of the same company are auto-excluded.
Can I tune how aggressive name matching is?
Yes. Lower the Name Similarity to catch more typos (at the risk of more false positives), or raise it toward 1.0 to require near-identical names.
Does it work with multiple companies?
Yes. Runs and groups are company-scoped via record rules.

Support

Questions or ideas: bambooforge.labs@gmail.com.

Upgrading & version compatibility

This build targets Odoo 19.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.

Patch upgrades (same series, e.g. 19.0.1.0.0 → later)

  1. Back up your database and filestore first.

  2. Replace the module folder with the newer build.

  3. Restart Odoo with the module updated:

    ./odoo-bin -c your.conf -u bambooforge_partner_dedupe -d your_db
    
  4. Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.

Cross-version migration (e.g. Odoo 17 → 18)

Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.

After any upgrade the module's scheduled actions resume on their normal cadence — no manual re-activation is required.

Uninstallation

You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.

What is removed

  • The module's own tables and every record in them (2 models, prefixed partner.*) — this is the data this module created.
  • The menus, actions, views and reports this module installed.
  • Its scheduled actions (cron jobs) — they stop immediately on uninstall.
  • The security groups this module defined (user assignments to them are dropped).

What is preserved

  • Your standard Odoo data (partners, products, sales, invoices, inventory moves) is not deleted — this module only reads and annotates it; the underlying records stay.
  • Attachments and chatter messages on standard records are kept.

As always, take a database backup before uninstalling in production.

Changelog

19.0.1.0.0

Current release for Odoo 19.0. This build includes:

  • Find duplicate contacts with fuzzy matching on email, phone, VAT and name, review them in groups, and merge safely using Odoo's own merge engine.
  • The Community answer to data cleaning.

Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with