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

                                                                                                            • Prevent Unapproved Quotes from Exporting to Zoho CRM Finance Module

                                                                                                              Is it possible to prevent unapproved quotes in Zoho Books from being exported from Zoho Finance module inside Zoho CRM?
                                                                                                            • ZOHO BOOKS - RECEIVING MORE ITEMS THAN ORDERED

                                                                                                              Hello, When trying to enter a vendor's bill that contains items with bigger quantity than ordered in the PO (it happens quite often) - The system would not let us save the bill and show this error: "Quantity recorded cannot be more than quantity ordered." 
                                                                                                            • Updates for Zoho Campaigns: Merge tag, footer, and autoresponder migration

                                                                                                              Hello everyone, We'd like to inform you of some upcoming changes with regard to Zoho Campaigns. We understand that change can be difficult, but we're dedicated to ensuring a smooth transition while keeping you all informed and engaged throughout the process.
                                                                                                            • Process between CRM and Campaigns to ensure double opt-in contacts?

                                                                                                              I would like to ask for a few clarifications to ensure we fully comply with best practices and legal requirements: According to the documentation (Zoho Campaigns CRM sync – Default option), the best and recommended way to sync contacts is by using the
                                                                                                            • What's New in Zoho Inventory | August – October 2025

                                                                                                              Hello customers, The last quarter has been incredibly productive! We've released a powerful slate of new features and enhancements in Zoho Inventory designed to give you better control, greater efficiency, and expanded functionality across your inventory
                                                                                                            • Search not working!

                                                                                                              I have items in my notebook tagged but when I search for a tag nothing comes up! Any fix for this?
                                                                                                            • Let's Talk Recruit: Meet Zia, your all-in-one AI assistant (Part-2)

                                                                                                              Welcome back to Let’s Talk Recruit series. In Part 1, we introduced Zia and how AI is reshaping the way recruiters work. This time, we’re taking a closer look at how far Zia has come and how each update continues to simplify your everyday tasks. When
                                                                                                            • Zoho Developer - Feature Request Platform

                                                                                                              Zoho Developer is one of the most underatted platform in zoho ecosystem, however, it may just be what zoho needs to welcome more people to use Zoho Services. The more developers you have creating zoho creator applications and zoho extensions the more
                                                                                                            • Last/Previous month in relative date filter

                                                                                                              In the relative date filter, what is the difference between "Last 2 months" and "Previous 2 months"? So, if we are on 25-July, then is my understanding correct of the following: Last 2 months :=:      25-May~24 July Previous 2 months :=:     01-May~30-June Thanks.
                                                                                                            • Tags get removed from notes on mobile

                                                                                                              I don't know why this keeps happening even after all these app updates but if you log out and log back into the app or you reinstall it, all the tags you assigned to your notes get taken off, but if you go on the desktop version the tags are still there.
                                                                                                            • Show Zoom Link in Recipient's Calendar

                                                                                                              We set up meetings within a record, selecting the "Make this an online meeting".  We use Zoom. Most of the recipients go to their calendar (usually Gmail or Outlook, corporate) to join the Zoom meeting, but there is no Zoom link in the calendar. Can this
                                                                                                            • How to fetch custom fields for time entries in Zoho Project API v3

                                                                                                              In the previous Zoho Projects REST API, we were able to retrieve custom field details for time entries, including picklist options, using the endpoint: GET /restapi/portal/[PORTAL_ID]/timesheetcustomfields In the new Zoho Projects API v3, we tried using
                                                                                                            • VAT rates - exempt and out of scope

                                                                                                              Good Evening, UK based company here. I am a bit confused in respect of setting up VAT rates for exempt goods and services; at present I am simply leaving the VAT rate blank in the transactions in order to prevent any VAT appearing in the VAT return. When
                                                                                                            • Introducing Lead Capture: Empower exhibitors to capture leads effortlessly

                                                                                                              Events provide a great opportunity for exhibitors to generate awareness and engage with potential customers. Efficiently distributing attendee information to exhibitors through a seamless and secure way is of paramount importance. Introducing Lead Capture
                                                                                                            • Work Order Creation Issue

                                                                                                              Dear Team, I would like to inquire about the daily limit for Work Order creation in Zoho FSM. Yesterday (02/05/2025) at around 6:30 PM GST, I attempted to create a Work Order, but I have been unable to do so since then. Please find the attached image
                                                                                                            • Accessing shared mailboxes through Trident (Windows)

                                                                                                              Hi, I have a created a couple of shared mailboxes. The mailboxes are showing up on the browser based Zoho workplace, but I cannot seem to figure out how to access my shared inboxes through Trident (Windows). Am I missing something or is this feature not
                                                                                                            • URGENT: ChatGPT Extension Failing With “gpt-3 Access Error” (Priority Support)

                                                                                                              Appreciate support reviewing this urgently. I am a Priority Support member and need immediate clarification on a recurring issue involving the ChatGPT extensions inside Zoho Desk. Both extensions — including the version created and published by Zoho —
                                                                                                            • Zoho Desk iOS update: Custom buttons, follow/ unfollow option on tickets

                                                                                                              Hello everyone! In the most recent Zoho Desk iOS app update, we have brought in support to access the custom buttons configured on web app(desk.zoho.com). Using custom buttons you can seamlessly execute predefined actions directly from their mobile devices,
                                                                                                            • Zoho pdf suit

                                                                                                              Pl. design products with following feature: 1. Please add all features given in Ilovepdf website to work on pdf files. It is mandatory to use pdf in court work. 2. Courts have prescribed New Times Roman, pl. add this font as well 3. Indexing, signature
                                                                                                            • Zoho Not Working

                                                                                                              Today Zoho not wokring
                                                                                                            • Dynamically autofill fields with URL parameters

                                                                                                              I have a zoho form embedded in my organization's WP website. Our users find their account with a search tool, and then can select to open this page with the embedded form. The URL of the page holds the parameter that I need, but I cannot figure out how
                                                                                                            • User Automation: User based workflow rules & webhooks

                                                                                                              User management is an undeniable part of project management and requires adequate monitoring. As teams grow and projects multiply, manual coordination for updating users & permissions becomes difficult and can give way to errors. User automation in Zoho
                                                                                                            • Integrate Projects for Desk KB article release tasks

                                                                                                              Could you please look into the possibility of integrating project tasks for Zoho Desk article release processes? We are looking for an internal integration between Zoho Projects and Zoho Desk's KB article drafting, reviewing and releasing tasks. We could
                                                                                                            • Issue in Annual Leave

                                                                                                              We created a policy to credit 21 days at the Start of the Year An employee has taken 16 days of leaves thought the year, so we expect to see 5 Leaves remaining right? But Zoho People is Showing 12 Days of Leave Balance Available If we check the Leave
                                                                                                            • Use the searchBy parameter to find user by email address

                                                                                                              I'm trying to find a user is Zoho Desk via the Api. In the documentation I see that there is the possibility to add a searchBy parameter in the request. But I can't find how the search values should be formatted. I've tried multiple things and get either
                                                                                                            • Zoho CRM Community Digest - September 2025 | Part 2

                                                                                                              Hello Everyone! Mid-September vibes: fresh tips, smart hacks, and practical Zoho CRM updates all in one place. Let’s dive in. Product Updates: The All-New Address Field! The new Address field type makes it easier to capture complete addresses in one structured
                                                                                                            • Zoho Vault API: Create new Secrets

                                                                                                              Hello, I attempt to Post Secrets to the vault, since the encrypted entries are almost impossible to decrypt, since there is no documentation on how to decrypt them. Like with the lack of documentation on how to descrypt, there are missing information regarding on how to create new secrets/post secrets. Source: https://www.zoho.com/vault/api/#create-a-new-secret When I try to send JSON Informationen as a POST-Request I only receive the error message: {     "operation": {         "result": {             "error_code": "",
                                                                                                            • CRM and Finance Tab - Add Invoice "Subject " Column

                                                                                                              When On a contact in CRM, and you click the Zoho Finace tab, how can I put in the invoice subject line? Or even a custom field for this.  We need to see what that invoice is for, without opening it.   If we have tons of invoices we need a way to quick
                                                                                                            • Collections Management: #4 Before, During & After Payment Processing

                                                                                                              "Mark, I think the payment link isn't working. Can you send it again?" Staring at a message, Mark got on his phone. This was the third time the same customer had asked him that week. A few minutes later, another message came, "Hey, the invoice total seems
                                                                                                            • Account name not populating when importing contacts

                                                                                                              When importing a csv file to add contacts the account name is blank? Every other filed gets mapped and imported correctly, i.e contact name, phone number. However not the account name which I have mapped to "company" field in my csv file
                                                                                                            • Suggestion to improve zoho writer

                                                                                                              I am using your product, I believe it is very useful, however, i was writing a note and I needed to draw an arrow in different angles to explain a point and I couldn't. it would be helpful, to add draw functions to the zoho writer. thanks
                                                                                                            • webhook basic authentication

                                                                                                              II want to use a webhook to send out a SMS. Unfortunately Twilio does not use an authToken but basic authentication. I created the webhook as POST and get this url: https://{username}:{password}@api.twilio.com/2010-04-01/Accounts/{account}/Messages?body=<BODY>&to=+155555555&from=+1555555555
                                                                                                            • Managing functions

                                                                                                              Can someone let me know if there are any plans to improve the features for managing functions in CRM? I have lots of functions and finding them is hard. The search only works on the function name and the filter only works on function type. I have created
                                                                                                            • Good news! Calendar in Zoho CRM gets a face lift

                                                                                                              Dear Customers, We are delighted to unveil the revamped calendar UI in Zoho CRM. With a complete visual overhaul aligned with CRM for Everyone, the calendar now offers a more intuitive and flexible scheduling experience. What’s new? Distinguish activities
                                                                                                            • Custom function return type

                                                                                                              Hi, How do I create a custom deluge function in Zoho CRM that returns a string? e.g. Setup->Workflow->Custom Functions->Configure->Write own During create or edit of the function I don't see a way to change the default 'void' to anything else. Adding
                                                                                                            • Issue with Hour Calculation in Zoho People Attendance Module

                                                                                                              I have noticed an issue in the attendance regularization feature of Zoho People. When trying to regularize past dates, the total working hours are not calculated correctly. For example, if I enter a check-in and check-out time for a previous day, the
                                                                                                            • Free webinar alert on November 19 - Email driven strategies - Master personality based styles

                                                                                                              Hello Zoho Community! Want to make email management easier, smarter, and more you? We’ve got just the session for you! Join our interactive, game-based webinar to discover how Zoho Mail adapts to your personality and work style. Learn practical hacks,
                                                                                                            • Push Notification for New Bookings in Zoho Bookings App

                                                                                                              when a someone schedules an appointment through the booking page, is there any option to receive a push notification in the mobile app?
                                                                                                            • Automation in Zoho Sprints

                                                                                                              Hi. I have a Sprints board with the following statuses: ToDo, InProgress, CodeReview, Testing, Preprod, Live When a ticket is moved from e.g. Testing to Preprod, the following tags should be modified: remove 'tested OK' remove 'ready for Preprod' add
                                                                                                            • Export Purchase orders as Excel

                                                                                                              Is it possible to export purchase orders as excel rather than PDF? Our suppliers don't want orders made in PDF, they need it to be excel
                                                                                                            • Next Page