Odoo CRM Integration
Introduction
Starting with 3CX Version 20 Update 10, 3CX provides native integration with Odoo CRM through the 3CX CRM API
with the following features:
- Caller ID to Contact Name – inbound calls trigger an Odoo contact lookup.
- Contact Lookup in Odoo based on Name, Number or Email if you search for a name in the 3CX Webclient
- 3CX Odoo integration supports both normal Contacts and Companies for lookup.
- Call & Chat Journalling – calls and chats are logged in the Odoo Contact Card as CRM call and chat records.
- Create a new Odoo contact from the 3CX client for calls from new numbers.
- Click to Call – launch calls straight from Odoo via 3CX, using the 3CX Click2Call Browser extensions for Google Chrome and Microsoft Edge.
Step 1: Configure Odoo
- Login to your Odoo CRM
- Click on your Profile image and select the My Preferences option
- Select the Security tab
- Click the Add API Key button:
- Give your new API Key a Name and a duration for its validity
- Click the Generate key button
- Copy your API Key safely
- Click the Done button
- Make a note of your instance's Database name, usually you Odoo FQDN's host name
- If you are unsure of the database name:
- Click on your Profile image and select the My Databases option
- Re-login if needed
- Make a note of your instance's Database name
Step 2: Configure 3CX
- Go to Admin > Integrations > CRM.
- Select OdooCRM from the dropdown list
- Enter the required information:
- your Odoo Domain URL (e.g. https://3cx-example.odoo.com )
- your Odoo Database name
- your Odoo API Key
- Click the Save button
Step 3: Configure Call & Chat Journaling
- To report external calls, the phone number of the remote person must match the phone number of an Odoo contact. This way 3CX can map the received call to the Odoo contact.
- Check the Enable Call Journaling option to report external calls to the CRM, and configure these Call Journaling parameters:
- "Call Subject" - the call’s subject.
- "Answered Inbound Call" - description for answered inbound calls.
- "Missed Call" - description for missed calls.
- "Answered Outbound Call" - description for answered outbound calls.
- "Unanswered Outbound Call" - description for unanswered outbound calls.
- Please note that you can use variables in the Call Journaling parameters, denoted as [variable_name], e.g. the external number is specified as[Number]. The available variables to use are listed here.
- If you want to report chats to the CRM, check the Enable Chat Journaling checkbox.
- You can customize the "Chat Subject"
- To report external chats to Odoo, the email address (Web Chat) or phone number (SMS/WhatsApp) of the remote person must match the relevant field of an Odoo contact. This way 3CX can map the received chat to the Odoo contact.
- You can use variables in the "Chat Subject" parameter, denoted as [variable_name], e.g. the external number is specified as[Number]. The available variables to use are listed here.
Step 4: Configure Contact Matching
Within the 3CX Odoo setup page, you can choose whether the Contact matching is performed first on normal Contacts or Company type entries in Odoo.
Also, depending on your needs, you can use both exact or partial contact matching for calls. This can be configured in Admin > System > Phonebook > Options.
Use Match exactly if:
- you have full E164 support:
- all contacts are stored in this format
- and all calls are received and placed in this format.
- This guarantees that contact matching is 100% accurate.
Use Match at least X number of characters if:
- Your calls are made and received using a mix of:
- Local dialing,
- E164
- Or other international dialing formats.
- The ideal number of characters will depend on your local numbering schema.
Step 5: Configure Contact Creation
- If you want to create new contacts in the CRM when a call is received from an unknown number (not found in both 3CX and CRM), check the Allow contact creation directly to your CRM using 3CX Web Client checkbox.
- When the caller’s number can’t be matched to a contact, the 3CX client will let the user complete the details in a dialog.
See Also
- See how to integrate your CRM with the 3CX API.
- Learn how to set up ConnectWise integration.
- Learn how to set up HubSpot integration.
- Learn how to set up Jetpack CRM integration.
- Learn how to set up Microsoft 365 Integration.
- Learn how to set up Vtiger integration.
- Learn how to set up Microsoft SQL Server, MySQL and PostgreSQL database integrations.
Last Updated
This document was last updated on 8 September 2026