3CX Version 20 Update 10 · Native Odoo CRM Connector

3CX Odoo Integration: Complete Setup, Benefits and Troubleshooting Guide

Connect business communications with customer data. This practical guide explains how to integrate 3CX with Odoo CRM for caller identification, contact search, automatic call and chat journaling, contact creation and click to call.

Native integration AI and Pro editions Cloud or on premise No middleware required

Prepared by TekkPak Technologies Engineering Team · Reviewed 9 September 2026 · Scope: 3CX V20 Update 10

Quick answer

Can 3CX integrate natively with Odoo? Yes. Starting with 3CX Version 20 Update 10, 3CX provides a native Odoo CRM connector for AI and Pro editions on all supported deployment models. It can identify callers from Odoo, search Contacts and Companies from the 3CX Web Client, journal calls and chats, create Odoo contacts for unknown callers and enable click to call through the 3CX browser extension. Standard deployments no longer need a custom CRM template or third party middleware.

Start here

What Is 3CX Integration with Odoo?

3CX handles business calls and digital conversations. Odoo holds the customer, company and activity record. The native connector lets both systems exchange the context needed for customer facing work, so users spend less time searching, switching tabs and typing call notes.

Customer contacts youPhone call, web chat, SMS or WhatsApp conversation enters 3CX.
3CX matches identityThe connector searches Odoo by phone number or email and retrieves the right contact.
Odoo keeps contextThe interaction is journaled against the matched contact for sales or service follow up.

Important distinction: the native connector is a CRM context and journaling integration. It does not automatically redesign Odoo workflows, transcribe every call, attach recordings to every opportunity or replace a carefully designed customer service process. Those outcomes require separate configuration, suitable licensing, governance or custom work.

Confirmed capabilities

What the Native 3CX Odoo CRM Integration Can Do

The integration focuses on six practical capabilities that join customer identity, communications and CRM history.

Caller Identification

When an inbound number matches an Odoo record, 3CX can display the caller's contact name instead of showing only an unfamiliar number.

Contact and Company Search

Users can search Odoo from the 3CX Web Client by name, number or email. Both individual Contacts and Company type records are supported.

Call Journaling

Answered inbound calls, missed calls, answered outbound calls and unanswered outbound calls can be logged against the matching Odoo contact.

Chat Journaling

Matched web chat, SMS and WhatsApp conversations handled in 3CX can be journaled to the relevant Odoo contact card.

Contact Creation

For a new caller who is absent from both systems, an authorized 3CX Web Client user can complete a dialog and create a new Odoo contact.

Click to Call

Users can start a 3CX call from a telephone number shown in Odoo by using the official 3CX Click2Call extension for Chrome or Edge.

Business value

Benefits of Integrating 3CX with Odoo

Faster Call Handling

Caller identification gives the user context before or as the conversation begins, reducing time spent asking for basic identification.

More Personal Service

A matched contact record helps sales and service teams address the customer correctly and review relevant history.

Less Manual Data Entry

Automatic journaling reduces repetitive note taking for the basic facts of a call or chat and makes activity capture more consistent.

Better CRM Adoption

When communication history reaches Odoo automatically, the CRM is more likely to reflect actual customer engagement.

Cleaner Follow Up

Missed and unanswered interactions become visible in the contact history, helping teams identify conversations that need attention.

One Search Experience

Users can look up Odoo contacts and companies by name, number or email without leaving the 3CX Web Client.

Quicker Outbound Calls

Click to call removes manual number entry, saves time and lowers the risk of dialing the wrong number.

Improved Data Quality

A defined matching policy encourages standardized phone numbers and more disciplined ownership of customer records.

Shared Customer Context

Sales, support and account teams can refer to the same Odoo contact history rather than maintaining separate personal notes.

Better Coaching Evidence

Managers can compare communication activity with opportunities, service work and outcomes to identify process gaps.

Simpler Standard Deployment

The native connector eliminates a custom XML template and third party middleware from the standard integration path.

Deployment Flexibility

The connector applies across supported 3CX deployment models, allowing the PBX to be hosted or self managed according to business needs.

Plan before changing

Prerequisites for 3CX Odoo Integration

Required Access and Platform Readiness

  • 3CX Version 20 Update 10 or later
  • A 3CX AI or Pro edition with the feature available
  • 3CX Admin Console access
  • An active Odoo instance reachable through a secure HTTPS domain
  • Odoo access that can create an API key and read or write the required CRM records
  • The exact Odoo database name
  • Representative test contacts and companies

Data and Rollout Preparation

  • Choose whether Contacts or Companies should be matched first
  • Standardize customer telephone numbers, preferably in E.164 format
  • Decide whether call journaling, chat journaling and contact creation are permitted
  • Define which teams and users will use the integration
  • Agree subject and description formats for journal entries
  • Document a test matrix and success criteria before rollout
  • Record the API key owner, expiry date and renewal process

Before production: confirm that your Odoo subscription and hosting model allow the API access required by your environment. Also verify current 3CX edition entitlements because product names, licensing and menus can change after publication.

Administrator guide

How to Configure 3CX Integration with Odoo Step by Step

Use a test environment or a controlled pilot whenever possible. Menu wording below follows the official 3CX Version 20 Update 10 guidance reviewed on 9 September 2026.

1

Confirm the 3CX Version and Edition

  1. Sign in to the 3CX Admin Console.
  2. Confirm that the system is running Version 20 Update 10 or a later supported update.
  3. Confirm that the licence is an AI or Pro edition with CRM integration available.
  4. Take a current backup and record any existing CRM integration before making a change.

If OdooCRM is not available in the CRM integration list, first check the 3CX version, edition and update status. Do not upload an unverified third party template as a shortcut.

2

Prepare Odoo Contact Data

Before connecting the systems, inspect a sample of Odoo Contacts and Companies. Accurate matching depends on accurate identity data.

  1. Check that each active customer record has the correct phone or mobile number.
  2. Remove obvious duplicate contacts or document how duplicates will be handled.
  3. Where practical, store numbers in full E.164 format, such as +924235700000 rather than a mixture of local and international styles.
  4. Check that web chat users have the correct email address and that SMS or WhatsApp contacts have the correct telephone number.
  5. Create test records for an individual Contact and a Company so both lookup paths can be verified.
3

Create an Odoo API Key

Odoo → Profile image → My Preferences → Security
  1. Sign in to Odoo with the account that will be used by the connector.
  2. Select your profile image, then open My Preferences.
  3. Open the Security tab.
  4. Select Add API Key.
  5. Give the key a descriptive name, for example 3CX Production CRM Connector.
  6. Choose a validity period that matches your security policy.
  7. Select Generate key, copy the value immediately and store it in an approved password or secrets manager.
  8. Select Done.

Treat the API key like a password. Do not place it in screenshots, email threads, support tickets or this web page. 3CX needs the key value, not the user's normal Odoo password.

4

Find the Odoo Database Name

  1. Make a note of the Odoo database name. In many environments it corresponds to the host name of the Odoo fully qualified domain name.
  2. If you are unsure, select your profile image and open My Databases.
  3. Sign in again if Odoo asks you to authenticate.
  4. Copy the exact database name, including any punctuation. Do not assume that the display name of the company is the database name.
5

Add the Native OdooCRM Connector in 3CX

3CX Admin Console → Integrations → CRM
  1. Open Integrations, then select CRM.
  2. Choose OdooCRM from the dropdown list.
  3. Enter the Odoo domain URL, including https://, for example https://yourcompany.odoo.com.
  4. Enter the exact Odoo database name noted in Step 4.
  5. Paste the Odoo API key created in Step 3.
  6. Select Save.

Use the base Odoo instance URL requested by 3CX, not a link to a specific contact, CRM pipeline or logged in browser session.

6

Enable and Customize Call Journaling

  1. In the OdooCRM configuration, select Enable Call Journaling.
  2. Set a clear Call Subject.
  3. Customize descriptions for Answered Inbound Call, Missed Call, Answered Outbound Call and Unanswered Outbound Call.
  4. Use supported 3CX variables where helpful. For example, [Number] represents the external number.
  5. Save the settings and test each call outcome.

Recommended naming pattern: keep subjects concise and consistent, such as 3CX inbound call · [Number]. Use only variables shown as supported in the current 3CX interface or official variable reference.

For an external call to be journaled against a contact, the remote person's phone number must match the number held in Odoo. If the caller is unknown or the number format differs, the record may not be associated as expected.

7

Enable Chat Journaling if Required

  1. Select Enable Chat Journaling.
  2. Customize the Chat Subject and use only supported 3CX variables.
  3. Save the configuration.
  4. Test each enabled channel separately.

For matching, 3CX uses the remote person's email address for web chat and telephone number for SMS or WhatsApp. The corresponding value must exist in the relevant Odoo contact field.

8

Choose Contact or Company Matching Priority

Within the 3CX Odoo setup page, choose whether matching should check normal Contacts or Company type entries first.

  • Contacts first: useful when individual people have their own direct numbers and users normally work from personal contact records.
  • Companies first: useful when a shared business number represents the organization and interactions are managed primarily at company level.

Test numbers that appear on more than one Odoo record. Duplicate or shared telephone numbers can produce ambiguous business context even if the connector is technically working.

9

Configure Exact or Partial Number Matching

3CX Admin Console → System → Phonebook → Options
  • Use Match exactly when contacts and calls consistently use full E.164 numbers. This provides the highest matching accuracy.
  • Use Match at least X number of characters when local, E.164 and other international dialing formats are mixed. Choose the character count according to the national numbering plan and test for false matches.

Partial matching is a compatibility measure, not a substitute for clean data. A value that is too short may match different customers whose numbers share the same ending.

10

Allow Contact Creation for Unknown Callers

  1. Enable Allow contact creation directly to your CRM using 3CX Web Client if your process permits it.
  2. Place an inbound test call from a number that exists in neither 3CX nor Odoo.
  3. Confirm that the 3CX client offers the user a dialog to complete the new contact details.
  4. Check that the new record is created in the intended Odoo database and follows your data standards.

Decide who should create contacts and what minimum information is required. Uncontrolled creation can introduce duplicates, incomplete names and poorly formatted numbers.

11

Install and Test 3CX Click2Call

  1. Install the official 3CX Click2Call extension from the Chrome Web Store or Microsoft Edge Add-ons store.
  2. Connect or configure the extension for the user's 3CX environment as directed by the current extension workflow.
  3. Open an Odoo contact with a valid phone number.
  4. Select the number and confirm that 3CX starts the call through the correct user or extension.
  5. Verify that the completed call is journaled against the same Odoo record.

Only install extensions from the official browser marketplace publisher. Browser permissions and enterprise extension policies should be reviewed by IT before organization wide deployment.

12

Run a Pilot and Document the Handover

  1. Select a small group from sales, customer service and IT.
  2. Run the acceptance tests in the next section using real dialing formats and representative Odoo data.
  3. Correct duplicate contacts, number formatting and journaling labels.
  4. Train users on caller lookup, click to call, new contact creation and privacy expectations.
  5. Record the configuration owner, API key expiry date, renewal steps, test evidence and rollback plan.
  6. Expand the deployment only after the pilot passes.
Acceptance checklist

How to Test the 3CX Odoo Integration

A successful save is not the same as a successful business workflow. Test each direction, outcome and identity type.

TestActionExpected Result
Known inbound callerCall 3CX from a number stored against an Odoo Contact.The correct name is identified and the answered call is journaled to that contact.
Known company numberCall from a number stored on an Odoo Company.The Company is found according to the configured matching priority.
Missed inbound callLet a matched inbound call go unanswered.A missed call entry appears with the configured subject and description.
Answered outbound callCall a matched Odoo contact from 3CX.The completed outbound call is written to the correct contact.
Unanswered outbound callCall a matched number without an answer.The correct unanswered outcome is journaled.
Unknown callerCall from a number absent from both systems.An authorized user is offered the configured contact creation workflow.
Web chatStart a chat using an email stored in Odoo.The chat maps to the contact and journals with the configured subject.
SMS or WhatsAppStart a conversation from a matched number.The interaction maps by phone number to the correct Odoo contact.
Click to callSelect a number in Odoo using Click2Call.3CX places the call through the intended user and journals it correctly.
Number format variantsTest local and E.164 versions of representative numbers.Matching follows the exact or partial rule without false positive contacts.
Operate responsibly

Security, Privacy and Governance Best Practices

Use a Controlled Integration Identity

Where your Odoo design permits, use a dedicated account with only the permissions needed for contact lookup, creation and activity journaling. Avoid using a departing employee's identity.

Protect and Rotate the API Key

Store the key in an approved secrets manager, record its expiry, rotate it on schedule and revoke it immediately if exposure is suspected.

Use HTTPS and Supported Systems

Keep Odoo and 3CX on supported releases, use a valid TLS certificate and restrict administrative interfaces according to your security architecture.

Control Contact Creation

Train authorized users and define required fields so that convenience does not create duplicate, incomplete or misleading CRM data.

Minimize Exposed Customer Data

Journal only the information that serves an approved business purpose. Align access, retention and deletion with contracts, regulation and internal policy.

Monitor After Changes

Retest the integration after 3CX updates, Odoo updates, permission changes, domain changes, database migration or API key rotation.

Call recording is separate: CRM journaling does not by itself determine whether a conversation is recorded or whether recording is lawful. Configure recording permissions, notices, retention and access independently. See TekkPak's 3CX call recording setup and governance guide.

Where it fits

Typical 3CX and Odoo Use Cases by Industry

Retail and E-commerce

Identify returning customers, view their Odoo contact context, log order related calls and capture new callers for structured follow up.

Distribution and Manufacturing

Connect calls from dealers, suppliers and customers with Company records so account teams can follow communication around quotations, orders and delivery issues.

Professional Services

Journal client calls for consulting, engineering, legal or accounting teams and make click to call available from the client record.

Education and Admissions

Recognize applicants or parents, log inbound enquiries and create new contacts for callers who need admission counseling or follow up.

Healthcare Administration

Help authorized front desk teams identify callers and maintain administrative interaction history, subject to strict privacy, access and consent requirements.

Real Estate

Create contacts for new property enquiries, identify existing prospects and maintain call activity alongside the sales pipeline.

Hospitality and Travel

Give reservation or guest service teams faster identity context and retain a consistent history of matched customer interactions.

Financial Services

Journal approved interaction metadata for relationship teams while applying the organization's security, recording, audit and regulatory controls.

Customer Support

Use caller lookup and activity history to reduce repeated questions, improve handovers and make missed interactions easier to recover.

Fix methodically

3CX Odoo Integration Troubleshooting

SymptomLikely ChecksRecommended Action
OdooCRM is missing3CX version or edition is not eligible, or the system is not fully updated.Confirm V20 Update 10 or later and an AI or Pro edition, then review the supported update path.
Authentication failsWrong domain, database name, API key, expired key or inadequate Odoo permissions.Re-enter exact values, confirm HTTPS access, validate the key owner and generate a replacement key if necessary.
Caller name is not foundNumber formatting differs, contact data is missing, wrong match priority or too strict a match rule.Compare the received number with Odoo, normalize to E.164 and retest exact or carefully chosen partial matching.
Wrong contact is matchedDuplicate numbers, shared company numbers or a partial matching length that is too short.Clean duplicates, review Contact versus Company priority and increase matching precision.
Calls are not journaledJournaling is disabled, the remote number is unmatched or credentials cannot write the record.Enable journaling, confirm the match and verify the integration account's required Odoo access.
Chats are not journaledEmail or phone identity does not match the Odoo field, or chat journaling is disabled.Enable chat journaling and test web chat by email and SMS or WhatsApp by phone number separately.
New contact option is absentContact creation is disabled or the number already exists in 3CX or Odoo.Review the checkbox and test with a genuinely unknown number using an authorized Web Client user.
Click to call does nothingExtension missing, blocked, not connected to 3CX or browser policy prevents operation.Use the official extension, review permissions and test the user's 3CX client before testing from Odoo.
Integration stopped suddenlyAPI key expired or was revoked, credentials changed, domain changed or an update affected access.Check recent changes, rotate the key safely and rerun the full acceptance test.
For existing users

How to Migrate from an Older Custom Odoo Integration

Before the Change

  1. Document the current template or middleware configuration.
  2. Export screenshots and note custom fields, call subjects and business rules.
  3. Identify any custom behavior that the native connector does not claim to reproduce.
  4. Create a tested rollback plan and choose a low risk change window.

Cutover and Validation

  1. Remove or disable the previous CRM configuration according to its supported procedure.
  2. Add the native OdooCRM connector.
  3. Reconfigure matching, journaling and contact creation.
  4. Test representative inbound, outbound and chat interactions before organization wide rollout.

Do not run two integrations that write the same activity in parallel unless you have deliberately tested the result. Otherwise, duplicate journal entries and inconsistent contact behavior may occur.

Direct answers

3CX Odoo Integration FAQ

Does 3CX integrate natively with Odoo CRM?

Yes. Starting with 3CX Version 20 Update 10, a native OdooCRM connector is available for 3CX AI and Pro editions across supported deployment models.

Do I need a custom XML template or third party middleware?

Not for the standard features of the native connector. It connects the PBX directly to Odoo for caller identification, contact search, call and chat journaling, contact creation and click to call. Custom workflows beyond those capabilities may still require separate development.

Which 3CX editions support the native Odoo integration?

3CX states that the native integration applies from Version 20 Update 10 to AI and Pro editions. Confirm the current edition comparison and entitlement before purchase or upgrade.

Can 3CX find both Odoo Contacts and Companies?

Yes. The native integration can look up normal Contacts and Company type entries. The administrator can choose which record type is matched first.

How are phone calls matched to Odoo records?

3CX compares the external telephone number with numbers held in Odoo. Exact matching is best when all numbers use full E.164 format. Partial matching can help with mixed dialing formats but must be configured carefully to avoid false matches.

Can 3CX log calls automatically in Odoo?

Yes. When call journaling is enabled and the remote number matches an Odoo contact, external answered, missed and unanswered call outcomes can be written to the contact card using configurable subjects and descriptions.

Can 3CX log chats in Odoo?

Yes. Chat journaling can record matched conversations. Web chat is matched by email address, while SMS and WhatsApp interactions are matched by telephone number.

Can a 3CX user create a new Odoo contact?

Yes, if the administrator enables direct CRM contact creation. When a number is absent from both 3CX and Odoo, the 3CX Web Client can present a dialog for the user to complete the new contact details.

Can users call from Odoo through 3CX?

Yes. Click to call is supported through the official 3CX Click2Call browser extension for Google Chrome and Microsoft Edge.

Does Odoo integration automatically attach 3CX call recordings?

The official native feature description confirms call and chat journaling but does not state that every recording file is automatically attached to the Odoo record. Recording configuration, permissions, retention and any custom linking requirement should be assessed separately.

Does the integration work with hosted and on premise 3CX?

3CX describes the native Odoo connector as available for all supported deployment models, subject to the required Version 20 Update 10 or later release and eligible edition.

Why is the wrong Odoo contact appearing?

Common causes include duplicate phone numbers, shared company numbers, inconsistent number formats, the wrong Contact or Company priority, or a partial matching value that is too short. Clean the records and retest the matching policy.

3CX Authorized Reseller

Need a Reliable 3CX and Odoo Integration?

TekkPak Technologies can assess your current PBX and Odoo environment, plan contact matching and journaling, configure the native connector, run acceptance tests, train users and document the production handover.

About us

About TekkPak Technologies

TekkPak Technologies is a 3CX Authorized Reseller providing IP PBX, cloud and on premise communications, call center, call recording, CRM integration, Odoo ERP and CRM, Grandstream endpoints and business automation solutions. Our engineering team helps organizations connect telephony with customer data through practical design, secure configuration, testing, training and ongoing support.

Based in Lahore, Pakistan, TekkPak supports businesses in Pakistan and international markets. Every engagement begins with the real workflow: who calls, who answers, what customer context is needed, what must be logged and how the system will be governed after go live.

Explore TekkPak's 3CX solutions or contact our team.

Source transparency

Official References

This educational guide was reviewed against official sources on 9 September 2026. Product menus, browser extensions, licensing and platform requirements can change. Verify current vendor documentation before a production change.


Discover more from TekkPak Technologies

Subscribe to get the latest posts sent to your email.