Kaizen #67 - Email the contact roles of a deal using Functions

Kaizen #67 - Email the contact roles of a deal using Functions

Happy New Year everyone! We hope you had a wonderful holiday season and are ready to tackle all of the challenges and opportunities that the new year brings.

      In the previous post, we discussed the Contact Roles APIs in Zoho CRM. Today, we will show you how you can send emails to all the contact roles associated with a Deal, using a custom function.

Function to email all contact roles of a Deal

      The Contact Roles related list allows you to link multiple contacts to a single deal and specify their role in the deal. Often you may want to send emails to all the contacts associated with a deal in certain situations. For example, you may want to update all the contacts on the status of the deal, invite all the contacts to a webinar or event related to the deal, or send an important update about the deal. By using a custom function, you can easily send emails to all the contact roles associated with a deal. 

Create and execute the Function

Step 1: Go to Setup > Automation > ActionsFunctions.
Step 2: Click Configure Function.
Step 3: Click Write your own.
Step 4: Enter the following details :
            Function Name 
            Display Name
            Description
            Choose the function category as Leads.
Step 5: Copy and paste the following code in the editor :
 
  relatedcontroles = zoho.crm.getRelatedRecords("Contact_Roles","Deals",input.dealId.toLong());
  salutation = "<p>Hello!!<br /><br /></p>";
  signature = "<br /><br /><p>Best Regards,<br />Patricia Boyle</p>";
  sub = input.emailSubject.toString();
  str = input.emailContent.toString();
  str = concat(salutation,str);
  str = concat(str,signature);
  for each  role in relatedcontroles
  {
emailAddress = role.get("Email");
info emailAddress;
sendmail
[
from :zoho.adminuserid
to :emailAddress
subject :sub
message :str
]
  }


Step 6: Click on Edit Arguments and add the following and then click Save.


Step 7: Click on Save and Execute.
Enter the deal ID, email subject, and content, and click Save to send emails to all the contact roles associated with the corresponding deal. 

Function to Email specific contact roles of a Deal with email template

      There may be times when you want to send emails to only selected contact roles of a deal. For example, when you want to discuss or update the financial aspects of the deal, or if you are discussing the budget for the deal and want to discuss cost-saving benefits, you might want to send emails only to the finance team of the prospective organization. Or, when you are reviewing legal or compliance considerations, or negotiating the terms of the deal, you might want to send an email only to the legal team to discuss these considerations. You can use an email template defined in your account to send the emails instead of drafting the entire content again in the functions.. You can achieve this by using a custom function as well.

Create and execute the Function

Create the connector

Step 1: Go to Setup > Developer Space > Connections.
Step 2: Click Create Connection.
Step 3: Pick the  Zoho OAuth service.
Step 4: Specify the Connection details : Connection Name and Connection Link Name.
Step 5: Choose the following scopes :
ZohoCRM.templates.email.READ
ZohoCRM.modules.All
Step 6: Click Create and Connect and authenticate your connection.

After creating and authenticating your connection, complete the following steps:

Step 1: Go to Setup > Automation > Actions >  Functions.
Step 2: Click Configure Function.
Step 3: Click Write your own.
Step 4: Enter the following details :
            Function Name 
            Display Name
            Description
            Choose the function category as Leads.
Step 5: Copy and paste the following code in the editor :
 
  relatedcontroles = zoho.crm.getRelatedRecords("Contact_Roles","Deals",dealId);
  contactroles = invokeurl
            [
                  url :"https://www.zohoapis.com/crm/v4/Contacts/roles"
                  type :GET
                  connection: "connection_name"
            ];
  roles = contactroles.getJson("contact_roles");
  roles_id = List();
  for each name in roles
  {
role_name = name.getJson("name");
role_id = name.getJson("id");
if(wanted_roles.contains(role_name)){
roles_id.add(role_id);
}
  }
  info roles_id;
  emails = List();
  for each roleid in roles_id
  {
     for each record in relatedcontroles
     {
  if ( record.get("Contact_Role") == roleid ) 
      {
emails.add(record.get("Email"));
      }
    }
  }
  info emails;
  p = contactroles.getJSON("body");
  template = invokeurl
  [
type :GET
connection: "connection_name"
];
  econt = template.getJson("email_templates").toMap().get("content");
  sub = template.getJson("email_templates").toMap().get("subject");
  u = template.getJSON("body");
  for each  email in emails
   {
  sendmail
  [
  from :zoho.adminuserid
  to :email
  subject :sub
  message : econt
  content type :HTML
  ]
  }


Step 7: Replace the connection_name with the name of your connector.
Step 6: Click on Edit Arguments and add the following and then click Save.


Step 7: Click on Save and Execute
Enter the deal ID, the email template ID, and the contact roles you want to send the email to, and click Save to send emails.

We hope you found this post useful. We will be back next week with more interesting topics.
Write to us at support@zohocrm.com if you have any questions, or let us know in the comment section. 

Previous Kaizen Post : Contact Roles APIs

    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 #217 - Actions APIs : Tasks

                                                            Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
                                                          • Kaizen #216 - Actions APIs : Email Notifications

                                                            Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are
                                                          • Kaizen #152 - Client Script Support for the new Canvas Record Forms

                                                            Hello everyone! Have you ever wanted to trigger actions on click of a canvas button, icon, or text mandatory forms in Create/Edit and Clone Pages? Have you ever wanted to control how elements behave on the new Canvas Record Forms? This can be achieved
                                                          • Kaizen #142: How to Navigate to Another Page in Zoho CRM using Client Script

                                                            Hello everyone! Welcome back to another exciting Kaizen post. In this post, let us see how you can you navigate to different Pages using Client Script. In this Kaizen post, Need to Navigate to different Pages Client Script ZDKs related to navigation A.
                                                          • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

                                                            Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the


                                                          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

                                                                                            Get Started. Write Away!

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

                                                                                              Zoho CRM コンテンツ






                                                                                                Nederlandse Hulpbronnen


                                                                                                    ご検討中の方







                                                                                                            • Recent Topics

                                                                                                            • Collaboration with free plan user.

                                                                                                              Hello. Do both users need to be on Pro plan to collaborate? Or can a Pro user share a note with a free plan user with the ability to edit?
                                                                                                            • Zoho Inventory Now Supports VeriFactu for Businesses in Spain

                                                                                                              Starting from January 1, 2026, Spain requires real-time invoice reporting for all B2B transactions. From July 2026, this requirement will extend to B2C transactions as well. All reporting must be carried out through the VeriFactu to AEAT (Agencia Estatal
                                                                                                            • Connection to other user

                                                                                                              Zoho Cliq handles sharing of Custom OAuth Connections that require individual user logins.
                                                                                                            • In arattai received message can't be deleted

                                                                                                              The issue has been noticed in following: arattai app (Android) arattai app (Window) arattai web While the message posted by me may be deleted, the ones received from others can't be. The item <Delete> change to <Report> when the message is a received
                                                                                                            • Analytics Portal

                                                                                                              I have the "standard plan" and want to explore the portal option; I activated the 15-day trial but do not see the pricing for the add-on. How can I get the price under "Upgrade add-ons." Thanks Rudy
                                                                                                            • Can I filter a Lookup field to only show related records from another Lookup in Zoho CRM?

                                                                                                              In our Leads module, we have two Lookup fields: Recruitment Agency – the agency that the lead came from Recruiter – the individual contact from that agency who sent us the lead Both fields link correctly to their respective records in CRM. However, our
                                                                                                            • Zoho Books API invoice email bouncing with 'relaying-issues' error

                                                                                                              I have waited over 30 days for zoho books uk to assist with the following and i have had no replies or tickets erronously closed. The service has been terrible - very unlike zoho! So i am raising this here hoping that a community member can assist: Hello,
                                                                                                            • How do I filter contacts by account parameters?

                                                                                                              Need to filter a contact view according to account parameter, eg account type. Without this filter users are overwhelmed with irrelevant contacts. Workaround is to create a custom 'Contact Type' field but this unbearable duplicity as the information already
                                                                                                            • Zoho Writer to Zoho Sign Template Misalignment – Request for Community

                                                                                                              We are currently facing a critical issue impacting our live business operations due to a misalignment problem between Zoho Writer templates and Zoho Sign output. Issue Summary: We have an automated workflow in Zoho CRM using Deluge scripts that generates
                                                                                                            • Account blocked

                                                                                                              Yesterday I got my Zeptomail account blocked due to too many hard bounces. My account is used exclusively for sending transactional emails (eg. your order has been shipped, a form has been filled, etc) and the sudden blocking impacted hundreds of websites
                                                                                                            • Migration Tool Download

                                                                                                              Since apparently you have to ask for the migration tool to download (why?), I need the download for the migration tool for exchange servers. Please forward link, thanks.
                                                                                                            • IF Formula

                                                                                                              Hi, I'm having trouble setting up a custom formula in a field. Can you help me with it? The formula should do the following: If the created date is less or equal to 30 days the field should display a string New in pieline or Exisitng pipeline if above
                                                                                                            • Autorespond to one specific sender

                                                                                                              Is there any way to create a rule or filter that sends an automatic reply to messages from one specific email address?  I really need to set up something like a "vacation response" but only for one "received from" address.
                                                                                                            • View comprehensive logs of all actions in Custom Module History

                                                                                                              Hello everyone, We are happy to announce our new feature, Detail View in Custom Module History, which enhances visibility, control and accountability over your records. Users can now access a detailed timeline of every action that has been performed on
                                                                                                            • Track ZohoForm Conversion using Postmessage event

                                                                                                              Hi, I’ve been using a third-party lead tracking tool to capture leads from my website along with their source. Earlier, with the HubSpot form, the third-party script was able to detect the postMessage event that iframe forms typically send back to the
                                                                                                            • Email task creator when task is updated/marked complete

                                                                                                              I am looking for a way to notify the creator of a task in zoho todo when - Task is updated Task is closed Comments entered 1 and 2 are critical, and I cannot find a zoho flow to do this. There is no way that as a manager I will know when someone has completed
                                                                                                            • Email Recall Feature In Zoho Mail Which Should Also Work For Outside Organisation Members

                                                                                                              Add a feature to recall or undo sending an email within a configurable short time window (e.g., 30 seconds to 2 minutes) after hitting send, similar to Gmail’s undo send. Currently the sent email can not be recall If the recipient is not from within your
                                                                                                            • How to implement calculating average value of averaged values?

                                                                                                              Hi, I'm trying to implement a formula in my layout for a module that calculates the average of 2 averaged values, but I can't do so using the formula custom field. To calculate the 2 averaged values, I could use the formula custom field, but in the custom
                                                                                                            • Zoho Recruit update published job boards

                                                                                                              If we have a job thats already posted on several different job boards and we edit this job in zoho recruit (e.g. the description of the job), does this then automatically update this new information to all the published job boards?  If not, how does the
                                                                                                            • Narrative 14: The magic bazaar of Desk

                                                                                                              Behind the scenes of a successful ticketing system: BTS Series Narrative 14: The magic bazaar of Desk Marketplace is a centralized platform where users can discover Zoho and third-party applications that can be integrated with their Desk account to facilitate
                                                                                                            • Collections Management: #2 Late Payment Automation

                                                                                                              "Sir, I'll process the payment by evening, please don't apply any late payment charges", the customer said while arranging papers on his desk. Sanjay stood there with a tired smile. He had already visited twice that week. Payment collection was one thing.
                                                                                                            • Create a table in the layout section of modules

                                                                                                              Dear Sirs, I would like to know whether is possible to create a table under new fields in layouts section of modules. In fact in this section there are single line, multi line, pick list, multi-select, date, formula etc. but I am unable to add a table
                                                                                                            • Nimble enhancements to WhatsApp for Business integration in Zoho CRM: Enjoy context and clarity in business messaging

                                                                                                              Dear Customers, We hope you're well! WhatsApp for business is a renowned business messaging platform that takes your business closer to your customers; it gives your business the power of personalized outreach. Using the WhatsApp for Business integration
                                                                                                            • Power of Automation :: Automatic Task Status Handling for Users

                                                                                                              Hello Everyone, A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate
                                                                                                            • Question - why no way to input a 'tool description' and 'tree of 'tools'

                                                                                                              Every business is different, with different business processes. To be truly useful Zoho MCP needs to have user editable tool descriptions (or ruleset) and a 'tool tree' so that the LLM is context aware when being used. For example, the tool description
                                                                                                            • Develop Zoho Meeting as a Full Native Application (Not a Browser Wrapper)

                                                                                                              Hello Zoho Meeting Team, Hope you are doing well. We would like to suggest an important improvement regarding the Zoho Meeting desktop application. At the moment, the Zoho Meeting app feels more like a mini browser window or an iframe that loads the web
                                                                                                            • Can I create a custom function for chart of accounts?

                                                                                                              I'm trying to add a custom function that should run whenever a record in the Chart of Accounts module is edited, but on the form for creating a new function, the module dropdown does not include the chart of accounts as an option.
                                                                                                            • billing

                                                                                                              hi, I am being billed $12/year, and I can't remember why. My User ID is 691273115 Thanks for your help, --Kitty Pearl
                                                                                                            • Automatic Matching from Bank Statements / Feeds

                                                                                                              Is it possible to have transactions from a feed or bank statement automatically match when certain criteria are met? My use case, which is pretty broadly applicable, is e-commerce transactions for merchant services accounts (clearing accounts). In these
                                                                                                            • Unable to confirm Super Admin assignment — confirmation button not working

                                                                                                              I’m trying to change the roles within my organization. I am currently a super admin and would like to add another user as a super admin. When I attempt to confirm the action, a screen appears asking for my password to verify my identity. However, when
                                                                                                            • Automation#36: Auto-create time-entry after performing the Blueprint transition

                                                                                                              Hello Everyone, This week’s edition focuses on configuring a custom function within Zoho Desk to streamline time tracking within the Blueprint. In this case, we create a custom field, and request the agent to enter the spending time within the single
                                                                                                            • Feature Request: Reviews

                                                                                                              Any chance we could get a "Reviews" element to put on sites? It should be extremely simple to do. Basically just take the comments box and add an option for a star rating. At the very least, it would be nice to have more customization options for the comment box so the text could be changed from "Comments" to "Reviews". I've looked at a bunch of embeddable review widgets but nothing meets my needs so this would be a great feature to have added to the site builder.
                                                                                                            • Can we handle a support like (incident management) project in Zoho Projects?

                                                                                                              Hi, I have a new profile of a project whereby we provide "ticket" base support to a client. They have a request and ideally we would handle comms via a email exchange logged in Zoho. Today we use Zoho Projects for all out projects, which means that we
                                                                                                            • Trying to show the actual Terms & Conditions on PDF

                                                                                                              Hi, On Zoho forms I am trying to have the actual terms and conditions that the user needs to accept also show on the pdf that they receive after. Right now it only says "Agreed". Please help.
                                                                                                            • Installing EMAIL Setup in New Domain

                                                                                                              Respected Support team, I'm facing an issue with cloudflare in Pakistan, I want to setup Zoho Mail Setup but I Don't know how to enable Zoho mail setup without cloudflare. My Website https://stumbleguyzzapk.com/, https://fakservices.com/ is using CF,
                                                                                                            • Enhancements to Zoho Meeting Annotator

                                                                                                              Hello Zoho Meeting Team, Hope you are doing well. We would like to share a few improvement suggestions regarding the Zoho Meeting Annotator used during screen sharing. While the current version provides helpful annotation tools, there are several limitations
                                                                                                            • Zoho Social/Marketing Plus - Addition to "Monitor" function

                                                                                                              It would be very helpful if the Monitor function would allow us to add a column to monitor hashtags in addition to pages and mentions. This is a common and very valuable function in other social listening tools.
                                                                                                            • Zoho forms - > Zoho desk multiple agents

                                                                                                              Hi! I would like to use a standard form to be used when we hiring people, so we looked at zoho forms for that. Now we would like to get that info in to Zoho desk and their different users shall take care of this ticket simultaneous . So, what would be
                                                                                                            • Almacenamiento

                                                                                                              Hola, Quisiera saber como podría hacer para bajar el almacenamiento de 5gb a mis usuarios, en otras palabras los quiero ir limitando de la cuota real, y luego ir agregando poco a poco la cantidad hasta llegar a los 5gb que me dan en el plan free. 
                                                                                                            • Zoho Invoice Now Supports VeriFactu for Businesses in Spain

                                                                                                              Starting from January 1, 2026, Spain requires real-time invoice reporting for all B2B transactions. From July 2026, this requirement will extend to B2C transactions as well. All reporting must be carried out through the VeriFactu to AEAT (Agencia Estatal
                                                                                                            • Next Page