Skip to Content
Back to templates
// Template · Data Quality

Deduplicate Odoo Contacts by Email

Finds and removes duplicate contacts in Odoo based on email address. For each group of duplicates, the record with a name is kept and the rest are deleted — so your contact database stays clean without manual review.

Data Quality ERP Deduplication 7 transforms Apache Hop
Download .hpl
Apache Hop pipeline
Created Jan 23, 2026
Putki 2026.03+
Pipeline
Odoo
Putki
read-contacts
OdooInput
filter-has-email
FilterRows
add-has-name
ScriptValueMod
sort-by-email
SortRows
assign-row-num
ScriptValueMod
filter-duplicates
FilterRows
Odoo
Putki
delete-contacts
OdooDelete
How it works

This template finds and removes duplicate contacts in Odoo based on email address. Within each group of duplicates, the record with a name is kept. If all records in a group have a name, the first one is kept. The rest are deleted automatically — no manual review needed.

1
Read all contacts from Odoo
The Putki Odoo Input plugin reads all contacts from res.partner, fetching their id, name and email. Only contacts with an email address are processed — those without are filtered out immediately.
2
Flag and sort
Each contact gets a has_name flag (1 = has a name, 0 = empty). The full dataset is then sorted by email and by this flag — so within each duplicate group, the named contact always rises to the top.
3
Identify duplicates
A JavaScript step tracks the email from the previous row and assigns a row number per group. Row 1 is the record to keep. Any row with a number greater than 1 is a duplicate.
4
Delete duplicates
The Putki Odoo Delete plugin removes all duplicate records by their Odoo ID. Only duplicates reach this step — the record to keep never does.
What you need
·
Putki subscription
Access to the Odoo Input and Odoo Delete plugins, both included in all Putki tiers.
·
Odoo API access
An Odoo user with read and delete access to res.partner, plus your database URL and API key.
·
Run on a schedule or on demand
Run after any bulk import — HubSpot sync, CSV import, or migration — to keep your contact database clean automatically.
Details
Type
Pipeline (.hpl)

Transforms
7

Putki version
2026.03+

Created
May 6, 2026
Use case
Clean up duplicate contacts in Odoo after bulk imports, CRM migrations, or recurring syncs. Keeps res.partner free of duplicates automatically.
Schedule suggestion
Run after any bulk import or on a weekly schedule to keep contacts clean continuously.