Kaizen #63 - Layout Rules in Zoho CRM

Kaizen #63 - Layout Rules in Zoho CRM

Hello and welcome to another week of Kaizen!

This week, we will be discussing Layout Rules in Zoho CRM.
If you need to modify the layout of a module based on user inputs, or to show or hide sections based on the value of a specific field, we have got just the perfect solution for you.

What is a Page Layout?

In simple terms, a page layout is a template where you can add, choose and arrange the fields and sections that will be displayed in a module. Depending on your application requirement, you can either edit the standard layout, or create custom layouts.

What are Layout Rules and why you need them?

Layout rules are a set of criteria that you define to modify the layout of a module. These rules help you keep your layouts clean and clutter-free. Often, you may need to set up dynamic layouts, where the value selected for one field determines the subsequent sections and fields. 
For example, in an automobile rental company, the field requirements for a two-wheeler will differ from the ones for a car. By using layout rules, you can display only the relevant sections and fields based on the type of vehicle being rented. This article will use an automobile rental company as an example to explain Layout Rules.

Who can access Layout Rules feature?

Only users with permission to Customize Zoho CRM profile can access this feature.

How and when are Layout rules triggered?

You can trigger the rule when the chosen primary field meets one of the following conditions.
  • is
  • isn't
  • contains
  • doesn't contain
  • starts with
  • ends with
  • is empty
  • is not empty
You can trigger the following actions when the criteria are met:
  • Show Fields - To show specific fields. For example, show the Number of Helmets field only if the Helmets Required is YES.
  • Show Sections - To show specific sections. For example, display the Four wheeler section only if the vehicle type is Four wheeler. 
  • Set Mandatory Fields - To set specific fields mandatory. For instance, make the car type field mandatory if the vehicle type is Four wheeler.
  • Show Subforms - To show specific subforms. For example, to show the Accessories Required only if the user chooses to rent accessories.

How to create Layout Rules?

  1. Go to Setup > Customization > Modules.
  2. Select the module.
  3. Go to the Layout Rules section and + New Layout Rule.
  4. In the New Layout Rule pop-up, enter the following details:
    1. Rule Name
    2. Rule Description
    3. Select the Layout to which the rule is applicable.
    4. Choose the primary field that controls the rule.
    5. Choose a condition to initiate the rule.
  5. Click Next.
  6. In the Rule Page, click + Trigger an action.
  7. Select the action and choose the corresponding section/field/subform according to the action you have selected.
  8. Click Save.


How to trigger more than one action with a condition?

With a single condition, you can trigger more than one action by repeating steps 6 to 8. For instance, if the vehicle type is two-wheeler, you can show the two-wheeler section, and make the bike-type field mandatory.

How to add more criteria to a condition?

To add more than one criteria to the condition, click on Edit Condition after initiating the rule. For example, you can show the Number of seating rows field only if the car type is MUV/SUV AND the seating capacity is greater than 4.



Note : You can add a maximum of five criteria in each condition, combined using AND or OR. You can use the primary field for only one criterion, and this criterion can only have AND operator with others.

How to add more conditions?

To add more conditions and actions depending on the same primary field, click on Choose an option and add them. For example, if the Vehicle Type is Four-wheeler, show the Four wheeler section of the layout.



How to make a field mandatory?

Apart from showing specific fields, sections or subforms, you can also make a field mandatory depending on a condition. For example, you can make the Number of Helmets field mandatory if the Helmets Required field is checked.



Layout Rules in action


The image illustrates the effects of the layout rules. Two-wheeler or Four-wheeler sections are shown depending on the value of the Vehicle Type field. The Number of Helmets required field becomes mandatory if Helmet Required field is checked. If the car type is MUV or SUV, AND the Maximum seating capacity is more than 5, then the Number of seating rows field is displayed.

API support for Layouts and Layout Rules

If you do not specify the layout while creating a record using API call, the standard layout will be applied by default. If you specify a layout, the record will be assigned to it along with mandatory field check configured for that specific layout. In either scenario, the Show Field/Section/Subform layout rules applicable will be applied to the view record page in the UI. 

Mandatory Field Layout Rules

In order to apply the mandatory field rules, you must include the apply_feature_execution key in the input JSON. This is supported for Insert, Update and Upsert Records API from v2.
Currently API support is only available for Mandatory Field Layout Rules, during inserting or updating a record. 
Here is the sample JSON to create a record applying the layout rules.


 {
    "data": [
        {
            "Email": "patricia.boyle@zoho.com", 
            "Name": "Patricia",
            "Name1" : "Matt",
            "Mobile_Number" : "999999999",
            "Vehicle_Type": "Two wheeler",
            "Bike_Type": "Standard",
            "Helmets_Required": true,
             "Layout": {
                "name": "Standard",
                "id": "4876876000002670001"
            }
        }
    ],
     "apply_feature_execution": [
       {
           "name": "layout_rules"
       }
   ]
 }


In this example, the system will throw the following MANDATORY_NOT_FOUND error since we have made the Number of Helmets field mandatory if the Helmets Required field is True.


 {
    "data": [
        {
            "code": "MANDATORY_NOT_FOUND",
            "details": {
                "layout_rule": {
                    "name": "Helmet Mandatory Rule",
                    "id": "4876876000002695023"
                },
                "api_name": "No_of_Helmets"
            },
            "message": "required field not found",
            "status": "error"
        }
    ]
 }


You can use apply_feature_execution key in the Update and Upsert Record APIs to apply mandatory field rules to those records created without apply_feature_execution key.

Show Field/Section/Subform Rules 

API support is currently not extended to these rules. When using API calls, you can add values to all fields, even if they are hidden by layout rules.  Get Records API returns all the fields in the layout. In other words, using APIs bypasses layout rules for Show Field/Section/Subform.

Points to remember

  • You can include the primary field of one layout rule in the "Show Field" and "Set Mandatory Fields" actions for other layout rules, but not as a primary field for another rule.
  • The Record Owner field or a multi-select picklist field cannot be the primary field for a rule.
  • Layout rules are active when creating a record manually and when creating a record through the API. However, when using the API, only mandatory field rules are applied. Layout rules are not available for records generated via import, webforms or lead convert page. Refer to Layout Rule Exceptions for more details.
  • When you edit a primary field associated with a layout rule, and if the actions triggered include making one or more fields mandatory, the system will capture these mandatory fields via a pop-up prompt. For example, when you edit a record, and change the Helmets Required from No to Yes, the Number of Helmets Required field will be captured via a pop-up prompt.
  • You cannot use Layout Rules on Auto Number, Lookup, Multi Select Lookup, User Lookup, Formula, File Upload and Multi Line field types.
  • Layout Rules are applicable for create, edit and view pages.
We hope you found this post useful. We will meet you next week with another interesting topic!
If you have any questions let us know in the comment section.

Related Links



    • Recent Topics

    • Zoho Desk Invite

      I'm trying to send an invite via Zoho Desk to the email nwc.hd@telecare.com.sa using my account in Zoho desk rmsh7777.rs@gmail.com but the invitation or email is no received. I need your kindness to activate the account, please.
    • Forwarding email into Desk - DMARC errors

      Hi, Our email domain is hosted through Exchange Online (Office 365). Customers email support@ourdomain.xyz which is delivered to Exchange. Exchange rewrites the TO email header to the email address associated with our Zoho Desk (support@ourdomain.zoho.xyz).
    • Cannot read properties of null (reading 'className')

      Hello, I'm attempting to integrate the Zoho desk chat widget. It loads visually on most pages, but at some point, it throws this error and it never appears: Cannot read properties of null (reading 'className') Here is the full trace: floatbutton1_hXdnKUp…f6FPihRNT_T47_.js:1
    • Permission Update Failed

      Dear Sir, I have downgraded from the trial paid plan to Free Plan. I am logged in as CEO - Administrator and trying to change the profile permission but getting error - Permission Update Failed. Please see the screenshot. In most of the pages I am getting
    • Zoho Support / Microsoft Outlook integration

      Is there integration between Microsoft Outlook and Zoho Support? If so, can you point me to the related documentation? I'm trying to understand how that would work.
    • Unable to Send Ticket Reply as a Contact in Zoho Desk?

      Hi Zoho Desk Team, I am trying to send a reply to a ticket on behalf of a contact using the Zoho Desk API. My goal is to have the contact's response reflected in the ticket conversation, but I am facing an issue where only the ticket author can comment.
    • MA 2.0 Email Footer

      Good day, I recently went through the nightmare of upgrading from MA 1.0 to MA 2.0 and continue to experience more problems or missing features and settings. In this particular case, I am trying to find where and how to edit the Email Footer in MA 2.0.
    • How Can Integrate Zoho Recruit in a Laravel Website like Danvast.com?

      What are the initial steps to integrate Zoho Recruit with a Laravel website? What API endpoints are necessary to begin the integration process? How can you set up Zoho Recruit API credentials in your Laravel environment? How do you manage API authentication
    • Not receiving New Ticket Emails

      Hello! The company I work for uses the Zoho ticketing system, however, I've noticed I'm not receiving email notifications when new tickets are published. I have admin rights to see these tickets on Zoho Desk and respond to them, but am not receiving the
    • Is there a way to show contact emails in the Account?

      I know I can see the emails I have sent and received on a Contact detail view, but I want to be able to see all the emails that have been sent and received between all an Accounts Contacts on the Account Detail view. That way when I see the Account detail
    • Unified WhatsApp Number Management in Zoho Desk and SalesIQ

      Dear Zoho Desk Support Team, We are currently utilizing both Zoho Desk and Zoho SalesIQ for our customer support operations. While both platforms offer WhatsApp integration, we are facing challenges due to the requirement of separate WhatsApp numbers
    • Paste Screenshot in Ticket

      We love Zoho Desk, but we miss the ability to paste screenshots directly into a ticket.  I know that others have requested this functionality, but I thought it would be good to add it here as well.
    • Refreshing screen collapses Starred Views and Expands All Views

      Just in the past few weeks I've noticed that when I refresh my screen, it now collapses my Starred Views section and Expands the All Views section. This is not how it used to work in the past. It is frustrating.
    • ZOHO DESK ヘルプセンターの言語選択メニューの表示方法

      ZOHO DESK のヘルプセンターを構築し、多言語化設定をしました。 顧客のヘルプセンター画面右上に言語選択メニューが表示されないため、弊社の契約先会社に問い合わせましたが、「通常は多言語化をオンにすると表示するためCSS を触り過ぎではないか」 という指摘のみでした。 試行中ですが表示できません。 何か要因となる情報をお持ちの方がいましたらご教授いただけますと幸いです。 ↓の赤枠を表示したいのですが、表示できません。
    • CRM email sync with 365 - app passwords

      Hi We have synced users crm account with hosted 365 email accounts. 365 has MFA enforced across the tenant. Now encountering issues with 365 sync failing due to password errors after some time. Advised that will need to use app passwords from 365 in order
    • how to Add a TXT record in the DNS

      hi everyone, i am using https://pradairways.weebly.com domain for practice purpose, now a Domain Verification - pradairways.weebly.com is required ,how to add txt reocrd in dns and complete the process. thanks in advanced
    • How can I reduce the size of the lightbox?

      Hello - I want to reduce the size of the lightbox overlay function on my site. Currently it occupies the WHOLE screen when activated, which I'm not a huge fan of. Is there anyway I can reduce the size of the lightbox overlay? Say, it only takes up 75%
    • Items attribute questions

      Many of my items have attributes, such as size and color. How can I add new fields to the "New Items" screen to capture that in my Purchase Orders, Items, and Sales Order pages? I only see these attribute fields when adding an Item Group. Also, on the
    • Update multi-select lookup via API? Or allow for import of multi-select Lookups?

      When will the ability to update a multi-select lookup via API be available? Also when will we be able to import a record with multi-select lookups? I understand a linking module can help with this, but linking modules in our scenario would only be used
    • Would like to create a bounce-back for incoming emails

      Hi all, I have a catch-all address, now from this I would like Zohomail to bounce back specific email addresses to the sender. Would like the server to send back an email from zoho servers stating that the intended addresse is no longer valid. while retaining
    • Cambiar nombre de usuario

      Hola. Tengo una cuenta en zoho, por ejemplo Minombre @ midominio.es Y quiero cambiarlo a Miotronombre @ midominio.es Se puede cambiar??? Con la cuenta gratuita de zoho, cuantos nombres puedo tener en un dominio??? Gracias y buen dia
    • Circuite fail because www.zohoapis.com:443 refuse conection

      Is anyone else experiencing this issue? A few weeks ago, I started having issues with circuits failing due to www.zohoapis.com:443 refusing the connection. The error message is quite clear and points to a problem on Zoho's API server, rather than with
    • Error in connecting to WorkDrive

      I'm trying to write a script to look in a specific WorkDrive folder and if there is a csv or xslx file, copy it to a different folder with a modified filename. That gave me the error: {"errors":[{"id":"F6016","title":"URL Rule is not configured"}]} So
    • Help with Zoho Books Deluge code error

      I have this deluge code im writing for Zoho Books button, it throws an error: Check and update the code in line 12 as there is a Exception : Error at line :14 Improper Statement Error might be due to missing ';' at end of the line or incomplete expression
    • Add additional field to quick search results

      IN the advanced search, we can add any field to the columns. In the regular search results (before you press enter, there is no option to modify the results. It would be super useful to include a custom field where it currently displays the pipleine
    • Problem - cant add Users (i.e. Zoho one / CRM Users) to BCC or CC in email, i.e. Sales orders or Retainers

      I can go to zoho books email templates, and select any email template, and automatically include any Zoho One user, i.e. member of staff. However in the context of sending an email, it will not let us add a member of staff from the user list, instead
    • Referring to Zoho user groups in Deluge?

      Hello, I am wondering whether it is possible to refer to Zoho user groups (with whom the application is shared) in Deluge. I currently restrict records to be viewable only if the login user created the record, but I would also like to make all records viewable if the login user belongs to group X. Thank you.
    • Zoho Books CREDIT LIMIT is completely USELESS due to a BUG!!! Please fix it ASAP!!

      Credit Limit should not be taken into account if payment terms on the Invoice are without credit. If selected Credit 0 days (Prepayment) why in this world would a notification pop up saying credit limit is exceeded and not allowing to create an invoice?
    • Mail Merge - unable to send more than 50 email

      Hi, I've subscribed to the pay email service because of the Mail Merge feature. However, I've found that this feature only allow to send up to 50 emails. I've to attach a screenshot for your reference. This limitation is not mentioned anywhere in service.
    • Auto-sync field of lookup value

      This feature has been requested many times in the discussion Field of Lookup Announcement and this post aims to track it separately. At the moment the value of a 'field of lookup' is a snapshot but once the parent lookup field is updated the values diverge.
    • Records not showing immediately.

      Hi, I keep coming across a problem when records are inserted, updated or deleted via deluge, the changes / new records or deletions aren't visible in the form's report. (Even after refreshing and clearing browser cache). I am experiencing this issue in both Google Chrome and Firefox. The records will eventually show up, but the delay can vary wildly. Below screenshot shows the report still showing a record which has been deleted via deluge.  When clicking "edit" on the record, Zoho displays a single
    • Email signature duplicate

      Hi, For a few weeks, opening the email writer would show an error. After clicking ok, the signature would change slighty (font size, I believe). After that it worked fine, so we thought nothing of it. However, now it no longer shows the error puts the
    • I can't auto-scheduling calls down - the code does not change anything

      Hi, I was trying to set a function that auto-schedules calls based on their call result; i.e "Requested more info". I had also included a reminder to send an email in the code. I logged a test call and nothing changed. Is there anything wrong with the
    • Generate a Zoho Sign link

      From time to time I get a response "I never received your you e-document for electronic signature" is there a way to generate a Zoho Sign link to share.
    • customers enter orders?

      Anyway we can let a customer into CRM and enter their own orders , no access to anything else except history reports, no access to any other contacts. Greg Aanes 2109 Queen Street Bellingha WA USA
    • Can I associate a lead with an account?

      Hello, Can I associate a lead with an account?  The only way I can do this at the moment is if I convert them from a lead.  But we have a situation where we have multiple leads for one customer so I will need to see both leads when I am viewing this customer. Thanks. Jason
    • 404 error for sites

      I'm getting a 404 error for all the sites that I created...they were working just 4-5 hours ago....
    • Default view to Gantt

      Greetings How does one set the default view to Gantt?
    • How to add two columns in Zoho forms

      I would like to have two columns in Zoho forms. How can i enable two columns?
    • Condition in templates

      Is it possible for me to add merge field conditionally in my templates. For example Dear ${Leads.Gender == "Male" ? "Sir" : "Ma"},
    • Next Page