Hello everyone!
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.
- Get the loan record.
- Check the loan amount.
- If the loan amount is less than Rs. 500,000, proceed to document verification.
- If the loan amount is greater than Rs. 500,000, check the tax filing status.
- If tax is not filed, update the record's Loan Eligibility field with the value "Tax not filed. Hence, not eligible for loan".
- If tax is filed, fetch the applicant's credit score and check the eligibility.
- If the credit score falls short, update the record's Loan Eligibility field with the value "Issue with credit score".
- If the credit score is up to the mark, proceed to document verification—Personal ID and Tax ID verification.
- 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", }, "$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:
Recent Topics
How to implement new online payment gateway?
Hello, Can you tell me how to proceed to implement my local payment gateway? DIBS has an open avaiable API that should be easy to implement into ZOHO BOOKS. http://tech.dibspayment.com/dibs_payment_window
Formula working in MS Excel , is not working in Zoho Sheets, Filter fuction which is working in MS sheets per the attached workbook / Daily update.
Filter function , which is working in MS Excel is not working in Zoho sheets. Please help on function of filter of particular class sheets and extract students name who has more than 3.5 hours of study hours on particular day depending on date in D7 cell.
New in Smart Prompt: Record Assistant for contextual assistance, and support for new AI models
Smart Prompt helps teams stay informed and move faster by providing relevant suggestions where work happens in CRM. With this update, Smart Prompt becomes more adaptable to your organization’s AI preferences. You can now choose which Large Language Model
Improved Integration Failure Information (And Notification Options)
Hi, When an attachment service for example fails, you just get "Field x - Error", I can check the field it is failing on and find nothing wrong, same file size, type, dimensions, etc. so more information as to the actual issue would be helpful. And an
Create static subforms in Zoho CRM: streamline data entry with pre-defined values
Last modified on (9 July, 2025): This feature was available in early access and is currently being rolled out to customers in phases. Currently available for users in the the AU, CA, and SA DCs. It will be enabled for the remaining DCs in the next couple
Change User Role in a Form
Hi, When in a form, it would be good (And consistent) to be able to change the user role/permission like you can with Shared Reports, All Entries or the actual User itself, rather than having to delete the users permission and then add it back again with
Reassign Partially Saved Entries
Hi, I would like to be able to go to Partially Saved Entries and like the option to delete them I would like the option to multi-select and be able to reassign them to another user to complete (Such as when a user has left the company). Thanks Dan
Increase the "Maximum Saved Entries per User" Options Limit
Hi, You can create lots of saved entries, yet the Limit when you apply one is 25, we may often expect 32 to be in draft, and therefore want to enforce that, can we increase the limit of this field from 25 to 100 (As you can just turn it off and have more
Dynamic Field Folders in OneDrive
Hi, With the 2 options today we have either a Dynamic Parent Folder and lots of attachments all in that one folder with only the ability to set the file name (Which is also not incremented so if I upload 5 photos to one field they are all named the same
Product Updates in Zoho Workplace applications | December 2025
Hello Workplace Community, Let’s take a look at the new features and enhancements that went live across all Workplace applications this December. Zoho Mail Block emails without notifying the sender Block emails without sending a rejection notification
Zoho CRM for Gmail Extension Not Working in Brave Browser?
Is anyone able to get the Zoho CRM Chrome Extension working in the Brave browser? They're both built on the Chromium platform and every other Chrome Extension works with the exception of Zoho CRM for Gmail so any ideas here?
Set Frozen Cells in the Report Settings
Hi, It would be nice to be able to set the frozen cells in the report Settings, and have an option if this is fixed or can be changed after loading (On the next load it still goes back to the Settings). Thanks Dan
Microsoft Teams now available as an online meeting provider
Hello everyone, We're pleased to announce that Zoho CRM now supports Microsoft Teams as an online meeting provider—alongside the other providers already available. Admins can enable Microsoft Teams directly from the Preferences tab under the Meetings
Tip of the week #26: Import/ Export calendars in Zoho Calendar.
Any calendar on the web or calendars that you create in any other calendar application can be imported in to Zoho Calendar. This will help you to add the events from the calendars that you import to your Zoho Calendar. You also have the option to export
Add Zoho Forms to Zoho CRM Plus bundle
Great Zoho apps like CRM and Desk have very limited form builders when it comes to form and field rules, design, integration and deployment options. Many of my clients who use Zoho CRM Plus often hit limitations with the built in forms in CRM or Desk and are then disappointed to hear that they have to additionally pay for Zoho Forms to get all these great forms functionalities. Please consider adding Zoho Forms in the Zoho CRM Plus bundle. Best regards, Mladen Svraka Zoho Certified Consultant and
Blocklist candidates in Zoho Recruit
We’re introducing Block Candidate, which helps recruiters to permanently restrict a candidate from applying to current/future job openings. Once the candidate is blocked, they will no longer be able to participate in the recruitment process. This will
What is the safest way to convert OST to PST files?
The safest way to convert OST to PST files is by using a reliable and professional OST to PST Converter tool. Manual methods often risk data loss, corruption, or dependency on Exchange Server connectivity. A trusted converter Aryson OST to PST Converter
Zoho CRM for Everyone's NextGen UI Gets an Upgrade
Hello Everyone We've made improvements to Zoho CRM for Everyone's Nextgen UI. These changes are the result of valuable feedback from you where we’ve focused on improving usability, providing wider screen space, and making navigation smoother so everything
Social icons, open in new tab?
Hello, I have two social icons on my footer, Facebook and Psychology Today. Clicking on the Facebook icon opens a new tab, the Psychology Today icon does not. I would like them both to open a new tab. Am I missing a setting somewhere?
Introducing Connected Records to bring business context to every aspect of your work in Zoho CRM for Everyone
Hello Everyone, We are excited to unveil phase one of a powerful enhancement to CRM for Everyone - Connected Records, available only in CRM's Nextgen UI. With CRM for Everyone, businesses can onboard all customer-facing teams onto the CRM platform to
Real-Time Screen Annotation During Zoho Cliq Screen Sharing
Hi Zoho Support Team, Hope you're doing well. We’d like to request the addition of real-time screen annotation tools during screen sharing sessions in Zoho Cliq video calls. 🔍 What We're Looking For: The ability for the presenter—and optionally, other
encountering an error when attempting to associate an email with a Deal using the Zoho CRM extension in Zoho Mail.
When I click "Yes, associate," the system displays an "Oops!! Something went wrong" error message. I have attached a screenshot of the issue for reference.
Autofill address using smart fields mapped over the pdf document
Hi, I'm using mail merge to map smart fields onto PDF documents I plan to distribute for signing. I already have a Zoho Sign subscription. When mapping smart fields from the Employee form, I only see the permanent and current addresses which include the
Live Chat for user
Hi everyone, I’m new to Zoho Creator and wanted to ask if it’s possible to add a live chat option for all logged-in portal users so they can chat internally. I’m trying to create a customer portal similar to a service desk, but for vehicle breakdowns,
How do I cap employee leave accrual
HI there, How do I cap an employee's leave accrual? The policy is that you accrue 15 days leave annually (1.25 days a month) and once you reach 15 days, you wont accrue more until you take leave. Thank you!
Open sub form from a button as a popup form
Is there a way within a form to use similar code as below to show a button in the form when clicked opens the subform for data to be added to the record being viewed in the form OpenUrl("#Form:<Customer_Delivery_Address>?<Delivery_Address>=" + input.ID,"popup
Dont have backup option in setting
Hi guys. I started using zoho book a week ago. I bought premium package yet I don't have backup option in setting. I hope anyone can help me find a solution. Thanks in advance
Making Tags Mandatory
When creating an expense, is it possible to make the Tags field mandatory? I see the option in settings to make other fields mandatory, like Merchant, Description, Customer, etc, but nothing about Tags. Thanks! Kevin
Is there a plan to integrate zoho voice with zoho books?
Hello, Is there a plan to integrate zoho voice with zoho books? Right now we are using the Twilio SMS integration into zoho books, but have recently decided to switch to zoho voice for calls and sms. Is there a plan to integrate zoho voice natively into
Pass variables to Zoho Desk via URL to create a fast new ticket landing page
We are integrating our phone system into Zoho Desk. Currently when a helpdesk agent answers the phone, a soft client opens a new tab with zoho desk at the new case page. https://desk.zoho.com/support/companyname/ShowHomePage.do#Cases/new We would like
Zoho Books Extension: What Happens If Custom Fields Already Exist?
When developing Zoho Books extensions, what happens if the target Zoho Books organization already has a custom field with the same API name as one defined in the extension? I’m asking because we originally created an on-Books version of this functionality,
Modular Permission Levels
We need more modular Permissions per module in Books we have 2 use cases that are creating problems We need per module export permission we have a use case where users should be able to view the sales orders but not export it, but they can export other
¡Vuelven los Workshops Certificados de Zoho a España!
¡Hola usuarios de Español Zoho Community! Hace ya unos días que hemos dado la bienvenida al 2026, y promete ser un año de lo más emocionante. Y es que nos gustaría haceros nuestro particular regalo de Reyes, aunque lleguemos un poco tarde. 🎁 ¡Nos gustaría
Free Webinar on 21 January: Looking back at Zoho Mail in 2025
Hello Zoho Community! Curious about how Zoho Mail evolved in 2025? Wondering how these updates can make your everyday email work simpler? We’ve got a session you won’t want to miss. In our Zoho Mail 2025 recap webinar, we’ll walk you through the key features
Cliq Networks users can see all other network users contact information
Is there a way to hide user contact information from each user in networks? I would only like the users to see the admin's contact information, not other users. Network users information shared by default
Zoho Sheet - Printing - Page Breaks and Printing Customization
I think the title is descriptive enough in that I cannot find help documentation on a simple task of adding in page brakes for separating pages on print. Thanks
Missing the "Find & Merge Duplicates" choice
Hi, I am missing the "Find & Merge Duplicates" choice. I looked under the "More Actions" menu in Contacts, Accounts, Vendors, and Leads and it is not there. I have full permissions. Please assist me on finding this feature. Thanks!
OAuth integration issues
I'm experiencing persistent OAuth errors when trying to connect Make with Zoho API. I've tried multiple approaches but keep encountering the following issues: First error: 'Invalid Redirect Uri - Redirect URI passed does not match with the one configured'
Marketing Tip #16: Ideal sizes and formats for adding images to your online store
Images can make (or break) your storefront experience. When your banners and product photos follow the right sizes and aspect ratios, your store looks cleaner, loads faster, and feels more trustworthy—especially on mobile. Here are recommended image sizes
Improve WhatsApp Module in Zoho CRM
The current WhatsApp module UI in Zoho CRM feels cluttered and complex, especially when handling high volumes of conversations. It would be great to enhance the WhatsApp module UI/UX by adopting a clean and simplified interface similar to Bigin CRM’s
Next Page