Function-22: Automatically update field details from Contacts in Deals right at the creation stage

Function-22: Automatically update field details from Contacts in Deals right at the creation stage




Welcome back, everyone!

Last week, we learned how to update all member accounts simultaneously when the parent account is updated. This week, let's look at a custom function that helps you update the relevant details from contact records in deal records at the click of a button.

Business scenario:

The Deals module in Zoho CRM helps keep track of all your business opportunities. To ensure proper lead qualification process with all specifics, it is recommended to first create a lead, convert it into a contact, and simultaneously create and associate a deal with the contact. This when done with field mapping, helps retain all mapped details from the lead record to contact record and subsequently to the deal record.

However, not all businesses require creating a deal while converting the lead to a contact. Moreover, deal creation might come at a much later stage in some organizations. There is an inconvenience associated with this approach. While the deal gets associated with the contact record, all other details updated in the leads/contacts record doesn’t get updated in the deal record. Updating them manually defeats the purpose. In comes this week's custom function to the rescue. Add a button linked to this custom function in your Contacts module and update relevant details from the contact records inside the deal records in a jiffy. Use this custom function to automatically update the fields listed below from contact records to deal records:

  • Contact Name
  • Account Name
  • Title
  • Email
  • Phone
  • Mobile
  • Lead Source
  • Email Opt Out
  • Website
  • Address Information
  • Description
  • Related activities 
Before proceeding, ensure that you create the relevant custom fields in Deals module.

The scope of this custom function can be enhanced even further. Depending on your line of business, you might have certain permutations and combinations possible in your customer deals. Take, for example, the case of an automobile dealer. Say there are 3 variants of a particular car model with 4 different colors and various accessories options. Instead of updating these details manually, write a custom function for each of these combinations and associate that with a button. If a customer wants a specific combination that includes model, color, and enhancements, press the corresponding button and get the relevant fields updated. The code for this week doesn't include these scenarios. This is just to highlight the power of possibilities with custom functions.

Having to create multiple custom buttons might be a little time-consuming, but it's a one-time process and the benefits are worth the effort.

Getting started with the custom function:

  • Go to Setup > Customization > Modules and Fields > Select the 'Contacts' module > Links and Buttons > +Create new button.
  • Provide a name for the button. For example: “[The deal name]”. Add a description(optional).
  • Choose View page from the drop-down list.
  • Select Writing custom function from the subsequent drop-down.
  • Provide a name for the custom function. Add a description(optional).
  • Click “Free flow scripting”.
  • Copy the code given below.
  • Click “Edit arguments”.
  • Enter the name as “contId” and select the value as “Contact Id”.
  • Save the changes.

Note:
  • In Zoho CRM, the Deals module was formerly referred to as Potentials.

The script:

Code for Version 2.0 API:
 
contDetails = zoho.crm.getRecordById("Contacts", input.contId.toLong());
mp=map();
mp.put("Deal_Name",ifnull(contDetails.get("Full_Name"),""));
mp.put("Owner",ifnull(contDetails.get("Owner"),"").get("id"));
mp.put("Contact_Name",input.contId);
mp.put("Account_Name",ifnull(contDetails.get("Account_Name"),"").get("id"));
mp.put("Title",ifnull(contDetails.get("Title"),""));
mp.put("Email",ifnull(contDetails.get("Email"),""));
mp.put("Phone",ifnull(contDetails.get("Phone"),""));
mp.put("Mobile",ifnull(contDetails.get("Mobile"),""));
mp.put("Lead_Source",ifnull(contDetails.get("Lead_Source"),""));
mp.put("Email_Opt_Out",ifnull(contDetails.get("Email_Opt_Out"),""));
mp.put("Website",ifnull(contDetails.get("Website"),""));
mp.put("Mailing_Street",ifnull(contDetails.get("Mailing_Street"),""));
mp.put("Mailing_City",ifnull(contDetails.get("Mailing_City"),""));
mp.put("Mailing_State",ifnull(contDetails.get("Mailing_State"),""));
mp.put("Mailing_Zip",ifnull(contDetails.get("Mailing_Zip"),""));
mp.put("Mailing_Country",ifnull(contDetails.get("Mailing_Country"),""));
mp.put("Description",ifnull(contDetails.get("Description"),""));
create = zoho.crm.create("Deals", mp);
info create;
TaskDetails = zoho.crm.getRelatedRecords("Tasks","Contacts", input.contId.toLong());
for each task in TaskDetails
{
taskmap = Map();
 taskmap.put("What_Id",create.get("id"));
 taskmap.put("$se_module","Deals");
 updatetask = zoho.crm.update("Tasks",task.get("id"),taskmap);
 info updatetask;
}
EventDetails = zoho.crm.getRelatedRecords("Events","Contacts", input.contId.toLong());
for each events in EventDetails
{
eventmap = Map();
 eventmap.put("What_Id",create.get("id"));
 eventmap.put("$se_module","Deals");
 updateevent = zoho.crm.update("Events",events.get("id"),eventmap);
 info updateevent;
}
CallDetails = zoho.crm.getRelatedRecords("Calls","Contacts", input.contId.toLong());
for each call in CallDetails
{
callmap = Map();
callmap.put("What_Id",create.get("id"));
callmap.put("$se_module","Deals");
updatecall = zoho.crm.update("Calls",call.get("id"),callmap); 
info updatecall;
}
return "Success";

Code for Version 1.0 API:

contactIdStr = input.contId.toString();
contDetails = zoho.crm.getRecordById("Contacts", input.contId.toLong());
name = ifnull(contDetails.get("First Name"),"")+ " " + ifnull(contDetails.get("Last Name"),"");
mp=map();
mp.put("Potential Name",name);
mp.put("SMOWNERID",ifnull(contDetails.get("SMOWNERID"),""));
mp.put("CONTACTID",input,contId);
mp.put("Account Name",ifnull(contDetails.get("Account Name"),""));
mp.put("Title",ifnull(contDetails.get("Title"),""));
mp.put("Email",ifnull(contDetails.get("Email"),""));
mp.put("Phone",ifnull(contDetails.get("Phone"),""));
mp.put("Mobile",ifnull(contDetails.get("Mobile"),""));
mp.put("Lead Source",ifnull(contDetails.get("Lead Source"),""));
mp.put("Email Opt Out",ifnull(contDetails.get("Email Opt Out"),""));
mp.put("Website",ifnull(contDetails.get("Website"),""));
mp.put("Mailing Street",ifnull(contDetails.get("Mailing Street"),""));
mp.put("Mailing City",ifnull(contDetails.get("Mailing City"),""));
mp.put("Mailing State",ifnull(contDetails.get("Mailing State"),""));
mp.put("Mailing Zip",ifnull(contDetails.get("Mailing Zip"),""));
mp.put("Mailing Country",ifnull(contDetails.get("Mailing Country"),""));
mp.put("Description",ifnull(contDetails.get("Description"),""));
create = zoho.crm.create("Potentials", mp);
info create;
newpotId = create.get("Id");
TaskDetails = zoho.crm.getRelatedRecords("Tasks","Contacts", contactIdStr);
for each ele in TaskDetails
{
TaskId=ele.get("ACTIVITYID");
taskMap=map();
taskMap.put("SEID",newpotId);
taskMap.put("SEMODULE","Potentials");
UpdateTask = zoho.crm.updateRecord("Tasks",TaskId,taskMap);
info UpdateTask;
info taskMap;
}
EventDetails = zoho.crm.getRelatedRecords("Events","Contacts", contactIdStr);
for each ele in EventDetails
{
eventId=ele.get("ACTIVITYID");
eventMap=map();
eventMap.put("SEID",newpotId);
eventMap.put("SEMODULE","Potentials");
UpdateEvent = zoho.crm.updateRecord("Events",eventId,eventMap);
info UpdateEvent;
info eventMap;
}
CallDetails = zoho.crm.getRelatedRecords("Calls","Contacts", contactIdStr);
for each ele in CallDetails
{
callId=ele.get("ACTIVITYID");
callMap=map();
callMap.put("SEID",newpotId);
callMap.put("SEMODULE","Potentials");
UpdateCall = zoho.crm.updateRecord("Calls",callId,callMap);
info UpdateCall;
info callMap;
}
return "Success";

Note:
  • Create multiple buttons to contain multiple scenarios of deals, and save the time to create a deal with the particular information.
  • This custom function works only when you create a deal using the linked button.

Found this useful? Try it out and let me know how it works! If you have questions, do not hesitate to ask! Share this with your team if you find it useful.

Do check out other custom functions shared in this series here.

I'm sure you would have planned your year-end celebrations already. We'd be back in Jan '18 with the next custom function. Merry Christmas and a Happy New Year. See you!

Update: As you must be aware, API V1.0 will be deprecated and support for version 1.0 API will be available only till Dec 31, 2018. Version 1.0 compatible Functions will continue to work until Dec 31, 2019. You're advised to migrated to API Version 2.0 at the earliest. Check this announcement for more. We've updated the post to include the Version 2.0 compatible Function.

    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

                                                            • Function #46: Auto-Calculate Sales Margin on a Quote

                                                              Welcome back everyone! Last week's function was about displaying the discount amount in words. This week, it's going to be about automatically calculating the sales margin for a particular quote, sales order or an invoice. Business scenario Where there is sales, there's also evaluation and competition between sales reps. A healthy rivalry helps to better motivate your employees to do smart work and close deals faster and more efficiently. But how does a sales rep get evaluated? 90% of the time, it's
                                                            • Zoho CRM Functions 53: Automatically name your Deals during lead conversion.

                                                              Welcome back everyone! Last week's function was about automatically updating the recent Event date in the Accounts module. This week, it's going to be about automatically giving a custom Deal name whenever a lead is converted. Business scenario Deals are the most important records in CRM. After successful prospecting, the sales cycle is followed by deal creation, follow-up, and its subsequent closure. Being a critical function of your sales cycle, it's good to follow certain best practices. One such
                                                            • User Tips: Auto-Create Opportunity/Deal upon Quote Save (PART 1)

                                                              Problem: We use quotes which convert to sales orders but Users / Sales Reps do not create opportunities / deals and go straight to creating a quote. This leads to poor reporting. Implementing this solution improves reporting and makes it easier for users.
                                                            • Custom Function : Automatically send the Quote to the related contact

                                                              Scenario: Automatically send the Quote to the related contact.  We create Quotes for customers regularly and when we want to send the quote to the customer, we have to send it manually. We can automate this, using Custom Functions. Based on a criteria, you can trigger a workflow rule and the custom function associated to the rule and automatically send the quote to customer through an email. Please note that the quote will be sent as an inline email content and not as a PDF attachment. Please follow
                                                            • Function #50: Schedule Calls to records

                                                              Welcome back everyone! Last week's function was about changing ownership of multiple records concurrently. This week, it's going to be about scheduling calls for records in various modules. Business scenario Calls are an integral part of most sales routines.. Sales, Management, Support, all the branches of the business structure would work in cohesion only through calls. You could say they are akin to engine oil, which is required by the engine to make all of it's components function perfectly. CRM


                                                            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

                                                                                                              • Add Option to Mass Dispatch by User

                                                                                                                Hello! We are using the dispatch console to dispatch service appointments to our service ressources. Right now, the process is our dispatcher verifies each ressource's route for the day and dispatches it after validation. Sadly, there doesn't seem to
                                                                                                              • Zoho Projects - Email notification relabelling of modules not present on default templates

                                                                                                                Hi Projects Team, I noticed that in the default email template notification, the word "bug" was not renamed to the lable I am using in my system. As many users may used the Bugs modules for various purposes including Changes, Revisions, Issues, etc...
                                                                                                              • Include the "Added Email ID" to the Filters of a Report

                                                                                                                Hi, With a Report and lots of entries, a normal thing is to filter entries by the submitter, but that is not included in the Auto Filter of Reports and you can't add a custom filter to a Report without specifying the actual value. I would like to be able
                                                                                                              • Loops in Deluge

                                                                                                                Hi, Can someone tell me how I do a simple loop in deluge? For example, if i have a variable "X" containing a number of loops to perform, i would like to perform an action X amount of times. X = 10; do while (Y < X){       // ... do something } to further explain, the equivalent in PHP of what i am trying to acheive would be: $X = 20; for($Y = 1; $Y < $X; $Y++ ){       // ... do something } Thanks
                                                                                                              • I am facing a problem with an if-else condition

                                                                                                                If I use if, else if, and else conditions in Deluge with the same variable name, sometimes the variable causes an error because the same variable name is present in every block
                                                                                                              • Zoho Projects - Reply by email to @ mentions posted on the Feed.

                                                                                                                When mentioning someone on the Feed (Status), it would be great if that mentioned person could reply to the email notification to update the Feed thread.
                                                                                                              • Record Overseas Transactions Along with CC charges

                                                                                                                Hi All, We receive payments via stripe in multiple currencies and stripe takes around 2.5% fees. The amount is settled in INR into our local bank. What should be the currency of the income account used for Stripe payments? Here is a sample flow that we
                                                                                                              • Product Updates in Zoho Workplace applications | October 2025

                                                                                                                Hello Workplace Community, Let’s take a look at the new features and enhancements that went live across all Workplace applications this October. Zoho Mail Create Signature from Compose window You can now effortlessly create a Signature using the Create
                                                                                                              • Subform data to Sheets

                                                                                                                I have been trying to setup a Zoho Flow automation to bring any Subform input to a Zoho Sheets but it seems impossible to post the subform entries to a Zoho Sheet. Is there any way to do it via Zoho Sheet API? https://www.zoho.com/sheet/help/api/v2/#CONTENT-Insert-row-with-JSON-data
                                                                                                              • Edit Contact Roles in the Potentials Mod

                                                                                                                New to ZOHO so I need some help. I work the same people on different projects concurrency. Their contact info remains the same but their role changes from project to project. In the Potential Mod you can pick contacts and assign a Role to them. I know
                                                                                                              • Is there a way to disable the Activity Reminders Pop-Up Window every time I log in?

                                                                                                                Just wondering if there is a setting to disable the window from opening every time I open my CRM? Thanks Chris
                                                                                                              • Hide fields only for creation

                                                                                                                Hello, I'd like to hide some fields only during the creation of a contact in Zoho CRM. In fact I have some fields that are automatically calculated thanks to an automation, so when my users create a contact I don't want them to fill those fields. I know
                                                                                                              • Rich-text fields in Zoho CRM

                                                                                                                Hello everyone, We're thrilled to announce an important enhancement that will significantly enhance the readability and formatting capabilities of your information: rich text options for multi-line fields. With this update, you can now enjoy a more versatile
                                                                                                              • Font Size 11 - Zoho CRM Email Templates

                                                                                                                Our company communicates with our vendors exclusively using Calibri Font Size 11, as this is the standard formatting for professional emails. Since the CRM only allows for the selection of font sizes 10 & 12, we have been unable to utilize the CRM email
                                                                                                              • Error 400 Booking

                                                                                                                Added a custom domain to Booking. Am Getting a SSL Error that has some other domain on the SSL and giving a 400 error. Followed instructions and it stated it verified our domain.. However it is not working. Please Help!
                                                                                                              • Link Purchase Order to Deal

                                                                                                                Zoho Books directly syncs with contacts, vendors and products in Zoho CRM including field mapping. Is there any way to associate vendor purchase orders with deals, so that we can calculate our profit margin for each deal with connected sales invoices
                                                                                                              • Zoho Projects - Email Notifications for Feed Updates

                                                                                                                Hi Projects Team, I'm working with a client who wants a simple way to communicate with their customers on projects. Getting the customer to add comments to Tasks or Bug records is not ideal, as we need a way which is easy with minimal training, and has
                                                                                                              • Zoho Analytics Export API

                                                                                                                Hi Team, I’m working on some integration tasks and wanted to confirm if it’s possible to retrieve a Zoho Analytics table as JSON data using a Deluge script. I’ve already stored my custom data from multiple sources and combined it into a single source.
                                                                                                              • Request to Remove LinkedIn Verification from My Emai

                                                                                                                I would like to submit a complaint regarding my Zoho Mail account. I previously used this email address to verify a LinkedIn account, but that LinkedIn account has now been closed. I need to remove or cancel the verification associated with the closed
                                                                                                              • How to Billed from two different GST Numbers

                                                                                                                How to Billed from two different GST Numbers. Suppose ABC & Co had GST registration in Delhi and Haryana and Zoho account is created with Delhi GST Registration number. Now i also want to issue invoice from Haryana GST Registration number. How can i proceed ?
                                                                                                              • Introducing the all-new email parser!

                                                                                                                Greetings, We are pleased to introduce to you, a brand-new, upgraded version of the Zoho CRM Email Parser, which is packed with fresh features and has been completely redesigned to meet latest customers needs and their business requirements. On that note,
                                                                                                              • Zoho Projects - Refine Access to Collaboration Menu

                                                                                                                Hi Projects Team, I noticed that Calendar, Chat and Meeting menu options in the Collaboration section are visible to client users, even when they don't have access to the features. This could be confusing and frustrating, because if it's there you expect
                                                                                                              • 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.
                                                                                                              • Extracting Images from a Zoho Creator Report into a Pages

                                                                                                                If you’ve uploaded images in a form and can see them in your report, you might also want to display those same images inside a Page (custom HTML page). This is useful for dashboards, profile pages, or any place where images should be visible dynamically
                                                                                                              • Zoho is blocking emails I subscribe to from one sender

                                                                                                                About 4 months ago I stopped receiving newsletters that I subscribe to from @thedispatch.com. They tell me that zoho's server is blocking them. I've added them to my contacts list, but they're not even reaching my inbox. I don't know how to troubleshoot
                                                                                                              • Inactive Items - Make Less Prominent by Default

                                                                                                                Currently, when one marks an Item as "Inactive", it really doesn't do much of anything to hide it or get it out of the way. Search and reporting within Finance should, by default, hide inactive Items from standard reports, searches, etc. If one specifically
                                                                                                              • Items should display under specific warehouse

                                                                                                                I have configured the multi warehouse but it show all the items under all warehouse which is not correct according to our business logic, so i want that items should only display under that specific warehouse not under all the warehouses not even with zero quantity. Some items should be common but not all so is there any option for that purpose so i can specific the items to its warehouse. Regards
                                                                                                              • How to calculate GST based on "Ship To Address"

                                                                                                                We into the interior designing work, providing "Works Contract Services" to our clients across India. We are registered under GST in Maharashtra state. For works contract services as per the GST rule, we need to decide place of supply based on "Ship to
                                                                                                              • I NEED TO NUMBER TO TEXT NO HERE

                                                                                                                =NUMBERTEXT NEEED
                                                                                                              • Auto-fill New Row with Previous Row Values

                                                                                                                rowsize = input.Order_Items.count(); for each row1 in input.Order_Items { rowsize = rowsize - 1; if(rowsize == 1) { row.Door_Model = row1.Door_Model; row.Door_Color = row1.Door_Color; row.Materials = row1.Materials;
                                                                                                              • When I click on PDF/PRINT it makes the invoice half size

                                                                                                                When I click PDF / Print for my invoice in Zoho Books, the generated PDF appears at half size — everything is scaled down, including the logo, text, and layout. The content does not fill the page as it should. Could someone advise what causes Zoho Books
                                                                                                              • Python - code studio

                                                                                                                Hi, I see the code studio is "coming soon". We have some files that will require some more complex transformation, is this feature far off? It appears to have been released in Zoho Analytics already
                                                                                                              • API question - adding a thread to an existing ticket

                                                                                                                Hi Is there an API function for the customer to add to an existing ticket thread? example, customer puts in new support ticket. support replies and ask for more details. customer replies with more details -what api function is used for this (will add record append to same ticket number?) Thanks
                                                                                                              • Why is Zoho Meeting quality so poor?

                                                                                                                I've just moved from Office 365 to Zoho Workplace and have been generally really positive about the new platform -- nicely integrated, nice GUI, good and easy-to-understand control and customisation, and at a reasonable price. However, what is going on
                                                                                                              • Items Below Reorder Point Report?

                                                                                                                Is there a way to run a report of Items that are below the Reorder Point? I don't see this as a specific report, nor can I figure out how to customize any of the other stock reports to give me this information. Please tell me I'm missing something s
                                                                                                              • Calendar week view: Today + 6

                                                                                                                Is there anyway to have the calendar change dynamically based on the date? Due to the amount of events, we only display a week at a time, but towards the end of the week, we can no longer see ahead to next week (without changing it manually every time).
                                                                                                              • How to restrict user/portal user change canvas view

                                                                                                                Hi , I would like to restrict user / portal user change their canvas view because I hide some sensitive field for them. I dont want my user switch the canvas view that do not belong to them But seems Zoho do not provide this setting?
                                                                                                              • How to add to Subforms via Zapier with Zoho Writer?

                                                                                                                I have the following layout for a Zoho Writer Document. As you can see there is a repeating subform taking in "Items". I am trying to make a Zapier integration with it, and I can see there is 1 field saying: "Items", but it does not specify how I'm supposed
                                                                                                              • Contrôles administratifs granulaires : un atout pour la sécurité des e-mails

                                                                                                                La moindre erreur dans votre système de messagerie peut coûter très cher à votre entreprise, tant en argent qu’en conformité et en image de marque. Pour beaucoup d’organisations, ce risque est bien réel. Les e-mails véhiculent quotidiennement des informations
                                                                                                              • Collections Management: #6 Realign Customers who gets back In-Term

                                                                                                                Arun stared at the subscription list on his dashboard. Another account had just been moved to Cancelled status after completing the whole dunning process. Nothing unusual, just that payment failures happen, retries fail, and cancellation is the expected
                                                                                                              • Next Page