Kaizen #127 - Circuits in Zoho CRM - Part 2

Kaizen #127 - Circuits in Zoho CRM - Part 2

Hello everyone!

We're back with part 2 of Circuits in Zoho CRM!
We are as excited as you are with this topic! Let's dive right in!

As promised, in today's post, we will discuss a use case, see how execution happens, and associate that circuit with a workflow.

In our next post(Yes! There's going to be another one!), we will associate the circuit with a button and a blueprint, view logs, and debug issues.

Sample use case - Loan Verification Process

Consider that we have a module in CRM called Customers, where we have personal information of customers, tax-related details, tax and personal ID verification details and status. Our aim is to check the requested loan amount, check eligibility, and then grant or reject it.
Here is a screenshot of a record in the Customers module.


Our condition is that whenever the loan amount is less than Rs. 500,000, the circuit should directly proceed to document verification. When the requested loan amount is greater than Rs. 500,000, we must check a few eligibility criteria before proceeding to document verification.
We can automate this entire process using Circuits, and execute it through a button, associate it with a workflow or a blueprint.

Let's take a look at the Circuit's flow.














Here are the different states of the Circuit that explain the logic.
  1. Get the loan record.
  2. Check the loan amount.
  3. If the loan amount is less than Rs. 500,000, proceed to document verification.
  4. If the loan amount is greater than Rs. 500,000, check the tax filing status.
  5. If tax is not filed, update the record's Loan Eligibility field with the value "Tax not filed. Hence, not eligible for loan".
  6. If tax is filed, fetch the applicant's credit score and check the eligibility.
  7. If the credit score falls short, update the record's Loan Eligibility field with the value "Issue with credit score".
  8. If the credit score is up to the mark, proceed to document verification—Personal ID and Tax ID verification.
  9. Update the details of the record to sanction the requested loan.

Let's discuss each of these states in detail.

1. Get the loan record

Builder View



Type: Get Record from Zoho CRM's states.
Action: Gets the details of the loan record from the Customers module. The output is in the following format.

{
    "ZohoCRM": {
        "record_id": "5575270000005762031",
        "user_id": "5575270000005379053",
        "module": {
            "api_name": "Customers",
            "tab_label": "Customers",
            "id": "5575270000001975002"
        }
    },
    "record": {
        "data": [
            {
                "Owner": {
                    "name": "Patricia Boyle",
                    "id": "5575270000001947001",
                    "email": "p.boyle@zylker.com"
                },
                "$currency_symbol": "$",
                "Tax_ID_Verification_Message": "Tax ID Verified Successfully",
                "$review_process": {
                    "approve": false,
                    "reject": false,
                    "resubmit": false
                },
                "$sharing_permission": "full_access",
                "Personal_ID_Number": "464694660655",
                "Personal_ID_Verification_Message": "Personal ID Verified Successfully",
                "Name": "Stephen Adams",
                "Manual_Approval": "Depends on score",
                "$state": "save",
                "$process_flow": false,
                "Tax_Score_Status": "Score is eligible for Loan",
                "$locked_for_me": false,
                "Tax_ID_Number": "GBHPS3618H",
                "id": "5575270000005762031",
                "Tax_ID_Verified_Date": "2024-02-26",
                "Loan_Eligibility": "Eligible for Loan",
                "$approval": {
                    "delegate": false,
                    "approve": false,
                    "reject": false,
                    "resubmit": false
                },
                "Modified_Time": "2024-02-29T12:26:11+05:30",
                "Tax_ID_Verification_Status": "Verified",
                "Tax_Return_Availability": "Yes",
                "Tax_ID_Verified_Time": "2024-02-26 23:28:39.0",
                "Personal_ID_Verified_Time": "2024-02-26 23:28:39.0",
                "Created_Time": "2024-02-29T12:26:11+05:30",
                "Amount": 600000,
                "$editable": true,
                "Personal_ID_Reference": "6cefa3d4-b87b-46a6-8814-b21fb422a28d",
                "$orchestration": false,
                "Tax_ID_Reference": "f6697aa8-8efc-4ee9-8dcc-0bc838755cb4",
                "Tax_Score": 450,
                "Personal_ID_Verification_Status": "Verified",
                "Personal_ID_Verified_Date": "2024-02-26",
                "$in_merge": false,
                "Locked__s": false,
                "Tag": [],
                "$zia_owner_assignment": "owner_recommendation_unavailable",
                "$approval_state": "approved",
                "$pathfinder": false
            }
        ]
    }
}

You can use any part of this output as input to other states. You can achieve this by using the JSON Path expression in the “result path” to traverse the result JSON of the state.
Result path allows you to combine state result with state input to pass as output. You can add the result path in the "Input/Output" section in the Builder view as well as the JSON in Code view.



In our case, we want to use the data inside the “record” JSON object. So, the result path will be $.record.
Result path is mandatory when you use the Get Record Zoho CRM state.
Next state: Check Loan Amount

Code View



2. Check Loan Amount

Builder View



Type: Branch
Action: Checks for the condition specified in the branch—check if the loan amount < 500,000. If yes, and Go to Documents verification state, else go to Check tax filing status state.
Next state: Check Tax filing status(if loan amount > 500,000)

Code View



3. Check Tax Filing Status

Builder View



Type: Branch
Action: Checks for the condition specified in the branch—if the tax filing status is Yes, fetch the credit score. Else, update the record with "Tax not filed; not eligible for loan".
Next state: Fetch Applicant Credit Score

4. Fetch Applicant Credit Score

Builder View



Type: Function
Action: Executes the CRM function "Tax Score Check" that holds the logic to get the basic eligibility stored in the Org variable "eligibility", compare it with the tax score of the applicant, and update the record, accordingly. Here is the snippet of this function.

Next state: Check eligibility of Credit Score

Code View


5. Check eligibility of Credit Score

Builder View



Type: Branch
Action: Checks for multiple conditions—if Tax Score Status = Eligible, go to Document Verification.
If Tax Score Status = Not eligible & the value of the field "Manual Approval" = "Not approved", update the record with "Issue in Tax Score".
If Tax Score Status = Not Eligible & "Manual Approval" = "Approved", proceed to document verification.
Next state: Depends on the condition that is met in the "Check Tax Score Eligibility" state.

Code View


6. Documents Verification Process

Builder View



Type: Parallel
Action: Verifies the Tax ID and Personal ID of the applicant.
Next state: Verification Details - Update Record

Code View


7. Tax ID Verification

Builder View


Type: Function
Action: Executes the function "Tax ID Verification" that has the logic to verify the tax details of the applicant.
Here is the snippet of this function.

Next state: Verification Details - Update Record

Code View


8. Personal ID Verification

Builder View


Type: Function
Action: Executes the function "Personal ID Verification" that has the logic to check for the applicant's personal details.
Here is how the function looks.

Next state: Verification Details - Update Record

Code View



9. Verification Details - Update Record

Builder View


Type: Function
Action: Executes the function "Update Customer Record status" that uses the Deluge Update Record integration task to update the "Loan eligibility" field.
Here is how the function looks.

Next state: End

Code View


10. Update Record - Tax Not Filed, Not Eligible

Builder View


Input/Output


Type: Function
Action: When the requested loan is greater than Rs.500,000 and the Tax Filing Status in "Not Filed", this state executes the function "Update Customer Record status". This function uses the Deluge Update Record integration task to update the "Loan eligibility" field, and takes the parameters "rec_id" and "loan_eligibility" with the values "$.ZohoCRM.record_id" and "Tax Filing is missing, Hence not eligible for the loan.", respectively.
Next state: End

Code View


11. Update Record - Issue with Credit Score

Builder View


Type: Pass
Action: When the tax score eligibility does not meet the requirement, this state ends the circuit's execution.
Next state: End

Code View



Testing and Execution

Let us see the execution of this circuit with a sample record ID.


When you click each state, you can see the input and output of that state.
When you click "View Logs", you can see how execution has happened, the payload for each state, the response, etc.


Associating this Circuit with a Workflow

Follow the steps mentioned in this article to create a workflow.
The condition for this workflow to execute the circuit is when the requested loan is greater than Rs. 500,000.
The Action is to execute the circuit. Choose the option "Execute Circuit" from the Instant Actions and select the Verification Process Circuit.
Save the workflow.


Let's test this workflow by creating a record in the Customers module with the loan amount less than Rs. 500,000.


As you can see, the workflow is triggered and executes the circuit when the loan amount is less than Rs. 500,000.
You can view the circuit's execution and other details as a related list.

Summary

Circuits allow you to automate entire business processes by allowing you to orchestrate functions along with your business logic as you see fit.
As you witnessed in this example, we used multiple independent functions written in CRM to achieve our business case through utilizing them in a circuit. This gives you the benefit of writing functions that can be reused in multiple places while saving you from the grief of dealing with huge volumes of code that are hard to maintain and harder to debug when written as a single function.

We hope you liked this post. We'll see you next week with another post on Circuits.
Let us know if you have any questions or feedback. We are listening!

Cheers!
Shylaja S

Additional Reading:

    Access your files securely from anywhere









                          Zoho Developer Community




                                                • Desk Community Learning Series


                                                • Digest


                                                • Functions


                                                • Meetups


                                                • Kbase


                                                • Resources


                                                • Glossary


                                                • Desk Marketplace


                                                • MVP Corner


                                                • Word of the Day


                                                • Ask the Experts



                                                          • Sticky Posts

                                                          • Kaizen #217 - Actions APIs : Tasks

                                                            Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
                                                          • Kaizen #216 - Actions APIs : Email Notifications

                                                            Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are
                                                          • Kaizen #152 - Client Script Support for the new Canvas Record Forms

                                                            Hello everyone! Have you ever wanted to trigger actions on click of a canvas button, icon, or text mandatory forms in Create/Edit and Clone Pages? Have you ever wanted to control how elements behave on the new Canvas Record Forms? This can be achieved
                                                          • Kaizen #142: How to Navigate to Another Page in Zoho CRM using Client Script

                                                            Hello everyone! Welcome back to another exciting Kaizen post. In this post, let us see how you can you navigate to different Pages using Client Script. In this Kaizen post, Need to Navigate to different Pages Client Script ZDKs related to navigation A.
                                                          • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

                                                            Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the


                                                          Manage your brands on social media



                                                                Zoho TeamInbox Resources



                                                                    Zoho CRM Plus Resources

                                                                      Zoho Books Resources


                                                                        Zoho Subscriptions Resources

                                                                          Zoho Projects Resources


                                                                            Zoho Sprints Resources


                                                                              Qntrl Resources


                                                                                Zoho Creator Resources



                                                                                    Zoho CRM Resources

                                                                                    • CRM Community Learning Series

                                                                                      CRM Community Learning Series


                                                                                    • Kaizen

                                                                                      Kaizen

                                                                                    • Functions

                                                                                      Functions

                                                                                    • Meetups

                                                                                      Meetups

                                                                                    • Kbase

                                                                                      Kbase

                                                                                    • Resources

                                                                                      Resources

                                                                                    • Digest

                                                                                      Digest

                                                                                    • CRM Marketplace

                                                                                      CRM Marketplace

                                                                                    • MVP Corner

                                                                                      MVP Corner







                                                                                        Design. Discuss. Deliver.

                                                                                        Create visually engaging stories with Zoho Show.

                                                                                        Get Started Now


                                                                                          Zoho Show Resources

                                                                                            Zoho Writer

                                                                                            Get Started. Write Away!

                                                                                            Writer is a powerful online word processor, designed for collaborative work.

                                                                                              Zoho CRM コンテンツ






                                                                                                Nederlandse Hulpbronnen


                                                                                                    ご検討中の方







                                                                                                            • Recent Topics

                                                                                                            • PUNJAB NATIONAL BANK (CORPORATE) INDIA - NOT AVAILABLE IN BANKING

                                                                                                              Dear sir, Kindly fix it. PUNJAB NATIONAL BANK (INDIA) is available but PUNJAB NATIONAL BANK (CORPORATE) is not available. Kindly enable this banking since we need to categorize the entries. Regards, Sanjay Jena email id/ user id : travewithmerchant@
                                                                                                            • Is it possible to create a word cloud chart in ZoHo Analystics?

                                                                                                              Hi there, I have a volume of transaction text that I would like to analyse using word cloud (or other approcah to detect and present word frequency in a dataset). For example, I have 50,000 records describing menu items in restaurants. I want to be able
                                                                                                            • Kaizen #216 - Actions APIs : Email Notifications

                                                                                                              Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are
                                                                                                            • Facturation électronique 2026 - obligation dès le 1er septembre 2026

                                                                                                              Bonjour, Je me permets de réagir à divers posts publiés ici et là concernant le projet de E-Invoicing, dans le cadre de la facturation électronique prévue très prochainement. Dans le cadre du passage à la facturation électronique pour les entreprises,
                                                                                                            • Your bot just got smarter: AI-Powered routing that reads between the lines

                                                                                                              What if your bot could tell the difference? Between a visitor who just needs a quick answer, someone actively comparing options, and a frustrated customer one click away from leaving? Most bots can't. They deliver the same response to everyone, missing
                                                                                                            • Weekly Tips : Master Keyboard Shortcuts in Zoho Mail

                                                                                                              If you spend a lot of time managing emails, switching between your mouse and keyboard can slow you down. Whether you are replying to clients, organizing your inbox, or searching for messages, every second counts. So, how can you streamline your email
                                                                                                            • Introducing custom lookup fields in the Tickets, Contacts, and Accounts modules

                                                                                                              Hello all, We are excited to announce a new enhancement that will empower you to further customize the Tickets, Contacts, and Accounts modules. Now, you will be able to create custom lookup fields in your Tickets, Contacts, and Accounts layouts for more
                                                                                                            • DKIM cannot be enabled for the domain as no verified default selector present

                                                                                                              Can't get the DKIM working. May you please check my account (nksy.us) to see what's wrong?
                                                                                                            • Contacts per department

                                                                                                              Hello, Is it possible to limit Contacts to a Department? Thanks
                                                                                                            • Collections Management: #3 Tackling Payment Failures

                                                                                                              Sam refreshed the dashboard. "Payment failed". Same customer. Same subscription. This is happening for the third time. He sends a usual email: "Your renewal payment failed again. Could you please check and retry?" A couple of days passed, and there was
                                                                                                            • How do I increase the email attachment size in Zoho CRM ?

                                                                                                              It looks like I'm limited to 10MB when sending an attachment using the email widget on a record in Zoho CRM. Is there a way to increase the size? Or can I use some other tool? From what I'm reading online, I'm maxed out at 10MB. Any insight would be greatly
                                                                                                            • Custom Field in Zoho Projects pulling into Analytics

                                                                                                              We have a client that we have built our their new business process using Zoho Projects, and we have build a lot of custom fields with their their Projects where they are capturing specific data points that we want to be able to track and pull data, as
                                                                                                            • WhatsApp Channels in Zoho Campaigns

                                                                                                              Now that Meta has opened WhatsApp Channels globally, will you add it to Zoho Campaigns? It's another top channel for marketing communications as email and SMS. Thanks.
                                                                                                            • Zoho sign and creator error message {"code":9043,"error_param":"Checked by","message":"Extra key found","status":"failure"}

                                                                                                              Good day, I receive the error message: {"code":9043,"error_param":"Checked by","message":"Extra key found","status":"failure"} when running below code from creator to sign, void TestForSign(int ID) { //Fetch Template Details (Optional, for dynamic mapping)
                                                                                                            • Download a writer template as .docx instead of .pdf.

                                                                                                              I have been trying to implement a feature to download a writer template as a .docx and got it working partly but it isn't good. Earlier I checked our code and I saw openurl("https://crm.zoho.com/crm/org121314/specific/Template.do?action=print&step=pdfPreview&id="
                                                                                                            • Allow the usage of Multi-Select fields as the primary field on "Layout Rules"

                                                                                                              We want to force our users to enter some explanation strings when a multi-select field has been utilized. I can't understand the reason for the usage restriction of Multi-Select fields as a primary field. This is a simple "Display hidden mandatory field
                                                                                                            • WriterTh

                                                                                                              After every space Writer goes to capital letters mode in my Android tablet. The cap mode stays till the second letter is typed in the word then it comes to normal mode.
                                                                                                            • Extract Archived Projects using Zoho Projects API

                                                                                                              In my organization we archive the projects when they are already completed, charged, invoiced, so that only those that are still pending process remain active. I need to access all projects (active and archived) from an external system, but the API v3
                                                                                                            • Ask the Experts: Five-hour live Q&A session with Zoho WorkDrive product experts

                                                                                                              Have questions about WorkDrive 5.0? Let’s talk! We recently launched Zoho WorkDrive 5.0, packed with powerful updates to help your team work smarter, stay secure, and get more value from your business content. From content-centric workflows and AI-powered
                                                                                                            • File upload support for subforms

                                                                                                              Dear All, Subforms help you add and track data related to your CRM records. We've always supported most of the commonly used field types in subforms, so as to cater to your business requirements. Now we're happy to extend support to file upload fields.
                                                                                                            • Circular record relationship in CRM

                                                                                                              Given there is a lookup in custom module Transactions creating a related list on the chosen Contact record. I. e. a lookup field on Transactions module points to Contacts. The related list on a Contact record can thus have have many transaction records.
                                                                                                            • Is it possible to pull the Zoho desk data into Zoho analytics in real time

                                                                                                              Hi - I am looking to add more dashboards and reports of Zoho Desk in analytics. I see there is a schedule to pull the data into analytics, but I'm wondering if there is an option to pull the data in real time instead of a specific interval?
                                                                                                            • Enhance productivity with the revamped Zoho Sheet View

                                                                                                              Hello folks, For some time now, you've been able to use the Zoho Sheet View to quickly edit multiple records or to insert a batch of new records. Its tabular interface allows users to engage in these tasks productively. Despite this, the existing Sheet
                                                                                                            • How to set value of dropdown field to variable

                                                                                                              For the life of me, I can't figure out why the following code won't set input.status to the previousSelection. Steps to reproduce: 1. Click input.complete 2. input.status dropdown updates from '1-Backlog' to '4-Done' 3. Click input.complete again to deselect
                                                                                                            • [Product Update] TimeSheets module is now renamed as Time Logs in Zoho Projects.

                                                                                                              Dear Zoho Analytics customers, As part of the ongoing enhancements in Zoho Projects, the Timesheets module has been renamed to Time Logs. However, the module name will continue to be displayed as Timesheets in Zoho Analytics until the relevant APIs are
                                                                                                            • [WEBINAR][MEA] Learn how to control your inventory and multi-channel sales with the Zoho Inventory & Zoho Books integration

                                                                                                              Hello there, We are hosting an exclusive live webinar tailored for businesses across the Middle East and African countries, where you'll learn how to take full control of your inventory and multi-channel sales while keeping your accounting perfectly in
                                                                                                            • Less clicks, more connection – the usability edge of Zoho Desk

                                                                                                              Imagine joining a new workplace, eager to prove your skills, partner with peers, learn new tools, and build a strong foundation for your career. The standards you've set could drive pressure into your head. You now discover the organization is using Zoho
                                                                                                            • Tip #3 Automating total item weight calculation for your sales orders in Zoho Inventory

                                                                                                              Hello, Hope the day is treating you well. Last week, we saw how we could automate the calculation of total shipping charges from numerous shipments for your sales orders and invoices. This week, we will see how you can automate the calculation of total item weight for your sales orders.  How does this work? First, you are required to capture the weight of all your items using a custom field. And when you create a sales order, you can either have the system display the individual weights for you or
                                                                                                            • Why Format section gets disabled when we create Merge Template over PDF

                                                                                                              I need some assistance I have a Client who is going to give certificates to users who passes his exam. So, I am using mail merge but in ZOHO writer after I upload the PDF and create merge Template over PDF the format Section gets disabled. My problem
                                                                                                            • Whatsapp Integration on Zoho Campaign

                                                                                                              Team: Can the messages from Zoho Campaign delivered through Whatsapp... now customers no longer are active on email, but the entire campaign module is email based.... when will it be available on whatsapp.... are there any thirdparty providers who can
                                                                                                            • How to calculate separate totals for Product Line Items filtered by category in Quotes?

                                                                                                              Hello! I'm working with Quotes in Zoho CRM and need help calculating conditional totals for line items. Current setup: I have two tables in my Quote template (Zoho Writer), both displaying Quoted Line Items Table 1 (top): Shows all products where Product
                                                                                                            • I Need Help Verifying Ownership of My Zoho Help Desk on Google Search Console

                                                                                                              I added my Zoho desk portal to Google Search Console, but since i do not have access to the html code of my theme, i could not verify ownership of my portal on Google search console. I want you to help me place the html code given to me from Google search
                                                                                                            • Zoho Desk API Documentation missing a required field

                                                                                                              We are trying to create a section using this information. Even after preparing everything based on that page, we still get an error. The error we get is this: {"errorCode":"INVALID_DATA","message":"The data is invalid due to validation restrictions","errors":[{"fieldName":"/translations","errorType":"missing","errorMessage":""}]}
                                                                                                            • Fetch Subform values through a lookup of a lookup

                                                                                                              Hi, I'm having an issue fetching the values of a subform through a lookup field through another lookup field. The code works perfectly to show me the subform row ID, but the second I try to get any readable data, it says "Error occurred. Please contact
                                                                                                            • Ability to modify what displays in calendar invite?

                                                                                                              I am a long time calendly user and want to make the switch to bookings.  I understand that there is not currently a meets/hangouts integration, is one on the roadmap? Is there anyway I can modify the calendar invite to include the meet link?  I can add it to the emails no problem, but I would also like it to display on their calendar.  Is there some work around I can do to get it on the calendar?  Also am I able to modify the calendar event title?
                                                                                                            • Turn Decision Box to a button

                                                                                                              Dear all, I need your help on CSS to turn a Decision Box to a Button. I have a Decision Box like: Turn on/off to refresh the information. (on User Input, either True or False, will refresh the information) Now I want to simulate to treat it like a Refresh
                                                                                                            • Emails not being received from a particular domain

                                                                                                              Cannot receive any emails sent from atco.com Domain is in the spam whitelist so should be no reason for it not to be coming through. Have filed a ticket and besides a generic response of we are looking at it - it seems there is no actual support workers
                                                                                                            • Stock Count

                                                                                                              The stock count is a nice new feature, but we cannot figure out how to: 1. Use it without assigning to a person, we have a team or one of multiple do stock counts as do most any company. 2. Add any extra fields to what the "counter" sees. The most important
                                                                                                            • Can you import projects into Zoho Projects yet?

                                                                                                              I see some very old posts asking about importing project records into Zoho Projects. But I can't find anything up to date about the topic. Has this functionality been added? Importing tasks is helpful. But we do have a project where importing projects
                                                                                                            • How to delete attachments form Zoho mail accounts

                                                                                                              I can't find a way to delete attachments from Zoho mail messages, either individually or in bulk. Searches here are providing conflicting results and often talk about workspace, whereas I am only interested in how to delete attachments that are seen with
                                                                                                            • Next Page