Kaizen 159 - Configuring Telephony Extension Widget in Zoho CRM

Kaizen 159 - Configuring Telephony Extension Widget in Zoho CRM




Hello Developers! 

Welcome back to the Widgets fold in our Kaizen series.

In this post, we will learn how to build a custom telephony extension widget for call centers and deploy it within a Zoho CRM organization. This helps in establishing unified communication support without leaving the platform.

Why configure a Telephony?

Telephony integration with Zoho CRM is vital for businesses that rely heavily on customer communication and sales. Following are a few key reasons for its vitality:
  • Centralized Communication: Make and receive calls directly within the CRM, streamlining the communication process.
  • Automatic Call Logging: Calls are automatically logged, helping businesses track communication history without manual effort.
  • Enhanced Collaboration: Sales, marketing, and customer service teams can access shared communication logs for improved teamwork.
  • Automated Follow-Ups: After each call, you can trigger follow-up tasks or emails, ensuring no lead is forgotten.
While the Zoho Marketplace within Zoho CRM offers a variety of telephony extensions, we will look at how to create a private extension that allows you to customize the integration to suit your specific needs.

Info
Note:

For this demonstration, we will use RingCentral as our telephony platform. Although RingCentral is available in the marketplace, we will assume it is a private connected app in this scenario.

Business Scenario

Imagine that you are running a sales agency and you want a widget that lets your sales reps make calls directly from Zoho CRM while tracking all call details seamlessly within CRM records.

The private extension should allow you to control the user interface, customize call-related actions, and manage data flow directly into the CRM, optimizing your sales process.

Creating a Private Telephony Extension

Start by logging into your Zoho CRM account and follow the below steps to build a private extension powered by Zoho Sigma. 

Set Up a Private Extension

1. Navigate to Setup > Marketplace > Extension Builder.

2. Create a workspace in the new tab and click on the New Extension button.Provide the necessary details as shown in the image and choose the service as Zoho CRM.


3. Provide the necessary details as shown in the image and choose the service as Zoho CRM.



4. Click Create.

5. The private extension that you have created will be listed in the Extensions page. Choose your extension and click the edit icon. 
You will be redirected to the Zoho Developer Console



Configure the Telephony Widget 

6. In the console, go to Utilities > Connected Apps on the left-side menu.

7. Follow the steps provided in this kaizen to create a new Zoho CRM widget for this use case. 

8. Fill in the details of the application as shown in this image. 



We have chosen External Hosting for the demo, as our sample widget code is hosted on Amazon Web Service (AWS).

Refer to the 'Code Logic for Integration' section below to see how the widget code should be handled.

9. Click Save.

Code Logic for Integration

10. Here is the core logic for handling telephony events like Dial and DialerActive using the Zoho CRM JS SDK:

DialerActive Event Listener:
  • This listener is triggered when the softphone icon at the bottom of your screen is toggled.
  • It makes a call to the dialed number using Ring Central SDK.
Dial Event Listener:
  • The listener is activated when a user initiates a call from a Zoho CRM record using the phone icon next to the Phone fields.
  • The phone button passes the specific record data to the widget, allowing Ring Central to display the record name and dial the number. Following it, the Ring Central SDKs play the role to execute call related functions.
Call Completion and Notes Update:
  • Once a call ends, the widget opens a note section.
  • The text added to the widget is fed to the Notes Related List of the corresponding record using the Add Notes SDK.
For detailed instructions and to get started, the demo code is available on our GitHub page. Ensure to replace your telephony app credentials, SDKs, and its versions in the rc.js and handler.js files to suit your production needs.

Configure the Call Center

11. Navigate to Build > Telephony in the left menu. 

12. Provide a Name and the Resource Path of your widget. 



13. Click Save.

Packaging and Publishing

14. Go to Package > Publish on the left-side menu and publish the extension. 

15. You will receive a prompt asking if you would like to submit your extension to the Marketplace and avail it like other telephony platforms. 
Once submitted, the review process will take from three weeks to one month for approval.



Instead of waiting for approval, we will proceed with deploying the extension using the private plugin deployment link.

Deploy in your Organization

16. Log into your Zoho CRM organization.

17. Replace the URL of your Zoho CRM page with the deployment link from the Developer Console to install the widget extension.

18. Approve the addition of this extension to your CRM.

19. Once installed, refresh the page and check for the softphone icon at the bottom of your screen.



Click the icon to log in to your telephony platform, such as RingCentral.

Try it Out! 

Once the softphone is installed, try out the following features:
  • The softphone icon opens an iframe dialer pad.
  • You will see a phone icon near the Phone data fields, enabling quick calls directly from the record.
  • After calls, you can take notes and log them as a related list for the CRM record.

Additional Components

Consider adding these components to enhance the functionality of your telephony extension widget:
  • Call Recordings Widget: Create a related list widget that automatically stores all call recordings for future reference. Refer to this page for help. 
  • Call Analytics: Using Ring Central SDKs support users can integrate call duration, frequency, and outcomes into a CRM dashboard Widget for performance tracking.
  • Custom Workflow Triggers: With the help of Insert Records SDK in the extension widget, you can automatically log the call details into the Calls module. This enables you to trigger workflow rules for follow-up tasks, notifications, or actions based on call outcomes. 
From managing call center operations to automating task follow-ups, the potential of widgets is vast and adaptable to a variety of business needs. We encourage you to explore the complete potential of widgets to build custom solutions that elevate your workflows. 

For further assistance, explore our Widget fold in the Kaizen collection or reach out to us at support@zohocrm.com. You can also drop your questions in the comments below. 

Cheers! 

-----------------------------------------------------------------------------------------------------------------------------------

Related Reading

-----------------------------------------------------------------------------------------------------------------------------------

    • Recent Topics

    • Zoho Workplace renforce sa sécurité avec l'intégration Zoho Vault

      Dans un monde où l’information a une valeur inestimable, la protection des données sensibles n’a jamais été aussi essentielle. Une fuite de données peut non seulement compromettre la réputation d’une entreprise, mais également engendrer des pertes financières
    • Can the Product Image on the Quote Template be enlarged

      Hello, I am editing the Quote Template and added ${Products.Product Image} to the line item and the image comes up but it is very tiny. Is there anyway that you can resize this to be larger? Any help would be great! Thanks
    • How to sort a data in summary report with Monthly ?

      Hi Team, Can any one help me out how to sort a data based on monthly, Month was shuffled based on aliphatic order. i want to sort the below data monthy?
    • Directly Edit, Filter, and Sort Subforms on the Details Page

      Hello everyone, As you know, subforms allow you to associate multiple line items with a single record, greatly enhancing your data organization. For example, a sales order subform neatly lists all products, their quantities, amounts, and other relevant
    • How can I create individual records from a subform

      Hi, I am collecting subform data into a Lead record and I need to create individual records for each row associated to the account when it is converted. How can I do this?
    • What is the Desk API?

      I'm trying to fetch a lookup field data from desk to our creator application and it doesn't work. I'm guessing that my search parameter is wrong? On my trial function fetch if I use these: tickets = invokeurl [ url :"https://desk.zoho.com/api/v1/tickets/351081000145244764"
    • How to choose other payment methodes than creditcards

      We have connected stripe as a payment provider in zoho books, booking, commerce and checkout. In stripe we selected al major payment methodes for Belgium (mainly bancontact). However, at checkout customers seems to have only the possibility to pay with
    • Why is Zoho support so terrible?

      I've spent the last week trying to get zoho to fix sudden SSL certificate issues with our desk and project portals. I've raised a ticket and constantly been told the issue is on our side despite it being exceedingly obvious it's not. After finally convincing
    • Custom "Filter By" in Client Portal

      Currently our client portal only shows items for that specific person that is logged on to the portal, we want the current logged user to see all items for that user's company. An example would be invoices, so the current user would see all invoices for
    • Ticket Views: filter criteria -> dynamic date values in relation to the current date

      Hello all, It would be very helpful if you could build custom views in such a way that you do not have to adjust the criteria daily or at whatever interval in order to change the fixed date value as needed. For example, I would like to create a view that,
    • Unlocking New Horizons: A Year in Review

      As we bid farewell to 2024, let's celebrate and revisit the key highlights of the year. From adding a new edition to cross-platform enhancements, here’s a roundup of all the feature updates designed to simplify accounting, optimize financial management,
    • Introducing 'Queries' In Zoho CRM

      Hello everyone! We are here with an exciting feature - Queries in Zoho CRM! A little context before we dive right into the feature specifics :) In today’s fast-paced business environment, immediate access to relevant data is essential for informed decision-making.
    • Enable Sending Direct Messages to Self in Zoho Cliq

      Hi, I would like to request a feature enhancement for Zoho Cliq to allow users to send direct messages to themselves. Currently, Zoho Cliq does not have the option to send a direct message to oneself. While creating a channel with just one member (the
    • Admin Access to Direct Messages in Zoho Cliq

      Hi Zoho Cliq Team, We would like to request a feature enhancement to enable admin access to one-on-one conversations (direct messages) conducted through Zoho Cliq. Use Case: As administrators, there are situations where it becomes essential to access
    • Need help with KPI Widget on Dashboard

      What I am trying to accomplish seems simple, but I cannot figure it out.  Please help. I would like to show in a KPI Comparison Widget: Number of Meetings (CRM) Held in Last 30 Days compared to Number of Meetings Held the previous 30 days (from the date
    • Need to send message to slack channel from zoho people form

      - I have setup slack connection in zoho people, it is successfully showing connected - I am using connection name to send message view custom function, but it is not working: response = invokeurl [ url :"https://app.slack.com/client/T78002gHF/C089773324"
    • User tiers

      I am trying to add tiers of users. I would like: Me - CEO Next Tier down - Managers Next tier down - All the salepeople reporting to each manager I can only seem to add myself with mansagers below. Surely I can add more tiers?
    • Flow to follow up on trade fair contacts

      Hi, Before we moved to Zoho we had some flows (sequences) in HubSpot to follow up on trade fair contacts. To explain further on this it had the following characteristics: New contacts could be added to the sequence When added a flow of communication started.
    • Queries filtered by current page/record

      I have been trying to use the new queries feature, and I can filter the query, but I'm coming unstuck because I don't understand how to make the query dynamically include the filter of the current record. ie if I'm on a deal, to filter all the records
    • Article Numbers for KB articles

      Hello, I was wondering if it's possible to turn on article numbers/ part numbering for KB articles. If this is not already a feature, we'd like to request it. Frequently a solution will require multiple articles so tracking which articles are referenced
    • Audit Log Export via API

      Hello, Based on the documentation here https://www.zoho.com/crm/developer/docs/api/v7/create-export-audit-log.html I need to specify the scope ZohoCRM.settings.audit_logs.CREATE to create a log export. I've created a Self Client app but when I specify
    • Zoho CRM API Credits & Limits for Workflow

      Hi Team, Just wanted to clarify how the API credits work for Zoho CRM and workflows with custom functions. API Credits are based on your subscription and are set at the account level. You can buy additional credits if needed. For Enterprise customers,
    • How to easy change layout in existing records in Deals?

      Hello, So far i have used only 1 layout in Deals. I have about 1000 records. Now i want to make new layout. So i have 2 layouts: Layout Old (1000 records) Layout New (0 records) How to easy change layout from Layout Old into Layout New for existing records?
    • "Copy Field Values from one Module to another" how to use?

      Hi everyone! I'm sorry if this question was already asked, I didn't find it! So let me explain:  In my Tickets module, we have the custome field "customer type" where we indicate if it's a lead, user, etc... In the Contact module I used the "type" field with exactely the same entries. I would like when in the tickets module an operator choose an option that it automatically update it in the contact module. I found the "Copy Field Values from one Module to another" custom function which seems perfect
    • New Leave Type: Compensatory off

      Hi, there is a new Leave Type: Compensatory off. Can someone tell me how to use it, because it sounds it could work for overtime compensation for our techs. Thanks Andreas
    • Introducing bot filtering for accurate analytics

      Dear Zoho Campaigns Users, We're happy to introduce bot filtering to enhance the accuracy of your email campaign analytics. This new feature is designed to help you filter out bot-generated opens and clicks, which will ensure your campaign reports reflect
    • Introducing Zia LLM: Zoho’s in-house Generative AI solution for CRM's AI capabilities

      Hello everyone, We're excited to announce the launch of our in-house Large Language Model (LLM) by Zia to power our AI offerings. What is LLM? LLM stands for Large Language Model, a powerful AI technology that processes and generates human-like text based
    • How do I fix this? Unable to send message; Reason:554 5.1.8 Email Outgoing Blocked.

      How do I fix this? Unable to send message; Reason:554 5.1.8 Email Outgoing Blocked.
    • Zoho Desk Validation Rule Using Custom Function

      Hi all, I tried to find the way to validate fields using custom function just like in Zoho CRM but to no avail. Is there a way to do this?
    • Archive Option in Conversation View

      Hello, I have a suggestion\request to add an "Archive Thread" button in conversation view of Zoho Mail. The best suggestion I have is to put an "Archive Thread" button next to the "Label Entire Thread" button in conversation view. Most users don't just
    • Possible to backdate Stage shifts in Deals module?

      I want to enter my organisation's historical dealflow data into the CRM and it's important that the Stage history is showing the correct dates in the past of when it happened. Is there a way for me to modify the "Modified Time" in the Stage History Related
    • Layout Prompt when creating an oportunity

      Hi There, Is there a way to create a pop-up prompt when I create a new Deal giving me the option of what layout to use based on a certain requirement? So, if the prompt had two options 1. is a new business Deal 2. is a renewal Deal Thanks in advance
    • Conditional layouts - support for multi-select picklists

      Hi, The documentation for conditional layouts says the following: "Layout Rules cannot be used on the following field types: Auto Number Lookup Multi Select Lookup User Lookup Formula File Upload Multi Line" I have a custom module with a multi-pick list
    • Elevating Email Security on Zoho Desk: DKIM Now Mandatory

      Hello Zoho Desk Users! It has been a wonderful journey with you on Zoho Desk. As we welcome 2025, we are strengthening our efforts to ensure a secure and seamless experience for you. To enhance email security, DKIM configuration will be mandatory for
    • How to upload mass inventory quantity adjustment with batch number?

      I wanted to clean-up our inventory list; however, I have trouble performing the task as I don't know how to mass upload inventory adjustment with batch numbers. I don't want to do it manually as there are if not thousands at hundreds of inventory tr
    • Product sale report with margins

      we unable to get the data as per product sale report with margins so we need help in this
    • CLIENT PORTAL (If clients can place orders directly on the portal)

      Zoho client portal is excellent. Everything is there except one thing. Client should be able to place orders directly on the portal. This would enhance the portal and end users will be extremely happy. This suggestion infact came from one of our client.
    • Is there provision to charge the attendees to join the webinar?

      We want to host some webinar of public interest and want to charge them to participate in this. Does this feature in-build in the application? Offcourse, we will be having Razor pay account activated for these purpose.
    • Zoho Vault App for Windows

      Hello, is there a Windows app that can be used to access the passwords saved in Zoho Vault? Thank you
    • Emails take up to 14 hours to arrive and often never arrive at all.

      I've been on hold on your support phone for two hours. I spent an hour waiting to talk to somebody somebody finally picked up. They asked me to give them my ID number and when I found it, they were gone they didn't hang up. They just walked away from
    • Next Page