What you need from Odoo
1
A user for the integration
Create a dedicated Odoo user rather than reusing a person’s login. When someone leaves
and their account is deactivated, an integration on a personal login goes down with it.The user needs create and write access to CRM.
2
An API key for that user
In Odoo: Preferences → Account Security → New API Key. Odoo shows it once.On Odoo Online, API keys require two-factor authentication to be enabled on the account
first — Odoo will tell you if it isn’t.
3
Your database name
Visible at Settings → General Settings → Developer Tools → Activate developer mode,
or in the URL on Odoo Online. An Odoo server can host several databases, so this cannot
be guessed from the address.
Connect it
Integrations → Odoo CRM in Linkiasoft, then fill in:
Press Test connection before saving. We authenticate against the instance and report
what Odoo actually said, which is far more useful than discovering the problem later
through leads that never arrive.
Saving always re-tests. A connection cannot be stored unverified — that’s the failure mode
where an integration looks connected on screen and has never worked.
- Create leads as — Opportunities or Leads. Most Odoo setups hide the separate Leads stage, so Opportunities is the default and usually correct.
- Sales team ID — file everything under one Odoo sales team. Leave it empty to let Odoo route.
What gets sent
Leads arrive unassigned. We deliberately don’t set a salesperson, so Odoo’s own
assignment rules and sales-team routing decide who picks the lead up — which is what they
exist for. Assigning every lead to the integration’s own account instead would make that
user the owner of record for your entire pipeline.
Leads from WhatsApp and Instagram
A customer who messages you may have no email address. Because our lead records require one, those leads get a placeholder likesocial.whatsapp.a1b2c3@noreply.crm.
We strip it before sending. The Odoo record gets no email_from at all, and a note in the
description saying the lead came from a social conversation. A placeholder address would
poison Odoo’s own duplicate detection and hand your team something that hard-bounces.
Duplicates
Before creating anything, we look for an existing Odoo lead with the same email or phone — comparing phone numbers by their last nine digits, so+20 100 123 4567 and 01001234567
match rather than becoming two records.
On a match we update that lead instead of creating a second one. Archived and lost leads
are included in the check: re-creating one a salesperson deliberately closed is exactly the
duplicate worth avoiding.
Keeping up to date
Editing a lead or moving it to another stage updates the same Odoo record. We store the Odoo id against the lead, so there is no guessing and no drift. The health panel on the integration page shows how many leads have synced, how many failed, and when the last successful push was. Retry failed re-queues everything that didn’t make it — useful after fixing credentials or a permissions problem in Odoo.Pushing happens in the background. Saving a lead never waits on Odoo, so a slow or
unreachable instance can’t slow down your own CRM. It also means a lead can exist here for a
few seconds before it appears there.

