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
Partner with HDFC And Sbi Bank.
Hdfc and sbi both are very popular bank if zoho books become partner with this banks then many of the zoho books users will benefit premium features of partnered banks.
Zoho Mail iOS app update: Access Delegated Mailbox.
Hello everyone! You can now access the delegated mailbox from within the iOS version of the Zoho Mail app. To access the delegated mailbox: Open the Zoho Mail app. Go on to the 'Email' module. Tap the profile picture. Choose the delegated mailbox Please
How to convert Lead's country field from Text to Pick List
Hi, I would like to change the default country field in ZCRM from text to pick list. It looks like not I can't delete default country field and recreate it as pick list nor can i create an new custom field country because such a label belong to default field. So what do I have to do? Any ideas? L
How create a draft via workflow?
I wish to create a workflow rule for specific emails that creates a draft response - not an automatic email reply, but just a draft with a set response ready to be verified by an agent who can then manually select recipients. Alternatively, the workflow
New feature: Invite additional guests for your bookings
Hello everyone, Greetings from Zoho Bookings! We are happy to announce the much-awaited feature Guest Invite, which enhances your booking experience like never before. This feature allows additional participants to be invited for the bookings to make
Improved Contact Sync flow in Google Integration with Zoho CRM
Hello Everyone, Your contact sync in Google integration just got revamped! We have redesigned the sync process to give users more control over what data flows into Google and ensure that this data flows effortlessly between Zoho CRM and Google. With this
Image field in custom module
Hi guy, Is there any hope of adding a custom image field in the custom module? We created a custom module to keep track of assets, and it would be helpful if we could attach an image to the record. Thanks Rudy
الخصم على مستوى فاتورة المبيعات
السلام عليكم ورحمة الله وبركاته مطلوب في إنشاء خصم على مستوى فاتورة المبيعات وليس على مستوى البند أريد معرفة الطريقة؟
VAT and Taxes option not available
Dear ZOHO Team , The VAT and Taxes options in my ZOHO books account not available,I tried to find how to enable or check the way to use this option but unfortunately couldn't find it anywhere ,I'm in UAE ,kindly let me know what to do to solve this issue
Default Tagging on API-generated Transactions
If one assigns tags to an Item or Customer, those tags get auto-populated in each line item of an Invoice or Sales Order when one creates those documents. However, if one creates the Sales Order or Invoice via the API (either directly coding or using
Direct Feed (Bank)
Is Direct feed integration for AlRajhi and ADCB bank supported by Zoho Books in GCC/Saudi
Sales Order, Invoice and Payment numbers
Hi zoho friends, it is me again, the slow learner. I'm wondering if there is a way to have it so the Sales order, invoice and payment numbers are all the same? It would be easier for me if they were the same number so there is not so many reference numbers
MS Teams for daily call operations
Hello all, Our most anticipated and crucial update is finally here! Organizations using Microsoft Teams phone system can now integrate it effectively with Zoho CRM for tasks like dialling numbers and logging calls. We are enhancing our MS Teams functionality
Customer Satisfaction (CSAT) Report
From data to decisions: A deep dive into ticketing system reports The customer satisfaction (CSAT) report helps teams understand how customers feel about their support experience, identify service gaps, and continuously improve the help desk. It turns
Timeline Tracking Support for records updates via module import and bulk write api
Note: This update is currently available in Early Access and will soon be rolled out across all data centers (DCs) and for all editions of Zoho CRM. The update will be available to all users within your organization, regardless of their profiles or roles.
Shifts in Zoho People vs Zoho Shifts?
Hello Zoho People Team, We hope you are doing well. We are evaluating the Shifts functionality within Zoho People and comparing it to the standalone Zoho Shifts product. We’ve encountered comments and discussions suggesting that the Shifts feature inside
Disable fields in During action in Blueprint?
Hi there. I've tried field disable (setReadOnly(true)) using client script and the event is onMandatoryFormLoad on detail page, assuming it'll work on blueprint fields, but it bears no result. Is this the expected behaviour? That we can't do this yet?
Develop and publish a Zoho Recruit extension on the marketplace
Hi, I'd like to develop a new extension for Zoho Recruit. I've started to use Zoho Developers creating a Zoho CRM extension. But when I try to create a new extension here https://sigma.zoho.com/workspace/testtesttestest/apps/new I d'ont see the option of Zoho Recruit (only CRM, Desk, Projects...). I do see extensions for Zoho Recruit in the marketplace. How would I go about to create one if the option is not available in sigma ? Cheers, Rémi.
Best Email Backup Wizard in 2026
While searching for an email backup solution, my main hesitation was reliability. As a user, I had already seen many tools that looked promising but failed when handling large mailboxes, skipped folders, or caused authentication issues during the backup
Subforms and automation
If a user updates a field how do we create an automation etc. We have a field for returned parts and i want to get an email when that field is ticked. How please as Zoho tells me no automation on subforms. The Reason- Why having waited for ever for FSM
Allow Managers to Create Shifts for Their Departments in Zoho People
Hello Zoho People Product Team, Greetings and hope you are doing well. This feature request is related to Zoho People - please don't move it to zoho one! We would like to submit a feature request regarding shift management permissions in Zoho People.
Zoho Learn and Zoho CRM integration
I would like to see an integration between Zoho Learn and Zoho CRM. 1. To be able to add articles in a related list in all modules 2. Zia to suggest related articles in a Deal or Case or Lead 3. Ability to read / search articles during a call / follow
Maintain steady traffic to your domain: How Domain Aliasing helps
Consider this scenario: An organization has its primary domain as administrator.com. Now it wants to shorten its domain to admin.com because it's simpler and easier to remember. However, changing the domain completely can cause the following problems:
Why Sharing Rules do Not support relative date comparison???
I am creating a Sharing Rule and simply want to share where "Last Day of Coverage" (Date field) is Greater than TODAY (Starting Tomorrow). However, sharing rules don't have the option to compare a date field to a relative date (like today), only to Static
How do I migrate OLM file to Gmail?
Migrating emails from Outlook for Mac to Gmail can be challenging because Gmail does not support OLM files directly. This limitation often causes confusion and delays, especially when users need quick access to important emails and mailbox data on a web-based
CRM x WorkDrive: File storage for new CRM signups is now powered by WorkDrive
Availability Editions: All DCs: All Release plan: Released for new signups in all DCs. It will be enabled for existing users in a phased manner in the upcoming months. Help documentation: Documents in Zoho CRM Manage folders in Documents tab Manage files
Workflow rule only allows 10 workflow per module
Apparently a Zoho professional edition only allows 10 workflow rules per module. This makes workflow allocation literally impossible while allocating potential to different members of the team. I have 15 licenses. Is there a way in which related alerts can be varied? In other words, is it possible to have different related alerts be triggered with different rule criteria. so if I say, if potential is 'x' then trigger related alert 'x' and if potential is 'y' then trigger related alert 'y' Thanks,
IF Statement in Zoho CRM Formula Field
Hi, I am attempting to write a formula field that will give me one result if one statement AND another statement are true, then a different value if the first statement AND a different statement are true, else 0. Stated differently: if account = destination
CRM Percent custom fields: When will it show the % symbol and behave like %?
1. Actually Percent custom fields fail to show the % symbol. 2. When in formulas Percent fields work like number: 100 x 5% = 5 ideal world 100 x 5% = 500 what happens actually 3. When importing Percent fields the % symbol has to be removed and the data
Free Webinar: Zoho Sign for Zoho Projects: Automate tasks and approvals with e-signatures
Hi there! Handling multiple projects at once? Zoho Projects is your solution for automated and streamlined project management, and with the Zoho Sign extension, you can sign, send, and manage digital paperwork directly from your project workspace. Join
Automatically CC an address using Zoho CRM Email Templates
Hi all - have searched but can't see a definitive answer. We have built multiple email templates in CRM. Every time we send this we want it to CC a particular address (the same address for every email sent) so that it populates the reply back into our
Editing the Ticket Properties column
This is going to sound like a dumb question, but I cannot figure out how to configure/edit the sections (and their fields) in this column: For example, we have a custom "Resolution" field, which parked itself in the "Ticket Information" section of this
"Total Hours" on Employee Attendance Report
I'm learning that in Zoho jargon, "total hours" does not include paid breaks. Or at least not the way that my setup is working. That seems a little weird to me, since most jurisdictions in the US don't differentiate between time spent on paid break and
Fixed assets in Zoho One?
Hi, We use Zoho Books and have the fixed asset option in it. I started a trial for Zoho One and I do not see that as an option. Is the books that is part of zoho one equivalent to Zoho Books Elite subscription or is it a lesser version? Thanks, Matt
Integration with...
Dear Zoho Commerce team, Please could you consider the integration within Zoho Commerce / Inventory and Qapla'? (https://www.qapla.it/en/) This app is better than Aftership in many ways: - Aftership integration require PRO plan and price start from more
Repeat Column merge in ZOHO writer columns doesn't allow to set max columns per row
I'm using ZOHO writer to merge data from a ZOHO CRM subform and I want it to make a table. We're using Insert Table for Column Repeat, because this is what we need. (Name of column (Teamname) and underneath that a list of names of teammembers). It works
Generate leads from instagram
hello i have question. If connect instagram using zoho social, it is possible to get lead from instagram? example if someone send me direct message or comment on my post and then they generate to lead
Adding Markdown text using Zoho Desk API into the Knowledge Base
Hi Zoho Community members, We currently maintain the documentation of out company in its website. This documentation is written in markdown text format and we would like to add it in Zoho Knowledge Base. Do you know if there is REST API functionality
Create case via email
Good Afternoon, I have just registered and am taking a look around the system. Is it possible to create a case via email. I.e. an employee/client/supplier emails a certain address and that auto generates the case which then prompts a member of staff
Need a Universal Search Option in Zohobooks
Hello Zoho, Need a Universal Search Option in Zohobooks to search across all transactions in our books of accounts. Please do the needful Thanks
Next Page