What syncs
A new record gets a title (
Sara – Acme) plus the sales team, stage, and tags you picked when you connected.
An update never moves a record. If your team drags an opportunity to another stage, a later sync from Tap leaves it there. Team, stage, and tags are applied when the record is created and never again.
Connect
1
Create an API key in Odoo
In Odoo: Preferences → Account Security → New API Key. Copy it — Odoo shows it once.The user you create the key for needs Sales access (Sales / User: All Documents) to write leads. With less, leads can still be saved as contacts.
2
Add the connection in Tap
Integrations → Odoo → Connect, then fill in:
- Odoo address — your server, e.g.
https://yourcompany.odoo.com - API key — the key you just copied
- Login and Database — needed for Odoo 18 and earlier. On 19+ Tap works them out
3
Choose what records look like
Pick whether leads become leads, opportunities, or contacts, and set the sales team, stage, and tags new records should get. Tap reads these from your database, so the options are your own.
4
Map your fields
See Field mapping. Your custom Odoo fields are included.
Tap never shows the key again after you save it — only its last four characters.
API keys expire
Odoo 19 will not issue a key that lasts longer than three months. Tap reads the expiry date from your server (Odoo 18 and up) and warns you 14 days ahead. On the day it expires, every sync stops and the connection reads Reconnect needed.One connection, one server
Each connection carries its own address, database, login, and key. Different departments can point at different Odoo servers, and there’s no shared Odoo address across your account. Who can manage a connection depends on who owns it: a personal connection is managed by that member, a department’s by a full-team admin or that department’s admin, and the company’s by a full-team admin.Duplicates
Odoo doesn’t enforce unique emails on a lead, so Tap looks before creating:- By email, case-insensitively —
Sara@Acme.comfindssara@acme.com. - By phone, but only when the lead has no email at all. A phone is often a switchboard, and two colleagues sharing one are two different people.
- Archived records count. A lead someone marked lost is still that person’s record.
Notes specific to Odoo
Notes go in the chatter, not a Notes field
Notes go in the chatter, not a Notes field
A Tap note becomes an internal chatter message on the record. It’s never emailed to anyone. Editing the note in Tap corrects that message in place rather than adding a second one — see Notes.
Tasks don't email the assignee
Tasks don't email the assignee
Follow-ups are created as To-Do activities without Odoo’s “assigned to you” email, so syncing a day of leads doesn’t flood anyone’s inbox.
'Couldn't reach Odoo'
'Couldn't reach Odoo'
Check the address is reachable from the internet and includes
https://. A self-hosted server behind a VPN or an IP allowlist can’t be reached by Tap.'Odoo refused the key'
'Odoo refused the key'
The key is wrong, expired, or belongs to a user who has been deactivated. Create a new key and reconnect.
Owner assignment needs matching emails
Owner assignment needs matching emails
Tap matches the capturing member’s Tap email to an Odoo user’s email. No match means Odoo’s default owner.
Disconnecting changes nothing in Odoo
Disconnecting changes nothing in Odoo
Disconnecting deletes the connection and the stored key. Your field mapping is kept for when you reconnect, and nothing already synced is removed from Odoo.
Not arriving?
Work through the troubleshooting guide.
