Availability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
CRM (crm)
• Calendar (calendar) • Contacts (contacts) • Discuss (mail) |
Community Apps Dependencies | Show |
Lines of code | 632 |
Technical Name |
3cxcrm |
License | AGPL-3 |
Website | https://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

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

CRM Integration Setup

Provider Configuration

Connection Parameters

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
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:
- Odoo Requirements: - Odoo 18.0 or higher - CRM module installed and configured - Partner Firstname module from OCA (https://github.com/OCA/partner-contact)
- 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
- Download the module from Odoo Apps Store or GitHub repository
- Install the module in your Odoo instance
- 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
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)
Verify CRM Settings:
Go to CRM Settings and ensure "Leads" are enabled if you want to search lead records.
Test API Endpoint:
The API endpoint is available at: https://your-odoo-domain.com/api/3cx/crm
3CX Configuration
Download Configuration File:
Use the provided XML configuration file from the module directory: upload_on_3cx_pbx/3cx_odoo_v20.xml
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
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:
- Incoming Call Received: When a call arrives at your 3CX system
- API Request Sent: 3CX sends the caller's phone number to Odoo via the REST API
- Database Search: Odoo searches both Contacts and CRM Leads for matching phone numbers
- Results Displayed: Caller information appears in the 3CX interface
- Direct Access: Click the provided link to open the customer record in Odoo
Search Priority
The module searches in this order:
- Contacts (res.partner): Searches mobile and phone fields using phone_mobile_search
- CRM Leads (crm.lead): Searches leads and opportunities if no contact found
- 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
- Check API key configuration in both Odoo and 3CX
- Verify network connectivity between 3CX and Odoo servers
- Test API endpoint manually with curl or Postman
- Check Odoo logs for authentication or database errors
Wrong Contact Information
- Verify phone number format consistency between 3CX and Odoo
- Check if multiple contacts have similar phone numbers
- Review phone_mobile_search field content in database
3CX Configuration Issues
- Ensure 3CX version supports CRM integration
- Verify XML configuration file uploaded correctly
- Check 3CX logs for API request errors
- 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
- Enable Developer Mode in Odoo to access technical features
- Check System Parameters for correct API key configuration
- Review Server Logs for API request details and errors
- Test Phone Number Search manually in Odoo contact/lead lists
- 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
18.0.0.1 (Previous)
- Initial: Basic 3CX CRM lookup functionality
- Initial: REST API endpoint for phone number queries
- Initial: Contact and lead search capabilities
- Initial: 3CX XML configuration files
- Initial: Basic authentication and security
Credits
Authors
- FL1 sro
Contributors
- Roberto Crotti <bo@fl1.cz>
Maintainers
This module is maintained by 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
Report comment
Any abuse of this reporting system will be penalizedThere are no ratings yet!
Version 17
Hello,
Does the module support version 17?