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

    • Tips & Tricks #6 | Zoho Vault: Audita actividad, Gestiona accesos, Comparte credenciales & mucho más.

      ¿Sabías que Zoho Vault puede hacer mucho más por la seguridad de tu equipo? Las contraseñas forman parte del día a día de cualquier persona y organización. Aplicaciones, herramientas internas, cuentas de clientes, servicios externos, plataformas de marketing,
    • CRM Address Field - States with Countries in brackets

      Hi, Could you please remove the country in brackets from the Global State List, or at least allow us to edit these entries? It looks like the brackets were added during the initial data population, perhaps by someone building the list in a spreadsheet
    • Inquiry Regarding Customer Hierarchy & Sub-Customer Creation via Zoho API

      Dear Zoho Support Team, Our mutual client has requested support for implementing the Customer Hierarchy (Parent/Sub-Customer structure) within our existing workflow. At the moment, all invoices are being created in Zoho under the main (parent) customer
    • Zoho Tables is now part of Zoho One!

      Hey everyone! We've got some exciting news to share. Zoho Tables is now included in your Zoho One subscription at no extra cost. If you're already on Zoho One, head to your app list, add Zoho Tables, and get started right away. You don't need a separate
    • 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
    • Introducing MCP for Zoho CommunitySpaces

      Hello everyone, Your AI assistant can now share the community workload with you. Zoho CommunitySpaces supports MCP (Model Context Protocol), so you can link an AI assistant like Claude, ChatGPT, or Cursor to your community and run it through plain language
    • Convert MBOX to PST File Using Free Methods

      MBOX is a mailbox format that is used by various email clients and services, such as Thunderbird, Apple Mail, Eudora, and Google Takeout. Yet, in order to be able to open your MBOX emails in Microsoft Outlook, you have to convert them from MBOX to PST
    • CV-Library: The Newest Source Booster in Zoho Recruit!

      We’ve expanded your sourcing toolkit — CV-Library, one of the UK’s largest and most trusted online job boards, is now available as a Source Booster in Zoho Recruit. This gives recruiters instant access to millions of UK-based candidate profiles, all without
    • Tip 52#: Ways to improve data flexibility using related list

      A related list offers an ideal solution to string related data across entities together. It enables you to pull records from any module or external source and float them as a tab within your project, sprint, epic, work item, or release detail view layout.
    • Email Blast

      Hi, How do we send an email blast to thousands of customers? The email addresses are not yet saved in Zoho Desk.
    • 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 ERP | Product updates | September 2026

      Hello users, A new month, a fresh set of updates in Zoho ERP. This month brings Netting, enhancements across our verticals, and more updates to help streamline your everyday work. Explore this month’s updates and see what’s new. Introducing Netting If
    • Widget Height were destroyed

      All widget heights in the Details Canvas view are broken.
    • Introducing Zoho POS for Restaurants

      Hello Community, We’re thrilled to announce the launch of Zoho POS for Restaurants, unveiled at the 30th milestone edition of Zoholics India 2026. Running a restaurant involves multiple teams and workflows. A single table journey, from seating a guest
    • 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
    • Task Module quick create settings

      Hello, requesting the Task module receive a quick create customization settings. We have added custom fields and have to select "More fields" at the bottom of the pop-up to access the custom fields.
    • Zoho Calendar integration for Bigin

      Hello everyone, We're excited to introduce Zoho Calendar's integration in Bigin! For a while now, users have been able to sync events in Bigin with Google Calendar and Outlook Calendar - but with this new topping, it syncs with Zoho Calendar as well.
    • Does Updating Employee Names and Profile Pictures in Zoho One Automatically Sync Across All Zoho Applications?

      Hi Zoho Team, We are currently using Zoho One in our organization and want to centrally manage employee profile information. As a Zoho One Super Admin, if I update the employee name and profile picture for all users from the Zoho One Admin Panel, will
    • Enhanced shared mailboxes: Dedicated Sent folders, Run-through filters & fresh UI

      Hi everyone, Collaborative communication is the backbone of smooth operations; whether you are handling customer support queries, managing vendor requests, or tracking sales leads. Shared mailboxes in Zoho Mail ensure your team stays on the same page
    • How to Manage Two GST Numbers / Two Companies in a Single Zoho Inventory Organization?

      Hi Team, We currently have two separate legal entities: A Proprietorship Firm with its own GSTIN A Private Limited Company with a different GSTIN However, operationally, both companies deal with the same products, and we would like to manage the physical
    • 10/22 15時〜 オンラインもくもく会のお知らせ | Zoho ワークアウト

      ユーザーの皆さま、こんにちは。コミュニティグループの中野です。 10月22日(木)開催の「Zoho ワークアウト」をご案内します。 Zoho ワークアウトは、参加者それぞれが取り組みたいテーマを持ち寄り、ユーザー同士で交流しながら、 設定・検証・運用改善を進めるオンラインの「もくもく会」です。 「試してみたい設定があるけれど、なかなか時間を取れない」 「一人で進めていると、途中で手が止まってしまう」 「他のユーザーの活用方法や工夫を聞いてみたい」 そんな方は、Zoho ワークアウトで一緒に取り組んでみませんか?
    • Reporting tags associated to Project in Zoho books?

      Hi, I know you can add reporting tags to contact, articles and transactions. Is it possible to add reporting tags to Project. We Zoho reports I would be able to generate reports by tags. Sometimes tags for a contact is different for projects (ie Projects
    • Reporting Tags in Profit and Loss Reports Analysis

      Hello Community and Zoho Books Product Team, I would like to highlight a limitation I encountered with Reporting Tags in Zoho Books. Reporting Tags Not Applying to Automated Inventory Journal Postings from Product Invoices. For inventory product invoices,
    • Spam Quarantine: Manage suspicious emails in Zoho Mail

      When an email is quarantined by spam processing, it need not always be blocked right away. Some emails may be marked incorrectly, or may need to be reviewed before a final decision is made. The Spam Quarantine feature in the Zoho Mail Admin Console gives
    • What is the difference between "Reply" and "Public Comment" in a ticket?

      Hey, my company is thinking about switching to Zoho Desk but we do not understand the difference between the "Reply" and the "Public Comment" feature. When should we use which? And why? What is the difference between them? Thank you for your help! Kindest
    • Comments Vs. Replies

      I'm curious as to the difference between a "Reply" and a "Comment" on a ticket. It appears that "Replies" are what's used to determine response time SLA's and there are also used to automatically re-open tickets. I'm just trying to understand the key differences so I can educate both our clientele and our back-end users on which function/feature to use to better improve the ticket lifecycle. If anyone has any insight it would be appreciated. Thanks!
    • 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
    • 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
    • Fax and email questions

      Does Zoho offer faxing capability? If so, how to do it? And, why is has my email inbox stopped in 2019? There are no more emails since then. Also if I delete all of those emails, will they delete it from my gmail account (I'm linked to a gmail email address).
    • Create a single record from multiple images with ICR

      Hello all, Zia's Intelligent Character Recognition can now create a single record from multiple images based on the configured ICR rule. Users can upload up to three images at once, such as an ID, a passport, and a business card, and Zia will extract
    • How to present an Analytic on a CRM dashboard and filter it on loginuser id

      How to present an Analytic on a CRM dashboard and filter it on loginuser id? I want to display an Analytics pivot table (as a widget) on a CRM dashboard and have the pivot filtered on the loginuser. I want additional user-filters available, such as date,
    • CNIL - Suivi de Pixel

      Bonjour à tous, À la suite de la nouvelle recommandation de la CNIL sur les pixels de suivi dans les e-mails, savez-vous si Zoho Campaigns permet : de conditionner le suivi des ouvertures au consentement de chaque contact ; de proposer un lien permettant
    • 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
    • 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
    • Zoho Payroll: Product Updates - Q3, FY2026

      Over the past quarter, Zoho Payroll has added several updates to make payroll easier to process, configure, and manage. The most notable improvements cover bank integrations, reimbursement support, payslip enhancements, employee exit documentation, payroll
    • Convert OLM to PST on Mac and Windows Using Free Methods

      When your Outlook for Mac data is stored in an OLM file and you want to use it with Outlook for Windows, the simplest approach to transfer your emails and other mailbox information is to convert the OLM file to a PST file. OLM is primarily associated
    • Add Payment Information (like Bank details)

      I am using the Free plan of Zoho Books. I need to add the bank details/ UPI details on the invoice. How can I do that. I have added the details in the Bank Section.
    • Placeholders for Multi-Level Discount

      I am using custom templates for Invoices and all other modules. Since i have activated multi-level discount (an early-access feature from zoho) "discount at line-item and transaction level", I need placeholders for using them in my custom templates. With
    • Running Balance

      Please add automatically Running balance in ledger view. Taking lot of time, every time to add manually
    • Accounting on the Go Series-47: Effortless GSTIN Management- Auto Populate TaxPayer Details in Zoho Books Mobile App

      Hello everyone, Welcome back! Today, we're focusing on a feature specifically designed for our Indian users in the Zoho Books-Indian edition, particularly those who deal with GST compliance regularly. We understand the importance of accurate and efficient
    • Next Page