Connect Odoo to Enginy to import data from your CRM and send back the information you work on in Enginy.
Note: The integration works through specific import and export actions, plus an activity log in the chatter. It does not keep both systems synced field by field in real time.
What you can do
With the integration you can:
Import contacts, companies, and leads using filters on Odoo fields.
Import contacts, companies, and leads that carry a specific tag.
Create or update contacts, companies, and leads from Enginy.
Link a contact to its company.
Log your campaign activity in the chatter of the Odoo record.
Create, edit, complete, and delete activities in Odoo from Enginy tasks, and pick up in Enginy the ones completed in Odoo.
Check what your API key is actually allowed to do from the Permissions tab.
Open the record directly in Odoo from the Enginy profile.
How the data maps
In Enginy | In Odoo | Use |
Contact | Contact ( | Import, create, and update |
Company | Company ( | Import, create, and update |
Lead | Lead ( | Import, create, and update |
List or segment | Contact tag or CRM tag | Import the records that carry it |
Field | Odoo field | Connect data through Field Mapping |
Email or LinkedIn message | Message in the record's chatter | Log campaign activity |
Task | Activity | Create, edit, and delete; completion travels both ways |
Owner | Odoo user | Assign who owns the record |
Odoo stores people and companies in the same place. The only thing that tells them apart is an internal flag, not two separate sections. That is why a contact and its company are two records of the same type linked to each other, and why contact matching and company matching are configured separately even though they look like the same thing.
Leads are different. They live in the CRM module, not in Contacts, and Enginy only works with records of type lead.
Important: Your workspace picks one home for its people: either Odoo contacts or Odoo leads, through Default object when exporting in Sync configuration. It is not both at once, which is why Field mapping shows two tabs rather than three.
Salesforce and Zoho work differently — there you use both objects in parallel.
How it avoids duplicates
Before creating a record, Enginy looks for an existing one.
For contacts it searches by email. For companies it uses three signals, from most to least reliable: the VAT number first, then the website domain, and finally the name. For leads it searches by email among open leads.
Note: The search also looks at archived records. This is deliberate: if a contact was archived in Odoo and Enginy could not see it, every export would create a new duplicate.
If the identifiers are empty or do not match, Odoo can end up with duplicate records. Review Sync configuration before your first export.
Limits you should know about
The current integration does not:
Sync field by field in both directions. Enginy writes to Odoo; changes made in Odoo do not flow back to Enginy automatically.
Work with opportunities, stages, or pipelines. Only leads.
Sync notes.
Log messages as a dedicated activity object. Odoo does have a
Campaign mappingpanel and does write campaign fields onto the contact, but the messages themselves go into the record's chatter rather than into their own activity records.Read the Odoo timeline. The only thing that comes back from Odoo is completed tasks.
Import the contacts associated with a group of companies.
Create anything beyond contacts, companies, leads, chatter messages, and activities. It does not touch products, invoices, or projects.
Important: Enginy only sees and edits what the Odoo user behind your API key can see and edit. A user with restricted permissions produces empty imports and failed exports without an obvious reason. If something is missing, start with the Permissions tab.
Recommended order
Check your Odoo plan and generate the API key.
Connect the right instance.
Review matching and Field Mapping.
Run an import and an export with a few test records.
Check the result in Odoo before scaling up the volume.
