Skip to main content

Advanced Round Robin Extension

Why use the extension?

The Advanced Round Robin extension improves on Zoho CRM’s built in round robin feature. It allows you to customise how many leads each salesperson should get, works with leads added via the API and allows personalised lead assignment notifications.

Key Features:

Allows you to customise how many leads each sales person should get. For example if one salesperson is a top performer, you might want to give them 80% of the leads, whereas a part time rep should only get 20% of the leads. Also, if you find you have an argument among salespeople as to who got assigned what lead, you can use our Round Robin History feature to see the truth.

With personalised lead assignment notifications, you can specify which email address lead assignment notifications should go to.
Works with leads added via the API - the standard round robin doesn’t work with leads added via the API so you’re out of luck if you are using something like NinjaForms or Gravity Forms to capture leads from your website.

Factors in converted leads: our assignment logic is based on how many leads each salesperson was assigned originally even if they subsequently assign the lead to someone else or convert the lead into a potential.

Using the extension

Check out the overview video:


There are some settings you can adjust for the extension. To get to the settings screen, navigate to Setup > Marketplace > Installed > Advanced Round Robin > Configure.

Here is an explanation of each of the settings:

- Assign Duplicate Leads to Same Person: sometimes you'll get multiple enquiries from the same person. It's often best if subsequent enquiries go to the sales rep who already started dealing with the prospect. If you want duplicates to go the same sales rep, put true here. You can also put Leads or Contacts if you only want to check for duplicates in one module (e.g. if you put Leads it will only search for duplicate Leads and not check the Contacts module)

- Debug mode: should be set to off (only used if I am debugging the system for you)

- Email round robin owner: if this is enabled, the system will email the new lead owner after a lead is assigned to them. If you want to disable emails for a particular user, check Email Opt Out in the round robin setting record (this is not available in the round robin settings UI currently).

- enabled: whether the round robin should run or not. Set it to false if you want to temporarily disable the round robin.

- max leads per salesperson per day: this allows you to set a hard limit for how many leads each salesperson should receive each day.

- Round Robin date range: If you choose Current Week, it will choose who gets the next lead based on how many leads each salesperson has received over the last 7 days. If you choose Current Day, it will only factor in leads received in the last 24hrs. Current week is better if you have a "lumpy" lead flow (e.g. one day you get 50 leads, the next day you get 5). Current day is better if your lead flow is consistent or if you need to change round robin settings frequently.

- Set salesperson availability: if this is set to true, the round robin system will check salesperson availability when deciding which salesperson should receive the lead (see section below for more details).

- Strict round robin: if you want all salespeople to receive the same number of leads, put true here. If you want an uneven split (e.g. 60-40), leave this as false.

Round Robin Settings

Round Robin Settings are where you specify which salespeople should participate in the round robin. You'll add one setting for each salesperson.

Use the Add/Edit buttons to add or edit a setting.

The screenshot below explains the fields at the top half

The next section is field criteria. If you want the round robin setting to only apply for certain leads, you can use the Field Criteria option within round robin settings. Field criteria allows you to make sure the round robin only touches certain leads. For example, it's common that you would want to exclude self generated leads from the round robin. If the sales rep has done the hard work of finding a lead on their own, it would be pretty unfair if the system assigned that lead to another sales rep. To make sure these leads stay with the original owner, you would set up the field criteria with Lead Source = website. That way only website leads are assigned via the Round Robin. 

You could also do Lead Source is not equal Self Generated. 

You can set up criteria for any field so that it will work for your own organisation's policies.

Team vs Individual mode

If you have a large number of sales reps, it's cumbersome to add settings for each one. 

Here's a video explaining how that works:

Round Robin Availability

I added this feature for organisations which have multiple shifts or part time salespeople. It allows you to have granular control of when salespeople should receive leads. If you want Julie to only receive leads on Monday between 9am and 3pm, you can do that.

You can also enter in leave dates:

Round Robin History

You don't need to do anything with this module. It just serves as a record of which leads were assigned to which salesperson even after the lead has been converted. If you want to run lead assignment reports, you can use this module to show salespeople that they have been assigned the right number of leads.

If you want to understand why a particular record was assigned to a particular salesperson, you can check the Summary of Round Robin decision.


Common Issues that break the extension:

1. Hiding the round robin history or round robin settings modules - they must remain visible otherwise the data won't be accessible via the API

2. Not enabling workflow triggers when adding leads via the API. GravityForms, NinjaForms etc. have an option to trigger workflows that is disabled by default. You need to enable this for the extension to work.

Updating credit card details

To update your credit card details, go to Setup > marketplace > all > extensions > installed extensions > advanced round robin > change credit card details.

Running other workflow rules

To run other workflow rules after the round robin has completed, you'll need to set up the rules to be triggered by a field update to the Round Robin Processed field. Here's a video with an example:

You might also want to run another workflow rule before the Round Robin. Here's a video explaining how to do that:


Popular posts from this blog

Getting current time in a specified timezone using Deluge script

Recently I was working on a custom function for Zoho CRM which required me to get the current time in a specified timezone. I assumed that zoho.currenttime would give me the time based on the timezone chosen in the organisation settings but discovered that it always gives it to you in PST. The Zoho Partner team gave me this snippet to solve the problem: current_time_in_timezone = zoho.currenttime.toString("yyyy-MM-dd'T'HH:mm:ss", "Australia/Sydney").toTime("yyyy-MM-dd'T'HH:mm:ss"); If you need the current date, do: current_date_in_timezone = zoho.currenttime.toString("yyyy-MM-dd'T'HH:mm:ss", timezone).toDate(); To figure out what you can put in for the timezone part, refer to

searchRecords with multiple criteria in Zoho CRM API

NB: this blog post is no longer relevant as API v2 lets you use searchRecords with multiple criteria :) I discovered something really cool tucked away in the Zoho CRM forums today. For the history, check out this thread . In summary, the searchRecords API task in Zoho CRM is impossible to use if you have multiple criteria and in general it's pretty annoying to get the single criterion right. In the forum thread, Zoho Support advised that you can actually use getRecords with a view name. This feature is not documented on the getRecords page at all but I can confirm it works:D This is really, really cool. It's going to make my life as a Zoho dev much easier! Instead of having to do something really inefficient and ugly like: leadRecords = zoho.crm.searchRecords("Leads","(Created Time|<|" + yesterday_date +")",fromIndex,toIndex); for each ele in leadRecords { lead_source = ele.get("Lead Source"); createTime=(ele.g

Debugging Deluge script in Zoho Creator/Zoho CRM

Deluge is a powerful language that simplifies a ton of things, e.g. database lookups. But I have to say, it's very painful to debug. Interpreting longish scripts takes ages, error messages are obtuse if they exist at all and even the hints in the IDE don't always help (ever tried using containsIgnoreCase based on the auto-complete suggestion?). Here are my tips for debugging code when it's not working. 1. Split your code up into small custom functions. Nothing's more painful than waiting 30 seconds for a really long (say 1000 lines) HTML page to save and only then get feedback on a syntax error. I've got a few apps that are like this and it's not fun to work with at all. I haven't seen any improvements in the compile speed over the last few years, so my conclusion is that it's always best to write most of your logic code as small custom functions and then build that up in the HTML page so that you'll get quick feedback on syntax errors. 2. If