Event Management System using ZDK CLI

Event Management System using ZDK CLI



Hello Everyone,

Welcome back to yet another post in the Kaizen Series!

As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the past few weeks. One of the feedbacks asked us to cover "more on ZDK CLI". In this post, we will discuss building an Event Management System in Zoho CRM Using ZDK CLI.

Consider the case of Zenith, a Zoho CRM partner who is also partner for Zoho's competing products. Zenith is hosting a conference in which their representatives are inviting speakers from Zoho and also other competing products. The attendees of the conference will be either external attendees or leads or contacts of Zenith. For this purpose existing meetings module of Zoho CRM (previously called Events) can not be used as it is not a good fit for this case. Custom modules and fields are required for this. In this post, we’ll discuss how to create a Event Management System that is complimentary to Zoho CRM using ZDK CLI

Why Use ZDK CLI?
ZDK CLI allows developers to:
  1. Create and edit CRM metadata (modules, fields, roles, profiles, and widgets)
  2. Define relationships between modules (lookups, multi-select lookups)
  3. Push and sync metadata changes to sandbox.
  4. Resolve conflicts when multiple users work on the same metadata.

This makes it ideal for building reusable CRM systems such as event management.

Initial Setup

As the initial setup, initialize the ZDK CLI project directory using zdk init command and create a new ZDK Project folder "Zenith". 

     zdk init




Then, login to the sandbox environment for Zenith using zdk auth:login command. 

     zdk auth:login


When you execute zdk auth:login, you can either select any org that is already signed in or select NEW LOGIN to visit the login page and select the sandbox org you will be working on.




After logging in to Zoho select the sandbox environment and give required permissions.
Notes
For the current beta release, ZDK CLI is exclusively available for Sandbox environment and is not operational in Production environments. 



You will be redirected to the terminal after successful login and you can start working on ZDK CLI.



Notes
Change the api_version to 8 in zdk-project.json file.

Step 1: Define the Modules

For an event management use case, we will need the following custom modules:
  1. Conference – Stores details of each event.
  2. Attendees – Tracks participants, whether leads, contacts, or external.
  3. ConferenceAttendees (Linking Module, not created) – Connects conferences and attendees with registration status.
  4. Venues – Captures details of event locations.
  5. Speakers – Stores details of invited speakers.

This has been visualized in the data model below.


To create a module, use the command

     zdk meta:create modules




This creates the json file for module metadata : Conference.modules-meta.json  in the path Zenith/crm/meta/modules/Conference 

Conference.modules-meta.json content

{
    "singular_label": "Conference",
    "plural_label": "Conferences",
    "api_name": "Conference",
    "profiles": [
        {
            "api_name": "Administrator"
        }
    ],
    "display_field": {
        "api_name": "Conferences"
    },
    "show_as_tab": true
}

Similarly create modules Attendees , Venues, and Speakers modules

Step 2: Customize Fields

To create a field, use the command

     zdk meta:create fields

Conference module:

Conference modules's fields are:

  1. Attendees (multiselectlookup to Attendee module) 
  2. Speakers (multiselectlookup to Speakers module) 
  3. Venue (lookup to Venue module) 
  4. Date (datetime) 
  5. Duration(double) 
  6. Description (textarea) 
  7. Status (picklist: Planned, Ongoing, Completed)


Attendees field
Let us check how to create the field attendees of type multi-select lookup (to Attendee module)




The json file Attendees.fields-meta.json created in the path Zenith/crm/meta/modules/Conference/fields will look like this


To provide dependent details for the multi select lookup, add the multiselectlookup json object to the Attendees.fields-meta.json file as below:

{
    "field_label": "Attendees",
    "display_name": "Attendees",
    "api_name": "Attendees",
    "type": "used",
    "data_type": "multiselectlookup",
    "multiselectlookup": {
        "connected_details": {
            "module": {
                "api_name": "Attendee"
            },
            "field": {
                "field_label": "AttendingConference"
            }
        },
        "linking_details": {
            "module": {
                "plural_label": "Conferences_X_attendees"
            }
        }
 }
}

Speakers (multi-select lookup to Speakers module)
Similar to Attendees field, create Speakers field and modify the json file Speaker.fields-meta.json created in the path Zenith/crm/meta/modules/Conference/fields:

{
    "field_label": "Speaker",
    "display_name": "Speakers",
    "api_name": "Speakers",
    "type": "used",
    "data_type": "multiselectlookup",
    "multiselectlookup": {
        "connected_details": {
            "module": {
                "api_name": "Speaker"
            },
            "field": {
                "field_label": "AttendingConference"
            }
        },
        "linking_details": {
            "module": {
                "plural_label": "Speakers_X_attendees"
            }
        }
 }
}

Venue (lookup field to Venue module)
Similarly, create the Venue field with type as "lookup" The json file Venue.fields-meta.json created in the path Zenith/crm/meta/modules/Conference/fields will look like this


To provide dependent details for the lookup, add the lookup json object to the json as below.
{
    "field_label": "Venue",
    "display_name": "Venue",
    "api_name": "Venue",
    "type": "used",
    "data_type": "lookup"
    "lookup": {
        "display_label": "Venue",
        "api_name": "Venue",
        "module": {
          "api_name": "Venue"
        }
      }
}

Description (textarea)
After create a textarea field Description using zdk meta:create fields command, add textarea json object to the field meta json file as below :

{
        "field_label": "Description",
                "display_name": "Description",
                "api_name": "Description",
                "type": "used",
                "data_type": "textarea",
                "textarea": {
                        "type": "rich_text"
                }
}

The possible values for text area are small, large and rich_text.

Status (picklist)
After create a picklist field Status using zdk meta:create fields command, a
dd pick_list_values json array to the field meta json file as below:

{
    "field_label": "Status",
    "display_name": "Status",
    "api_name": "Status",
    "type": "used",
    "data_type": "picklist",
  "pick_list_values": [
    {
      "display_value": "Planned",
      "actual_value": "Planned"
    },
    {
      "display_value": "Ongoing",
      "actual_value": "Ongoing"
    },
    {
      "display_value": "Completed",
      "actual_value": "Completed"
    }
  ]
}

Date and duration fields of type datetime and double does not require any edits to the created meta.json file.




Attendees Module

Similarly, add fields for attendees modules
  1. Phone (phone)
  2. Company (text)
  3. EventsAttended (multi-select lookup to Conference module)
  4. Attendee Type (picklist with options Lead, Contact, External)
  5. Leads (lookup to Lead module)
  6. Contacts (lookup to Contact module

Venue Module

  1. Location (text)
  2. Capacity (integer)
  3. Contact erson (text)
  4. ContactNumber(phone)
  5. Description(textarea)

Speakers Module
  1. Phone (phone)
  2. Company (text)
  3. SpeakerStatus (picklist with options Confirmed, Pending, Canceled)

Step 3: Create a Custom Role


To create a field, use the command

     zdk meta:create roles


This ensures event managers have the right access without interfering with other CRM operations.

Pushing changes to the sandbox environment

Once all changes are done execute zdk org:push and zdk org:push result --{jobId} command to deploy the changes to the sandbox environment. Once the changes are verified in your sandbox environment you can deploy it to the production environment.




You can extract this metadata zip file, that is created using zdk org:export command to your own ZDK project directory and try pushing the changes to your sandbox environment.

Building the Event Management System for "Zenith" illustrates the core strength of ZDK CLI. It brings software engineering best practices to Zoho CRM customization. By defining modules/fields/roles as json files directly or creating them using the command, the source truth of the metadata is available in local system. The same can be tracked via version control systems like GIT for better collaboration among the team.

    Access your files securely from anywhere

        All-in-one knowledge management and training platform for your employees and customers.






                              Zoho Developer Community




                                                    • Desk Community Learning Series


                                                    • Digest


                                                    • Functions


                                                    • Meetups


                                                    • Kbase


                                                    • Resources


                                                    • Glossary


                                                    • Desk Marketplace


                                                    • MVP Corner


                                                    • Word of the Day


                                                    • Ask the Experts



                                                              • Sticky Posts

                                                              • 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
                                                              • Kaizen #222 - Client Script Support for Notes Related List

                                                                Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
                                                              • Kaizen #217 - Actions APIs : Tasks

                                                                Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
                                                              • Kaizen #216 - Actions APIs : Email Notifications

                                                                Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are


                                                              Manage your brands on social media



                                                                    Zoho TeamInbox Resources



                                                                        Zoho CRM Plus Resources

                                                                          Zoho Books Resources


                                                                            Zoho Subscriptions Resources

                                                                              Zoho Projects Resources


                                                                                Zoho Sprints Resources


                                                                                  Qntrl Resources


                                                                                    Zoho Creator Resources



                                                                                        Zoho CRM Resources

                                                                                        • CRM Community Learning Series

                                                                                          CRM Community Learning Series


                                                                                        • Kaizen

                                                                                          Kaizen

                                                                                        • Functions

                                                                                          Functions

                                                                                        • Meetups

                                                                                          Meetups

                                                                                        • Kbase

                                                                                          Kbase

                                                                                        • Resources

                                                                                          Resources

                                                                                        • Digest

                                                                                          Digest

                                                                                        • CRM Marketplace

                                                                                          CRM Marketplace

                                                                                        • MVP Corner

                                                                                          MVP Corner









                                                                                            Design. Discuss. Deliver.

                                                                                            Create visually engaging stories with Zoho Show.

                                                                                            Get Started Now


                                                                                              Zoho Show Resources

                                                                                                Zoho Writer

                                                                                                Get Started. Write Away!

                                                                                                Writer is a powerful online word processor, designed for collaborative work.

                                                                                                  Zoho CRM コンテンツ






                                                                                                    Nederlandse Hulpbronnen


                                                                                                        ご検討中の方




                                                                                                                • Recent Topics

                                                                                                                • GEO and Zoho Desk

                                                                                                                  Has anyone done anything with GEO (generative engine optimization) and zoho desk KB? Are there any plans from Zoho on adding the ability in inject GEO scripts in KB Articles?
                                                                                                                • Switch between multiple LLMs instantly for tailored Zia experiences

                                                                                                                  Availability Editions: Professional , Enterprise, Ultimate , CRMPlus , ZohoOne Release Plan: Available for all DCs Hello everyone. Earlier, the Multi-LLM feature supported only one LLM at a time for Zia Record Assistant bot restricting flexibility from
                                                                                                                • Subscriptions for service call

                                                                                                                  So we install products and we want to offer a service contract for the customers yearly service calls to be billed monthly. So ideally at some point we want to email them a quote for their needs. WE will choice it our end based on the equipment. It would
                                                                                                                • PHPMailer "Connection refused (111)" Error Despite Outbound Ports Being Open

                                                                                                                  Hello everyone, I'm trying to send emails via Zoho SMTP using PHPMailer on my shared hosting environment. I've tried both port 465 (ssl) and 587 (tls), and I even added SMTPOptions to bypass SSL verification just in case it was an SSL certificate issue.
                                                                                                                • Power up your Kiosk Studio with Real-Time Data Capture, Client Scripts & More!

                                                                                                                  Hello Everyone, We’re thrilled to announce a powerful set of enhancements to Kiosk Studio in Zoho CRM. These new updates give you more flexibility, faster record handling, and real-time data capture, making your Kiosk flows smarter and more efficient
                                                                                                                • Cliq iOS can't see shared screen

                                                                                                                  Hello, I had this morning a video call with a colleague. She is using Cliq Desktop MacOS and wanted to share her screen with me. I'm on iPad. I noticed, while she shared her screen, I could only see her video, but not the shared screen... Does Cliq iOS is able to display shared screen, or is it somewhere else to be found ? Regards
                                                                                                                • Rename system-defined labels in Zoho CRM

                                                                                                                  Renaming system-defined labels is now available across all DCs. Hello everyone, Zoho CRM includes predefined system fields across modules to support essential CRM operations. Until now, the labels of these fields were fixed and could not be edited from
                                                                                                                • What happens to my current site SEO if i opt for zoho creator?

                                                                                                                  I have an existing website and I need to use Zoho creators for the rapid creation of my webpage creation. Currently, my IT team is creating the web pages, but I am concerned about the SEO of my current website if I shift to zoho will i loose it all?
                                                                                                                • Filter Pivot Chart by Criteria

                                                                                                                  Hey There Amazing Zoho Team, I wanted to see if there is a way to filter criteria a "Pivot Chart" report in the same way I can filter "List", "Calendar", & "Summary" reports. Example: I can filter a normal report like this: http://monosnap.com/image/y5q0XGzDSGZpsnOjuBYpdeUOFtSmFd I would like to do the same with a "Pivot Chart".  What I've Tried: Filters and User filters are not what I am looking for. That just filters the data. I want to be able to filter criteria the data by connected forms. Like
                                                                                                                • Big Time HELP

                                                                                                                  I am old, disabled and need to speak to a person. I needed to use a service to copy my zoom contacts to. I think I signed up for a security service, which I do not need. I don't know enough to choose from your many lists or how to see what I have and
                                                                                                                • #4 Setting Up Your Client the Right Way

                                                                                                                  Creating invoices without properly setting up the customer can quickly lead to several inconsistencies, such as duplicate records, missing billing details, and poor customer management. This becomes even more important for businesses that use a connected
                                                                                                                • Functionality based URL to find records due today or in the next week

                                                                                                                  I need to construct a URL to filter a view to records where the evaluation is due soon (i.e. in the next 7 days). To me, that includes today, but Zoho has a different opinion. Zoho defines 39 as NEXT_7_DAYS but this gives unexpected results. https://creatorapp.zoho.eu/...#Report:My_Evaluations?Evaluation_due_by_op=39
                                                                                                                • Email Parameter in Create Lead API

                                                                                                                  In the Create Lead API , the email parameter as mandatory. This is creating issues because many leads only have mobile numbers and no email address. This is especially a problem for businesses focusing on WhatsApp marketing in Zoho Marketing Automation,
                                                                                                                • Automatic Email Alerts for Errors in Zoho Creator Logs

                                                                                                                  Hello, We would like to request a feature enhancement in Zoho Creator regarding error notifications. Currently, Zoho Creator allows users to view logs and errors for each application by navigating to Zoho Creator > Operations > Logs. However, there is
                                                                                                                • Filter our rejected quote items from the inventory quote template

                                                                                                                  Hello, I am trying to have rejections at the line level on my quotes so I can track what items are often removed, I do not want to claim the whole quote as lost just the individual items for better data tracking. However I cannot figure out how to filter
                                                                                                                • Configuring ZMA Webhook for Zoho Flow : Missing Key Information Error

                                                                                                                  I'm looking to send a webhook to Zoho Flow at the end of a Marketing Automation journey in order to perform more actions that I can't do with just a journey. I have the Webhook created in Flow and set up in ZMA, however when I test it I get the error
                                                                                                                • Incoming Threads Report

                                                                                                                  From data to decisions: A deep dive into ticketing system reports Customers raise questions and issues through multiple channels, such as email, chat, or tickets. To monitor the number of queries received on a specific day from each channel, leads can
                                                                                                                • Improve Zoho Vault search

                                                                                                                  Hello, we started using Zoho Vault and we really appreciate the app. At the moment, when searching passwords, the search query only targets the password name. I think having the query search among Name, User name, URL, Notes and Tag would be a better
                                                                                                                • NEED HELP

                                                                                                                  I have below data po no invoice no Party inv date value status 1 aa1 ABC 01-May-26 100 Under Cr 2 aa2 XYZ 02-May-26 200 Over Due 3 aa3 ABC 02-May-26 300 Under Cr 4 aa4 XYZ 03-May-26 400 Under Cr I need result as below using formulas (not Pivot table)
                                                                                                                • Ask the Experts 29: Knowledge Base, Community, and AI for smarter user education

                                                                                                                  Hi Everyone, Welcome to Ask the Experts (ATE) 29, a live panel discussion. After the engaging text-based discussions in ATE 27 on onboarding and managing agents and ATE 28 on handling customer support with AI, we’re bringing you the next round of ATE
                                                                                                                • Bigin, more powerful than ever on iOS 26, iPadOS 26, macOS Tahoe, and watchOS 26.

                                                                                                                  Hot on the heels of Apple’s latest OS updates, we’ve rolled out several enhancements and features designed to help you get the most from your Apple devices. Enjoy a refined user experience with smoother navigation and a more content-focused Liquid Glass
                                                                                                                • Tables for Europe Datacenter customers?

                                                                                                                  It's been over a year now for the launch of Zoho Tables - and still not available für EU DC customers. When will it be available?
                                                                                                                • Smart Feature Compatibility Indicators for CRM Field

                                                                                                                  Zoho CRM offers a wide range of field types and advanced customization options. However, several field types have feature-specific limitations that are currently documented only in help articles. For example, while configuring a Rich Text field, admins
                                                                                                                • 📢 Coming Soon: Daily Rate Projects

                                                                                                                  Hello everyone, We're excited to announce a long-awaited, new billing type for projects: Daily Rate! Until now, projects supported Fixed Cost and Hourly Rate billing. With this update, you can now create projects billed on a daily rate, making it easier
                                                                                                                • 📢 Coming Soon: Daily Rate Projects

                                                                                                                  Hello everyone, We're excited to announce a long-awaited, new billing type for projects: Daily Rate! Until now, projects supported Fixed Cost and Hourly Rate billing. With this update, you can now create projects billed on a daily rate, making it easier
                                                                                                                • Cannot find IMAP/SMTP enable toggle in new Mail Admin UI - Mail Lite plan

                                                                                                                  Hi Zoho team, I'm the org Super Admin for owlmind.dev (Mail Lite plan, 3 paid users): - champ@owlmind.dev (Super Admin) - isfand@owlmind.dev - team@owlmind.dev I need to enable IMAP and SMTP access for all 3 users (we're integrating with Smartlead for
                                                                                                                • Kaizen #242 - Enabling In-Context Order Creation from Deals Using SlyteUI

                                                                                                                  Hello everyone! Welcome to another interesting Kaizen post. Today’s spotlight is on SlyteUI, the new UI builder designed to create powerful, intuitive user interfaces in minutes. Built for speed and simplicity, SlyteUI empowers teams to deliver high-impact
                                                                                                                • Zoho Books | Product updates | May 2026

                                                                                                                  Hello users, We're back with the latest updates and enhancements we've rolled out in Zoho Books. From sales tax automation to scanning receipts for free, explore the updates designed to upgrade your bookkeeping experience. Sales Tax Automation [US & Canada
                                                                                                                • No ingresan correos

                                                                                                                  desde el 28 de abril no ingresan correos, por favor me puedes ayudar
                                                                                                                • How to update image in a Zoho Creator report through widgets (JS API)

                                                                                                                  I need help with how to transfer an image file from one report to another in Zoho Creator using widgets (JS API). Say I'm fetching a record from the All_Products report. And this report contains a Product_Image field. I then want to transfer this Product_Image
                                                                                                                • Issue with Sending and Receiving Emails in Zoho Mail

                                                                                                                  Dear Zoho Support Team, I am facing an issue with my Zoho Mail account. I am unable to receive emails from others, and also when I try to send emails, they are not getting delivered. This is affecting my daily work, so I request you to please check and
                                                                                                                • Adding an element to the Creator Canvas will automatically adjust its dimensions.

                                                                                                                  I designed a report with fixed dimensions using Creator Canvas. However, whenever I add a new element, the system automatically adjusts the dimensions, even if the new element fits perfectly within the set boundaries. This is quite frustrating. Has anyone
                                                                                                                • Installing/Using Python Package in Zoho Creator

                                                                                                                  Hi, I have a Python function in my ZC application that depends on a specific Python package.  If I was running this on my own server, I would just install the package using pip (e.g. pip3 install stripe). Is there a way to install the package in my ZC
                                                                                                                • I dont have acess to my own domain emails

                                                                                                                  an agency made these 3 emails for us , including the one im using here. but the super admin access is through the agency email. i want to reclaim my admin console access to these emails. how can i contact zoho support?
                                                                                                                • Domain Activation Pending

                                                                                                                  Hello Zoho Support, I have resent the domain activation email for abovecapital.online several times, but I still have not received the activation link. Please check the email delivery status and help me resend the activation email or update the registrant
                                                                                                                • Zoho Webinar - Sharing System Audio (NOT AVAILABLE)

                                                                                                                  Hi, We are having a serious problem with Zoho Webinar. In the webinars we run, we very often share the audio from a video we are streaming directly from YouTube or other applications. Until recently we were using Zoom, but as we use other Zoho applications
                                                                                                                • IP blocked on SMTP

                                                                                                                  Please unblock my server IP: 135.181.19.115 We are using WP Mail SMTP for legitimate transactional emails.
                                                                                                                • Zoho rejecting external email – “Email policy violation detected”

                                                                                                                  Hello, I was informed by external senders that their emails to my addresses were rejected by Zoho Mail. The emails were sent from external domains (including pfms.ba.gov.br domains), not from my own domain. However, Zoho rejected the messages with the
                                                                                                                • unable to log in on iphone and unable to log in one auth

                                                                                                                  im unable to log in to my mobile
                                                                                                                • Tip #48: An exclusive system for risk management

                                                                                                                  Zoho Sprints' risk management feature gives teams a structured, industry-grade system for identifying, quantifying, and mitigating risks to eliminate probable impact. Project or product teams that run on Zoho Sprints might be using sprints, work items,
                                                                                                                • Next Page