Kaizen #88 Assignment Rules

Kaizen #88 Assignment Rules

Hello everyone!
This week, we will discuss the use cases of assignment rules in inserting, updating, and upserting records.

What are Assignment Rules?

The effectiveness of sales is closely tied to a sales representative's daily tasks, such as promptly following up with leads and providing quick responses to customers. A crucial aspect of achieving this lies in implementing a well-structured and carefully planned lead assignment process that takes into account the diverse requirements of leads originating from different sources. Manual assignment may not be efficient, as leads should not be assigned randomly, but rather based on specific criteria like regional experience or product knowledge. "Assignment Rules" automates the lead assignment process by applying predefined rules that consider factors such as territory and product interest, thereby saving time and reducing errors.

Advantages of Assignment Rules 

Zoho CRM's Assignment Rule helps you,
  • To filter records based on the given conditions and assign corresponding owners.
  • To implement an automated system, the time taken to assign leads manually/records that meet the defined criteria can be significantly reduced, thereby making the assignment process more efficient.
  • To assign the filtered records to the specific team in your organization so that they act efficiently to convert leads into contacts and increase your business growth at the earliest possible time.

Where can we create assignment rules on the web UI?

To create an assignment rule, go to Zoho CRM > Setup > Automation > Assignment Rules.

List the Assignment Rules

To list the available assignment rules in your organization.

Request URL: {api-domain}/crm/v4/settings/automation/assignment_rules
Request Method: GET

Sample Response

 {
    "assignment_rules": [
        {
            "created_time": "2023-05-10T00:00:00-07:00",
            "modified_time": "2023-05-30T22:10:53-07:00",
            "default_assignee": {
                "name": "Logged in User",
                "id": "${CURRENTUSER}"
            },
            "module": {
                "api_name": "Leads",
                "id": "5725767000000002175"
            },
            "name": "Leads from India",
            "modified_by": {
                "name": "Patricia Boyle",
                "id": "5725767000000411001",
                "zuid": 808233918
            },
            "description": "Leads from India",
            "id": "5725767000000526437", //ID of the rule(Leads from India)
            "created_by": {
                "name": "Patricia Boyle",
                "id": "5725767000000411001",
                "zuid": 808233918
            }
        }
    ]
}

Apply the rule while creating new records using the ID of the corresponding assignment rule.

Assignment rules on records insert 

While inserting records in a module, you need to specify the ID of the assignment rule which you want to execute, in the request body of the API under the json key "lar_id".
 
Request URL: {api-domain}/crm/v4/Leads
Request Method: POST

Sample Input

{
    "data": [
        {
            "Last_Name":"Smith",
            "Country":"India",
            "Company":"A Technology",
            "Email":"smith@aaa.com",
            "Phone":"+91 87654321**"
        },
        {
            "Last_Name": "Shane",
            "Country": "Pakistan",
            "Company":"B Technology",
            "Email":"shane@bbb.com",
            "Phone":"+9230012345**"
        },
        {
            "Last_Name": "Taqi",
            "Country": "Sri Lanka",
            "Company":"C Technology",
            "Email":"taqi@ccc.com",
            "Phone":"+947123456**"
        },
        {
            "Last_Name": "Kane",
            "Country": "USA",
            "Company":"D Technology",
            "Email":"kane@ddd.com",
            "Phone":"+112345678**"
        }
    ],
    "lar_id": "5725767000000526437"
}

Sample Response

{
    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "Modified_Time": "2023-05-31T02:24:11-07:00",
                "Modified_By": {
                    "name": "Patricia Boyle",
                    "id": "5725767000000411001"
                },
                "Created_Time": "2023-05-31T02:24:11-07:00",
                "id": "5725767000000619002",
                "Created_By": {
                    "name": "Patricia Boyle",
                    "id": "5725767000000411001"
                },
                "$approval_state": "approved"
            },
            "message": "record added",
            "status": "success"
        },
        .
        .
        .
        }
    ]
}

Now, we have applied the rule to the new records and assigned them to their respective owner. To verify whether the records have been assigned to the owner specified in the rule, you can make an API request to GET Records API with the ID of the record. Alternatively, you can perform the verification on the web UI.


Assignment Rules on records update

Zoho CRM provides the flexibility to execute an assignment rule while updating records through its Update Records API.
In the sample request, Kane, a lead from the USA, was initially handled by John. However, Kane has now to moved to India, so Lee will become his new owner.
To achieve this, send the assignment rule ID in the 'lar_id' json key of the request body of the API as below.

Request URL : {{api-domain}}/crm/v4/Leads/{record-id}
Request Method: PUT

Note:
It is mandatory to specify the record ID of Kane to update the fields. 

Sample Input

{
    "data": [
        {
            "Last_Name": "Kane",
            "Country": "India",
            "Company":"D Technology",
            "Email":"kane@ddd.com",
            "Phone":"+9188255172**"
        }
    ],
    "lar_id": "5725767000000526437"
}

Sample Response

{

    "data": [

        {

            "code": "SUCCESS",

            "details": {

                "Modified_Time": "2023-05-31T05:46:51-07:00",

                "Modified_By": {

                    "name": "Patricia Boyle",

                    "id": "5725767000000411001"

                },

                "Created_Time": "2023-05-31T03:19:19-07:00",

                "id": "5725767000000619110",  //ID of the record

 

                "Created_By": {

                    "name": "Patricia Boyle",

                    "id": "5725767000000411001"

                }

            },

            "message": "record updated",

            "status": "success"

        }

    ]

}

To ensure that the record owner has been changed, verify the same using GET Records API.

Request URL: {api-domain}/crm/v4/Leads/{record-id}
Request Method: GET

Sample Response

{
    "data": [
        {
            "Owner": {
                "name": "Lee",
                "id": "5725767000000583018",
                "email": "lee@mail.com",
            },
            "Company": "D Technology",
            "Email": "kane@ddd.com",
            .
            .
            .

            "Country": "India",
            "Created_By": {
                "name": "Patricia Boyle",
                "id": "5725767000000411001",
                "email": "patriciaboyle@zoho.com",
            },
           .
           .
           .

            "Phone": "+9188255172**",
            .
            .
            .

        }
    ]
}

Alternatively, you can check the updated changes on the web UI.

Assignment Rules on records Upsert

Apply assignment rules during Upsert Records API.

Request URL : {api-domain}/crm/{version}/{module_api_name}/upsert
Request Method : POST

Sample Input

{
    "data": [
        {
            "First_Name":"James",
            "Description":"Checking Assignment rules",
            "Last_Name": "DJ",
            "Country": "Sri Lanka",
            "Company":"D Technology",
            "Email":"james@mail.com", //system-defined duplicate check field for Leads Module
            "Lead Source":"Cold Call",
            "Phone":"+9188255172",
            "Annual Revenue":"20000"
        }
    ],
    "lar_id": "5725767000000526437"
}

Note:
  • Provide the email (a system-defined mandatory field ) for the Leads module. If the record already exists, the system will check for matching data and update the record. If the record does not exist, a new record will be created.
  • Provide the assignment rule ID that you want to execute while upserting the record.
Sample Response

{
    "data": [
        {
            "code": "SUCCESS",
            "duplicate_field": "Email",
            "action": "insert", //No existing records were found. So, the system created a new record.
            "details": {
                "Modified_Time": "2023-05-31T12:02:32-07:00",
                "Modified_By": {
                    "name": "Patricia Boyle",
                    "id": "5725767000000411001"
                },
                "Created_Time": "2023-05-31T11:57:15-07:00",
                "id": "5725767000000627046", //ID of the record 
                "Created_By": {
                    "name": "Patricia Boyle",
                    "id": "5725767000000411001"
                }
            },
            "message": "record added",
            "status": "success"
        }
    ]
}

Thank you for your time, and we look forward to bring you another insightful guide in next week's Kaizen.
Feel free to post your queries in the comment section below or write to us at support@zohocrm.com 

Cheers!

Further Reading 









    • Sticky Posts

    • Kaizen #197: Frequently Asked Questions on GraphQL APIs

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

      Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
    • Kaizen #193: Creating different fields in Zoho CRM through API

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Client Script | Update - Introducing Commands in Client Script!

      Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands
    • Recent Topics

    • Celebrating Connections with Zoho Desk

      September 27 is a special day marking two great occasions: World Tourism Day and Google’s birthday. What do these two events have in common (besides the date)? It's something that Zoho Desk celebrates, too: making connections. The connect through tourism
    • What is Resolution Time in Business Hours

      HI, What is the formula used to find the total time spent by an agent on a particular ticket? How is Resolution Time in Business Hours calculated in Zohodesk? As we need to find out the time spent on the ticket's solution by an agent we seek your assistance
    • How use

      Good morning sir I tried Zoho Mail
    • Adding Overlays to Live Stream

      Hello folks, The company I work for will host an online event through Zoho Webinar. I want to add an overlay (an image) at the bottom of the screen with all the sponsors' logos. Is it possible to add an image as an overlay during the live stream? If so,
    • Email Sending Failed - SMTP Error: data not accepted. - WHMCS Not sending emails due to this error

      I have been trying to figure out a fix for about a week now and I haven't found one on my own so I am going to ask for help on here.  After checking all the settings and even resetting my password for the email used for WHMCS it still says: Email Sending Failed - SMTP Error: data not accepted.  I have no clue how to fix it at this point. Any insight would be lovely. 
    • Does Zoho Learn integrate with Zoho Connect,People,Workdrive,Project,Desk?

      Can we propose Zoho LEarn as a centralised Knowledge Portal tool that can get synched with the other Zoho products and serve as a central Knowledge repository?
    • Zoho Flow - Update record in Trackvia

      Hello, I have a Flow that executes correctly but I only want it to execute once when a particular field on a record is updated in TrackVia. I have the trigger filters setup correctly and I want to add an "update record" action at the end of the flow to
    • Add Comprehensive Accessibility Features to Zoho Desk Help Center for End Users

      Hello Zoho Desk Team, We hope you're doing well. We’d like to submit a feature request to enhance the client-facing Help Center in Zoho Desk with comprehensive accessibility features, similar to those already available on the agent interface. 🎯 Current
    • Rename Record Summary PDF in SendMail task

      So I've been tasked with renaming a record summary PDF to be sent as part of a sendmail task. Normally I would offer the manual solution, a user exports the PDF and uploads it to a file upload field, however this is not acceptable to the client in this
    • in zoho creator Sales Returns form has sub form Line Items return quantity when i upate the or enter any values in the sub form that want to reflect in the Sales Order form item deail sub form field Q

      in zoho creator Sales Returns form has sub form Line Items return quantity when i upate the or enter any values in the sub form that want to reflect in the Sales Order form item deail sub form field Quantity Returned\ pls check the recording fetch_salesorder
    • Estimates with options and sub-totals

      Hi It seems it would be great to be able to show multiple options in an estimate. For instance I have a core product to which I can add options, and maybe sub-options... It would be great to have subtotals and isolate the core from the not compulsory items. Thanks
    • Optional Items Estimate

      How do you handle optional items within an estimate? In our case we have only options to choose with. (Like your software pricing, ...standard, professional, enterprise) How can we disable the total price? Working with Qty = 0 is unprofessional....
    • Important Update : Zendesk Sell announced End of Life

      Hello Zendesk users, Zendesk has officially announced that Zendesk Sell will reach its End of Life (EOL) on August 31, 2027 (Learn more). In line with this deprecation, Zoho Analytics will retire its native Zendesk Sell connector effective October 1,
    • Zoho Sheets

      Hi, I am trying to transition into Zoho sheets, I have attached the issues encountered. Server issues, file trying to upload for more than 30 mins, even once uploaded my data aren't loaded. Simple calculations are not working I have attached the sample.
    • Zoho CRM + Zoho FSM : alignez vos équipes commerciales et techniques

      La vente est finalisée, mais le parcours client ne fait que commencer ! Dans les entreprises orientées service, conclure une vente représente seulement la première étape. Ce qui suit — installation, réparation ou maintenance régulière — influence grandement
    • Top Bar Shifting issue still not fixed yet

      I mentioned in a previous ticket that on Android, the top bar shifts up when you view collections or when you're in the settings. That issue still hasn't been fixed yet. I don't wanna have to reinstall the app as I've noticed for some reason, reinstalling
    • Power of Automation:: Automate the process of updating project status based on a specific task status.

      Hello Everyone, Today, I am pleased to showcase the capabilities of a custom function that is available in our Gallery. To explore the custom functions within the Gallery, please follow the steps below. Click Setup in the top right corner > Developer
    • ZOHO SHEETS

      Where can I access desktop version of zoho sheets? It is important to do basic work If it is available, please guide me to the same
    • Attention API Users: Upcoming Support for Renaming System Fields

      Hello all! We are excited to announce an upcoming enhancement in Zoho CRM: support for renaming system-defined fields! Current Behavior Currently, system-defined fields returned by the GET - Fields Metadata API have display_label and field_label properties
    • Billing Management: #3 Billing Unbilled Charges Periodically

      We had a smooth sail into Prorated Billing, a practice that ensures fairness when customers join, upgrade, or downgrade a service at any point during the billing cycle. But what happens when a customer requests additional limits or features during the
    • No bank feeds from First National Bank South Africa since 12 September

      I do not know how Zoho Books expects its customers to run a business like this. I have contacted Zoho books numerous times about this and the say it is solved - on email NO ONE ANSWERS THE SOUTH AFRICAN HELP LINE Come on Zoho Books, you cannot expect
    • Citation Problem

      I had an previous ticket (#116148702) on this subject. The basic problem is this; the "Fetch Details" feature works fine on the first attempt but fails on every subsequent attempt, Back in July after having submitted information electronically and was
    • Open Sans Font in Zoho Books is not Open Sans.

      Font choice in customising PDF Templates is very limited, we cannot upload custom fonts, and to make things worse, the font names are not accurate. I selected Open Sans, and thought the system was bugging, but no, Open Sans is not Open Sans. The real
    • Failing to generate Access and Refresh Token

      Hello.  I have two problems: First one when generating Access and Refresh Token I get this response:  As per the guide here : https://www.zoho.com/books/api/v3/#oauth (using server based application) I'm following all the steps. I have managed to get
    • Zeptomail 136.143.188.150 blocked by SpamCop

      Hi - it looks like this IP is being blocked, resulting in hard bounces unfortunately :( "Reason: uncategorized-bounceMessage: 5.7.1 Service unavailable; Client host [136.143.188.150] blocked using bl.spamcop.net; Blocked - see https://www.spamcop.net/bl.shtml?136.143.188.150
    • Apply transaction rules to multiple banks

      Is there any way to make transaction rules for one bank apply to other banks? It seems cumbersome to have to re-enter the same date for every account.
    • How to bulk update records with Data Enrichment by Zia

      Hi, I want to bulk update my records with Data Enrichment by Zia. How can I do this?
    • Need Guidance on SPF Flattening for Zoho Mail Configuration

      Hi everyone, I'm hoping to get some advice on optimizing my SPF record for a Zoho Mail setup. I use Zoho Mail along with several other Zoho services, and as a result, my current SPF record has grown to include multiple include mechanisms. My Cloudflare
    • How do I split a large CSV file into smaller parts for import into Zoho?

      Hi everyone, I’m trying to upload a CSV file into Zoho, but the file is very large (millions of rows), and Zoho keeps giving me errors or takes forever to process. I think the file size is too big for a single import. Manually breaking the CSV into smaller
    • Client Script Payload Size Bug

      var createParams = { "data": [{ "Name": "PS for PR 4050082000024714556", "Price_Request": { "id": "4050082000024714556" }, "Account": { "id": "4050082000021345001" }, "Deal": { "id": "4050082000023972001" }, "Owner": { "id": "4050082000007223004" }, "Approval_Status":
    • Sync Issue Between Zoho Notebook Web App on Firefox (PC) and Android App

      Hi Zoho Notebook Community, I'm facing a sync problem with Zoho Notebook. When I use the web version on Mozilla Firefox browser on my PC, I create and save new notes, and I've synced them successfully. However, these new notes aren't showing up in my
    • Messages not displayed from personal LinkedIn profile

      Hello. I connected both our company profile and my personal profile to Zoho social. I do see all messages from our company page but none from my private page. not even the profile is being added on top to to switch between company or private profile,
    • lead convert between modules

      Hello, The workflow we set up to automatically transfer leads registered via Zapier into the Patients module to the Leads module started to malfunction unexpectedly on September 25, 2025, at 11:00 AM. Under normal circumstances, all fields filled in the
    • Flow Task Limits - How to Monitor, Understand Consumption?

      So, I got an email last night saying that I've exhausted 70% of my tasks for this month, and encouraging me to buy more tasks. I started to dig into this, and I cannot for the life of me figure out where to find any useful information for understanding,
    • Cross References Do Not Update Correctly

      I am using cross references to reference Figures and current am just using the label and number, i.e. Figure #. As seen here: When I need to update the field, I use the update field button. But it will change the cross reference to no longer only including
    • Manage control over Microsoft Office 365 integrations with profile-based sync permissions

      Greetings all, Previously, all users in Zoho CRM had access to enable Microsoft integrations (Calendar, Contacts, and Tasks) in their accounts, regardless of their profile type. Users with administrator profiles can now manage profile-based permissions
    • How to Track and Manage Schedule Changes in Zoho Projects

      Keeping projects on track requires meticulous planning. However, unforeseen circumstances can cause changes to schedules, leading to delays. It becomes important to capture the reason for such changes to avoid them in the future. Zoho Projects acknowledges
    • Is there a notification API when a new note is addeding

      Trying to push to Cliq, or email notification when there's a new note added in module. How to implement this?
    • Zoho Sheet - Desktop App or Offline

      Since Zoho Docs is now available as a desktop app and offline, when is a realistic ETA for Sheet to have the same functionality?I am surprised this was not laucned at the same time as Docs.
    • Collaborate Feature doesn't work

      Hello Team. It seems that the collaborate section is broken? I can post something but it all appears in "Discussions". In there is no way how I would mark something as Draft, Approval, post or any of the other filter categories? Also if I draft a post
    • Next Page