A build-to-order Frappe app that wires ERPNext CRM to your existing VoIP provider — Aircall, RingCentral, Knowlarity or Dialpad — for click-to-call, real-time screen-pop, and automatic call-log sync. ECOSIRE builds, installs, and supports it after we agree the scope. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $299.00 USD; request a quote for a scoped proposal.

A build-to-order Frappe app that wires ERPNext CRM to your existing VoIP provider — Aircall, RingCentral, Knowlarity or Dialpad — for click-to-call, real-time screen-pop, and automatic call-log sync. ECOSIRE builds, installs, and supports it after we agree the scope.
Aucun paiement maintenant. Ceci envoie une demande de devis à notre équipe — nous vous recontacterons par e-mail avec les tarifs et les prochaines étapes.
Your sales team already lives in two places: ERPNext CRM for leads, contacts, and opportunities, and a VoIP dialer like Aircall, RingCentral, Knowlarity or Dialpad for the actual calls. Between them sits a manual gap — reps copy numbers by hand, dial in another tab, and then forget to log what was said. ERPNext ships a generic Telephony Call Handler and a Twilio/Exotel integration, but it has no native adapter for Aircall, RingCentral, Knowlarity or Dialpad, no inbound screen-pop for those providers, and no automatic attachment of recordings back onto the CRM record. Once you standardise on one of these carriers, ERPNext core runs out of road.
Modular provider adapters for Aircall (Public API), RingCentral (Call Control API), Knowlarity and Dialpad behind one common interface
Client-script click-to-call button on `Lead`, `Contact`, `Customer`, `Opportunity` and other CRM DocTypes
Whitelisted server methods (`@frappe.whitelist()`) that broker outbound dial requests to the provider REST API with per-agent auth
Inbound webhook exposed as a whitelisted endpoint, signature-verified per provider, that ingests call events in real time
Real-time browser screen-pop via `frappe.publish_realtime` over the Frappe websocket, matching caller ID to existing contacts
Automatic caller-ID lookup that opens the matching Lead/Contact/Customer, or offers one-click create for unknown numbers
We build a proper Frappe app — its own installable module with hooks.py, custom DocTypes, and a clean namespace — that sits inside your ERPNext site rather than bolting on a fragile external middleware. Outbound click-to-call is a client script button on Lead, Contact, Customer and Opportunity that calls a whitelisted server method (@frappe.whitelist()); that method authenticates to your provider's REST API (Aircall Public API, RingCentral Call Control, Knowlarity or Dialpad) and rings the agent's registered device or softphone. Inbound calls hit a provider webhook that we expose as a whitelisted endpoint; a hooks.py doc event and frappe.publish_realtime push a screen-pop to the agent's browser via the Frappe websocket, matching the caller's number against existing contacts and opening the right record before they answer.
Every call — inbound or outbound, connected or missed — is written to a Call Log / VoIP Call DocType linked back to the originating CRM document, with direction, duration, agent, disposition and a free-text notes field the rep fills during the call. Recordings and voicemail are fetched from the provider (either pushed on the webhook or pulled by a scheduled scheduler_events job) and attached as File records against the call, so the audio lives beside the contact in ERPNext. Provider credentials are stored in a Telephony Settings single DocType with per-agent number mapping and role-profile permissions, so agents only see and act on their own extensions. We target Frappe/ERPNext v15 and v16, follow Frappe app conventions, and keep the adapters modular so a second provider can be added later without a rewrite.
Because this is build-to-order, nothing ships until we agree what "done" means. We start with a short scoping call to confirm your provider(s), which DocTypes need click-to-call, your inbound routing, and how you want dispositions and recordings handled. We then build against a dev bench, deliver on a staging site for UAT, and only cut over to production once you sign off — typically 2 to 4 weeks from confirmed scope, depending on how many providers and call-flows are in play. You receive the full source, a git repo handover, and a post-go-live support window, so this is your app on your bench, not a black box you rent.
A team already committed to Aircall, RingCentral, Knowlarity or Dialpad that has adopted ERPNext CRM and wants dialing, screen-pop and call logging inside ERPNext instead of switching tabs and copying numbers by hand.
The person who owns ERPNext CRM data quality and needs every call automatically logged against the right Lead or Opportunity, with dispositions and recordings captured, so pipeline reporting reflects real activity.
Wants visibility into call volume, connect rates and follow-up discipline per rep, driven from Call Log data sitting natively in ERPNext rather than in a disconnected phone-system dashboard.
Responsible for the bench and site, needs a clean Frappe app that respects v15/v16 conventions, permissions and upgrade paths — installable source they can review, host, and maintain rather than opaque middleware.
Achetez la licence sur ecosire.com et téléchargez le ZIP de l'application Aircall / RingCentral / Knowlarity Telephony Connector for ERPNext depuis le tableau de bord de votre compte.
Extrayez le ZIP dans le dossier d'applications de votre banc ou exécutez « bench get-app » avec le chemin d'accès à l'application extraite.
Exécutez `bench --site SITE_NAME install-app APP_NAME` suivi de `bench migrate` pour installer Aircall / RingCentral / Knowlarity Telephony Connector for ERPNext et appliquer son schéma.
Ouvrez les paramètres de licence ECOSIRE sur votre site et activez votre clé de licence. Nécessite les applications gratuites ecosire_connect et ecosire_license_client.
| Critère | ÉCOSIRE | Construction personnalisée | Concurrent | Odoo natif |
|---|---|---|---|---|
| Provider support | Purpose-built adapters for Aircall, RingCentral, Knowlarity, Dialpad | Whatever you scope and code yourself | Usually one provider (often Twilio) only | |
| Inbound screen-pop | Real-time websocket pop matched to CRM record | Possible but you build the realtime layer | Sometimes, provider-dependent and limited | |
| Call-log sync | Automatic, linked Call Log with disposition and notes | Build the DocType and event wiring yourself | Basic logging, often not linked to Opportunity | |
| Recordings & voicemail | Fetched and attached as File records on the call | DIY fetch, storage and attachment logic | Rarely included or extra-cost add-on | |
| ERPNext version fit | Built and tested for v15 and v16, no core patching | Depends on your team's Frappe expertise | Varies; may lag on latest version | |
| Source & ownership | Full source plus git repo handover — you own it | You own it but carry all the build risk | Closed-source, licensed, vendor lock-in | |
| Delivery model | Build-to-order, 2-4 weeks from confirmed scope, UAT + rollback | Your backlog and timeline | Instant install but generic fit | |
| Support | Post-go-live support window plus optional ongoing | Self-supported | Vendor tier, variable responsiveness |
This is a build-to-order app, so we build it after we agree the scope — it is not an instant download. Typical delivery is 2 to 4 weeks from confirmed scope, depending on how many providers you need and how complex your inbound call-routing and disposition rules are. We confirm a firm timeline on the scoping call.
Aircall, RingCentral, Knowlarity and Dialpad are the primary targets, each built as a modular adapter behind a common interface. If you use a different carrier with a documented REST API and webhooks, tell us on the scoping call and we'll confirm whether it fits the same adapter pattern.
We build and test against Frappe/ERPNext v15 and v16, following standard Frappe app structure, DocType and REST API conventions. Confirm your exact version on the scoping call so we target the right bench and API surface.
Every build includes a post-go-live support window for bug fixes and configuration adjustments. Because you receive the full source and a git repo handover, your own team can also maintain and extend the app. Longer-term support, provider additions, or version upgrades can be arranged as a separate engagement.
No. It ships as a separate Frappe app with its own module, DocTypes and `hooks.py`, so it layers on top of ERPNext rather than patching core files. That keeps your standard upgrade path intact, and we validate against your target version before cutover.
Recordings and voicemail are captured from your provider — pushed on the inbound webhook or pulled by a scheduled job — and attached as File records against the linked Call Log, so the audio sits beside the contact in ERPNext. Retention and storage location are part of the scope we agree with you.
Credentials live in a `Telephony Settings` single DocType with restricted permissions, and outbound calls are brokered only through whitelisted server methods — never exposed to the browser. Inbound webhooks are signature-verified per provider so only genuine call events are accepted.
A build-to-order Frappe app that wires ERPNext CRM to your existing VoIP provider — Aircall, RingCentral, Knowlarity or Dialpad — for click-to-call, real-time screen-pop, and automatic call-log sync. ECOSIRE builds, installs, and supports it after we agree the scope.