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

    • Notification based on created/updated sales order that contain certain line items.

      Hi, I am finding the workflows within Books somewhat difficult to setup, so I am thinking that a custom function may be the best way to go about this. I want to be able to send a notification to a team member that any sales order that has been created
    • Drawings in forms

      I do a lot of drawings during my consultations and I’d like to add  body maps or stencils that I can draw on in different colours and add explanations etc. I need to be able to erase mistakes etc. Ideally in a form that I can prepopulate with client details and a few questions/ client signature and then save as a form. is this currently possible? if not, is it in the pipeline? thanks, Dennis
    • How can I populate dropdown data with information from another source or app?

      I want to maintain a list of items in another app (say in excel or another database) and sync those as items in a drop down menu, instead of copy pasting to import. Is this kind of a feature available?
    • Workplace - Zoholics Europe Customer Awards

      Dear Zoho Mail Community! 📣 We're excited to announce that at this year's Zoholics events across Europe, we're holding customer awards for the first time ever! Workplace - Zoholics Europe Customer Awards This is your chance to shout about the amazing
    • Zoholics Europe Customer Awards

      Dear Zoho Workplace Community! 📣 We're excited to announce that at this year's Zoholics events across Europe, we're holding customer awards for the first time ever! Workplace - Zoholics Europe Customer Awards This is your chance to shout about the amazing
    • Change Default Currency in Zoho Reports

      Is it possible to default all currency fields in my Reports and Tables to my local currency without having to reformat them every time?
    • [Webinar] Deluge Learning Series - Master Conditional & Operational Logic in Zoho Deluge

      We’re excited to bring you the next session in our Deluge Learning Series—a focused one-hour webinar where you’ll level up your skills in conditional and operational logic using Deluge scripting. From writing clean if-else conditions to implementing powerful
    • UPI QR Code in Invoices

      Hi, It would be easier to make payment, if UPI Qr code is generated by Zoho Books and shown in the invoice itself.  This will promote digital payments and also makes it easier for customers to pay. It would be even helpful, if QR code contains the invoice
    • WebDAV support

      I need WebDAV support so that I can upload/download (and modify) documents from my local file system. Is anything planned in his direction?
    • Recurring Events Not Appearing in "My Events" and therefore not syncing with Google Apps

      We use the Google Sync functionality for our events, and it appears to have been working fine except: I've created a set of recurring events that I noticed were missing from my Google Apps calendar. Upon further research, it appears this is occurring
    • Zoho Inventory Item History

      Hi Zoho Inventory Team, I 've been testing the History feature on Inventory Items in a demo system and I noticed that when I changed the value of a field to a new value, the history just says "updated by - user1", it doesn't say what what field was changed
    • Filter Images in Work Drive

      Hi, what is the best way to be able to filter files by multiple descriptions, for example, the name of a person in the photo as well as, an item in the photo and other descriptions? With labels it looks like you can only select one label at once but this
    • Flow not working when trying to Create a Merged Doc with info from a custom CRM module w/ subform

      I am having a problem creating a flow that gets its info from a webhook connected to a button in a custom module in Zoho CRM. I have made a template in Writer that follows: This is a clone of  the template in the CRM mail merge which works perfectly if i do it manually through there. My flow gets the custom module entry id through a webhook, then fetches the module entry data, and creates a merge document from that data. I know the webhook and the fetch work because if i replace the "create merge
    • Smart Scheduling via Agent Confirmation

      We’re excited to introduce a smarter and more streamlined way to manage dispatched service appointments in Zoho FSM! Feature Highlights Field agents can now approve or reject service appointments assigned to them—helping reduce unnecessary workload and
    • How to delete Inactive users?

      We want to delete inactive users from our system, but went you deactivate still the names are shown at the inactive section. How to get really rid off these names? Thanks for your response! Fabian van den Barselaar
    • Help me format my signature in zoho mail

      I need to set up my signature in zoho mail then send the format to other colegues to set it up by themselves. I have isues setting up my 5 logos one after another as I am not able to give sapce between logos. After setting up my signature with logos there
    • Can i integrate bigin with google voice?

       I make all my calling through google voice to seprate my personal line from business. I want to log my calls with customers automatically but i domt see anywhere where i can do that. Any help? Im pretty sure i wont be able to. Sad
    • Custom Field for Customer ID in Zoho Commerce's Customer Section

      Hi everyone, I’m wondering if it’s possible to add a custom field in the "Customer" section of Zoho Commerce. Specifically, I need to include a "NIF" or "Customer ID" field, as it's mandatory for invoicing in Spain. I know this can be done in Zoho Inventory,
    • Introducing Zoho CRM for Everyone: A reimagined UI, next-gen Ask Zia, timeline view, and more

      Hello Everyone, Your customers may not directly observe your processes or tools, but they can perceive the gaps, missed hand-offs, and frustration that negatively impact their experience. While it is possible to achieve a great customer experience by
    • API Self Client Authtoken conversion always returns "invalid_client".

      I am having a problem when trying to convert an Authtoken to OAuth for a Self Client script.  I have made sure that the client Id, secret, and organisation are correct, and the domain is definitely ".com"/ This is the python code I am using to create
    • [Webinar] Live demos and user Q&A with Zoho Writer product experts

      Join us on June 12, 2025 for live demos based on your use cases and real-world scenarios raised via form. This is also an opportunity to get your questions answered directly by product experts from the Zoho Writer team. Webinar agenda Live demos based
    • My client requires me to have custom pdf file names to except payment for invoices, how can I customize this before emailing.

      Hello! I love the program so far but there are a few things that are standing in the way. I hope you guys can code them in so I can keep the program for years to come. My client requires I customize the pdf file names I send in for billing. Can you please
    • Schedule mass emails, view mass emails status and more!

      Hello everyone, Mass emails help you communicate with multiple customers in a couple of clicks. We have introduced a Mass Emails dashboard in Bigin so that users can see the status of the mass emails like how many emails were opened, clicked and bounced.
    • Multiple Selection/Select All for Approvals

      I have a suggestion from users regarding Approvals. In our environment, our Regional Managers can receive multiple requests for Approval or Rejection. They find it tedious to approve (or reject) each individual record. They would like to have a way to
    • How to report and analyze a multi-select field entries distinctly ?

      As many of CRM users I have many multi-select fields that allows me to choose more than one chose in one cell for a specific filed Like: Field A - A;BC - A;C -B;C But when reporting the field it will handle each cell as a "String" not multiple entries
    • Merge invoices

      This has come up three times in a month of me using the system. a client whom i do work for on a regular bases asked me to invoice separate jobs on a single invoice. I would then go and cancel the old invoices and make a new one. It would be great if i could just select the invoices and click merge to create a single invoice.
    • Zoho CRM Two currencies on one record

      Hello all, Our country is planning to transition to Euro from our local currency. The government is planning to mandate that all companies show their invoices, quotes, etc. in both currencies for a period of one year in order to protect from speculation.
    • How to get values from both tables in Join in COQL query in Zoho API

      In this below query I can get value either from Deal Table or from Contact table. If I wanted data from both the table it is not working. Can you please help me with this. Thanks in advance. {     "select_query": "select ,A.Deal_Name,B.First_Name,B.Last_Name,
    • 【Zoho CRM】日時のフィルター機能のアップデート

      ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 今回は「Zoho CRM アップデート情報」の中から、各タブで利用可能な日時のフィルター機能のアップデートをご紹介します。 日付項目と日時項目のフィルター及びカスタムビューに、「前へ(Previous)」「次へ(Next)」の選択肢が追加されました。 ⬛︎[前へ(Previous)]:作成日時に基づきレコードをフィルターにより抽出する場合 例1. 前へ6ヶ月:当月を除く直近6ヶ月間のレコードを抽出 例2. 前へ3年:今年を除く直近3年間のレコードを抽出
    • How can I notate on check stub when a vendors credit has been applied to an invoice payment?

      I'm looking for a way of printing vendor credit memo use on a check stub when its been applied to other invoices. To let my vendors know I'm using credit memo XYZ in the amount of $xx.xx. Currently I am having to handwrite it on the stub to show my vendor
    • Is there a Waiting Room Before The Webinar Starts?

      It appears that there is no waiting room before a webinar starts. For example, with most webinar software you can collaborate with your co-presenter, set up your presentation and check to make sure everything sounds right before you go live. Zoho Meeting/Webinar
    • Optimizing Zoho CRM Integration – Tips & Insights Needed

      I hope you're all doing great! I'm currently working on integrating Zoho CRM with our platform, which helps users get iPhone Free of cost through verified government programs. Everything's coming together nicely so far, but I'd really appreciate some
    • Forms - Workflow

      Apologies if this has been asked before. I would like to know if there is a way to setup a form where a customer completes the fields/questions on Page 1 and then it is forwarded to an internal department employee who completes the fields/questions on
    • Using the "Like" operator in Custom Formula

      HI there, Can someone please explain the way to use the "LIKE" operator in an IF statement to compare strings? I have tried the following but am not getting the results I'm after. if( "CurrentStatus" like 'Rejected*','Unsuccessful','Pipeline') Thanks Matt
    • ABA Files payment description

      Hi, is there a way to automate the payment description on the ABA file creation. When you paying many vendors having to put this in each time is very time-consuming. I couldn't see if there was a way to workflow this to automate using deluge.
    • GDPR Contd. - Handling Lawful Bases for Your Customers using Zoho CRM.

      Hello folks,   Continuing from our previous GDPR post, we bring to you the first cut of GDPR centric enhancements that are released for handling lawful bases for your customers in Zoho CRM. For your understanding we have split the entire process into three sections: Identifying Data Processing Basis Updating the Data Processing Basis in Zoho CRM  Consent Management in Zoho CRM 1. Identifying Data Processing Basis The fundamental principle to handle the personal data of your data subjects is to process
    • Upgrade the Lato font to the Lato 2 font

      While there's not a major difference, I noticed that Zoho doesn't use the upgraded Lato 2 font but it instead uses the standard one. Lato 2 enhances the look of letters and numbers when you italicize them, among little things that get tweaked. Is it possible
    • Masked Field Type with Permission-Controlled Visibility in Zoho CRM

      Dear Zoho CRM Team, Greetings, We would like to request a new feature that would enhance data security and access control within Zoho CRM, especially when handling sensitive internal information. Use Case: Our team occasionally needs to store sensitive
    • How to properly setup Databridge on Linux Server?

      Hello guys, i am running a Linux server on which I am installing the Zoho Databridge via command line. The Zoho tutorial ( https://help.zoho.com/portal/en/kb/analytics/user-guide/import-connect-to-data/databases-and-datalakes/articles/postgresql-3-3-2021#1_How_do_I_install_Zoho_Databridge
    • Haven't used banking function for years and now want to reconcile and clean up my account

      I'm in the UK and have been using Zoho Books for my private mental health practice since 2018. Up until recently, I've entered everything manually and not reconciled any items with my bank account. Every year, I run a report for that year and use that
    • Next Page