Skip to Content
Menu

3CX CRM Integration

by
Odoo
v 18.0 Third Party 1002
Download for v 18.0 Deploy on Odoo.sh
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies CRM (crm)
Calendar (calendar)
Contacts (contacts)
Discuss (mail)
Community Apps Dependencies
Lines of code 632
Technical Name 3cxcrm
LicenseAGPL-3
Websitehttps://www.fl1.cz
Versions 14.0 15.0 16.0 17.0 18.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies CRM (crm)
Calendar (calendar)
Contacts (contacts)
Discuss (mail)
Community Apps Dependencies
Lines of code 632
Technical Name 3cxcrm
LicenseAGPL-3
Websitehttps://www.fl1.cz
Versions 14.0 15.0 16.0 17.0 18.0

3CX CRM Integration

Automatic Caller Identification for Your 3CX PBX System

Transform Your Customer Service Experience

Instantly identify incoming callers and access their complete Odoo CRM profile directly from your 3CX phone interface. No more searching for customer information while customers wait on the line.

Key Features


Smart Phone Lookup

Automatically searches both Contacts and CRM Leads databases to find matching phone numbers, including mobile and landline numbers.

Real-time Identification

Displays caller information instantly when the phone rings, including name, company, email, and other contact details.

Direct Record Access

One-click access to open the complete contact or lead record directly in Odoo from your 3CX interface.

Secure API

Protected REST API endpoint with configurable authentication keys to ensure secure communication between 3CX and Odoo.

Complete Contact Support

Works with both individual contacts and company records, supporting firstname/lastname fields for better identification.

Easy Configuration

Includes ready-to-use 3CX configuration files and step-by-step setup instructions.

See It In Action


3CX CRM Integration Demo

Watch how incoming calls automatically display customer information from Odoo

Easy Installation & Configuration


1Install Module

Install the 3CX CRM Integration module in your Odoo instance. The module automatically configures the necessary API endpoint.

2Configure API Key

Set your secure API key in Odoo system parameters. This key will be used by 3CX to authenticate with your Odoo instance.

3Setup 3CX

Upload the provided XML configuration file to your 3CX PBX system and configure the connection settings.

3CX Configuration Screenshots


3CX Configuration Step 1

CRM Integration Setup

3CX Configuration Step 2

Provider Configuration

3CX Configuration Step 3

Connection Parameters

3CX Configuration Step 4

Field Mapping Setup

Business Benefits


  • Improved Customer Service: Instantly know who's calling and their history
  • Increased Efficiency: No time wasted searching for customer information
  • Better Personalization: Address customers by name immediately
  • Enhanced Productivity: Direct access to customer records during calls
  • Professional Image: Demonstrate knowledge of customer relationships
  • Faster Resolution: Access to customer history and previous interactions
  • Seamless Integration: Works within your existing workflow
  • Scalable Solution: Supports unlimited users and phone numbers

Technical Requirements


Odoo Requirements

  • Odoo 18.0 or higher
  • CRM module installed
  • Partner Firstname module (OCA)
  • Public API access enabled

3CX Requirements

  • 3CX Phone System v16 or higher
  • CRM integration feature enabled
  • Network access to Odoo server
  • Administrative access to 3CX Management Console

Support & Documentation


Complete documentation and professional support included with your purchase.

Documentation

Comprehensive setup guide and troubleshooting documentation included.

Configuration Files

Ready-to-use 3CX XML configuration files for quick deployment.

Professional Support

Email support from the FL1 team for installation and configuration assistance.

Ready to Enhance Your Customer Service?

Join hundreds of businesses using 3CX CRM Integration to provide exceptional customer service.

Author: FL1 sro | Support: support@fl1.cz | Website: www.fl1.cz

3CX CRM Integration

Production License: AGPL-3 FL1-sro/3cxcrm

Automatically identify incoming callers in your 3CX PBX system by integrating with Odoo CRM database. Display complete customer information directly in your phone interface, eliminating the need to search for caller details during conversations.

Table of contents

Overview

The 3CX CRM Integration module creates a seamless connection between your 3CX PBX phone system and Odoo CRM, providing instant caller identification and access to customer information during incoming calls.

Key Features

  • Real-time Phone Lookup: Automatically searches Contacts and CRM Leads when calls arrive
  • Instant Caller Identification: Displays caller name, company, email, and contact details
  • Direct Record Access: One-click links to open complete customer records in Odoo
  • Secure API Communication: Protected REST endpoint with configurable authentication
  • Dual Database Search: Searches both res.partner (Contacts) and crm.lead (Leads/Opportunities)
  • Complete Contact Support: Works with individual contacts and company records
  • Firstname/Lastname Integration: Full support for partner_firstname module fields

Installation

Prerequisites

Before installing this module, ensure you have:

  1. Odoo Requirements: - Odoo 18.0 or higher - CRM module installed and configured - Partner Firstname module from OCA (https://github.com/OCA/partner-contact)
  2. 3CX Requirements: - 3CX Phone System v16 or higher - CRM integration feature enabled - Administrative access to 3CX Management Console - Network connectivity from 3CX server to Odoo instance

Module Installation

  1. Download the module from Odoo Apps Store or GitHub repository
  2. Install the module in your Odoo instance
  3. The module will automatically: - Create the REST API endpoint /api/3cx/crm - Configure default API authentication token - Enable CRM lead functionality in settings

Configuration

Odoo Configuration

  1. Set API Authentication Key:

    Navigate to Settings → Technical → System Parameters and modify:

    • Key: crm.3cx.auth
    • Value: Your secure API key (replace default "123A" with a strong key)
  2. Verify CRM Settings:

    Go to CRM Settings and ensure "Leads" are enabled if you want to search lead records.

  3. Test API Endpoint:

    The API endpoint is available at: https://your-odoo-domain.com/api/3cx/crm

3CX Configuration

  1. Download Configuration File:

    Use the provided XML configuration file from the module directory: upload_on_3cx_pbx/3cx_odoo_v20.xml

  2. Upload to 3CX:

    • Open 3CX Management Console
    • Go to Settings → CRM Integration
    • Click "Add" and select "Upload from file"
    • Choose the 3cx_odoo_v20.xml file
  3. Configure Connection Parameters:

    • ApiKey: Enter the same API key you set in Odoo system parameters
    • Host odoo: Your Odoo server URL (e.g., https://your-odoo-domain.com)
    • Country: Your country code (IT, US, etc.)

Configuration Screenshots

The module includes detailed 3CX configuration screenshots in the static/description/images/ directory showing each step of the setup process.

Usage

Automatic Caller Lookup

Once configured, the integration works automatically:

  1. Incoming Call Received: When a call arrives at your 3CX system
  2. API Request Sent: 3CX sends the caller's phone number to Odoo via the REST API
  3. Database Search: Odoo searches both Contacts and CRM Leads for matching phone numbers
  4. Results Displayed: Caller information appears in the 3CX interface
  5. Direct Access: Click the provided link to open the customer record in Odoo

Search Priority

The module searches in this order:

  1. Contacts (res.partner): Searches mobile and phone fields using phone_mobile_search
  2. CRM Leads (crm.lead): Searches leads and opportunities if no contact found
  3. New Number Flag: Returns "new_number: true" if no records found

Displayed Information

For Contacts: - Partner ID and type - First name and last name (if using partner_firstname) - Mobile and phone numbers - Email address - Company name (for company type records) - Direct link to open contact form in Odoo

For CRM Leads: - Lead ID (prefixed with 'L') - Lead type (lead or opportunity) - Contact name and lead name - Mobile and phone numbers - Direct link to open lead form in Odoo

API Reference

Endpoint Details

URL: /api/3cx/crm Method: POST Authentication: API Key in header Content-Type: application/json

Request Format

{
  "number": "+1234567890"
}

Headers:

apikey: your-configured-api-key
Content-Type: application/json

Response Formats

Contact Found:

{
  "partner_id": "123",
  "type": "contact",
  "firstname": "John",
  "lastname": "Smith",
  "mobile": "+1234567890",
  "phone": "+1234567891",
  "email": "john.smith@example.com",
  "web_url": "https://your-odoo.com/web#id=123&model=res.partner&view_type=form&action=123",
  "company_type": "person",
  "name": "John Smith"
}

Lead Found:

{
  "partner_id": "L456",
  "type": "lead",
  "name": "John Smith",
  "contact_name": "New Business Inquiry",
  "mobile": "+1234567890",
  "phone": "+1234567891",
  "web_url": "https://your-odoo.com/web#id=456&model=crm.lead&view_type=form&action=789",
  "link_end": "link_end"
}

No Match Found:

{
  "new_number": true
}

Security Implementation

Authentication

The module implements secure API authentication:

  • API Key Validation: All requests must include valid API key in header
  • Public Endpoint: Uses auth='public' but enforces API key validation
  • CSRF Protection: Disabled for API endpoint (csrf=False)
  • Sudo Access: Uses sudo() for database queries to ensure consistent access

Error Handling

  • Missing API Key: Returns BadRequest('ApiKey not set')
  • Invalid API Key: Returns BadRequest('Wrong APIKEY')
  • JSON Parsing: Handles malformed request data gracefully
  • Database Errors: Proper exception handling for database access

Data Privacy

  • Minimal Data Exposure: Only returns essential contact information
  • No Sensitive Data: Passwords, internal notes, and private fields are excluded
  • Controlled Access: API only accessible with valid authentication

Known Issues / Roadmap

Current Limitations

  • Phone Number Matching: Uses ilike search which may match partial numbers
  • Single Result: Returns only the first matching record per search type
  • No Call Logging: Incoming call events are not logged in Odoo
  • Limited Country Support: Phone number formatting depends on 3CX configuration

Planned Enhancements

  • Enhanced Phone Matching: Improve phone number normalization and matching
  • Call History Integration: Log incoming/outgoing calls in customer records
  • Multiple Result Handling: Support for multiple matches with selection interface
  • Advanced Search Options: Search by company name, email, or other fields
  • Webhook Integration: Real-time sync of contact changes

Troubleshooting

Common Issues

No Caller Information Displayed

  1. Check API key configuration in both Odoo and 3CX
  2. Verify network connectivity between 3CX and Odoo servers
  3. Test API endpoint manually with curl or Postman
  4. Check Odoo logs for authentication or database errors

Wrong Contact Information

  1. Verify phone number format consistency between 3CX and Odoo
  2. Check if multiple contacts have similar phone numbers
  3. Review phone_mobile_search field content in database

3CX Configuration Issues

  1. Ensure 3CX version supports CRM integration
  2. Verify XML configuration file uploaded correctly
  3. Check 3CX logs for API request errors
  4. Confirm firewall allows outbound HTTPS connections

Testing the Integration

Manual API Test:

curl -X POST https://your-odoo.com/api/3cx/crm \
  -H "Content-Type: application/json" \
  -H "apikey: your-api-key" \
  -d '{"number": "+1234567890"}'

Expected Response: JSON with contact information or {"new_number": true}

Debugging Steps

  1. Enable Developer Mode in Odoo to access technical features
  2. Check System Parameters for correct API key configuration
  3. Review Server Logs for API request details and errors
  4. Test Phone Number Search manually in Odoo contact/lead lists
  5. Verify 3CX Logs for outbound API request status

Changelog

18.0.1.0.0 (2024-12-XX)

  • New: Updated module name to "3CX CRM Integration"
  • New: Enhanced manifest with complete store metadata
  • New: Professional HTML description for Odoo Apps Store
  • New: Comprehensive RST documentation with API reference
  • New: Security access file for proper module permissions
  • Improvement: Updated version to standard Odoo 18.0 format
  • Improvement: Added external dependencies validation
  • Improvement: Enhanced error handling and response formatting
  • Fix: Corrected manifest dependencies and data file loading

Credits

Authors

  • FL1 sro

Contributors

Maintainers

This module is maintained by FL1 sro.

FL1 sro

FL1 sro specializes in Odoo implementation and 3CX PBX integration solutions.

Support

  • Email Support: support@fl1.cz
  • Website: https://www.fl1.cz
  • GitHub Issues: https://github.com/crottolo/free_addons/issues

For professional support, custom development, or enterprise implementations, please contact FL1 sro directly.

License

This module is licensed under AGPL-3.

You are free to use, modify, and distribute this software under the terms of the GNU Affero General Public License version 3.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.
There are no ratings yet!
Version 17
by
IGNATIUS NAKHONE
on 6/13/25, 5:23 AM

Hello,

Does the module support version 17?