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

You can watch the installation video:


There are some settings you can adjust for the extension:
- enabled: whether the round robin should run or not. Set it to false if you want to temporarily disable the round robin.

- 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).

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

- 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.

- 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).

- Strict round robin: if you want all salespeople to receive the same number of leads, put true here.

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.

When creating a new round robin setting, you'll need to fill out a few fields:
- Round Robin Setting Name: put the salesperson's name here

- Round Robin Settings Owner: choose the salesperson

- Percent: choose what % of leads this salesperson should receive

- Email: email address to which the lead assignment notification should go to. You might want to make this the salesperson's email so they're aware when they receive a new lead.

- Max Leads For This Setting: if you only want this salesperson to receive a certain number of leads, put in a number here.
- Module Name: which module the setting is for (Leads or Deals). Here's a video on using the extension with Deals.

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.

Video tutorial for field criteria

In the example above, the Round Robin setting will be ignored unless the Lead Source is either Website or not equal to Self Generated and if the Lead's revenue source is not equal to Victoria.

You must supply field criteria in JSON format. You can use jsonlint to check that you've supplied it in the correct format. The overall structure looks like this:

   "Field_API_Name": "Possible values, separated, by, commas"

You get the Field API Name by going to Setup > Developer Space > APIs > API Names

If you want to do an inverse check, you can use notequal. For example:

   "Lead Source": "notequal:Chat"

will ignore any leads that have a lead source of Chat.

If you want to use Owner/Created By or Modified By as field criteria, you need to use the user ID. For example:

   "Owner": "2104400000000112007"

You can get the user ID by going to Setup > Users and clicking on one of the users and then getting the ID from the URL, e.g.

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 make sense of the "Data from round robin" field. Watch this video for an explanation.

Round Robin Availability

Video tutorial:

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 John to only receive leads on Monday between 9am and 3pm, you can do that.

Generally you'll only need to create one availability record per salesperson - use the Days dropdown to specify the days they're available. However, if the salesperson works different times on different days or works multiple shifts per day, you'll need to add multiple records.

You should fill out these fields:
- Round Robin Availability Name: You can put whatever you want here but I'd suggest you summarise the availability, e.g. Jeremy Monday 9am-5pm

- Round Robin Availability Owner: Select the salesperson

- Timezone: Enter the timezone the salesperson operates in this format "Country/City", e.g. Australia/Sydney

- Days: Choose the relevant days.

- Available From: start of availability period in 12hr time format with am/pm, e.g. 00:01 AM or in 24hr time, e.g. 00:01.

- Available Until: end of availability period with same format as available from.


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. Using invalid JSON in field criteria - check that your JSON is valid using

3. 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 date: "Round Robin Assignment Time". The rules will then trigger a few minutes after the round robin assignment has completed.

Make Round Robin ignore manually created leads

Salespeople often generate their own leads. Generally they are pretty protective of them and are therefore mildly annoyed at the least if the round robin assigns their lead to another sales rep. To combat this issue, I suggest you use field criteria to limit the round robin to certain lead sources (e.g. Website). See the field criteria section above for more information.


Popular posts from this blog

Round robin lead assignment for API generated leads in Zoho CRM

Do you add leads to your CRM via the Zoho CRM API? If so, you'll note that lead assignment rules don't work. I have developed a CRM extension called Advanced Round Robin that you can buy on the Zoho Marketplace. If you'd prefer to do it yourself, the below code can allow you to add round robin lead assignment functionality (though it's missing many of the more powerful features of the Advanced Round Robin extension). You'll need to set a few config variables like your authtoken and the user role you want leads to be assigned to. You'll also need to create a reference lead that's assigned to one of the users who should receive leads. The script will use this to figure out who should get the next lead. Thanks to Prakash from Zoho for giving me the base code for this script. Want more options? I have a paid version of this script that you can buy on the Zoho Marketplace.

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