Skip to main content

Contacts, companies, and leads: what Enginy syncs in Odoo

Odoo keeps people and companies in one model, and your workspace commits to either contacts or leads. Understanding this answers half the questions.

Odoo organizes data differently from most CRMs. Understanding this answers half the questions about why something shows up where it does.


Contacts and companies live in the same place

In Odoo, people and companies are the same type of record. The only thing that tells them apart is an internal flag marking whether that record is a company.

This has two practical consequences:

  • A contact and its company are two records, linked to each other by a parent relationship.

  • Contact matching and company matching are configured separately, even though they point at the same data model.

When Enginy exports a contact and you enable the company association, what it does is fill in that parent relationship.

Important: When linking a contact to its company, Odoo copies the company address over the contact's own. This is native Odoo behavior, not Enginy's. If you store personal addresses that differ from the head office, keep it in mind before exporting in bulk.


Leads

Leads are a different thing. They are not in Contacts but in the CRM module.

Enginy works only with records of type lead. It does not touch opportunities, stages, or the pipeline.

Where your people live: contacts or leads

This is the single most consequential Odoo setting, and it is easy to miss. In Sync configuration there is a Default object when exporting selector with two values:

Setting

Your Enginy contacts become

Contact imports search

Contact

Odoo contacts (res.partner)

Odoo contacts

Lead

Odoo leads (crm.lead)

Odoo leads

Important: It is one or the other, not both. Whichever you do not choose disappears from the configuration entirely: its identifier, its Field mapping tab and its custom fields. Enginy never reads that object for your workspace.

This is where Odoo differs from Salesforce and Zoho. There, contacts and leads are two parallel tracks you configure and use at the same time. In Odoo your workspace commits to one.

Note: Decide this before your first export. Switching later does not move records that already exist — it only changes where new ones go, and custom fields created under the previous tab stop applying.

Odoo's Leads feature

Odoo has a setting that decides whether leads exist as a step before the opportunity. You will find it under Configuration → Settings → Leads inside the CRM module.

  • Enabled: Odoo creates leads and the Leads menu exists.

  • Disabled: Odoo creates opportunities directly and the Leads menu does not even appear.

Note: If you work with leads in Enginy, that feature needs to be enabled in Odoo. The Permissions tab in the configuration tells you whether it is, so you do not have to go looking.

Lost leads

In Odoo, marking a lead as lost does not delete it: it archives it. It still exists and can be restored.

Enginy accounts for this throughout:

  • Imports include lost leads.

  • Tag counts include them too.

  • An Enginy contact is not unlinked because its lead was lost.

  • On export, Enginy never reopens a lead the sales team closed.

What happens when the only matching lead is lost is your decision, set in the configuration. We cover it in the export article.


Tags act as lists

Odoo has no lists or segments as such. What Enginy offers you as a "list" is tags.

There are two kinds, and Enginy uses the right one depending on what you import:

What you import

Which tags you see

Contacts and companies

Contact tags

Leads

CRM module tags

Next to each tag you will see how many records it contains, so you can choose without leaving Enginy.


Owners

The owner of a record in Odoo is an Odoo user. Enginy reads the list of active users from your instance and offers it when assigning owners, both as a default and on each export.

Only active internal users appear. Portal users and deactivated ones are left out.

Did this answer your question?