- Home
- Apps
- SaaS Tools
- Exotel & Cloud Telephony CTI for ERPNext
Illustrative previewA cloud-telephony CTI that connects Exotel (and compatible providers) to ERPNext CRM
— inbound screen-pop with caller context, click-to-dial from any record, and automatic call logging with recording links. Built to your call-center workflow, installed on your bench, and supported by ECOSIRE.
What is Exotel & Cloud Telephony CTI for ERPNext?
A cloud-telephony CTI that connects Exotel (and compatible providers) to ERPNext CRM — inbound screen-pop with caller context, click-to-dial from any record, and automatic call logging with recording links. Built to your call-center workflow, installed on your bench, and supported by ECOSIRE. Built to order by ECOSIRE for ERPNext v15, v16 — 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 ERPNext.
- 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
- ERPNext Compatibility
- —
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- MariaDB 10.6+
About this Product
If your inside-sales or support team runs on ERPNext but dials from a separate softphone or Exotel dashboard, every call is a context switch. Agents miss who is calling until they answer, they retype numbers by hand, and call notes live outside the CRM — so Lead, Contact, and Opportunity records never reflect what actually happened on the phone. ERPNext ships a generic Telephony integration and a Call Log DocType, but out of the box it does not give you a real screen-pop that opens the matching customer record on an inbound ring, disposition capture tied to your pipeline stages, or reliable recording links stitched back onto the originating document. That is the gap this build closes.
ECOSIRE builds a proper Frappe app — its own module, DocTypes, and hooks.py wiring — that turns ERPNext into the agent's single screen. Inbound calls arrive through an Exotel webhook received by a @frappe.whitelist(allow_guest=True) endpoint that verifies the request, looks up the caller by phone number across Contact, Lead, and Customer, and pushes a real-time screen-pop to the assigned agent via Frappe's realtime (socket.io) layer — so the right record is already open when they say hello. Click-to-dial is added to those DocTypes with a client script that calls Exotel's Connect API through a whitelisted server method, so an agent dials from any record without touching a handset. Every call writes or updates a Call Log (and a linked call-activity DocType) via doc_events server-side hooks, capturing direction, duration, agent, outcome and a signed link to the recording pulled from Exotel once the call ends. A scheduler event reconciles any calls the webhook missed, so your logs stay complete even when a callback is late.
On top of the plumbing we build the workflow your agents actually use: a disposition and outcome form that fires at hang-up, so reps tag the result (connected, no-answer, callback, qualified, not-interested) against a controlled list you define, with mandatory follow-up fields where you need them. Call routing and IVR selections captured by Exotel are passed through as call metadata so you can report on queue, campaign, or menu choice inside ERPNext's own report builder and dashboards — no external analytics tool. Access is governed by Frappe permissions and role profiles: agents see and dial their own queue, team leads see the floor, and recording links respect the same permission rules so audio is never exposed to users who cannot see the record. Everything is exposed over the Frappe REST API and whitelisted methods, so a wallboard, a dialer, or your existing tooling can read the same data.
Because this is build-to-order, nothing ships blind. We start from your Exotel account setup (numbers, flows, IVR), your CRM DocTypes and pipeline stages, and your disposition taxonomy, then build the app against ERPNext v15/v16 on a staging bench that mirrors your production. You get the installable source, install and configuration, a UAT pass on staging with a rollback plan, a training session for agents and admins, and a post-go-live support window. Typical delivery is one working week from confirmed scope. It begins with a short scoping call to map your telephony flows and CRM data to the integration.
What you get
- Installable source code for your version of the app, packaged as a standard Frappe app with its own module and DocTypes
- Installation and configuration on your bench, including Exotel account/webhook wiring and CRM field placement
- Technical documentation covering DocTypes, hooks.py doc events, whitelisted methods, scheduler events and the REST surface
- End-user guide plus a live training session for agents, team leads and administrators
- UAT on a staging bench that mirrors production, with a documented rollback plan before go-live
- Post-go-live support window for defect fixes and configuration adjustments
- Git repository handover with full commit history and branch/tag for your release
- Role profile and permission configuration mapped to your call-center team structure
Who this is for
Inside-sales team lead
Runs an outbound call center on ERPNext and needs click-to-dial from Leads and Opportunities, disposition capture tied to pipeline stages, and per-agent call reporting inside the CRM instead of a separate dialer dashboard.
Support / contact-center manager
Handles inbound tickets and calls and wants screen-pop so agents see the customer and open issues on ring, plus recording links attached to the record for QA and compliance review.
ERPNext administrator / IT owner
Owns the bench and Exotel account and needs a properly packaged Frappe app with clean hooks, whitelisted methods, permission-governed recording access, and a rollback plan — not a pile of untracked customizations.
Revenue / sales-ops analyst
Needs call outcomes, IVR/queue metadata and durations available in ERPNext report builder and dashboards to measure connect rates, campaign performance and follow-up compliance without exporting to another tool.
How Exotel & Cloud Telephony CTI for ERPNext Compares
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Inbound screen-pop | Real-time record pop to the assigned agent via Frappe socket.io | Buildable but you engineer the realtime layer yourself | Often notification-only, not a true record pop | No native screen-pop; you see a Call Log after the fact |
| Click-to-dial | On your CRM DocTypes via whitelisted Exotel Connect call | Possible with in-house client and server scripts | Usually on a fixed set of DocTypes only | Generic telephony hook, provider-dependent, limited |
| Disposition & outcome capture | Hang-up form with your controlled list and mandatory follow-ups | You design the form and validation from scratch | Basic free-text or a fixed status list | No structured disposition workflow |
| Recording links & access control | Attached to the record, expiring URLs gated by Frappe permissions | You must build the retrieval and permission gating | Link stored but access rules often coarse | Not handled beyond a raw field |
| IVR / routing reporting | Queue and menu metadata reportable in ERPNext dashboards | Requires custom fields and report design | Reporting usually stays in the provider dashboard | Not captured into ERPNext |
| Reliability of logging | Idempotent writes plus scheduler reconciliation of late webhooks | Edge cases are on your team to handle | Varies; missed-webhook handling often absent | Depends entirely on the base integration |
| Ownership & maintainability | Standard Frappe app, full git repo handover | You own it but also own all the maintenance | Closed app; you depend on the vendor's roadmap | In core, but not configurable to your workflow |
| Support & version upgrades | Post-go-live window plus v15/v16 upgrade path | Internal team only | Vendor SLA, may lag ERPNext releases | Community/base-product support only |
Frequently Asked Questions about Exotel & Cloud Telephony CTI
Is this a ready-made app I can download and install today?
No. This is a build-to-order engagement. ECOSIRE builds the Frappe app against your Exotel setup, your CRM DocTypes and your disposition taxonomy, then installs and configures it on your bench. There is no instant download — you receive installable source for your specific version once it is built and UAT-passed.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The timeline depends on how many DocTypes need screen-pop and click-to-dial, the complexity of your IVR/routing, and your disposition and reporting requirements. We confirm a firm timeline after the scoping call.
Which telephony providers are supported besides Exotel?
We build against Exotel by default and structure the integration with a provider adapter layer, so a compatible cloud-telephony provider that exposes Connect/webhook and recording APIs can be targeted instead. Tell us your provider during scoping and we confirm feasibility before starting.
Which ERPNext / Frappe versions does it support?
We build for Frappe/ERPNext v15 and v16. We develop and UAT on a staging bench that mirrors your production version so the app is verified against your exact release before go-live.
How does it capture call recordings without exposing them to the wrong users?
Recording links are pulled from Exotel after the call ends and attached to the originating Call Log. They are served through expiring, permission-checked URLs that respect the same Frappe permission and role-profile rules as the underlying record, so a user who cannot see the call cannot reach its audio.
What about support and updates after go-live?
Every engagement includes a post-go-live support window for defect fixes and configuration adjustments. You also receive the full git repository, so your own team can maintain it. Beyond the included window we offer ongoing support and version-upgrade work (for example when you move ERPNext major versions) as a separate arrangement.
Will this create duplicate or missed call logs if a webhook is delayed?
No. Call logs are keyed idempotently and a scheduler event reconciles any calls the live webhook missed or received late, so your ERPNext call history stays complete and free of duplicates even when Exotel callbacks arrive out of order.
Related Modules

E-Signature & Digital Signing for ERPNext
A build-to-order ERPNext app that sends any quotation, sales order or contract print format out for legally binding e-signature, then files the signed PDF and a tamper-evident audit trail back onto the source document. ECOSIRE scopes, builds, installs and supports it for you.

E-Way Bill Manager (India)
A build-to-order ERPNext app for end-to-end e-way bill lifecycle — generation, Part-A/Part-B updates, bulk and consolidated EWBs, cancellation and extension — wired directly to the NIC e-way bill API. ECOSIRE scopes, builds, installs and supports it for your dispatch operation.

Factur-X / ZUGFeRD Hybrid E-Invoicing for ERPNext
A build-to-order ERPNext app that turns your Sales Invoices into Factur-X / ZUGFeRD compliant PDF/A-3 documents with embedded EN16931 XML, and parses inbound hybrid invoices into Purchase Invoices. ECOSIRE scopes, builds, installs, and supports it for your French and German entities.
Exotel & Cloud Telephony CTI
A cloud-telephony CTI that connects Exotel (and compatible providers) to ERPNext CRM — inbound screen-pop with caller context, click-to-dial from any record, and automatic call logging with recording links. Built to your call-center workflow, installed on your bench, and supported by ECOSIRE.
- Inbound screen-pop via Frappe realtime (socket.io) that opens the matching Contact, Lead or Customer for the assigned agent on ring
- Caller lookup across Contact, Lead and Customer by normalized phone number, with configurable matching for country codes and extensions
- Click-to-dial client scripts on CRM DocTypes that invoke Exotel's Connect API through a whitelisted server method
- Signed Exotel webhook endpoint (@frappe.whitelist allow_guest) that authenticates each callback before writing any record
