Kaizen #156 - Enhancing Mass Communication in Zoho CRM with a Custom Button Widget

Kaizen #156 - Enhancing Mass Communication in Zoho CRM with a Custom Button Widget




Hello code enthusiasts! 

Welcome to a fresh week of Kaizen! In this post, you will learn how to build a custom button widget to boost mass communication of your business using SMS notifications and pre-recorded calls within Zoho CRM. 

Business Scenario

Timely communication with customers is crucial in any business to send important updates, reminders, and promotional messages. 

Imagine you are managing a sales team, and your business regularly sends promotional offers to hundreds of customers. Typically, you would need to export customer details to a separate broadcasting system, create the messages, and send them manually. 

Instead of manually making individual calls and messages about the offer, you can now leverage this custom button widget placed in the mass menu within Zoho CRM to send personalized SMS notifications or even recorded voice calls to your customers. 

Creating a Custom Button Widget

Let us look at the steps to create a widget for the above-mentioned functionality. 

1. Log in to your Zoho CRM, go to Setup>Customization>Modules and Fields and select your desired Module. For this demo, we will choose the Leads module.
2. In the Leads module, switch to the Buttons tab and click Create New Button.
3. Follow the steps outlined in this help page and create a new button in the Mass Action Menu with its action defined by a widget



4. A pop-up appears for you to choose either from the available local widgets or create a new widget. 
5. Follow the steps provided in this kaizen to create a new widget for this use case.


Code Logic for Mass Communication

6. Here is the code logic to send broadcast SMS notifications and pre-recorded calls to the selected leads. 
  • Build the widget HTML page with the following elements shown in the GIF for obtaining user input like phone fields, sms/voice call preference, and the message content.


For voice calls, the entered text message will be converted to speech using Twilio's services.
  • The current module (Leads) and the selected record IDs are passed to the widget through the on PageLoad callback function.
  • For the current module, we used the Zoho CRM Meta JS SDK to get fields that have phone data type in it. These fields are listed in the Phone Fields dropdown, allowing the user to select the desired phone numbers that Twilio should use to send SMS or make calls. 
  • The COQL API SDK helps fetch values from the selected Phone fields in the dropdown for the selected record IDs. 
  • Depending on the selected action SMS or Voice Call tab, the corresponding Twilio Message or Call API will be triggered for communication. 
For this demo, we used the Twilio APIs for sending SMS and making pre-recorded calls, but you can use any cloud communication platform of your choice.

    const context = { };
    async function getPhoneNumbers() {
const phoneFieldsDropdown = document.getElementById('phone-fields-dropdown');
const selectedValues = Array.from(phoneFieldsDropdown.options).filter(option => option.selected).map(option => option.value);
    if (!selectedValues.length) {
return showAlert('error', 'Please select atleast one phone field');
}
const ids = context.recordIds.map(x => `'${x}'`).join(', ');
    const select_query = `SELECT ${selectedValues.join(', ')} FROM ${context.module} WHERE id in (${ids})`;
    const {data} = await ZOHO.CRM.API.coql({select_query});
    const phoneNumbers = [];
data.forEach(x => {
        Object.keys(x).forEach(key => {
            if (key !== 'id' && x[key]) {
                phoneNumbers.push(x[key]);
            }
        });
});
    return phoneNumbers;
}
    ZOHO.embeddedApp.on("PageLoad", function (data) {
// Get the current module name and selected record ids
const {Entity, EntityId} = data;
    context.module = Entity;
    context.recordIds = EntityId;
    // Get the phone fields for current module
    ZOHO.CRM.META.getFields({Entity}).then(
    function (response) {
const {fields} = response;
const phoneFields = fields.filter(x => x.data_type === 'phone').map(x => ({value: x.api_name, label: x.display_label }));
    new Choices('#phone-fields-dropdown', {
        removeItemButton: true,
    choices: phoneFields,
    placeholder: true,
    placeholderValue: 'Select Phone Fields to be used'
});
    ZOHO.CRM.UI.Resize({height:"400", width:"700"});
});
    // Initialize twilio credentials
    twilio.init("$YOUR_ACCOUNT_SID", "$YOUR_AUTH_TOKEN", "+YOUR_TWILIO_NUMBER");
})
    ZOHO.embeddedApp.init();

Try It Out!

To try this out, a fully functional code sample is attached to this post. All you have to do is replace your Twilio credentials on line 185 and everything else is already setup for you.

Widget in Action
  1. Select multiple records in the Leads module. 
  2. Click Broadcast (custom widget button) to open a streamlined interface (we have used Twilio for this demo).
  3. Select the Phone Fields to which you need to send the message / pre-recorded call. 
  4. Choose SMS or Voice Call in the tab based on your requirement.
  5. Enter your message and hit Send. 




                                    


Ta-daa! The messages go out to all the selected records immediately. You can also use any other third-party cloud communication platform of your choice instead of Twilio. 

Caution!

Since the Twilio Message and Call APIs are triggered from the UI, the Twilio authentication will be accessible to anyone with access to the Zoho CRM organization where this widget is deployed.

Similar Scenarios

  • Sales Teams can send follow-up reminders in bulk to multiple leads after an event. 
  • Support Teams can inform customers about system maintenance or updates by sending bulk notifications. 
  • Operation Teams can send updates on deliveries or service schedules to relevant contacts.  
We hope you found this post useful and engaging!

If you have any queries reach out to us at support@zohocrm.com or let us know in the comments section. 

Cheers! 

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

Additional Reading

  1. Zoho CRM Widget - An Overview, Installation and Creation, Mobile Compatibility, other Kaizens
  2. Zoho CRM - Custom Button, COQL API, Fields Metadata API, JS SDK for Widgets
  3. Twilio - Message API, Call API, Twiml(Twilio Markup Language)
--------------------------------------------------------------------------------------------------------------------------------------


    Access your files securely from anywhere







                          Zoho Developer Community






                                                • Desk Community Learning Series


                                                • Digest


                                                • Functions


                                                • Meetups


                                                • Kbase


                                                • Resources


                                                • Glossary


                                                • Desk Marketplace


                                                • MVP Corner


                                                • Word of the Day


                                                • Ask the Experts



                                                          • Sticky Posts

                                                          • Kaizen #197: Frequently Asked Questions on GraphQL APIs

                                                            🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                          • Kaizen #198: Using Client Script for Custom Validation in Blueprint

                                                            Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                          • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

                                                            Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
                                                          • Kaizen #193: Creating different fields in Zoho CRM through API

                                                            🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                          • Client Script | Update - Introducing Commands in Client Script!

                                                            Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands


                                                          Manage your brands on social media



                                                                Zoho TeamInbox Resources



                                                                    Zoho CRM Plus Resources

                                                                      Zoho Books Resources


                                                                        Zoho Subscriptions Resources

                                                                          Zoho Projects Resources


                                                                            Zoho Sprints Resources


                                                                              Qntrl Resources


                                                                                Zoho Creator Resources



                                                                                    Zoho CRM Resources

                                                                                    • CRM Community Learning Series

                                                                                      CRM Community Learning Series


                                                                                    • Kaizen

                                                                                      Kaizen

                                                                                    • Functions

                                                                                      Functions

                                                                                    • Meetups

                                                                                      Meetups

                                                                                    • Kbase

                                                                                      Kbase

                                                                                    • Resources

                                                                                      Resources

                                                                                    • Digest

                                                                                      Digest

                                                                                    • CRM Marketplace

                                                                                      CRM Marketplace

                                                                                    • MVP Corner

                                                                                      MVP Corner







                                                                                        Design. Discuss. Deliver.

                                                                                        Create visually engaging stories with Zoho Show.

                                                                                        Get Started Now


                                                                                          Zoho Show Resources


                                                                                            Zoho Writer Writer

                                                                                            Get Started. Write Away!

                                                                                            Writer is a powerful online word processor, designed for collaborative work.

                                                                                              Zoho CRM コンテンツ





                                                                                                Nederlandse Hulpbronnen


                                                                                                    ご検討中の方




                                                                                                          • Recent Topics

                                                                                                          • email moderation issue when email is sent in the name of a mail group

                                                                                                            Symptom: an email that is sent by a mail group moderator in the name of a moderated mail group is held back for approval. Reproduction: Create a moderated mail group with members and moderators. Allow that mails can be sent in the name of the group (extended settings). Send an email to the group as a group moderator, but in the name of the group. This mail is held back for moderation which is unexpected. Expected: A mail sent by group moderator to a moderated group are not held back for moderation
                                                                                                          • blank page after login

                                                                                                            blank page after logging into my email account Thanks you
                                                                                                          • Introducing the revamped What's New page

                                                                                                            Hello everyone! We're happy to announce that Zoho Campaigns' What's New page has undergone a complete revamp. We've bid the old page adieu after a long time and have introduced a new, sleeker-looking page. Without further ado, let's dive into the main
                                                                                                          • Always display images from this sender – Is this feature available?

                                                                                                            In Zoho mail, I had my "Load external images" setting set to "Ask me", and that's fine. That's the setting I prefer. What's not fine though is I always need to tick "Display now" for each email I get, regardless if I've done that multiple times from several
                                                                                                          • Function #9: Copy attachments of Sales Order to Purchase Order on conversion

                                                                                                            This week, we have written a custom function that automatically copies the attachments uploaded for a sales order to the corresponding purchase order after you convert it. Here's how to configure it in your Zoho Books organization. Custom Function: Hit
                                                                                                          • Free webinar: Security that works: Building resilience for the AI-powered workforce

                                                                                                            Hello there, Did you know that more than 51% of organizations worldwide have experienced one or more security breaches, each costing over $1 million in losses or incident response? In today’s threat landscape, simply playing defense is no longer enough.
                                                                                                          • "Subject" or "Narration"in Customer Statement

                                                                                                            Dear Sir, While creating invoice, we are giving in "Subject" the purpose of invoice. For Example - "GST for the month of Aug 23", IT return FY 22-23", "Consultancy", Internal Audit for May 23". But this subject is not coming in Customer Statement. Only
                                                                                                          • Apply Vendor Credit Automatically

                                                                                                            Hello!!! Is there a way where in we can apply vendor credits automatically on the FIRST OUTSTANDING BILL of the vendor?? We have lots of VENDOR CREDITS ISSUES mostly!!! Applying it manually is a pain for us. Would be great if we have a way to apply the
                                                                                                          • Zoho Notebook Sync problem

                                                                                                            I'm facing a problem with syncing of notebook on android app. It's not syncing. Sometimes it syncs after a day or two.  I created some notes on web notebook but it's not syncing on mobile app. Please help!!!!
                                                                                                          • Apply Vendor Credits Automatically

                                                                                                            We are bulk importing Vendor credits in Zoho Books!!! Is there a way to apply vendor credits automatically to the first UNPAID bill of the Vendor?
                                                                                                          • Cant Save Gauge on Creator Page

                                                                                                            How to Save Gauge on Creator Page see movie https://vimeo.com/1116410860?share=copy#t=0
                                                                                                          • Apply Advance option not shown in report

                                                                                                            We are facing an issue in Zoho Expenses. While approving an Expense Report, the "Apply Advance" option is not appearing under the three dots (More Options). Details: Module: Expense Reports Issue: "Apply Advance" option not visible Status of Report: Awaiting
                                                                                                          • Auto Capitalize First Letter of Words

                                                                                                            Hi I am completely new to ZOHO and am trying to build a database. How can i make it when a address is entered into a form field like this: main st it automatically changes is to show: Main St Thank You
                                                                                                          • Follow-up emails via Workflow Automation not staying in the same thread

                                                                                                            Dear Zoho Support Team, I am currently using Workflow Automation in Zoho Campaigns to send follow-up emails. In my test case, I noticed the following behavior: All emails in the automation have the same subject line. If the follow-up email is sent within
                                                                                                          • Client Script refuses to set an initial value in Subform field

                                                                                                            I tried a very simple, 1 line client script to set a default value in a custom subform field when the "Add Row" button is clicked and the user is entering data. It does not work - can someone tell me why? ZDK documentation suggests this should be doable.
                                                                                                          • Emails Are Not Being Delivered to My Inbox

                                                                                                            Hello Zoho Support Team, I am experiencing an issue with my Zoho Mail account. The most important problem is that emails are not being delivered to my inbox. Details: My Zoho Mail address: info@coreforcelife.com What happens: I am not receiving any incoming
                                                                                                          • Help Center IFrame Issue

                                                                                                            I have had a working Help Center on my website using an iframe for a while. But now for some reason the sign in page gets a refused to connect error. Can someone please help. If I go to the url manually it works correclty
                                                                                                          • Staff rules

                                                                                                            Hi! Do you people know what are the default staff rules when a new booking is created? We have two staff members in my team (me as the admin, and my employee). As we share the same services, I'm wondering how Zoho will pick the staff for new apointments.
                                                                                                          • Comment Templates

                                                                                                            Is it possible to add a template option for comments? We have some agents in the process who's responses require a pre-formatted layout. It would be incredibly handy to have a template for them where they can insert the template and then add their responses
                                                                                                          • [ZohoDesk] Improve Status View with a new editeble kanban view

                                                                                                            A kanban view with more information about the ticket and the contact who created the ticket would be valueble. I would like to edit the fields with the ones i like to see at one glance. Like in CRM where you can edit the canvas view, i would like to edit
                                                                                                          • Adding Markdown text using Zoho Desk API into the Knowledge Base

                                                                                                            Hi Zoho Community members, We currently maintain the documentation of out company in its website. This documentation is written in markdown text format and we would like to add it in Zoho Knowledge Base. Do you know if there is REST API functionality
                                                                                                          • An Exclusive Session for Zoho Desk Users: AI in Zoho Desk

                                                                                                            A Zoho Community Learning Initiative Hello everyone! This is an announcement for Zoho Desk users and anyone exploring Zoho Desk. With every nook and corner buzzing, "AI's here, AI's there," it's the right time for us to take a closer look at how the AI
                                                                                                          • Shared values: From classroom lessons to teaching moments in customer service

                                                                                                            While the world observes Teachers’ Day on October 5, in India, we celebrate a month earlier, on September 5, to mark the birth anniversary of Dr. Sarvepalli Radhakrishnan, a great teacher, renowned scholar, educationist, and advocate for empowerment.
                                                                                                          • Create a list of customers who participated in specific Zoho Backstage events and send them an email via Zoho CRM

                                                                                                            How to create a list of customers who participated in specific Zoho Backstage events and send them an email via Zoho CRM? I was able to do a view in CRM based on customer that registered to an event, but I don't seems to be able to include the filter
                                                                                                          • Zoho Desk blank page

                                                                                                            1. Click Access zoho desk on https://www.zoho.com/desk/ 2. It redirects to https://desk.zoho.com/agent?action=CreatePortal and the page is blank. Edge browser Version 131.0.2903.112 (Official build) (arm64) on MacOS
                                                                                                          • I hate the new user UI with the bar on the left

                                                                                                            How can I reverse this?
                                                                                                          • Question regarding import of previous deals...

                                                                                                            Good afternoon, I'm working on importing some older deal records from an external sheet into the CRM; however, when I manually click "Add New Deal" and enter the pertinent information, the deal isn't appearing when I look at the "Deals" bar on the account's
                                                                                                          • Client Script also planned for Zoho Desk?

                                                                                                            Hello there, I modified something in Zoho CRM the other day and was amazed at the possibilities offered by the "Client Script" feature in conjunction with the ZDK. You can lock any fields on the screen, edit them, you can react to various events (field
                                                                                                          • One person/cell phone to manage multiple accounts

                                                                                                            Hi. I have a personal Free account to keep my own domain/emails. Now I need to create a Business account to my company's own domain, but I have only one mobile phone number I use to everything. How do I do to manage this? Can I manage a Free domain and
                                                                                                          • Tracking KPIs, Goals etc in People

                                                                                                            How are Zoho People users tracking employee targets in People? For example, my marketing assistant has a target of "Collect 10 new customer testimonials every month". I want to record attainment for this target on a monthly basis, then add it to their
                                                                                                          • Zoho Desk: Ticket Owner Agents vs Teams

                                                                                                            Hi Zoho, We would like to explore the possibility of hiding the ‘Agents’ section within the Ticket Owner dropdown, so that we can fully utilise the ‘Teams’ dropdown when assigning tickets. This request comes from the fact that only certain agents and
                                                                                                          • Can not Use Attachment Button on Android Widget

                                                                                                            this always pops up when I touch the attach button on android widget. going to settings, there is no storage permission to be enabled. if I open the app, and access the attach feature there, I can access my storage and upload normally.
                                                                                                          • Announcing new features in Trident for Mac (1.24.0)

                                                                                                            Hello everyone! Trident for macOS (v.1.24.0) is here with interesting features and thoughtful enhancements to redefine the way you plan and manage your calendar events. Here's a quick look at what's new. Create calendar events from emails. In addition
                                                                                                          • Vendor Master Enhancements for Faster Purchase Entry

                                                                                                            I’d like to suggest a few features that will improve accuracy and speed during purchase voucher entry: Automated Item Tax Preference in Vendor Master Add an option to define item tax preference in the vendor master. Once set, this preference should automatically
                                                                                                          • Mass Mail Statistics - Number of unsent emails

                                                                                                            How do I find out which emails were not sent?
                                                                                                          • Est-il possible d'annuler l'envoi d'un mail automatique ?

                                                                                                            Bonjour, Lorsque je refuse un candidat, il reçois un mail dans les 24h pour l'informer que sa candidature n'est pas retenue. J'ai rejeté un candidat par erreur. Savez-vous s'il possible d'annuler l'envoi de ce mail ? Merci d'avance pour votre aide.
                                                                                                          • embed a form in an email

                                                                                                            Hello, how to embed a form in an email that populates Zoho CRM cases? I would like to send emails to a selected audience offering something. In the same email the recipients - if interested - instead of replying to can fill in a Zoho CRM form that creates
                                                                                                          • Zoho Bookings - Reserve with Google

                                                                                                            Does Zoho Bookings plan to to integrate with Reserve with Google?
                                                                                                          • How to add Zoho demo site page designs to my Zoho Sites website

                                                                                                            Hi, I would like to add the design from the following demo URLs into my current Zoho website. I have already created two new pages on my site, named “Menu2” and “Menu3.” For the “Menu2” page, I want to use the design from this demo: https://naturestjuice-demo.zohosites.com/menu
                                                                                                          • Digest Août - Un résumé de ce qui s'est passé le mois dernier sur Community

                                                                                                            Bonjour chère communauté ! Voici le résumé tant attendu de tout ce qui a marqué Zoho le mois dernier : contenus utiles, échanges inspirants et moments forts. 🎉 Découvrez Zoho Backstage 3.0 : une version repensée pour offrir encore plus de flexibilité,
                                                                                                          • Next Page