Function #48: Tracking refunds and adjusting the sales executive's revenue in Zoho CRM

Function #48: Tracking refunds and adjusting the sales executive's revenue in Zoho CRM



Welcome back everyone!

Last week's function was about creating an event from Deals automatically. This week, it's going to be about real-time recording of refunds and sales revenue tracking based on the refunds.

Business scenario

Having a clear refund policy goes a long way in gaining customer trust. Depending upon the line of business, the refund window might vary. This is even more important in the case of online purchases where customers get to see and feel the product only after making the purchase.

The Deals module in CRM helps track the revenue associated with the sales executives. By taking a report of all the 'won' businesses pertaining to a month, you'll be able to calculate the revenue associated with the sales executives concerned. Recently one of our users asked if there is any working solution to track refunds. Typically, the refund period is 30 days and the refunds have to be tracked without affecting the revenue numbers from the preceding month. Hence updating the closed Deal stage to a "Refunded" stage won't work.

A simple solution to this problem is to clone the won deal that needs to be refunded and make the following updates in the cloned deal:
  • Update the deal value in negative to account for the refund amount

  • Update the deal closing date to current date.

  • Update the status of the cloned deal to "Refunded".

This leaves the revenue numbers of the preceding months and the sales forecast for the current month intact while accounting for the refunds too. Expecting your sales executives do all these steps manually is a tall order. Fret not, the Function I'm sharing this week helps you do all these steps at the click of a button.

Pre-requisites

  • Create a Deal Status named "Refunded".

Getting started with the function

  1. Go to Setup > Customization > Modules > Deals > Links and buttons > Create new button.
  2. Provide a name for the button. For example: "Refund". Add a description(optional).
  3. Select the placement of the button as View page.
  4. Select the action to be performed as "Writing function".
  5. Copy the code given below.
  6. Click “Edit arguments”.
  7. Enter the name as “dealId” and select the value as “Deal Id”.
  8. Click Save&Execute Script.
  9. Save the script.
  10. Select the profiles who can view this button.
  11. Click Save.


The Code

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

dealDetails = zoho.crm.getRecordById("Deals", input.dealId.toLong());
mp=map();
mp.put("Deal_Name",ifnull(dealDetails.get("Deal_Name"),""));
mp.put("Owner",ifnull(dealDetails.get("Owner"),"").get("id"));
mp.put("Account_Name",ifnull(dealDetails.get("Account_Name"),"").get("id"));
mp.put("Contact_Name",ifnull(dealDetails.get("Contact_Name"),"").get("id"));
mp.put("Amount","-"+ifnull(dealDetails.get("Amount"),""));
mp.put("Stage","Refunded");
mp.put("Closing_Date",today);
create=zoho.crm.create("Deals", mp);
info mp;
info create;
return "success";

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

Before Refund



After Refund



Note

  • The code given above works only for V2 version of Zoho APIs. Please note that the code WILL NOT work for Version 1.0 APIs.

Found this useful? Try it out and let me know how it works! If you have questions, do not hesitate to ask! Do check out other functions shared in this series here.

See you all next week with another interesting function. Ciao!

    • Sticky Posts

    • How to reach the official Zoho Support channels and avoid fake ones.

      Dear Customers, Thanks a lot for choosing Zoho! Our applications are built to help achieve your day-to-day business goals. We are committed to engaging with you, to understand and develop solutions that enhance your productivity.  We are happy and ready to help you use our services effectively. Understanding and avoiding fake support Just like using popular bank names and financial applications for phishing purposes, using Zoho and claiming to be providing Zoho Support or services with false numbers
    • Function #35: Close all tasks associated with a lead and create a new task.

      Welcome back everyone! Last week, we learnt how to close all tasks of a deal depending upon the deal stage. This week, let's look at a custom function that lets you close all of the tasks associated with a lead while simultaneously creating a new task, like when you need to halt all progress towards a lead while the lead is not available at the moment but create a reminder task. Business scenario: The success of a company, in one way or another, is determined by the leads it gets. Each lead is just
    • Zoho CRM Webinar - Redesigning Daily User Experiences with Canvas

      <br> Your users across roles use the CRM for day-to-day tasks that are necessary. Whether they perform their tasks on time, the right way, or at all depends on a lot of factors, including User Experience. Many businesses struggle with rigid layouts,
    • Join us at the Canada ZUG Meetup: What’s New in Zoho CRM

      Hello Zoho Community! Start your year with fresh insights into Zoho CRM’s latest updates and tools. Whether you're a CRM beginner or a experienced user, this meetup is crafted to help you optimise your processes and leverage new features. Explore practical
    • CRM Hack #2: Automate sending of birthday greetings to your customers.

        Hello everyone! What sets you apart as a sales person is your ability to add that personal touch to your business relationship with your customers. Sending a gift on a special day, or leaving a note wishing them on their birthdays, are small, yet significant actions that show your customers that you care. And these are actions done without any expectations :) You must be engaging with a lot of customers and it is highly unlikely that they all are your friends on Facebook or some social channel,