Kaizen 185 - Subqueries in COQL API

Kaizen 185 - Subqueries in COQL API


Hello everyone!!

Welcome to another Kaizen week, where we discuss developer centric topics every Friday. This week, we have picked an interesting topic to discuss - Subqueries in COQL API.

Zoho CRM's CRM Object Query Language (COQL) is a powerful way to retrieve data from your CRM in a structured manner. With the release of COQL API version 7, we introduced a suite of enhancements, detailed in our previous Kaizen post. Today, we will cover one enhancement in detail—Subqueries.

Before the introduction of subqueries, filtering data dynamically across related modules required multiple API calls and additional code handling. Subqueries have fundamentally changed this, offering increased flexibility, reduced API consumption, and improved query performance. In today's Kaizen, we will explore what subqueries are, where and when to use them, their advantages, and a few practical use cases. We will also go through a few examples with different operators to help you understand COQL subqueries better.

What are Subqueries?

At its core, a subquery is a query nested within another query. This technique allows you to retrieve data from one module based on conditions derived from another related module. Think of it as a way to ask more sophisticated, multi-layered questions of your CRM data.
Imagine you're working on a CRM integration and need to find all Contacts associated with Accounts that have at least one Deal created in the last 30 days.

Before Subqueries:

Before subqueries, achieving this required multiple steps:
  1. Retrieve Account IDs from the Deals module where a Deal was created in the last 30 days - {"select_query": "SELECT Account_Name, Created_Time FROM Deals WHERE Created_Time >= '2025-01-01T00:00:00+05:30'"}
  2. Use these Account IDs in a second query to fetch associated Contacts - {"select_query": "SELECT Full_Name, Email FROM Contacts WHERE Account_Name in ('4876876000007481116', '4876876000007420031')"}
This requires writing extra code to store and use the Account IDs from the first query in the second query. This also means making multiple API calls, and handling responses separately. However, with Subqueries in COQL, this can now be achieved in a single query.

Using Subqueries:

With subqueries, you can achieve the same result in one single query!
{
  "select_query": "SELECT Full_Name, Email FROM Contacts WHERE Account_Name in (SELECT Account_Name FROM Deals WHERE Created_Time >= '2025-01-01T00:00:00+05:30')"
}
The Subquery (SELECT Account_Name FROM Deals WHERE Created_Time >= ...) retrieves Account IDs where a Deal was created in the last 30 days. The main query (SELECT Full_Name, Email FROM Contacts WHERE Account_Name IN (...)) fetches Contacts linked to those Accounts, all in one API call!
But there is a catch. Subqueries return only up to 100 records per query. If more than 100 matching records exist (e.g., over 100 Accounts with recent Deals in this case), the extra records are silently ignored. This can lead to incomplete results, so subqueries are best used when the filtered dataset is known to be small. Please head over to the Limitations section to learn about other limitations. 

Where to use Subqueries?

Subqueries in COQL are useful when there is a need to filter data dynamically based on conditions from other modules. Instead of fetching records separately and processing them, subqueries allow you to retrieve the required data in a single query.
Here are some common use cases where subqueries come in handy:

  • Segment accounts based on high-value Deal history: For instance, you can use subqueries to fetch accounts that have at least one high-value closed Deal. 
    { "select_query": "SELECT Account_Name FROM Accounts WHERE id in (SELECT Account_Name FROM Deals WHERE Amount > 100000 AND Stage = 'Closed Won')"}

  • Find Contacts whose Accounts have NEVER closed a deal: You can use subqueries in COQL to fetch Contacts that have no associated Deals. 
    {"select_query": "SELECT Full_Name, Email FROM Contacts WHERE Account_Name not in (SELECT Account_Name FROM Deals WHERE Stage != 'Closed Won')"}

  • Identify new Leads who haven’t been marketed to yet: For instance, if need to find all leads who were NOT part of a specific campaign, you can use Subqueries in COQL.
    {"select_query": "SELECT Full_Name, Email FROM Leads WHERE id not in (SELECT Leads FROM Campaigns WHERE Campaign_Name = 'T01')"}
    where Leads is a lookup up field in the Campaigns module.

  • Identify Deals Closed Outside a Specific Campaign: Similarly, to find all Deals that closed outside the “Q1 Marketing Blitz” campaign window, you can use the NOT BETWEEN operator with subqueries.
    { "select_query": "SELECT Deal_Name, Created_Time FROM Deals WHERE Closing_Date not between (SELECT Start_Date FROM Campaigns WHERE Campaign_Name = 'Q1 Marketing Blitz') and (SELECT End_Date FROM Campaigns WHERE Campaign_Name = 'Q1 Marketing Blitz')"}

Key Benefits of Using Subqueries

  • Reduces API calls and Credit consumption – Instead of fetching related data in multiple queries, subqueries fetch it in one go.
  • Less Data Processing – No need to store and process results from one query before making another.
  • Improved Query Efficiency – Filters and retrieves only relevant records dynamically.
  • Simplifies Integration Code – Removes extra loops and logic required to handle multiple queries.

Limitations of Subqueries in COQL

While subqueries improve performance and efficiency, they come with certain limitations:

  • Subqueries can only be used in the WHERE clause. You cannot use subqueries in SELECT or FROM.
  • There can be a maximum of 5 subqueries per query.
  • Only one column can be selected in a subquery. You cannot fetch multiple fields from the subquery.
  • Limited to 100 records per subquery. If more records are needed, or there could be more than 100 possible records in the subquery, consider using JOINs.

Credit Consumption Considerations

Please note that using subqueries does not introduce any change in credit consumption compared to regular COQL queries. Credit usage is determined by the number of records retrieved in the main query.
The following table outlines the credit consumption based on the number of records retrieved:

LIMIT (No: of records)
API credits consumed
1 - 200
1
201 - 1000
2
1001 - 2000
3

Subqueries vs. JOINs

A JOIN clause in COQL lets you retrieve fields from two (or more) related modules in a single query by linking them on a lookup field—no nested queries needed. It’s ideal when you need columns from both modules, ie., the parent module and the related modules, in the same response.

For example, consider a scenario where it's necessary to query all accounts that have associated Deal records created within the past month.
—without getting duplicate Account rows if an Account closed multiple Deals.

Subquery Approach:

{  "select_query": "SELECT Account_Name FROM Accounts WHERE id in (SELECT Account_Name FROM Deals WHERE Created_Time >= '2025-03-01T00:00:00+05:30')"}

The subquery first selects Account_Name from Deals where the Created_Time is within the past month. Then the main query fetches the Account_Name from Accounts, once per matching account.

JOINs Approach:

{ "select_query": "SELECT 'Account_Name.Account_Name', 'Account_Name.id' FROM Deals WHERE Created_Time >= '2025-03-01T00:00:00+05:30'"}

This JOIN COQL query queries the Deals module and pulls related fields from the Account_Name lookup (Account name and ID) for each Deal created in the last month. As a result, it returns duplicate rows for accounts that have multiple matching deals.

Sample Response:

Subquery
JOIN
 {
    "data": [
        {
            "Account_Name": "Chapmans",
            "id": "4876876000004946070"
        },
        {
            "Account_Name": "Customer Daily",
            "id": "4876876000005030168"
        },
        {
            "Account_Name": "Luma Infotech",
            "id": "4876876000007420031"
        },
        {
            "Account_Name": "Luma Biotech",
            "id": "4876876000007481116"
        }
    ],
    "info": {
        "count": 4,
        "more_records": false
    }
}




{
    "data": [
        {
            "Account_Name.id": "4876876000007481116",
            "Account_Name.Account_Name": "Luma Biotech",
            "id": "4876876000010128001"
        },
        {
            "Account_Name.id": "4876876000007481116",
            "Account_Name.Account_Name": "Luma Biotech",
            "id": "4876876000010128016"
        },
        {
            "Account_Name.id": "4876876000007420031",
            "Account_Name.Account_Name": "Luma Infotech",
            "id": "4876876000010128047"
        },
        {
            "Account_Name.id": "4876876000005030168",
            "Account_Name.Account_Name": "Customer Daily",
            "id": "4876876000010193006"
        },
        {
            "Account_Name.id": "4876876000004946070",
            "Account_Name.Account_Name": "Chapmans",
            "id": "4876876000010213010"
        }
    ],
    "info": {
        "count": 5,
        "more_records": false
    }
}

Why Subqueries Are Better in This Case:

  • No Duplicates: Subqueries ensure that each matching parent (Account) appears only once, even if multiple child records (Deals) match. This is perfect for deduplicated reporting or dropdown lists.
  • Cleaner Result: Easier to parse and use directly in UIs or aggregations where duplicates are not useful.
  • Lower Payload Size: Especially useful if you just want the Account info and don’t need Deal-level detail.
Both subqueries and JOINs allow you to retrieve related data, but when should you use one over the other?

Use Subqueries When:

  • You need to filter data based on related module conditions.
  • You do not need to fetch fields from multiple modules. ie., you want to query the inner lookup fields only in the WHERE clause, and not in any other clause.
  • You need deduplicated parent records.
  • The subquery has 100 or less records.

Use JOINs When:

  • You need to retrieve fields from multiple related modules in the same response. ie., you want to query the inner lookup fields in any clause other than the WHERE clause.
  • You are dealing with large datasets exceeding the subquery limit of 100 records.
  • You need detail per child record, even if it leads to duplicate parent values.

Operator support for Subqueries in COQL

When using subqueries in COQL, make sure to use the correct operators depending on whether the subquery returns multiple values or a single value.

Multi-Value Operators

These operators are to be used with the subqueries that return multiple values, which are then used in the main query. 
Operator
Description
Example use case and query
in
Checks if a value is present in a list of values returned by the subquery.
Fetch all Contacts whose Accounts have won high-value deals.

{"select_query": "SELECT Full_Name, Email FROM Contacts WHERE Account_Name in (SELECT Account_Name FROM Deals WHERE Stage = 'Closed Won' AND Amount > 100000)"}
not in
Excludes records where the value is present in the subquery result.
Fetch all Contacts whose Accounts have never closed a deal.

{ "select_query": "SELECT Full_Name, Email FROM Contacts WHERE Account_Name not in (SELECT Account_Name FROM Deals WHERE Stage = 'Closed Won')"}

Single-Value Operators

These operators require the subquery to return a single value. If the subquery returns multiple values, an error will occur. 
Operator
Description
Example use case 
=
Matches records where the field is equal to the subquery’s result.
Fetch Deals created on the same date as the latest deal.
!=
Retrieves records where the field is not equal to the subquery’s result.
Fetch Deals not created on the same date as the latest deal.
<, >, <=, >=
Compares a field with the single value returned by the subquery.
Fetch all Deals that closed before the latest high-value deal.
between
Ensures a field's value falls within a range.
Fetch all Deals closed between two specific deal closure dates.
not between
Excludes records within the range.
Fetch all Deals closed outside a specific date range.

Example 1: Using the IN operator to fetch Contacts linked to high-value Deals

{ "select_query": "SELECT Full_Name, Email FROM Contacts WHERE Account_Name in (SELECT Account_Name FROM Deals WHERE Amount > 100000 AND Stage = 'Closed Won')" }

Example 2: Using the NOT IN operator to fetch Contacts from Accounts that have never closed a Deal
{ "select_query": "SELECT Full_Name, Email FROM Contacts WHERE Account_Name not in (SELECT Account_Name FROM Deals WHERE Stage = 'Closed Won')"}

Example 3: Using the BETWEEN operator to identify Deals closed during a specific Campaign (Q1 Marketing Blitz)
{ "select_query": "SELECT Deal_Name, Created_Time FROM Deals WHERE Closing_Date between (SELECT Start_Date FROM Campaigns WHERE Campaign_Name = 'Q1 Marketing Blitz') and (SELECT End_Date FROM Campaigns WHERE Campaign_Name = 'Q1 Marketing Blitz')"}

Combine JOINs and Subqueries for Smarter Filtering

In many business scenarios, it is not enough to simply retrieve related fields via JOINs—you also need to dynamically filter data based on conditions from another module. This is where subqueries can be incredibly useful in conjunction with JOINs.

Let’s say you're analyzing deal performance and want to pull a list of Deals that are:
  • Associated with Active Campaigns
  • Linked to Accounts in high-revenue Industries (Annual Revenue > 10,000,000)
  • You need to fetch details from the related modules—like Account name, Campaign name, and Contact email—in the same query
Why this can't be solved easily: While COQL supports JOINs for pulling data from related modules and subqueries for dynamic filtering, you can’t do all of this in one approach alone.
  • JOINs allow you to retrieve fields from related modules (like Contact_Name.Email )—but they do not let you dynamically filter using fields from those modules.
  • Subqueries, on the other hand, allow you to filter based on fields from related modules (like filtering Deals based on the Annual Revenue of the associated Account)—but you can’t fetch fields from multiple related modules using just a subquery.
So, if you need to both filter based on fields in a related module (like Accounts.Annual_Revenue) and retrieve fields from related modules (like Contact_Name.Email, Campaign_Source.Campaign_Name), you need both tools.

Solution: Combine JOINs and Subqueries in the Same Query
{"select_query": "SELECT Deal_Name, Amount, Account_Name, Campaign_Source, Contact_Name.Email FROM Deals WHERE (Campaign_Source.Status = 'Active') AND Account_Name.Industry in (SELECT Industry FROM Accounts WHERE Annual_Revenue > 10000000 GROUP BY Industry)"}

This query:
  • Uses JOINs to fetch:
    • Contact_Name.Email – from Contacts
  • Uses a subquery to apply dynamic filtering on Deals based on the Industry of Accounts with Annual Revenue > 10000000. COQL subqueries return a maximum of 100 records. If multiple accounts satisfying the criteria share the same industry, using GROUP BY Industry ensures only unique industry values are returned. This helps stay within the 100-record limit and avoids redundant filtering.
In the results, you get a deduplicated, filter-accurate list of Deals tied to Active Campaigns and high-value industries—with rich contextual fields in one API call.

You can even use JOINs inside subqueries. For instance, to fetch all deals from Optical Networking accounts managed by Jane (jane.doe@zohotest.com), and include key details about the deal, contact, account, and campaign:
{ "select_query": "SELECT Deal_Name, Amount, Account_Name, Contact_Name.Email, Campaign_Source FROM Deals WHERE Account_Name in (SELECT id FROM Accounts WHERE Industry = 'Optical Networking' AND Owner.email = 'jane.doe@zohotest.com')"}

By combining JOINs and subqueries, you can handle more complex, real-world business requirements in a single query. JOINs help you enrich your data with fields from related modules, while subqueries let you apply smart, condition-based filters across modules. 

Advanced Filtering: Nested Subqueries

For more advanced use cases, you can nest subqueries within subqueries to create complex filtering conditions.
Let's say Imagine you need to identify all Contacts associated with Accounts that meet two specific criteria:
  • The Account is in the "Retail" industry.
  • The Account has at least one associated Deal that is in the "Closed Won" stage and has a value greater than $50,000.
This scenario is common in sales and marketing, where you want to target high-potential customers within a specific industry. Here's how you can achieve this using a nested subquery in COQL:
{
  "select_query": "SELECT Full_Name, Email FROM Contacts WHERE Account_Name in (SELECT id FROM Accounts WHERE Industry = 'Communications' AND id in (SELECT Account_Name FROM Deals WHERE Stage = 'Closed Won' AND Amount > 50000))"
}
Innermost Subquery: (SELECT Account_Name FROM Deals WHERE Stage = 'Closed Won' AND Amount > 50000)
This subquery identifies all Account_Name values from the Deals module where the Stage is "Closed Won" and the Amount is greater than $50,000. Although the field name is Account_Name, it's a lookup to the Accounts module, so it returns the Account ID. This effectively isolates Accounts that have closed high-value deals.

Middle Subquery: (SELECT id FROM Accounts WHERE Industry = 'Retail' AND id IN (...))
This filters Accounts by the "Retail" industry and ensures that only those whose ID appears in the innermost subquery are selected.

Main Query: SELECT Full_Name, Email FROM Contacts WHERE Account_Name IN (...)
Finally, the main query retrieves the Full_Name and Email of all Contacts whose Account_Name matches the id values returned by the middle subquery.

Info
Note: COQL supports a maximum subquery nesting depth of 5, and you can include up to 5 subqueries total within a single query. The nesting limit refers to subqueries embedded within the WHERE clause of another subquery. 
Subqueries in COQL are a game-changer for developers looking to build efficient, context-aware queries across modules—allowing dynamic filtering that was previously only possible with multiple API calls. While JOINs help you fetch rich, multi-module data in a single response, subqueries let you filter records based on conditions from related modules. And when you combine the two, you unlock a powerful mechanism to tackle real-world CRM business cases with precision and clarity.

For advanced use cases, don’t hesitate to nest subqueries—COQL allows up to five levels deep—giving you the flexibility to build truly nuanced filters. Mastering the balance between JOINs and subqueries is key to writing smarter, cleaner, and more performant queries.

We hope you found this guide useful in understanding and implementing COQL subqueries. If you have any questions or require further clarification, please don't hesitate to leave a comment below or reach out to us directly at support@zohocrm.com

Keep experimenting, and as always, happy querying!




      • Recent Topics

      • I want to Make the due date of the project appears automatically

        hello everyone I want to know if the zoho projects app can add automatically the END DATE of the project I added the duration, start after dates of each tasks in the project template & the starting date of the project itself and the end date of it doesn't
      • Introducing Profile Summary: Faster Candidate Insights with Zia

        We’re excited to launch Profile Summary, a powerful new feature in Zoho Recruit that transforms how you review candidate profiles. What used to take minutes of resume scanning can now be assessed in seconds—thanks to Zia. A Quick Example Say you’re hiring
      • How to get the call recording external ID via desk API

        I have enabled phonbridge integration with Zoom Call. I am trying to access the call recording in Zoom by calling Zoom API. I have built a Desk workflow to trigger on a new call, to call a custom function. when calling the API, the response doesn't contain
      • Can't View Project Names in Mobile App

        I can't view project names on PO's in the app, nor can I add that as a viewable PDF field in inventory on the computer. I've attached screenshots showing that in the mobile version whether you are on the PO, editing the PO, or viewing the PO line items,
      • How do you print a refund check to customer?

        Maybe this is a dumb question, but how does anyone print a refund check to a customer? We cant find anywhere to either just print a check and pick a customer, or where to do so from a credit note.
      • Notebook

        I have purchased the monthly pro subscription of Notebook. But it does not support my XP-Pen to write something in it. So it is not useful to me. Hence I am requesting you to help me to discontinue this subscription.
      • Domain Mapping & Image Publishing Issues on Zoho Sites

        Hello, I am facing two issues with my Zoho Sites account: 1. Images not visible after publishing. 2. Domain mapping error: "Domain already exists". I am a paid customer. Please connect me with Live Chat Support or Zoho Assist so I can show my issue
      • Prevent duplicate with custom fields?

        I was wondering something about custom field/custom modules in Zoho Desk. For some reason you can make a custom field mandatory but not unique? For example, if I create a custom module to manage equipment and renewal and make a field serial number no
      • Round robin

        Hi, I'm trying to set up a round robin to automatically distribute tickets between agents in my team but only those tickets that are not otherwise distributed by other workflows or direct assignments. Is that possible and if so which criteria should I
      • "Is Zoho CRM customer" vs "Is linked with Zoho CRM"

        Recently while building a Flow, I was setting up a Decision action following a Zoho Invoice Fetch record action. There were 2 choices that I had not seen as something I could manually action in Zoho Invoice: "Is Zoho CRM customer" and "Is linked with
      • Two currencies

        More and more I am finding that internattional payments' fees are unpredictable. I would like, on my invoices that are in a foreign currency (eg. USD$ or EUR€) for there to be a GBP£ TOTAL display alongside the invoice's currency total. This would make
      • Automatic Matching from Bank Statements / Feeds

        Is it possible to have transactions from a feed or bank statement automatically match when certain criteria are met? My use case, which is pretty broadly applicable, is e-commerce transactions for merchant services accounts (clearing accounts). In these
      • Generate leads from instagram

        hello i have question. If connect instagram using zoho social, it is possible to get lead from instagram? example if someone send me direct message or comment on my post and then they generate to lead
      • Where is the desktop app for Zoho Projects???

        As a project manager, I need a desktop app for the projects I manage. Yes, there's the web app, which is AWESOME for cross browser and platform compatibility... but I need a real desktop app for Projects that allow me to enter offline information where
      • How to Automate Monthly PDF Reports with Filters in Zoho Creator

        Hi everyone, I’m trying to build an automated monthly reporting process in Zoho Creator and would appreciate suggestions or best practices from anyone who has done something similar. What I’m trying to do: I have a form called New_Customer with fields
      • Feedback: Streamlining Note Management in Zoho Notebook

        Dear Team/Support, I would like to share some feedback regarding the note management system that could help improve usability and accessibility for users like myself. Notebook 1 (screenshot attached): Currently, the system does not allow selecting and
      • showing Limit exceeded

        Good afternoon...trust you're good. I've been having issues working with but it's not responding. it's showing Limit exceeded, sorry it seems like too many people are working on the sheet right now please try again later. meanwhile no one is working on
      • Converting Sales Order to Invoice via API; Problem with decimal places tax

        We are having problems converting a Sales Order to an Invoice via API Call. The cause of the issue is, that the Tax value in a Sales Order is sometimes calculated with up to 16 decimal places (e.g. 0.8730000000000001). The max decimal places allowed in
      • Sorting columns in Zoho Projects

        Hi, In project management best practice, sorting columns (ascending, descending) is an important tool. Sorting dates to see the order of tasks starting, sorting on priority or even on planned hours is a must for an efficient project control. Currently,
      • Business Continuity - Disaster Recovery

        I know about the Zoho CRM backup .zip files, however, this doesn't include any of the infrastructure with like custom fields or custom modules. I am curious on what everyone has in place for a true backup or what your plan is if your Zoho instance were
      • Upload API

        I'm trying to use the Upload API to upload some images and attach them to comments (https://desk.zoho.com/DeskAPIDocument#Uploads#Uploads_Uploadfile) - however I can only ever get a 401 or bad request back. I'm using an OAuth token with the Desk.tickets.ALL
      • Losing description after merging tickets

        Hello, We merge tickets when they are about the same topic from the same client. It happens sometimes. We recently noticed that after the merger only the description from the master ticket is left in a thread. And the slave-ticket description is erased.
      • update linked contacts when update happens in account

        Hi, I have a custom field called Licence in the Accounts module. When someone buys a licence, I’d like to update a custom field in the related Contacts. How can I achieve this? I noticed that workflows triggered on Accounts only allow me to update fields
      • Problem Management Module

        I am looking for a Problem Management module within Zoho Desk. I saw in some training videos that this is available, and some even provided an annual price for it. I want an official confirmation on whether this is indeed available. This is not a particularly
      • Unable to explore desk.zoho.com

        Greetings, I have an account with zoho which already has a survey subscription. I would like to explore desk.zoho.com, but when I visit it while logged in (https://desk.zoho.com/agent?action=CreatePortal) I just get a blank page. I have tried different
      • Offline support for mobile app

        Accessing your files and folders from your mobile devices is now quicker and simpler, thanks to the power of offline support. Whether on an Android or iOS device, you can use the Offline function to save files and folders, so you can review them even
      • Zoho Desk KB article embedded on another site.

        We embed KB articles from Zoho Desk on another site (our application). When opening the article in a new tab, there is no issue, but if we choose lightbox, we are getting an error "To protect your security, help.ourdomain.com will not allow Firefox to
      • Transitioning to API Credits in Zoho Desk

        At Zoho Desk, we’re always looking for ways to help keep your business operations running smoothly. This includes empowering teams that rely on APIs for essential integrations, functions and extensions. We’ve reimagined how API usage is measured to give
      • List of packaged components and if they are upgradable

        Hello, In reference to the article Components and Packaging in Zoho Vertical Studio, can you provide an overview of what these are. Can you also please provide a list of of components that are considered Packaged and also whether they are Upgradable?
      • Does Attari Messaging app have Bot option and APIB

        Hi, Does Attari also have Bot and API as we use in WhatsApp??
      • How to add application logo

        I'm creating an application which i do not want it to show my organization logo so i have changed the setting but i cannot find where to upload/select the logo i wish to use for my application. I have seen something online about using Deluge and writing
      • Introducing Keyboard Shortcuts for Zoho CRM

        Dear Customers, We're happy to introduce keyboard shortcuts for Zoho CRM features! Until now, you might have been navigating to modules manually using the mouse, and at times, it could be tedious, especially when you had to search for specific modules
      • Empowered Custom Views: Cross-Module Criteria Now Supported in Zoho CRM

        Hello everyone, We’re excited to introduce cross-module criteria support in custom views! Custom views provide personalized perspectives on your data and that you can save for future use. You can share these views with all users or specific individuals
      • Send Automated WhatsApp Messages and Leverage the Improved WhatsApp Templates

        Greetings, I hope all of you are doing well. We're excited to announce a major upgrade to Bigin's WhatsApp integration that brings more flexibility, interactivity, and automation to your customer messaging. WhatsApp message automation You can now use
      • Verifying Zoho Mail Functionality After Switching DNS from Cloudflare to Hosting Provider

        I initially configured my domain's (https://roblaxmod.com/) email with Zoho Mail while using Cloudflare to manage my DNS records (MX, SPF, etc.). All services were working correctly. Recently, I have removed my site from Cloudflare and switched my domain's
      • Zoho Analytics Regex Support

        When can we expect full regex support in Zoho Analytics SQL such as REGEXP_REPLACE? Sometimes I need to clean the data and using regex functions is the easiest way to achieve this.
      • Change of Blog Author

        Hi, I am creating the blog post on behalf of my colleague. When I publish the post, it is showing my name as author of the post which is not intended and needs to be changed to my colleague's name. How can I change the name of the author in the blogs?? Thanks, Ramanan
      • Show Attachments in the customer portal

        Hi, is it possible to show the Attachments list in the portal for the particular module? Bests.
      • Zoho CRM Formula - Current Time minus Date/Time field

        Hello, I am trying to prevent duplicate emails going to clients when more than 1 deal is being updated. To do this, I would like to create a formula to identify if a date/time field is >= 2 hours ago. Can someone please help me write this formula? Example:
      • Does Zoho Docs have a Line Number function ?

        Hi, when collaborating with coding tasks, I need an online real time share document that shows line numbers. Does Zoho's docs offer this feature ? If yes, how can I show them ? Regards, Frank
      • Next Page