Kaizen 179: Choosing between ZDK CLI and Web UI : When to Use Each

Kaizen 179: Choosing between ZDK CLI and Web UI : When to Use Each


Hello everyone, 
Welcome back! ZDK CLI uses commands to manipulate with Zoho CRM metadata from a terminal.  While Zoho CRM Web UI remains the primary tool for manipulating Zoho CRM metadata like creating modules, configuring fields/layouts etc., using ZDK CLI has its own advantages.  In this post, we will explore scenarios where each option excels, empowering developers and administrators to make informed decisions as per their requirements. Let's dive in!

Smith, a consultant at TechSolutions Inc. (a Zoho CRM Partner), is enhancing the Deals module for Springfield University, to align it with their admissions workflow. Springfield University is using customized Zoho CRM  for  learning management system (LMS). The Deals module now tracks student enrollment stages ( "Application Received," "Scholarship Review," and "Admission Offer Sent") instead of the sales pipeline. To support this, Smith needs to add a custom field like “Financial Aid Status” to the Deals module. 

Should he use Zoho CRM UI or ZDK CLI?

 For simple changes like adding this field, Smith would use the Zoho CRM UI—it’s faster. But this raises the question-

When does a customization demand use of ZDK CLI?

The answer becomes clear with Smith’s next project: customizing Zoho CRM for Brookside University. He has to create customizations for Student Management, Course Management, Admissions, Finances, etc., which takes days or even weeks. If Smith were to use the Zoho CRM UI , he has to navigate through multiple tabs in the setup and creates them one by one. When his customization is done in the sandbox, he completes testing it and deploys it to the sandbox environment.  Smith designs a Student Dashboard Widget that displays a student’s academic progress, attendance, extracurricular activities, and advisor notes in one place. For creating the widget, he uses the ZET CLI tool in terminal and after development he packages it separately and upload it to Zoho CRM. 

If Smith opts for ZDK CLI to build the customizations, he can create modules, fields, layouts, roles, and profiles directly from the terminal. He can use ZET commands in ZDK CLI project directory for developing the widget and can add the widget to the Zoho CRM through ZDK CLI.

By leveraging ZDK CLI alongside Version Control Systems like Git or Mercurial, Smith along with his team mates ensures every customization is traceable. Git logs resolve disputes like “Who modified the Admissions pipeline?”. Using ZDK CLI with VCS facilitates team collaboration. One team member can build up on another team member's work.

Riding on the success wave of Brookside University’s LMS integration, Smith’s firm, TechSolutions Inc., now needs to replicate the same Zoho CRM customization for their next project. Without ZDK CLI, Smith would have to do it all over again: manually rebuilding every module, field, and widget through the UI.

With ZDK CLI, the effort required is minimal.
  • Using zdk org:export command, Smith can export the metadata of Brookside University. 
  • He can use the exported files and "tweak" them to suit the needs of his new project.
  • Using zdk org:push  command, he can deploy the refined configuration to the new environment.
ZDK CLI transforms CRM customization from a manual process into a repeatable strategy—ensuring TechSolutions Inc.’s  growth.

When to Use ZDK CLI 

  • Bulk Metadata Management: You can use ZDK CLI to pull the metadata from one organization which has metadata customizations for LMS, make minor changes, and deploy it for a different CRM organization which needs customizations for the same.
  • Version Control of metadata changes: With ZDK CLI you can use Version Control Systems like  Git/Mercurial to track and manage metadata changes made by different team members, clearly showing who made updates and when, enabling transparency. This also makes it easy to revert changes if issues arise.
  • Collaboration - Reuse Components: Using ZDK CLI you can easily export your local metadata changes with zdk org:export, which creates a zip file of the the crm directory in your local ZDK CLI project. You can share this zip file with your fellow developers to collaborate seamlessly by building on each other’s work. You can also achieve the same using VCS. Checkout our previous Kaizen post on using ZDK CLI with git: Leveraging ZDK CLI with VCS to reuse components across different Zoho CRM org. 
  • Widget Development: You can create and update widgets via CLI commands.You can use ZET commands in ZDK CLI project directory and widgets can be added to your organization from the terminal itself without the need of packaging the widget.
  • Automate commands: You can automate ZDK CLI commands using scripts, reducing manual intervention. Take a look at this Kaizen post where we discuss a shell script designed to automate the process of pushing locally modified metadata along with conflict management.
  • Conflict Resolution:  Conflict resolution in ZDK CLI guarantees that changes done does not get accidentally overwritten.  Resolve merge conflicts with zdk org:pull:resolve, which opens a browser-based diff editor to reconcile code differences.

Best Practices

  • Use ZDK CLI for development in sandbox environments and the Web UI for minor fixes and to deploy it to Production environment.
  • Pull configurations via CLI (zdk org:pull) before major edits to maintain a backup.
  • For developing widgets zet commands along with ZDK CLI commands in the terminal.
  • Refrain from making simultaneous changes via Web UI and ZDK CLI to prevent conflicts.
  • If you are unfamiliar with a command, use zdk help command for to check the description of the command.
  • Though ZDK CLI lacks the visual simplicity of the Web UI, pairing it with IDEs like VSCode improves its usability.

Notes
For the current beta release, ZDK CLI will exclusively be available for Sandbox environment and will not be operational in Production environments. 

We hope you found this post useful. We will meet you next week with another interesting topic!
If you have any questions, let us know in the comment section.

Happy Customizing!





    • Recent Topics

    • Is this a valid email from Zoho or a scam?

      Hi, I received an email advising me to update MX records for Zoho mail. Is it legitimate? Thanks, Nelson. Dear Admin, You may know that your domain (eg, yourcompany.com) has an MX record that points to an email server configured to process email for your domain. We have noticed that some of our customers have used Zoho IP address (instead of DNS server name) in their MX records to specify the mail server. This is NOT recommended practice. Vendors will sometimes change IP addresses for number of valid
    • Search on Postcode criteria not working properly

      Hi there, I used to be able to do an advanced candidate search on 'Postcode starts with' and then enter the first two letters of the UK postcode.  So if I used CH then it would bring back candidates in CH1, CH2, CH3 etc.  This seems to have changed in the last week so that it now only brings back postcodes that exactly match CH only.  I tend to use this search criteria extensively so need a fix for it asap please.
    • Quotes vs Invoices vs Sales Orders

      We have the need to create either quotes, invoices or sales orders for services we provide to clients for our sales team to present to them.  However, we are confused in the purpose of each and which we should choose.  Could someone explain the difference in them? Also, with these, we will have setup costs for our clients and then fixed monthly costs.  For instance, we have services that are one-time services at $997 and then we have others that are monthly only ($250 per month).  In addition, we
    • Tip 14: How to iterate a set of Deluge code a specific number of times.

      Hello folks, As you might already know, recursive functions are used to perform a particular action a specific number of times. We had explained this in detail in our Tip #2. Similarly, there is another way in which you can iterate a set of Deluge code 'n' number of times. All you need to do is to create a List and use the For each index task to iterate it for a specific number of times.    Here are a few use cases where this would be useful to you:  To create 'n' number of duplicate records for
    • Can't set conditional layout rule on lookup field in Zoho CRM

      Namaskaram Zoho CRM team,      Usually any fields of module except mandatory fields can be hide using conditional layout rules.  But that can't be set on lookup fields event that is not a mandatory fields.  Many users are in need of that.   Crafted with
    • Online Calculator

      Created a public shipping volume calculator for my website visitors to use. its pretty cool when you combine the power of zoho sheets and the web experience. I chose zoho because our users dont need to login or created acct like google doc users. this is great because ppl will accept the technology more without resistance. you can see the online calculator here: hxxp://www.dblusa.com/dbl_calculator.php peace! RSA
    • All about Users in Zoho Projects

      To form a functional team, businesses should define different types of users in their team. Businesses can be effectively managed by inviting users to various roles. And, the person who has the administration privileges can invite or add users to various roles in the project. Two types of users Before going into the steps to add users to your portal or project, let's understand the different types of users:  Portal Users - Users who work for the projects in your team.                      ~ Portal
    • Zoho Projects API 100 requests/2 min. Limit

      Hi Requesting clarification on the API documentation. "You can invoke or call an API for 100 times in a span of two minutes. If you invoke more than 100 times, the particular API request will be locked for the next 30 minutes. " Does this limit apply
    • Calendar Connection Enhancement

      Hello everyone, Greetings from the Bookings team. We're here to announce an important Calendar enhancement that will roll out soon. Let's take a look at what's being changed. Improved and more straightforward UI The Calendars UI is undergoing a complete
    • Bookings to CRM - New Events and Contacts

      Hello, I have an issue with appointments taken by clients from a Zoho Bookings page. Previously when an appointment was reserved, if there were no client created in Zoho CRM, it would create it in the CRM through the integration between both platform.
    • Generating Discount Coupons for Zoho Bookings

      Hi, Is there provision to generate Discount Coupons for appointment bookings? I could not see that in the settings and this is very much needed. Please suggest us. Thanks
    • How do I remove mail hosting?

      I have a problem, I can't remove mail hosting. I need to remove them to cancel my domain, but it's imposible to cancel or remove the mail hosting. Please I need help urgently to resolve this problem.   Thanks
    • Notes created in mobile app not syncing with web notebook

      I have created certain notes in a new notebook in mobile app. The new notebook is also created using mobile app and when I logged in through web I am unable to see notebook that I have created using mobile app. there is no trace of notes in which i have created in mobile app on the web even after days of creating in mobile app This is not the case vise-a-versa. the notes and note book created on web are accessible on mobile app on real time.  this is very inconvenient and big demotivating factor
    • Desk - CRM Integration: SPAM Contacts (Auto Delete)

      SPAM contacts is a useful feature, but when the CRM sync is used, it is very frustrating. When a contact is marked as SPAM on Desk, I wish to do the same on CRM. When a SPAM contact is deleted, I would like it deleted from CRM. The feature looks half-baked.
    • No more IMAP/POP/SMTP on free plans even on referrals with NO NOTICE

      Outraged. Just referred a colleague to use her domain (not posting it publicly here) to Zoho, just as I have other colleagues, clients, friends. Expected the exact same free plan features as I have and as everyone else I ever referred got. I was helping
    • Mac Thunderbird zoho e mail account issues

      I have issues with a user account on thunderbird e mail client who suddenly does not receive emails, when you click get messages we get an error "sending of password for user ......did not succeed, mail poppro.zoho.com responded service unavailable" after
    • PASSWORD

      Hello, I'm Joyce, my client used zoho for password sharing, he did share the canva but once I clicked on it it will not automatically log-in, instead I need to log-in again. My question is my boss log-in first to his gmail and use his gmail to log-in
    • Kaizen #195: Frequently Asked Questions on Bulk Read API and Bulk Write API

      🎊 Nearing 200th Kaizen Post – We want to hear from you! 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.
    • admin problem

      i can't to reach for the panel that i will create another mail to our company account i have admin access but i can't reach the panel our Company name Scale point my mail asmaa@dcalepointhub.com please can you help me Thanks
    • 554 5.7.1 : Recipient address rejected: user [username] does not exist

      Hi, I mistakenly altered my shopify email settings (where my domain is managed), but immediately reverted them, however now I have a strange email issue. I can send emails just fine, but cannot receive them. I have tried all troubleshooting steps but
    • Legit email address?

      Hello, I received emails from zohoadmin@biznetvigator.com with a password expiry notice. is that a legitimate email?
    • SMTP Authentication Fails with App Password – “535 Authentication Failed” Error

      Hello, I'm trying to send transactional emails from my WordPress website using the WP Mail SMTP plugin with Zoho Mail (smtp.zoho.com on port 465 with SSL). I've created and used a Zoho Mail app-specific password for SMTP, and verified that: The email
    • Deluge script issue : Mismatch of data type expression. Expected BIGINT but found STRING

      I'm building a Zoho Creator form to take inputs for Email, Bootcamp Name, and Tag. If a record with the same Email + Bootcamp exists in a custom module (bootcampattendence), I want to update it by adding a new tag. If it doesn’t exist, I want to create
    • Survey end date extension

      Hi, Is there any way to extend the end date of my survey? I needed more time in finding respondents that is why I need to extend the end date of my survey. Help. Thanks
    • Problem with signature in a forwarded mail

      Dear All, In my email account I created a signature and I unchecked the 'Place signature above the quoted text for relies and forwards' My question is, when I am trying to forward an email, sometimes I need to insert my signature so I select it from the
    • Out of Office not working

      I have set up out of office on zoho mail, however, it does not reply to every mail sent to it. I have tested it by sending several test messages from multiple different email accounts, I will get a response to some of them, but not all of them this is
    • Error message that says only images and no text

      I filled out a template for a weekly newsletter with text and images throughout but when I click save and next an error message comes up that says "Campaign content has only images and no text" which is not true at all. I have no idea how to fix this issue and don't know where the problem is. 
    • Contacts Don't Always Populate

      I've noticed that some contacts can easily be added to an email when I type their name. Other times, a contact doesn't appear even though I KNOW it is in my contact list. It is possible the ones I loaded from a spreadsheet are not an issue and the ones
    • Cannot add zoho email to gmail acc

      I'm trying to set up my zoho mail to connect to my gmail acc but no matter what I try I always get this problem. What should I do now? Password is up-to-date. Authentication failed. Please check your username/password. [Server response: 535 Authentication
    • 553 Relaying disallowed - Invalid Domain

      I have this error "553 Relaying disallowed. Invalid Domain" when sending an email to any email address. But I still receiving email from other emails. I checked MX, DKIM, SPF and it's ok. Could you check and help? Thanks
    • Turn off Organization Contact List

      We need to be able to turn off the Organization Contact list for some of our staff. Once the Organization Contact list is turned off for a user, we would then like to be able to create a list of contacts on per user basis that would not be editable by
    • Unable to send massage Reason 553/ Relaying Disallowed. Invalid Domain

      Cant sed massages from my email. All massages from my domain received the same issue Unable to send massage Reason 553/ Relaying Disallowed. Invalid Domain
    • Kaizen #194 : Trigger Client Script via Custom buttons

      Hello everyone! Welcome back to another interesting and useful Kaizen post. We know that Client Scripts can be triggered with Canvas buttons and we discussed this with a use case in Kaizen#180. Today, let us discuss how to trigger Client Script when a
    • Make record entry more organized with the Sections component in Wizards

      Hello everyone! Wizards in Zoho CRM have always helped you break long record-detail pages or large sets of fields into multiple screens, making data entry smoother and more user-friendly. Now, we’re taking a major step forward with a new Sections component—giving
    • GSTIN Public Search API

      Does zohobooks have an api using which i can search GST numbers and get their details?
    • External @zoho.com mail stopped working today, yesterday no issues

      Hello, Over a sudden mail stopped being delivered to inbox. Domain is standard zoho.com worked no problem yesterday, today nothing in inbox. Sent several test emails from corporate account & from gmail.com, logs show acceptance by zoho mail server, but
    • Suggestion: Smart Purchasing Module for Zoho Inventory and Zoho Books

      Suggestion: Smart Purchasing Module for Zoho Inventory and Zoho Books As an active user of Zoho Inventory and Zoho Books, I’ve noticed that the suite already provides valuable tools for managing inventory, analyzing trends, and processing purchase orders.
    • Adding bank details to the contact through API

      How to add bank-related information to the contact while creating it using API? The account number needs to be encrypted before sending it through API but not sure how to encrypt and get those values. Please guide me in this.
    • average cost display

      Hello there, I'm using the average cost valuation method, and the cost price shown in the Items menu should reflect the latest WAC (Weighted Average Cost). However, it doesn't update automatically. Is there a way to display the current average cost without
    • Apple Mail issues

      Dear Sir or Madam, I am trying to configure my Zoho mail account to Apple Mail. It is not working. It seems to need more information (perhaps a path prefix?) than is shown in your tutorial (<www.zoho.com/mail/help/apple-mac-imap.html>). After plugging
    • Next Page