Kaizen 250: Introducing write-enabled Queries: Auto-populating lookup fields

Kaizen 250: Introducing write-enabled Queries: Auto-populating lookup fields


Hello Everyone,

Welcome back to an exceptional edition of the Kaizen series!
Today marks Kaizen #250, an exciting milestone in our journey of exploring, learning, and building with Zoho CRM. Over the past 249 editions, we've covered a wide range of features, APIs, best practices, and real-world use cases designed to help you get more out of Zoho CRM. A heartfelt thanks to everyone who has followed the series, shared feedback, asked thoughtful questions, and supported this journey along the way.

In today's post, let's explore the latest enhancements to Queries.


Until now, we've primarily used Queries as a read-only capability allowing us to fetch data, transform it using a Serializer, and display it in components such as Canvas and Kiosk. However, whenever we had to update a CRM record, such as setting a lookup field or modifying a value we had to rely on Custom Functions or Client Scripts. 

Info

What's new

Query Workbench's REST API source type supports GET, POST, PUT, PATCH, and DELETE, which means a Query can now perform the write itself, end-to-end.

Why this matters

The latest enhancement to the Queries feature enables you to automate dynamic lookup assignments directly within Zoho CRM. In this post, we'll use a practical example to show how this enhancement works in a Blueprint-driven Kiosk flow.
Quote

Business scenario

Zylker Field Services manages a team of Field Engineers across multiple service zones. Whenever a new Service Application is created, a dispatcher is responsible for manually identifying the most suitable engineer by matching the application's Zone and Specialization, and selecting the engineer with the lowest Active_Request_Count before assigning the request.

The Operational Problem

Traditionally, this process is manual:
  1. The dispatcher opens the Field Engineers module.
  2. Filters engineers by the required Zone and Specialization.
  3. Compares each engineer's Active_Request_Count.
  4. Assigns the engineer with the lightest workload.
This approach is both time-consuming and difficult to scale. As the number of service requests and engineers grows, manually comparing workloads becomes inefficient and can lead to uneven distribution of work.
Idea

Solution Overview

To automate engineer assignment, we'll build a Kiosk that is triggered from the Assign Engineer Blueprint transition. The Kiosk uses GetRecords state to retrieve the most suitable engineer and update the required records directly through the Queries with Zoho CRM REST API source.

The solution works as follows:
  1. The Kiosk is launched when the Service Application enters the Assign Engineer Blueprint transition.
  2. The GetRecords state fetches the Field Engineers module for engineers who match the Service Application's Zone and Specialization, filters only active engineers, and sorts the results by Active_Request_Count in ascending order.
  3. If a matching engineer is found, the Kiosk, updates the Field_Engineer lookup field on the Service Application by invoking the Query.
  1. Finally, the Kiosk displays a confirmation message and completes the Blueprint transition.

  2. If no suitable engineer is found, the Kiosk notifies the dispatcher, preventing the transition from completing until the assignment can be handled manually.

This approach ensures that every Service Application is assigned to the best-fit, least-loaded engineer while keeping the implementation entirely within native CRM components. 

Implementation

Step 1: Create a Query to Update the Field Engineer Lookup in Service Application Module

  1. Navigate to Setup -> Developer Hub -> Queries.
  2. Click Create Query, provide a name, and click Next. 
  3. In the Query Workbench, select Zoho CRM REST API as the Source. 
  4. Set the Request Method to PUT. 
  5. Specify the relative path for the Update Records API, passing the Service Application record ID as a variable. 
    /v8/Service_Applications/{{service_record_id}}

  6. Select Raw as the Body Type.
  7. Enter the following request body. The Kiosk dynamically populates the lookup field values. 
    {
     "data": [
     {
     "id": "{{service_record_id}}",
     "Field_Engineer": {
     "id": "{{engineer_id}}",
     "name":"{{engineer_name}}"
     }
     }
     ]
    }

  8. Provide the code to the Serializer to format the response according to your requirements. If the result contains data it will return "Field Engineer Assigned".
    const apiResult = result?.data?.[0] ?? {};

    return [{
     Message: "Field Engineer Assigned" ?? "Engineer Lookup Field Update Failed"
    }];

  9. Click Execute Query to verify the request and Save the Query.
      

Step 2: Create a Kiosk to Retrieve and Assign the Field Engineer

Create a Kiosk that retrieves the most suitable engineer and updates the Field_Engineer lookup field during the Blueprint transition.
  1. Navigate to Setup -> Customization -> Kiosk Studio
  2. Click Create Kiosk
  3. Provide a name and click Next
  4. Select Service Applications as the current module.


Add a Get Records state

  1.  Add a Get Records state and name it Get Suitable Field Engineer. 
  2.  Associate the Query that retrieves Field Engineers based on:
    1.  Zone 
    2.  Specialization 
    3.  Active status 
  3. Sort the results by Active_Request_Count in ascending order so that the least-loaded engineer is returned.  

Add a Decision state

  1.  Add a Decision state after the Get Records state. 
  2.  Name the decision Engineer Found. 
  3.  Configure the condition to check whether the Query returned a matching engineer. 
  4.  Create two paths: 
    1. Assign Engineer
    2. Default


Configure the Assign Engineer path

  1.  Add a Screen to the Assign Engineer path. 
  2.  Click Add and select Get data via Queries. 
  3.  Click New Query and associate the Query created in Step 1. 
  4. Map the required variables from the Get Records response and the current record. 
  5.  Select the fields to display on the screen. 
  6.  Click Save, and then Done. 

Configure the Default path

  1.  Add another Screen to the Default path. 
  2. Display an appropriate message, for example: "No matching service engineer is currently available. Please assign an engineer manually to continue".
  3.  Click Publish to save the Kiosk.

Step 3: Associate the Kiosk with the Blueprint Transition

Associate the Kiosk with the Assign Engineer Blueprint transition so that it is launched automatically whenever the transition is executed.
  1. Navigate to Setup > Process Management > Blueprint.
  2. Open the Blueprint created for the Service Applications module.
  3. Select the Assign Engineer transition.
  4.  Click Add(+) in the During tab.
  5. Choose Kiosk from the list of associated items.
  6. Select the Map Service Engineer Kiosk that you created in the previous step.
  7. Save the Blueprint.



The Outcome

When a user creates a Service Application, the record is initially created in the Open state. The Assign Engineer Blueprint transition is then available for execution. When the user clicks the Assign Engineer transition, the associated Kiosk launches automatically. The Kiosk retrieves the most suitable Field Engineer based on the application's Zone and Specialization, updates the Field_Engineer lookup field on the Service Application, and completes the assignment. If no matching engineer is found, the Kiosk displays an appropriate message, preventing the transition from proceeding until the assignment is handled manually.

We hope you found this post useful. 
We would love to hear from you! Write to us at support@zohocrm.com.

Happy Querying!




    • Sticky Posts

    • Announcing the new SKILL.md for Zoho CRM and the updated OAS repository!

      We are introducing a new zoho-crm skill to make working with Zoho CRM Developer tools (like APIs, functions, widgets, client scripts, queries etc) easier and faster, with the help of AI in your preferred AI harness like Claude Code, Codex, Cursor, VSCode
    • Kaizen #261 : Using Zoho CRM Skill to generate complex COQL queries

      Hello everyone, In the previous Kaizen posts, we introduced the zoho-crm SKILL.md and discussed how it can help you when you are working with Zoho CRM APIs and Client Script. In this Kaizen, we will focus on using the Zoho CRM `SKILL.md` with GitHub Copilot
    • Kaizen #256 - Build an Arrival Readiness Web Tab in Zoho CRM

      Hi everyone! Welcome back to the Kaizen series! In the post, we discuss a use case in hospitality industry: how an Arrival Readiness web tab widget can be used to let reception staff identify and resolve issues before arrival of guests. Use case In the
    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #226: Using ZRC in Client Script

      Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
    • Recent Topics

    • Rename default fields in Zoho CRM

      Hi, I'm setting up Zoho CRM for an Australian company. They are perplexed by the names of the address fields, e.g. "Billing Province" (we would call it Billing State) and "Billing City" (we would call it Billing Surbub). I would like to request that these
    • Do "shortcuts" or symlinks exist in Workdrive?

      I need some kind of link or shortcut to put into folders that point back to original files or folders, is there any way in Workdrive to do this?
    • Contact Lookup Mapping to Custom Module CRM via DataPrep

      Hi DataPrep Team, I'm facing an issue with Contact module lookup mapping to a custom module during the DataPrep-to-CRM migration. As per the documentation, the mapping format for lookup fields should be: <Lookup_Field_API_Name>.<Lookup_Module_API_Name>
    • Zoho ERP | Product updates | August 2026

      Hello users, What’s new in Zoho ERP this month? From Account Registers to new reports, we’ve packed this release with updates worth checking out. Take a look at what’s new and see what’s in store for your business. Introducing Account Registers Account
    • Kaizen #99 - Render Widgets Using Client Script

      Hello everyone! Welcome back to another interesting post. In this post, let us see how you can render Widgets using Client Script. Widgets are embeddable UI components that you can create and add to your Zoho CRM. You can use widgets to perform functions
    • Customer portal: recommended way to scope lookup fields to the logged-in client?

      Hi all, I'm building a customer portal on Creator for our clients (we're a esting lab, so each client has their own sites, contacts and jobs). Planning stage, so I'd rather get the approach right before I build it. The portal forms need several lookup
    • Support for Custom Fonts in Zoho Recruit Career Site and Candidate Portal

      Dear Zoho Recruit Team, I hope you're doing well. We would like to request the ability to use custom fonts in the Zoho Recruit Career Site and Candidate Portal. Currently only the default fonts (Roboto, Lato, and Montserrat) are available. While these
    • Introducing the Zoho Contracts API Collection on Postman

      We are happy to announce that the Zoho Contracts API collection is now available on Postman. You can explore, test, and debug Zoho Contracts APIs without writing application code. What's in the collection Ready-to-use requests for Contracts, Counterparties,
    • Zeptomail in the blacklists

      Hello, I noticed some hard bounces while sending emails, and upon checking the details, I see that we have been added to the blacklists of certain spam lists: Bounce category: Policy failure Reason: ip-issues Message: 5.7.1 Service unavailable; client
    • Add Payment Information (like Bank details)

      I am using the Free plan of Zoho Books. I need to add the bank details/ UPI details on the invoice. How can I do that. I have added the details in the Bank Section.
    • How does Recur setting affect execution time of time based workflow rules.

      When setting a workflow rule based on Date/Time field, the Recur setting does not seem to make sense. If I want the rule to execute at a specific amount of days relative to a date field, what exactly would the recurrence be? That point in time would only
    • Canvas Ungroup is No Longer an Option - Can we Bring it Back?

      You used to be able to ungroup a Group in ZOHO Canvas, but now you have to delete the group and completely start over (re-add the fields, re-place them, regroup them, readjust the group as you want it/reformat) instead of ungroup, move or delete only
    • Reserve Your Spot for the Zoho Recruit India Virtual Meetup

      The Zoho Recruit Meetup India is happening virtually on October 15, 2026, and registrations are now open! This meetup is a chance for Zoho Recruit users across India to come together, catch up on what’s new, learn better ways to use Recruit, and have
    • Account recovery using trusted Zoho applications

      We know forgetting your password can be frustrating. So to make account recovery even simpler and more seamless, we're introducing recovery through Zoho mobile apps; in addition to the existing OTP options using email address or mobile number. Please
    • Introducing Omnichannel Subscription

      Your customers may choose to subscribe through different marketplaces such as Google Play or App Store. As your business expands, managing these subscriptions can become increasingly complex. To make it easier, we are introducing the Omnichannel Subscription
    • WhatsApp Business Message Pricing Update: Effective October 1, 2026

      Hi everyone, Starting October 1, 2026, Meta is updating how WhatsApp Business messages are charged. This guide explains the new per-message pricing model, how message categories work, and what changes for service messages specifically. How Meta charges
    • [Webinar] Automated label merging

      Live webinar on October 8, 2026 | Time: 2 PM IST | 2 PM EDT Hi, Businesses that rely on labels for shipping, inventory, or events often struggle with rigid layouts, disconnected data sources, printing the right quantity, and adapting labels for different
    • zFlow_DateTime

      This kind weird since our Flow is RUNNING FOR ALMOST A YEAR and suddenly, our auto plotting of events on Creator Calendar isn't working. Our team can't afford doing manual thing since we handle lot of service tickets. We suspect that there is something
    • What's New in Zoho Inventory | July & August 2026

      Hello users, The July and August 2026 releases bring a range of new features and improvements across the product. From the Nigeria Edition and Super Admin enhancements to Sri Lanka IRD-compliant invoicing, Loyalty Program Management, and improvements
    • Roles and Privileges in Zoho Mail: Define and control administrative access in your organization

      Imagine a growing organization where the IT team needs to manage users, the support team needs to handle spam settings, and the group admins need to oversee email groups, all without giving everyone full access to the Admin Console. This can be achieved
    • Keep sensitive PDFs protected with Zoho PDF Editor

      PDFs often contain confidential information in the form of financial reports, business proposals, contracts, or forms. Zoho PDF Editor helps you keep that information under control with password protection. With two layers of protection, you can decide
    • Enrich your contact and company details automatically using the Data Enrichment topping

      Greetings, I hope you're all doing well. We're happy to announce the latest topping we've added to Bigin: The Data Enrichment topping, powered by WebAmigo. This topping helps you automatically enhance your contact and company records in Bigin. By leveraging
    • CV Parsing

      Hi guys, I parsed my cvs through Rchilli. What can I use now that they have ended their association with you?
    • Change default "Sort by"

      Is there a way to change the default "sort by" when searching across modules?" in Zoho CRM? Currently the default sort method is "Modified time" but i would like to utilize the second option of "relevance" as the sort by default and not have to change
    • Document Approval Workflow for Non-Users

      Our organisation has not added client users yet to Zoho but we are currently exploring how we can use the document Review and Approval Workflow to send out project updates to clients. While testing, we found that we can only pick users as approvers. Is
    • Zoho Learn - Enable Keep Aspect Ratio by Default

      Hi Learn team, Is there a way to enable "Keep aspect ratio" in Image Options by default? It's really frustrating to have to change this for every image. Realistically, who wouldn't appraciate this?
    • Tip #91 – Let customers join sessions directly from your website with the Customer Widget – 'Insider Insights'

      Hello Zoho Assist Community! When a customer needs remote support, the last thing you want is for them to fumble through an email invitation or navigate to an unfamiliar webpage just to join a session. Every extra step is a moment of friction, and for
    • 👍 Zoho CRM's Notes now gets Reactions and a new look

      Available in SA and JP DCs. Rolling out to other DCs in phases. Hello everyone, Notes help users capture important updates, collaborate with teammates, and maintain context for records. Now with Note Reactions, users can quickly acknowledge updates, express
    • Profile picture unable to be seen by other colleague.

      Hi, As per title, I'm having problem where my profile pic doesn't show from other colleague account. However, when I uploaded the pic from zoho web, it is showed in my phone apps. Still, other colleagues cant see my profile pic. Please help. Thanks,
    • Mute notifications to followers knowledge base/help center

      Good morning Zoho, We are in the midst of a rebranding. This requires updating all of our knowledge base articles with new screenshots etc. In other words: They are all updated. This means all our customers that follow these articles are spammed with
    • Global Constants / Variables

      It would be great if there were a Global Constant feature. The idea here is for managing constants that are used in multiple Flows and Subflows, but might change over time. The idea is that the change could be made in one place and cascade to all future
    • Item/service subtotal

      Just discovered & really pleased that we can drag to re-order the line items in Sales orders & Invoices, a very nice feature which doesn't seem to be documented? It would be nice to be able to insert a subtotal as a line item to complete this great feature
    • Unable to change alias in the from field on the ZOHO mac app

      I have 1 main mail address, and 3 alias's. on the web mailbox when I create a new email, I can select the alias's from the dropdown in the from field. On the app no dropdown is available.
    • Ask the Experts 33: Ticketing in Zoho Desk

      Every customer interaction begins through one of these channels: email or a phone call, a web form, an instant message, a social media, or a visit to your self-service portal. Bringing these interactions together and managing them in the right context
    • Workflow Automation Not Triggering

      My Zoho CRM workflow sometimes doesn’t trigger when a record is updated, even though the workflow criteria appear to be met. What should I check to find out why the workflow is being skipped?
    • Migrating from Zoho Checkout to Zoho Billing

      I have an active Zoho Checkout account where I'm charging customers for subscriptions. Now I'm looking to upgrade and only use Zoho BIlling, in which my account in on read only mode at the moment. I can see is also tracking the customers and its payments.
    • Issues with Zoho Insights and email template web links

      Is anyone else out there having the same issue we're experiencing? When we send out an email template, Zoho insights is converting the URLs from the URL we insert in to the template in to one of the form https://mailer1.zohoinsights.com/ocgeturl/2d6f.327230a?l=0ed7f050-5b31-11eb-a1a...
    • Let's Talk Recruit: Exploring AI in the Zoho Recruit mobile app

      Welcome back to Let's Talk Recruit! Ever had to look up a candidate's details right before a meeting? Or wanted to check your hiring pipeline while you're away from your desk? Recruiters are constantly on the move, and keeping up with everything can be
    • Automating CRM backup storage?

      Hi there, We've recently set up automatic backups for our Zoho CRM account. We were hoping that the backup functionality would not require any manual work on our end, but it seems that we are always required to download the backups ourselves, store them,
    • Can I add a description field from my form to my document in Writer?

      I have a form which has lots of text in a "description" field. Can I pull these into my document in Zoho Writer? I know I can write these directly onto my document but if I change the wording in the "description" field on the form, I don't want to have
    • Next Page