Creating product-specific sales Pipelines with Zoho CRM APIs

Creating product-specific sales Pipelines with Zoho CRM APIs

Hello everyone!

Welcome back to another week of Kaizen. In last week's post in the Kaizen series, we discussed how an arrival readiness web tab widget can be used to let reception staff identify and resolve issues before arrival of guests. 

In this post, we will explore a real-world use case for creating and managing Pipelines in Zoho CRM using Zoho CRM APIs.

When a business sells multiple products or services, a single sales process may not work for all of them. A customer buying a new car may need to go through a test drive, price negotiation, and financing. An insurance customer may need a quote and document verification. A customer purchasing a service plan may simply need to select a plan and make a payment. Managing all these processes using a single Deal pipeline can make the sales process complicated for sales teams. You can create and manage pipelines for these business scenarios using the Zoho CRM Pipeline APIs.

Let us see how a company can create product-specific sales pipelines in Zoho CRM when it launches new products or services.

Business scenario

Consider Zylker Motors, a company that sells cars and related services.
It has three major offerings:
  1. New Cars
  2. Insurance
  3. Service Plans

Product

Sales process

New Cars

Enquiry → Test Drive → Price Negotiation → Finance → Closed Won

Insurance

Insurance Requirement → Quote → Document Verification → Policy Issued

Service Plans

Service Requirement → Plan Selection → Payment → Activated



When a new product is launched:
  1. Identify the sales process required for the product.
  2. Retrieve the appropriate Deal layout using the Layouts Metadata API.
  3. Retrieve the available Stage values and their IDs using the Fields Metadata API.
  4. If a required stage does not exist, add it to the existing Stage picklist using the Update Custom Field API.
  5. Create a pipeline for the product using the Create Pipeline API.
  6. Add the required stages to the pipeline in the required order.
  7. Make the new pipeline available for use in the sales process.
Let us walk through this process using Zoho CRM APIs.

Identify the Deal layout

A pipeline is associated with a specific layout in the Deals module. Therefore, the first step is to identify the layout in which the new pipeline needs to be created.
Use the Layouts Metadata API to get the layout ID in the Deals module. 

Sample Request
Request URL: {api-domain}/crm/{version}/settings/layouts?module=Deals
Request Method: GET
Response:

{
    "layouts": [
        .
        .
        .
        {
            "has_more_profiles": false,
            "api_name": "Standard__s",
            "name": "Standard",
            "generated_type": "system",
            "id": "5725767000000091023",
        }
    ]
}

The application can use the layout ID when creating the pipeline.
The Create Pipeline API requires the layout_id parameter because the pipeline is created within a specific Deal layout.

Retrieve the available Stage values

Identify the stages required for the new product's sales process using the Fields Metadata API.

Sample Request

Request URL: {api-domain}/crm/{version}/settings/fields?module=Deals
Request Method: GET
Response:

{
    "fields": [
        {
            "pick_list_values": [
                {
                    "display_value": "Enquiry",
                    "sequence_number": 1,
                    "deal_category": "Open",
                    "reference_value": "Enquiry",
                    "probability": 20,
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "id": "5725767000000006803",
                    "forecast_type": "Open",
                    "record_category_value": {
                        "api_name": "Open",
                        "id": "5725767000009510024"
                    },
                    "type": "used"
                },
                {
                    "display_value": "Test Drive",
                    "sequence_number": 2,
                    "deal_category": "Open",
                    "probability": 20,
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "id": "5725767000000006804",
                    "type": "used"
                },
                {
                    "display_value": "Price Negotiation",
                    "sequence_number": 3,
                    "deal_category": "Open",
                    "probability": 20,
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "id": "5725767000000006805",
                    "type": "used"
                },
                {
                    "display_value": "Finance",
                    "sequence_number": 4,
                    "deal_category": "Open",
                    "probability": 20,
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "id": "5725767000000006806",
                    "type": "used"
                },
                ...
            ]
        }
    ]
}

The application can use the IDs of these stages when creating the pipeline.
This is important because the Create Pipeline API requires the unique ID of each stage in the maps array. You can obtain these stage IDs using the Fields Metadata API.

What if a required Stage does not exist?

If the sales process requires stages that are not available in the Stage field, add those stages to the Deals module before creating the pipeline.

Use the Update Custom Field API to add the missing stages to the existing Stage picklist. 

Before adding the new stages, retrieve the existing values of the Stage field using the Fields Metadata API.

In this example, the Deals module already contains stages such as Enquiry, Test Drive, Price Negotiation, Finance, and Closed Won. The new sales processes require additional stages that are not currently available.
To add the new stages using the Update Custom Field API, include both the existing Stage values and the new Stage values in the pick_list_values JSON array.

The existing Stage values must be passed with their existing properties, while each new Stage value must be passed with the properties required to create the option, such as display_value, deal_category, forecast_category, probability, and sequence_number.

The following stages are being added:
  1. Insurance: Insurance Requirement, Quote, Document Verification, Policy Issued.
  2. Service Plans: Service Requirement, Plan Selection, Payment, Activated.
The following input contains the existing Stage values followed by the new Stage values. The existing values are retained as they are, and the new values are added with the required properties.

Sample Request

Request URL: {api-domain}/crm/{version}/settings/fields/{stage_ID}?module=Deals
Request Method: PATCH
Input JSON:

{
    "fields": [
        {
            "pick_list_values": [
                {
                    "display_value": "Enquiry",
                    "sequence_number": 1,
                    "deal_category": "Open",
                    "probability": 10,
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "id": "5725767000000006803",
                    "type": "used"
                },
                {
                    "display_value": "Test Drive",
                    "sequence_number": 2,
                    "deal_category": "Open",
                    "probability": 20,
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "id": "5725767000000006804",
                    "type": "used"
                },
               ...

                // ... other existing stages ...

                {
                    "display_value": "Insurance Requirement",
                    "deal_category": "Open",
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "probability": 50,
                    "sequence_number": 6
                },
                {
                    "display_value": "Quote",
                    "deal_category": "Open",
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "probability": 50,
                    "sequence_number": 7
                },
               
            ]
        }
    ]
}



For each stage you add, the following properties are mandatory:
  1. display_value: The name of the stage.
  2. deal_category: The category of the Deal stage, such as Open, Closed Won, or Closed Lost.
  3. forecast_category: The forecast category associated with the stage.
  4. probability: The probability percentage associated with the stage.
  5. sequence_number: The position of the stage in the Stage picklist.
After adding the new Stage values, retrieve the updated Stage field metadata using the Fields Metadata API to obtain their IDs. You can then use these IDs when mapping the stages to their respective pipelines.

Create the product-specific pipeline

At this point, the application has all the information required to create the pipeline:
  1. Deal layout ID
  2. Required Stage IDs
  3. Stage order
Zylker can now create a pipeline for the product using the Create Pipeline API.

Sample Request

Request URL: {api-domain}/crm/v8/settings/pipeline?layout_id=5725767000000091023
Request Method: POST
Input JSON:

{
    "pipeline": [
        {
            "display_value": "New Car Sales",
            "default": true, //The default key specifies whether the pipeline is the default pipeline for the layout. Set default to true to make the pipeline the default.
            "maps": [
                {
                    "sequence_number": 1,
                    "id": "5725767000011437001",
                    "display_value": "Enquiry"
                },
               {
                    "sequence_number": 2,
                    "id": "5725767000011437003",
                    "display_value": "Test Drive"
                }, 
                {
                    "sequence_number": 3,
                    "id": "5725767000011437004",
                    "display_value": "Price Negotiation"
                },
                {
                    "sequence_number": 4,
                    "id": "5725767000011437005",
                    "display_value": "Finance"
                },
                {
                    "sequence_number": 5,
                    "id": "5725767000000006816",
                    "display_value": "Closed Won"
                }
            ]
        }
    ]
}



The maps JSON array defines the stages included in the pipeline, while sequence_number determines the order in which they appear.

The Create Pipeline API requires display_value for the pipeline name and maps for the stages. The stage IDs must be valid IDs obtained from the Fields Metadata API.

Sample Response:
{
  "pipeline": [
    {
      "code": "SUCCESS",
      "details": {
        "id": "5725767000011439001" //The application can store this pipeline ID for future operations.
      },
      "message": "Pipeline created",
      "status": "success"
    }
  ]
}


Create pipelines for other products

Same approach can be used for the other products.

Insurance

Insurance Requirement → Quote → Document Verification → Policy Issued

Service Plans

Service Requirement → Plan Selection → Payment → Activated

Each pipeline now represents a different sales process.

What if the sales process changes?

Sales processes often evolve.
Suppose Zylker discovers that EV customers need a technical battery evaluation before price negotiation.

Existing Process: 

  Enquiry → Test Drive → Price Negotiation → Finance → Closed Won


the updated process becomes:

Enquiry → Test Drive → Battery Evaluation → Price Negotiation → Finance → Closed Won


If Battery Evaluation already exists as a Stage option, the application only needs to update the pipeline. 

Retrieve the pipelines configured in the layout using Get Pipelines in a Layout API

Sample Request

Request URL: {api-domain}/crm/v8/settings/pipeline?layout_id=5725767000000091023
Request Method: GET

Response:

{
    "pipeline": [
        {
            "display_value": "New Car Sales",
            "default": true,
            "maps": [
                {
                    "display_value": "Enquiry",
                    "sequence_number": 1,
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "actual_value": "Enquiry",
                    "id": "5725767000011437001",
                    "forecast_type": "Open"
                },
                {
                    "display_value": "Price Negotiation",
                    "sequence_number": 2,
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "actual_value": "Price Negotiation",
                    "id": "5725767000011437003",
                    "forecast_type": "Open"
                },
                {
                    "display_value": "Finance",
                    "sequence_number": 3,
                    "forecast_category": {
                        "name": "Pipeline",
                        "id": "5725767000000006787"
                    },
                    "actual_value": "Finance",
                    "id": "5725767000011437004",
                    "forecast_type": "Open"
                },
                {
                    "display_value": "Closed Won",
                    "sequence_number": 4,
                    "forecast_category": {
                        "name": "Closed",
                        "id": "5725767000000006789"
                    },
                    "actual_value": "Closed Won",
                    "id": "5725767000000006815",
                    "forecast_type": "Closed Won"
                }
            ],
            "actual_value": "New Car Sales",
            "id": "5725767000011439001"
        }
    ]
}

The application can then update the existing pipeline using the Update a Pipeline API.

Note: If the new stage does not exist in the Stage picklist, the application must first add it to the Stage field using the Update Custom Fields API and then update the pipeline using the Update a Pipeline API. Use the Get Pipelines in a Layout API to get the pipeline ID.


Update the Pipeline using Update a Pipeline API

Sample Request

Request URL: {api-domain}/crm/v8/settings/pipeline/5725767000011439001?layout_id=5725767000000091023
Request Method: PUT

Input JSON

{
    "pipeline": [
        {
            "maps": [ //mandatory to update the stage details
                {
                    "display_value": "Battery Evaluation",
                    "sequence_number": 2,
                    "id": "5725767000011437002"
                }
            ]
        }
    ]
}

The updated maps JSON array can include the Battery Evaluation stage at the required position. 

Note: If you add a new stage with a sequence_number that is already in use, the new stage is added at that position, and the remaining stages automatically follow the next sequence numbers.

What if a pipeline is no longer required?

What if a pipeline is no longer required?
Sales processes can change over time. For example, Zylker may decide to discontinue the New Car Sales pipeline and replace it with a new Vehicle Sales pipeline.

The existing pipeline might contain:

New Car Sales

Enquiry → Test Drive → Price Negotiation → Finance → Closed Won

The new pipeline could have a revised sales process:

Vehicle Sales

Enquiry → Test Drive → Vehicle Evaluation → Price Negotiation → Finance → Closed Won


If the old pipeline has Deals associated with it, simply deleting the pipeline is not enough. The Deals need to be transferred to the new pipeline, and the stages in the old pipeline need to be mapped to the corresponding stages in the new pipeline.

You can use the Transfer and Delete a Pipeline API for this purpose. The API deletes the old pipeline and transfers its associated Deals to the new pipeline. It also allows you to specify how the stages in the old pipeline should be mapped to stages in the new pipeline. 

Transfer Deals and delete the old pipeline

Sample Request

Request URL: {api-domain}/crm/v8/settings/pipeline/actions/transfer?layout_id=5725767000000091023
Request Method: POST

Use the Get Pipelines in a Layout API to retrieve the Pipeline and the respective stage IDs.

The request requires:
{
    "transfer_pipeline": [
        {
            "pipeline": {
                "from": "5725767000011439001", //Old/Source pipeline → this pipeline will be deleted.
                "to": "5725767000011439002" //New/Destination pipeline → Deals will be transferred here.
            },
            "stages": [ //The stage mapping between the old and new pipelines
                {
                    "from": "5725767000011437001", //stage in the old pipeline.
                    "to": "5725767000011437002" //corresponding stage in the new pipeline.
                }
            ]
        }
    ]
}

Key explanation
  1. transfer_pipeline: The root array that contains the pipeline transfer details.
  2. pipeline: Specifies the source pipeline to be deleted and the destination pipeline to which its Deals will be transferred.
  3. pipeline.from: The ID of the pipeline that you want to delete.
  4. pipeline.to: The ID of the pipeline to which the Deals from the source pipeline will be transferred.
  5. stages: Contains the stage mappings between the source and destination pipelines.
  6. stages.from: The ID of a stage in the pipeline being deleted.
  7. stages.to: The ID of the corresponding stage in the destination pipeline where the Deals should be placed.

Create a Deal with the new pipeline using Insert Records API

Once the New Car Sales pipeline has been created and its stages have been configured, the sales team can create a simple Deal using the pipeline and one of its stages to verify that the configuration works as expected. 
For example, when a customer shows interest in purchasing a car, create a Deal in the Deals module using the Insert Records API.

Sample Request


Request URL: {api-domain}/crm/v8/Deals
Request Method: POST

Input JSON
{
    "data": [
        {
            "Deal_Name": "Car Purchase Enquiry",
            "Pipeline": "New Car Sales",
            "Stage": "Enquiry"
        }
    ]
}
Once the setup is validated, they can add the remaining Deal details based on their business requirements.

We trust that this post meets your needs and is helpful. Let us know your thoughts in the comment section or reach out to us at support@zohocrm.com.
Stay tuned for more insights in our upcoming Kaizen posts!

Cheers!!!









      • 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

        • Recent Topics

        • Button Display Conditions

          Hi Guys, Is it at all possible to have extra button conditions? Context: We have data in our deals module which has a custom button which converts the deal into contacts + set up relationships between them. At the end of the conversion we set a field
        • WhatsApp Business Message Pricing Update: Effective October 1, 2026

          Hi everyone, Starting October 1, 2026, Meta is updating how WhatsApp Business messages are charged. This guide explains the new per-message pricing model, how message categories work, and what changes for service messages specifically. How Meta charges
        • Cannot login to Zoho Mail on Mobile App

          Hi, I am the super administrator for our company's email account. I just created 4 new email accounts, and my users have downloaded the zoho mail app. However they are unable to login to their email on the app. It kept saying "User does not exist". Please help! Thank you.
        • Zoho Projects - Linking CRM Deals to Projects via API without sending customer contact email invitation to project portal

          We are using the Zoho CRM and Zoho Projects APIs to automatically create a project in Zoho Projects and then associate that project with the relevant Deal in Zoho CRM. The API process is working in that the project is created successfully and appears
        • Live connection to DS files in Zoho Creator / ChatGPT

          As an idea, we are using ChatGPT to build with Zoho Creator (outside of Zia), which is works brilliantly to assist write deluge, provide test suggesitons etc. Currently we are uploading the DS files which are very point in time, it would be great to have
        • In ZOHO Books, it appears that there is a maximum of 200 Shipping addresses.

          I am using ZOHO Books and what you call a shipping address, we use as a Service address. I have a couple of customers that have Many Many service addresses, I am starting to get an error saying too many shipping addresses. Additionally, is there a way
        • Setting default From address when replying to request

          At the moment, if I want to reply to a request, the From field has three options, company@zohosupport.com, support@company.zohosupport.com, and support@company.com. The first two are really internal address that should never be seen by the customer and
        • Notice to Zoho Community Members: Updated Zoho Community Guidelines

          Hello everyone, We have updated the Zoho Community Guidelines to keep the exchanges original, relevant, and meaningful. The major focus of this update is on AI use, and on sharing apps, extensions or other software in the community. This community works
        • Change from OST to PST on Windows 10/11 Using Free Method

          There is an advantage in converting OST files to PST format if you need to access your Outlook data on a different computer, want to keep a local copy, or are trying to recover items from an old Outlook profile. The good point is that users of Windows
        • How to add a fee based on payment method

          I currently accept both ACH payments and credit card. I want to add a 3% fee to a number of my subscription plans if the customer chooses to use a credit card (and not ACH/checking). How do I do this? Is there an in-built feature, or would i have to create
        • How to charge Convenience fee OR payment gateway charges to the end client who is paying the invoice?

          Hello, I am creating this topic after having discussions with various sets of users and have understood that with people moving more and more to digital payments, it is important for the client to enable the "Convenience fee" kind of scenario. I have
        • How can I add a Custom Field (or Customer_name) to a picklist?

          Our workflow is Shopify-->SO -->Picklist-->Package-->Shipment. We would like to have the Picklist template to include a custom field "Customer_Notes" (we have created this field already). This way we get alerted when a customer has notes on their account.
        • Can't copy and paste from email in Zoho email client

          I don't know what happened, but I have lost the ability to cut and paste information from an email.
        • Which Zoho CRM tasks would you want an AI assistant to handle?

          I’ve started delegating my Zoho CRM work to AI – and many tasks now take me half the time. It has been so useful that we’re now working to make it available to everyone. Instead of clicking through records and tabs, I simply describe what needs to be
        • What's New in Zoho Inventory | July & August 2026

          Hello users, The July and August 2026 releases bring a range of new features and improvements across the product. From the Nigeria Edition and Super Admin enhancements to Sri Lanka IRD-compliant invoicing, Loyalty Program Management, and improvements
        • Hide Inactive Social Sign-In Providers from Login Screen

          Hello Zoho Team, We hope you are doing well. Currently, Zoho One allows admins to configure security policies and enable or disable Social Sign-In options for third-party providers such as Apple, Google, Microsoft, LinkedIn, Yahoo, Twitter, Facebook,
        • Forms data export bug

          The export csv with a password has changed for the worst. It is less secure by not allowing complex passwords. Just last week and the last year (at least) I was able to use a complex, secure password. Export CSV moreover doesn't even work if I use a simple
        • How does Zoho handle the daylight savings time change in Alberta?

          Alberta has just made the decision to get rid of daylight savings. This means that as of November 1, 2026 we remain on UTC-6 year-round. We have timing errors in meetings scheduled after that For example, we scheduled meetings in late November at 9:00
        • Need to set workflow or journey wait time (time delay) in minutes, not hours

          Minimum wait time for both Campaigns workflows and Marketing Automation journeys is one hour. I need one or the other to be set to several minutes (fraction of the hour). I tried to solve this by entering a fraction but the wait time data type is an integer
        • Shared Mailbox in iOS app

          Hi, On the desktop I am using a Shared mailbox for our company's general mailbox that somebody else should be able to view. In the iOS app however I can't find it? Old sources on the internet says this isn't possible but that can't be right? Somebody
        • Issues with Zoho Insights and email template web links

          Is anyone else out there having the same issue we're experiencing? When we send out an email template, Zoho insights is converting the URLs from the URL we insert in to the template in to one of the form https://mailer1.zohoinsights.com/ocgeturl/2d6f.327230a?l=0ed7f050-5b31-11eb-a1a...
        • UCP: Why We Killed the Multi-Portal Mess and Simplified Customer Self-Service

          Let's talk about the multi-portal mess nobody wants to admit that it exists. Your customer needs an invoice from one app, wants a ticket update from another, and has a project waiting in a third, each behind its own login, its own UI, its own "was it
        • Object-level edit permissions

          Hi, we are currently running into a limitation with permissions inside larger workspaces. Our use case is a central Analytics workspace that contains many tables, Query Tables, reports and dashboards used by different teams. We would like to allow certain
        • inventory removal at packing list or shipment.

          currently our system is set to remove inventory at invoice. This is creating an inventory nightmare? Is it possible to change the settings to remove the item from inventory at either the packing slip stage or shipping the item.
        • Item description is not displayed

          I added the item description while importing the new item through the bulk item Excel sheet, and the import was completed successfully. However, I cannot see the description in the item details under Inventory. Could anyone please advise how to make the
        • Shared inbox unable to see replies

          Hi we are a small company me and someone else, we have a shared inbox for our sale@ and contact@ however we have this issue where by if i reply to an email or the other person reply to the email, it does not show it to them and therefore we end up replying
        • Record Payment - Auto Populate Amount as payments are selected

          When recording payments you have the option of clicking on "Pay in Full" next to the bill which automatically adds the total at the bottom of the page next to "Amount used for payments" but this should also auto populate / update the total at the top
        • Can't set conditional layout rule on lookup field in Zoho CRM

          Namaskaram Zoho CRM team, Usually any fields of module except mandatory fields can be hide using conditional layout rules. But that can't be set on lookup fields event that is not a mandatory fields. Many users are in need of that. Crafted with ❤️ Zoho
        • [Request] Pivot filter date option : from set date to relative value ie from 01Jan to LastMonth

          I don't think I can currently do this... but it's worth asking if it's possible. My use case is concerning annual leave which is calculated from the beginning of the calendar year (01Jan) then each month I want to have details of leave taken etc... In
        • Need to be able to apply layout rules to 'Multi Pick List'

          Currently, we are unable to apply layout rules to fields that are 'Multi Pick List'. This means we have to instead use checkbox fields, but they are inefficient. For example, we use the Multi Pick List to list our products. However, we're unable to apply
        • 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
        • My "trigger" panel disappear from my workflow ...

          Hello, I want to add a trigger to an email sequence, but the "trigger" panel has disappeared when I want to modify ...I used a predefined template to create this sequence, is that because of that? Thank you. I have attached a screenshot to you
        • Workflow Automation Not Triggering

          My Zoho CRM workflow sometimes doesn’t trigger when a record is updated, even though the workflow criteria appear to be met. What should I check to find out why the workflow is being skipped?
        • AI Calling

          Hi, does anyone have experience or any thoughts on AI Calling. Getting AI to make calls on behalf of your company. We are looking into it, but are finding it difficult to get info and providers that can assist.
        • Zoho Sheet as KB Document

          It would be nice if Zia Agents could take Zoho Sheets as part of the knowledge base. The use case here is that it's infinitely easier for humans to maintain a spreadsheet table than any .md / TAML / JSON document. For situations where humans are responsible
        • Ask the Experts: Five-hour live Q&A session with Zoho WorkDrive product experts

          Have questions about WorkDrive 5.0? Let’s talk! We recently launched Zoho WorkDrive 5.0, packed with powerful updates to help your team work smarter, stay secure, and get more value from your business content. From content-centric workflows and AI-powered
        • Automating CRM backup storage?

          Hi there, We've recently set up automatic backups for our Zoho CRM account. We were hoping that the backup functionality would not require any manual work on our end, but it seems that we are always required to download the backups ourselves, store them,
        • Zoho Community Digest - September 2026 | Part 3

          Hi everyone, and welcome back! Zoho CRM launches PRM for partner management, Bigin builds this year's Apple AI updates into the app, and Snapchat is now a connected channel in Zoho Social. There are also three notices worth reading, including WhatsApp
        • ERROR: This user is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details

          I can add new user for mail, i received message error about; This user is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details Try creating user name; instagram@eficaztecnologia.com.br
        • Support for Custom Fonts in Zoho Recruit Career Site and Candidate Portal

          Dear Zoho Recruit Team, I hope you're doing well. We would like to request the ability to use custom fonts in the Zoho Recruit Career Site and Candidate Portal. Currently only the default fonts (Roboto, Lato, and Montserrat) are available. While these
        • Next Page