- Home
- Apps
- SaaS Tools
- RingCentral Telephony Connector for Odoo
Illustrative previewA build-to-order Odoo connector that ties your RingCentral phone system into CRM, Contacts and Helpdesk
— click-to-dial, incoming-call screen-pop, and automatic call logging against the right record.
ECOSIRE builds, installs and supports it after a short scoping call.
What is RingCentral Telephony Connector for Odoo?
A build-to-order Odoo connector that ties your RingCentral phone system into CRM, Contacts and Helpdesk — click-to-dial, incoming-call screen-pop, and automatic call logging against the right record. ECOSIRE builds, installs and supports it after a short scoping call. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Sales and support teams standardized on RingCentral usually run two disconnected worlds: the phone lives in one app and the customer record lives in Odoo. Reps copy phone numbers by hand, dial in a separate softphone, and — when the call ends — forget to log what was said. Odoo's native telephony story does not close that gap: crm.lead and res.partner store a phone field validated by phone_validation, and the chatter on mail.thread can hold a manually created activity, but there is no supported bridge that places a call, recognizes an inbound caller, or writes the call outcome back to the timeline automatically. On Community especially, there is no VoIP integration at all, and even where a generic dialer exists it is not wired to your specific RingCentral tenant, extensions, or webhook events.
We build a dedicated Odoo module that connects directly to RingCentral's public Platform REST APIs (RingOut for outbound, the subscription/webhook service for telephony session notifications, and the call-log API for history). Each user authorizes their own RingCentral account through OAuth 2.0, and their access/refresh tokens are stored per user against a mapping between the Odoo user and their RingCentral extension. A res.users-level record (with ir.model.access.csv entries and record rules so a user only ever sees their own tokens) holds this binding. From there, every phone field on res.partner, crm.lead and helpdesk.ticket gains a click-to-dial control implemented as an OWL widget that calls a server method, which in turn fires a RingOut request so the call rings your desk phone or RingCentral app first, then the customer. A token-refresh ir.cron job keeps sessions alive so users are not forced to re-authenticate mid-day.
Inbound calls are handled through a webhook subscription: we register your Odoo instance as a subscriber to RingCentral telephony/session events, expose an authenticated controller route to receive them, and on each ringing event match the caller's number (normalized via phone_validation) against contacts, leads and tickets. A match drives a screen-pop / notification to the assigned user so they answer already looking at the right record. When a call completes, an automated server action writes a call activity onto the correct mail.thread — capturing direction (inbound/outbound), duration, status, and the timestamp — and, where a recording exists, attaches the call-recording link to that logged activity. Missed inbound calls generate a follow-up mail.activity so nothing slips. A call-log smart button on the contact/lead/ticket and per-user call reporting (built on the standard ORM with @api.depends computed aggregates) give managers visibility without leaving Odoo. Where a user's environment cannot pop natively, a softphone deep-link launch fallback is provided.
Because this is a build-to-order engagement, delivery begins with a scoping call, not a download. We confirm your Odoo edition and version (17.0, 18.0 or 19.0), your RingCentral account type and which extensions map to which users, the exact objects you want dialing and logging on, and your webhook/network topology. We then build against your requirements, test on a staging clone, run UAT with you, and deploy with a rollback plan. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); multi-company routing, additional integrated objects beyond CRM/Contacts/Helpdesk, deeper call-analytics reporting, and stricter compliance/recording-retention requirements increase the quoted scope.
What you get
- Installable source code for your Odoo version (17.0, 18.0 or 19.0), packaged as a clean module with __manifest__.py and security definitions
- Installation and RingCentral OAuth/webhook configuration on your environment, including extension-to-user mapping setup
- Technical documentation covering models, controller routes, cron jobs and the RingCentral API integration points
- User guide plus a live training session for sales and support staff on click-to-dial, screen-pop and call logging
- UAT on a staging clone with a documented rollback plan before any production change
- A defined post-go-live support window for defect fixes and configuration adjustments
- Git repository handover with full commit history and branch/tag for your deployed version
- Configuration record of your RingCentral app credentials scope, webhook endpoints and token-refresh schedule
Who this is for
Head of Sales Operations
Runs a RingCentral-standardized sales floor and needs every outbound and inbound call captured against the right crm.lead automatically, so pipeline reporting reflects real call activity instead of what reps remember to log.
Customer Support / Helpdesk Manager
Wants inbound callers matched to their helpdesk.ticket and a screen-pop on the assigned agent, plus recording links on the ticket timeline for QA and dispute resolution.
Odoo System Administrator / IT Lead
Responsible for a secure rollout — per-user OAuth tokens under record rules, a reliable token-refresh cron, and a webhook endpoint that fits the company's network and compliance posture across 17.0/18.0/19.0.
Revenue Operations Analyst
Needs per-user call reporting (volume, direction, duration, missed follow-ups) sourced from Odoo's ORM so telephony metrics sit alongside CRM and helpdesk data in one system.
How RingCentral Telephony Connector for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Fit to your RingCentral tenant | Built against your account, extensions and webhook topology | Possible but you own all discovery and design | Generic dialer, assumes a standard setup | No RingCentral integration in core |
| Inbound screen-pop matching | Webhook-driven pop to assigned user, matched via phone_validation | Achievable if you build the subscription plumbing | Varies; often outbound-only or partial | Not available |
| Automatic call logging to chatter | Server action writes direction, duration, status to mail.thread | You design the logging model and triggers | Sometimes, with fixed field set | Manual activity entry only |
| Call-recording link on the record | Fetched from call-log API, attached to the logged activity | Extra build effort you scope yourself | Rarely included | No |
| Security of per-user tokens | OAuth 2.0 tokens per user under record rules, refresh cron | Depends on your implementation rigor | Opaque; you cannot change the model | N/A |
| Odoo version support | Built and tested for 17.0, 18.0 or 19.0 | Whatever you build and maintain | Depends on vendor's release cadence | Core only, no telephony bridge |
| Source code and ownership | Full git repo handover with commit history | You own it end to end | Often OPL-licensed, no free modification | Core source, but no relevant feature |
| Support and delivery model | Scoping call, UAT on staging, rollback plan, support window | In-house time and risk on your team | Ticket support, no build-to-fit | Community/subscription support, feature absent |
Frequently Asked Questions about RingCentral Telephony Connector
Is this an existing app I can download and install today?
No. This is a build-to-order engagement. ECOSIRE builds the connector to match your Odoo version, RingCentral tenant and object scope, then installs and supports it. There is no instant self-service download — delivery starts with a scoping call.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The timeline depends on your RingCentral account setup, how many objects need dialing/logging, and staging access. We agree the schedule at the scoping call before any build begins.
How does pricing and scoping work?
Pricing starts from $999 as an indicative from-price for a single-company base scope. After a short scoping call we issue a fixed quote. Drivers such as multi-company routing, extra integrated objects, deeper reporting, or recording-retention/compliance requirements adjust the final figure.
What happens with support and updates after go-live?
You receive a defined post-go-live support window for defect fixes and configuration adjustments, plus the full git repository so your team retains the source. Version upgrades (for example to a newer Odoo release) or new feature work can be quoted separately as needed.
Does it work on Odoo Community or only Enterprise?
It is built on core modules (mail, phone_validation, crm, contacts) available on both editions, so it runs on Community and Enterprise. This matters because Community has no built-in VoIP integration at all — we confirm your exact edition and version (17.0/18.0/19.0) during scoping.
How are RingCentral credentials kept secure?
Each user authorizes their own RingCentral account via OAuth 2.0. Tokens are stored per user and protected by ir.model.access.csv rules and record rules so no user can read another's credentials. A token-refresh cron renews sessions so users are not forced to re-authenticate repeatedly.
Which records get click-to-dial and automatic call logging?
By default, phone fields on res.partner (Contacts), crm.lead (CRM) and helpdesk.ticket (Helpdesk) get click-to-dial, inbound screen-pop matching, and automatic call-activity logging to the record's chatter. Additional objects can be added to the build scope during the scoping call.
Related Modules

REST API & Webhooks Toolkit
Secure, documented REST API and outbound webhooks for any Odoo model — built, installed, and supported by ECOSIRE for Odoo 17/18/19.

Restrict POS Refund with Password
A made-to-order Odoo Point of Sale extension that forces a password or manager PIN before any refund, return, or negative-quantity line is authorized. ECOSIRE builds it to your workflow, installs it, and supports it.

Role & Group Access Designer
A build-to-order Odoo module that turns raw security groups into job-based business roles, assigns them across users in a bulk matrix, and clones one user's access onto many. ECOSIRE designs, builds, and installs it to your access model — it is not an off-the-shelf download.

Romania e-Factura + SAF-T D406
A made-to-order Odoo compliance app that submits CIUS-RO e-Factura invoices to ANAF SPV and exports the SAF-T D406 declaration from the same data. ECOSIRE builds, installs, and supports it for your Odoo 17, 18, or 19.
RingCentral Telephony Connector
A build-to-order Odoo connector that ties your RingCentral phone system into CRM, Contacts and Helpdesk — click-to-dial, incoming-call screen-pop, and automatic call logging against the right record. ECOSIRE builds, installs and supports it after a short scoping call.
- OAuth 2.0 per-user authorization to RingCentral, with access/refresh tokens stored per user and shielded by record rules so no user reads another's credentials
- Click-to-dial (RingOut) rendered as an OWL widget on every phone field across res.partner, crm.lead and helpdesk.ticket, invoking a guarded server method
- Incoming-call webhook subscription to RingCentral telephony/session notifications, received on a dedicated authenticated Odoo controller route
- Caller matching that normalizes the inbound number via phone_validation and resolves it to a contact, lead or ticket before pop