Skip to main content
Exotel & Cloud Telephony CTI for ERPNext — A cloud-telephony CTI that connects Exotel (and compatible providers) to ERPNext C — 1/1Illustrative preview

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.

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

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
Automatic Call Log creation and update via hooks.py doc_events, capturing direction, duration, agent and status
Recording link retrieval attached to the originating Call Log, served through permission-checked, expiring URLs
Disposition and outcome capture form at hang-up with a controlled, org-defined result list and conditional mandatory follow-up fields
Scheduler event that reconciles missed or late webhooks so call logs stay complete
IVR and call-routing metadata (queue, menu choice, campaign) passed through and reportable in ERPNext report builder and dashboards
Role profiles and Frappe permission rules so agents dial their own queue and leads see the floor, with recording access gated identically
Whitelisted REST methods exposing call and disposition data for wallboards, dialers and external tooling
Provider adapter layer so Exotel can be swapped for a compatible cloud-telephony provider without rewriting the CRM wiring
Automatic activity/timeline entries on the linked record so the call history is visible inside the customer's own document
Compatible with ERPNext / Frappe v15 and v16, packaged as a standalone installable app with its own module

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 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

CriterionECOSIRECustom BuildCompetitorERPNext Native
Inbound screen-popReal-time record pop to the assigned agent via Frappe socket.ioBuildable but you engineer the realtime layer yourselfOften notification-only, not a true record popNo native screen-pop; you see a Call Log after the fact
Click-to-dialOn your CRM DocTypes via whitelisted Exotel Connect callPossible with in-house client and server scriptsUsually on a fixed set of DocTypes onlyGeneric telephony hook, provider-dependent, limited
Disposition & outcome captureHang-up form with your controlled list and mandatory follow-upsYou design the form and validation from scratchBasic free-text or a fixed status listNo structured disposition workflow
Recording links & access controlAttached to the record, expiring URLs gated by Frappe permissionsYou must build the retrieval and permission gatingLink stored but access rules often coarseNot handled beyond a raw field
IVR / routing reportingQueue and menu metadata reportable in ERPNext dashboardsRequires custom fields and report designReporting usually stays in the provider dashboardNot captured into ERPNext
Reliability of loggingIdempotent writes plus scheduler reconciliation of late webhooksEdge cases are on your team to handleVaries; missed-webhook handling often absentDepends entirely on the base integration
Ownership & maintainabilityStandard Frappe app, full git repo handoverYou own it but also own all the maintenanceClosed app; you depend on the vendor's roadmapIn core, but not configurable to your workflow
Support & version upgradesPost-go-live window plus v15/v16 upgrade pathInternal team onlyVendor SLA, may lag ERPNext releasesCommunity/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.

Request a quote

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

Request a Quotation

Tell us about your Exotel & Cloud Telephony CTI requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.