Kaizen #149: Using GraphQL APIs to fetch data in a consolidated way

Kaizen #149: Using GraphQL APIs to fetch data in a consolidated way



Hello everyone!
Welcome to this week's post in the Kaizen Series! This week, we will discuss GraphQL APIs, a query language that provides an efficient, powerful, and flexible method for fetching and manipulating data from Zoho CRM.
Let us consider the scenario of a large industrial equipment manufacturer,  Zylker Manufacturing.  They utilize Zoho CRM to streamline their sales processes and customer relationship management. Their sales support team uses a legacy system to manage their activities. When a contact seeks support, the support team must have access to the latest data from Zoho CRM to assist them better. They need:
  • details of the contact, such as email, phone, and Account details
  • details of the ongoing deals of the contact, including potential revenue and stages .
With GraphQL APIs, with a single API call, you can create custom unified view that combine information from multiple Zoho CRM modules. This allows the support team to view all relevant information in one place, making it easier to manage sales processes and customer interactions. To create the view, metadata of the fields is also required.  This structured approach in GraphQL allows Zylker Manufacturing to efficiently aggregate data.


You need to construct a GraphQL query to fetch specific data related to a contact and associated deals, as well as metadata about the fields in the Contacts and Deals modules. Let's break down each part of the query that can achieve this.

1. Fetching Contact and Deal Information


  • Records: Records comprises the records from the different Zoho CRM modules.
  • Contacts: Specifies that we want to query the records of the Contacts module. The where clause filters the contacts based on their email address.
  • _data: This indicates the fields we want to retrieve from the records. In this case:
    • Email: Fetches the email of the contact.
    • Full_Name: Fetches the full name of the contact.
    • Deals__r: Fetches the related deal record of the Contact. 
      • Expected_Revenue: Fetches the expected revenue from each deal.
      • Deal_Name: Fetches the name of each deal.
      • Stage: Fetches the current stage of each deal.


Records {
    Contacts(where: { Email: { equals: "krismarrier@noemail.com" } }) {
        _data {
            Email {
                value}
            Full_Name {
                value}
            Deals__r {
                _data {
                    Expected_Revenue {
                        value}
                    Deal_Name {
                        value}
                    Stage {
                        value
                    }}}}}}




2. Fetching Metadata for Contacts


  • Meta: This fetches the details of the metadata for Contacts module. It uses the alias "contact_meta"
  • Modules(filter: { api_name: "Contacts" }): Specifies that we want to fetch the metadata of the Contacts module.
  • _data: This indicates the fields we want to retrieve. In this case:
    • id: The unique identifier for the module.
    • api_name: The API name for the module.
    • module_name: The name of the module.
    • description: The description of the module.
    • plural_label, singular_label: Labels used for the module.
    • fields: Retrieves metadata for specific fields within the module. filter: { api_names: ["Last_Name", "Email"] }: Specifies which fields' metadata to retrieve.For each field, it retrieves:
      • id: Field identifier.
      • api_name: API name for the field.
      • display_label: The display name of the field.
      • json_type: The data type as represented in JSON.
      • data_type: The Zoho CRM data type of the field.
 contact_meta: Meta {
    Modules(filter: { api_name: "Contacts" }) {
      _data {
        id
        api_name
        module_name
        description
        singular_label
        plural_label
        fields(filter: { api_names: ["Last_Name", "Email"] }) {
          _data {
            id
            api_name
            display_label
            json_type
            data_type
          }
        }
      }
    }
 }

3. Fetching Metadata for Deals


  • Meta: This fetches the details of the metadata for Deals module. It uses the alias "deal_meta"
  • Modules(filter: { api_name: "Deals" }): Specifies that we want to fetch the metadata of the Deals module.
  • _data: This indicates the fields we want to retrieve. In this case:
    • id: The unique identifier for the module.
    • api_name: The API name for the module.
    • module_name: The name of the module.
    • description: description of the module.
    • plural_label, singular_label: Labels used for the module.
    • fields: Retrieves metadata for specific fields within the module.
    • filter:  api_names: ["Expected_Revenue", "Deal_Name","Stage"] }: Specifies which fields' metadata to retrieve.For each field, it retrieves:
      • id: Field identifier.
      • api_name: API name for the field.
      • display_label: The display name of the field.
      • json_type: The data type as represented in JSON.
      • data_type: The Zoho CRM data type of the field.
deal_meta: Meta {
    Modules(filter: { api_name: "Deals" }) {
        _data {
            id
            api_name
            module_name
            description
            singular_label
            plural_label
            fields(filter: { api_names: ["Expected_Revenue", "Deal_Name","Stage"] }) {
                _data {
                    api_name
                    id
                    display_label
                    json_type
                    data_type
                }
            }
        }
    }
}

The complete query will look this:


query {
  Records {
    Contacts(where: { Email: { equals: "krismarrier@noemail.com" } }) {
      _data {
        Email {
          value
        }
        Full_Name {
          value
        }
        Deals__r {
          _data {
            Expected_Revenue {
              value
            }
            Deal_Name {
              value
            }
            Stage {
              value
            }
          }
        }
      }
    }
  }
  contact_meta: Meta {
    Modules(filter: { api_name: "Contacts" }) {
      _data {
        plural_label
        id
        api_name
        module_name
        description
        singular_label
        fields(filter: { api_names: ["Last_Name", "Email"] }) {
          _data {
            id
            api_name
            display_label
            json_type
            data_type
          }
        }
      }
    }
  }
  deal_meta: Meta {
    Modules(filter: { api_name: "Deals" }) {
      _data {
        plural_label
        id
        api_name
        module_name
        description
        singular_label
        fields(
          filter: { api_names: ["Expected_Revenue", "Deal_Name", "Stage"] }
        ) {
          _data {
            api_name
            id
            display_label
            json_type
            data_type
          }
        }
      }
    }
  }
}


If you were to fetch this data using REST APIs, it will involve multiple calls to the 
  • Query API
  • Related Records API
  • Modules meta API, and 
  • Fields meta API.
Using the GraphQL query you can fetch the required data alone in a less round trip time. While constructing a query for your custom requirement, please note that you can query up to three levels of depth (nesting levels of a field) for Records and 7 levels of depth for Metadata. 

Constructing GraphQL query using Postman

To construct a GraphQL query in Postman to suit your requirements, type {api_domain}/crm/graphql in the URL box. Postman will automatically fetch the query schema in the schema explorer, which can be used to explore the types of queries that can be made, including what fields are available on each type, what arguments those fields accept, and what other types they return.   
Constructing a Zoho CRM GraphQL query in Postman using schema explorer



You can refer to the help documentation on GraphQL APIs for more details on GraphQL APIs. 

Notes
Update 25th Sep 2024:
GraphQL APIs are now open across all DCs including IN DC for Enterprise, Zoho One Enterprise, CRM Plus and Ultimate edition orgs. Please note that GraphQL APIs are not available for Trial Edition of these editions.



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 or reach out to us directly at support@zohocrm.com.

Idea
Further Reading.                                                                                                                                



    Access your files securely from anywhere

          Zoho FSM Video Tutorials


                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

                                                                      • 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


                                                                      Manage your brands on social media



                                                                            Zoho TeamInbox Resources



                                                                                Zoho CRM Plus Resources

                                                                                  Zoho Books Resources


                                                                                    Zoho Billing 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

                                                                                                                          • How to disable automatic ticket closure emails for specific outgoing communications?

                                                                                                                            Is there a way to disable the automatic "Ticket Closed" email notification for specific tickets or outgoing emails? Currently, every time we send an email to a customer, the system automatically sends a "Ticket Created" email, followed by a "Ticket Closed"
                                                                                                                          • Zoho Books | Product updates | October 2026

                                                                                                                            Hello users, October brings a range of new features and enhancements to Zoho Books, designed to simplify compliance, streamline accounting workflows, and improve inventory management. From the launch of the Nigeria Edition and France’s e-invoicing capabilities
                                                                                                                          • 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
                                                                                                                          • What's new in Zoho Workplace | September 2026

                                                                                                                            Hello Zoho Workplace community! Here's a roundup of all the new features and announcements that went live across Zoho Workplace applications in September. Zoho Mail Compose Options Across Templates You can now use the Undo, Redo, and New List options
                                                                                                                          • Unable to export reports despite enabled report export permissions

                                                                                                                            Hi Zoho Community, We are unable to export reports in Zoho CRM. When attempting an export, we receive the following error: “Cannot Export Report — You do not have permission to export one or more modules used in this report. Please contact your administrator.”
                                                                                                                          • What does "Tickets for Review" do?

                                                                                                                            What is the purpose of the va nilla view " Tickets for Review?"
                                                                                                                          • Set department automatically for incoming calls

                                                                                                                            Is it possible, when receiving an incoming call through Zoho Desk (using Twilio integration), for the department to be auto-selected based on the phone line being called? Currently, we have to manually select the department from the dropdown menu when
                                                                                                                          • Zoho Desk training for administrators in EU and US region

                                                                                                                            Hello Everyone, Get ready for the certified Virtual Classroom training for our Zoho Desk users in Europe and the US. Our in-house Zoho Desk expert, @Dheeraj | Zoho Desk, will conduct the virtual classroom training. This training focuses on simplifying
                                                                                                                          • Support Plan: Recuring Issue

                                                                                                                            Hi Zoho Team, Could you please look into this recurring alert and provide clarification on why this restriction is still in place? This issue has become a bottleneck in our workflow, significantly limiting our automation capabilities. We are unable to
                                                                                                                          • Webinar de Zoho People: tecnología para RR. HH.

                                                                                                                            ¿Y si RR. HH. pudiera estar tan conectado con el negocio como el resto de tu organización? La gestión de personas está evolucionando, y los departamentos de Recursos Humanos necesitan herramientas que les permitan ir más allá de las tareas administrativas
                                                                                                                          • Zoho CRM still doesn't let you manage timezones (yearly reminder)

                                                                                                                            This is something I have asked repeatedly. I'll ask once again. Suppose that you work in France. Next month you have a trip to Guatemala. You call a contact there, close a meeting, record that meeting in CRM. On the phone, your contact said: "meet me
                                                                                                                          • WhatsApp in Zoho CRM Plus: inbound works, every outbound message fails with crm.bm.msg.failed.undefined since Oct 14 (business stopped)

                                                                                                                            Hello Zoho team and community, We are Roxo Inc, a Zoho CRM Plus customer in Florida. WhatsApp is our main sales and support channel, and since October 14, 11:11 AM EDT we cannot send any WhatsApp message from Zoho CRM. We are facing a large drop in sales
                                                                                                                          • Pushover Notification Module

                                                                                                                            Hello, it would be good if there would be a "Pushover" (https://pushover.net/) module besides the standard SMS module. Pushover is now very well known, especially in IT, and is becoming more and more popular. The biggest advantage are the customizable
                                                                                                                          • Problem in Mannual journal in Zoho Books

                                                                                                                            When I Put Manual Journal in Zoho Books Software not allow me to select VAT Rate what is the solution United kindgom version
                                                                                                                          • Zoho CRM's WhatsApp integration now supports multiple accounts, multiple numbers, and custom modules

                                                                                                                            Hello all, WhatsApp Business now comes with a few exciting enhancements. So far, WhatsApp integration has worked with a single account and a single mobile number. As reliance on the WhatsApp integration has grown, along with the need for multiple accounts
                                                                                                                          • E-Mail Blacklist via GUI

                                                                                                                            Hello, It would be helpful if the GUI included an option to block specific email addresses (both incoming and outgoing). I want a setting where I can completely block certain email addresses. This means that no tickets can be opened from those addresses,
                                                                                                                          • 【開催報告】Zoho Championに学ぶ!Zoho Campaigns メール配信の基礎・活用勉強会

                                                                                                                            Zoho ユーザーの皆さま、こんにちは。 コミュニティグループの中野です。 10月15日(木)、Zoho ユーザーコミュニティ初となる「Zoho Campaigns メール配信の基礎・活用勉強会」をオンラインで開催しました。 今回は、Zoho Campaignsの導入を検討している方から、一斉メールを配信しているものの 現在の設定や運用にを見直したい方まで、28名のユーザーさまにご参加いただきました。 本投稿では、当日のセッション内容をご紹介します。 (セッション資料については登録者限定公開となります)
                                                                                                                          • Integration

                                                                                                                            Can Zoho noted about to get an integration with Dext? I believe will be helpful at least in UK. thanks
                                                                                                                          • Deleted Module

                                                                                                                            I accidentally deleted a module and its fields. Im trying to get it back. Thanks to Youtubers flooding the internet with out of date videos I can't find how to get deleted modules back. The Recycle Bin doesn't have modules. Anyone know how to do thi
                                                                                                                          • Creating packages according to actual shipping processes

                                                                                                                            Hi community. I would like to ask a question to see if there's a better method or workflow for the creation of packages in Zoho Inventory. There is a little confusion in some of Zoho's language relating to the use of term Packing Slip when connected to
                                                                                                                          • E-invoicing setup not completed in Zoho Books

                                                                                                                            My status on the EmaraTax portal appears as linked with Zoho. However, when I try to complete the setup on the E-invoicing tab in Zoho Books settings, I receive an error saying: "E-Invoicing could not be enabled as the FTA portal is currently unreachable.
                                                                                                                          • Bank Feeds - Again

                                                                                                                            Bank feeds broken again for me. I don't see other recent posts on this, so maybe it's just us? Tried: refresh update cred/ deact./react. feeds chat support Nothing. On day 2 without zoho as a result, which is crippling for us. We've used zoho for a year
                                                                                                                          • Widget Height were destroyed

                                                                                                                            All widget heights in the Details Canvas view are broken.
                                                                                                                          • Set same ticket Threshold for Agent-Level Thresholds

                                                                                                                            I am creating Agent-Level Thresholds for agents to auto-assign tickets in a Load-based Round Robin rule. I am unable to set the same number of Open tickets for agents when setting their Thresholds. For exampel: Agent 1 = 10 Agent 2 = 25 Agent 3 = SHOULD
                                                                                                                          • Grouping by Stage *type* in widgets

                                                                                                                            Hi Can I ask for a new feature? I'd like to be able to group by stage type in a Deal widget. That is by whether the Deal is in an Open Stage, a Closed Won Stage, or a Lost stage. Currently I can group by Stage, but if we have 10 open stages and one Closed
                                                                                                                          • Sharing View Only Portal

                                                                                                                            Im looking at Youtube videos on how to share a view only link to my projects. Everyone has the screen with Manage Users. I don't have it. Is that an old version or new version? I can't see how to send a view only link to clients. There is a Profiles and
                                                                                                                          • Issue with QES via Smart-ID/eParaksts

                                                                                                                            Zoho Sign support is completely unresponsive, so I will try to post the problem here. Our account settings have LTA disabled, but when processing QES via Smart-ID/eParaksts, the engine forces a PAdES-BASELINE-LTA format using a full PDF Uanataca timestamp.
                                                                                                                          • Allow widgets to be placed between native sections in the Ticket Properties panel

                                                                                                                            One of our biggest frustrations with the Tickets module is how rigid the Ticket Properties panel is. Every section there is built only from native Zoho Desk fields. We can add sections, rearrange fields, and pick layouts, but we can’t put anything custom
                                                                                                                          • Zoho Mail MCP connector

                                                                                                                            Issue: Zoho Mail MCP connector (https://mail-organization-930963415.zohomcp.com/mcp/.../message) — OAuth authorization completes successfully in-browser ("Authentication successful"), but the issued token is rejected when the MCP client reconnects to
                                                                                                                          • Sales Returns - Repairand Return

                                                                                                                            Hi Inventory Team, I'm working with a client on an Inventory implementation project and they have shared this use case with me. Some items may be returned by the customer, then returned to the vendor for repairs, received from the vendor and shipped back
                                                                                                                          • Multiple criteria in searchRecords

                                                                                                                            Hi, is it possible to search with multiple criteria in zoho.crm.searchRecords? I have tried several variations of the following without much success. CustomerRecord = zoho.crm.searchRecords("Contacts", "(First Name|=| lee)" && "(Last Name|=| spencer)"); Thanks. Chris
                                                                                                                          • Plans to make "Generate Presentation with Zia AI" available as API endpoint?

                                                                                                                            This 'Generate Presentation with Zia' feature has great potential, and we would like to be able to trigger it automatically from a workflow. https://show.zoho.com/home/ziaai/generate Is there already a way to trigger this via API? If not, is there any
                                                                                                                          • How to setup noreply@ example.com

                                                                                                                            How do I setup noreply@example.com so the mail never gets delivered. I currently have a catchall setup aswell.
                                                                                                                          • Pleas unblock E-Mail-Adress service@montana-energie.de / kontakt@montana-energie.de

                                                                                                                            Dear Zoho Support, Could you please unblock service@montana-energie.de / kontakt@montana-energie.de which belongs to a regular customer with whom we are having frequent business-related conversations. Thank you very much in advance, Erdem Kar homewise
                                                                                                                          • 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.
                                                                                                                          • Zmail mobile application

                                                                                                                            ho do i remove people from this app
                                                                                                                          • My allies email (info@xxxx.com) was been deleted by system, and I can not build the same info allies email now

                                                                                                                            Dear Zoho Mail Support Team, I am the super administrator of the Zoho organization 【Organization Name, as shown in Admin Console】. I am writing to report an urgent issue with two of our custom-domain email addresses and to request your help restoring
                                                                                                                          • Cannot create mail account

                                                                                                                            Hi, i have a problem, i can't create a mail account every time i try the error massage like this Oops! Something went wrong during mailbox creation. Please try again please help
                                                                                                                          • Amazon.it always ends up in spam

                                                                                                                            Emails from amazon.it always end up in the spam folder, even though I have added the domain and the various individual Amazon addresses for shipping, payments, and other matters to the trusted lists at the user administrator level. What should I che
                                                                                                                          • Your Authenticate email domain (SPF, DKIM, DMARC) is bad to say the least

                                                                                                                            How about actual instructions rather than vague generalities? There is no way to complete this with what is provided. Please provide specific verifiable steps.
                                                                                                                          • Next Page