Kaizen #195: Frequently Asked Questions on Bulk Read API and Bulk Write API

Kaizen #195: Frequently Asked Questions on Bulk Read API and Bulk Write API

🎊 Nearing 200th Kaizen Post – We want to hear from you!
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. 

Hello all!!
Welcome back to another post in the Kaizen series!

In this post, we will address some of the most frequently asked questions about Zoho CRM's Bulk Read API and Bulk Write API from the Zoho CRM Developer Community Forum.

 Frequently Asked Questions on Bulk Read API 

1. What is the Bulk Read API, and when should I use it?

Bulk Read refers to bulk data export. This API allows you to export large datasets i.e., you can export up to 2,00,000 records in a single export job from Zoho CRM in CSV format. Bulk Read APIs are best suited for backups and data migration.

2. Since Zoho CRM has other record APIs such as GET Records API, COQL API, and Search API to retrieve data, why should I use the Bulk Read API? 

Other record APIs like the GET Records API, COQL API, and Search API are used to retrieve data, but they return fewer records per API call. This can quickly lead to reaching your daily API limits, unlike the Bulk Read API, which can be used to export larger datasets.
  • GET Records API : You can fetch up to 200 records per API call. Use pagination to retrieve up to 1,00,000 records from a module.
  • COQL API : You can fetch up to 2000 records per API call. Using LIMIT and OFFSET, you can fetch up to 100,000 records. To get beyond 100,000 records, refer to Pagination section of the API help documentation. Also, it supports cross-module queries.
  • Search API : You can fetch up to 200 records per call. With pagination, you can retrieve up to 2,000 records in total. Using this API, you can search for records in a module based on a criteria that you define. 
  • Advantages of Bulk Read API
    • You can export up to 2,00,000 records per API call.
    • Use the page_token to export the next set of 2,00,000 records until all records are fetched.

3. How do I make a Bulk Read API call?

The process involves three steps:
  • Create a Bulk Read Job : Make a POST call with the required details, including module, fields, and filter criteria. For a successful API call, you will receive a unique job_id in the response. 
  • Check Job Status : Use the job_id to poll for status of the Bulk Read API. You can also set up a callback URL for notifications, where you will be notified when the Bulk Read job is complete.
  • Download Results : Once the Bulk Read job is complete, you will get the download_url in the response of the Get Status API. Use this download URL to download the ZIP file containing the CSV or ICS files. 

4. What are the supported and unsupported modules in the Bulk Read API?

Supported modules :
leads, accounts, contacts, deals, campaigns, tasks, cases, events, calls, solutions, products, vendors, price books, quotes, sales orders, purchase orders, invoices, subforms, linking module, and custom modules.

Unsupported modules :
Modules that appear as related lists in a record like Emails and Attachments are treated as separate modules in Zoho CRM. The Bulk Read API does not support these related list modules.

5. How can I export subform records in a module using the Bulk Read API?

To export subform records using the Bulk Read API, specify the subform’s API name in your request. 

Request Method: POST
Sample Request:


{
    "callback": {
        "method": "post"
    },
    "query": {
        "module": {
            "api_name": "Project_Details"
        }
    },
    "file_type": "csv"
}

Note: In the above example, the Project_Details is the API name of the subform to be exported. 

Exporting subform records based on criteria


  {
    "query": {
        "module": {
            "api_name": "Project_Details"
        },
        "fields": [
            "Project_Name",
            "Project_Type",
            "Expected_Budget",
            "Status"
        ],
        "criteria": {
            "field": {
                "api_name": "Expected_Budget"
            },
            "comparator": "greater_equal",
            "value": "40000" //Retrieving subform records with an expected budget greater than or equal to $40,000
        }
    }
}


For more details on subforms, refer to Kaizen #124 - Manipulating Subform using Zoho CRM APIs

6. How can I export multi-select lookup (MxN) records in a module using the Bulk Read API?

Specify the API name of the linking module in your request to export records from a multi-select lookup (MxN) field.

Request Method: POST
Sample Request:


{
    "callback": {
        "method": "post"
    },
    "query": {
        "module": {
            "api_name": "EmpXSkills"
        },
        "fields": [
            "Employees.Name",
            "Employees.Year_of_Experience",
            "Skills.Name"
        ],
        "criteria": {
            "group": [
                {
                    "field": {
                        "api_name": "Employees.Year_of_Experience" 
                    },
                    "comparator": "greater_than",
                    "value": "4"
                },
                {
                    "field": {
                        "api_name": "Skills.Name"
                    },
                    "comparator": "contains",
                    "value": "Social"
                }
            ],
            "group_operator": "AND"
        }
    }
}


In the sample, EmpXSkills is the API name of the linking module.

7. How can I export multi-module lookup field's data in a module using the Bulk Read API?

The Appointments module has a multi-module lookup field called Appointment_For. To export data that includes this field, specify the API name of the Appointments module in the module key of your Bulk Read API request.

Request Method: POST
Sample Request: 


{
    "callback": {
        "method": "post"
    },
    "query": {
        "module": {
            "api_name": "Appointments__s" //API name of the Appointments module
        }
      
    },
    "file_type": "csv"
}

Note: The Appointment_For field cannot be used in the criteria. 


8. What are the field limits for a Bulk Read API request?

You can specify up to 200 fields per request. If the limit is exceeded, the API returns all fields in the module by default.

9. What are the criteria limits for the Bulk Read API in Zoho CRM?

The Bulk Read API supports a maximum of 25 criteria per query, including the criteria defined in custom views. Make sure your filter conditions do not exceed this limit to avoid errors during query execution.
Request Method: POST
Sample Request:


{
    "callback": {
        "method": "post"
    },
    "query": {
        "module": {
            "api_name": "Contacts"
        },
        "fields": [
            "Last_Name",
            "Owner",
            "Lead_Source",
            "Created_Time"
        ],
        "criteria": {
            "group_operator": "and",
            "group": [
                {
                    "field": {
                        "api_name": "Lead_Source"
                    },
                    "comparator": "equal",
                    "value": "Advertisement"
                },
                {
                    "field": {
                        "api_name": "Owner"
                    },
                    "comparator": "equal",
                    "value": "Boyle"
                },
            .
            .
            .
             // Add more criteria objects here, up to 25 total
            ]
        }
    }
}


10. How do I fetch data from lookup fields using the Bulk Read API?

To fetch data from lookup fields, use the dot (.) operator. Refer to the following Sample Request for reference.
Request Method: POST
Sample Request:



{
    "callback": {
        "method": "post"
    },
    "query": {
        "module": {
            "api_name": "Contacts"
        },
        "fields": [
            "Last_Name",
            "Owner",
            "Owner.last_name",
            "Account_Name.Account_Name", //account lookup field 
            "Account_Name.Phone",
            "Lead_Source"
        ],
        "criteria": {
            "group_operator": "or",
            "group": [
                {
                    "field": {
                        "api_name": "Lead_Source"
                    },
                    "comparator": "equal",
                    "value": "Advertisement"
                },
                {
                    "field": {
                        "api_name": "Owner.last_name" //owner lookup field in the Contacts 
                    },
                    "comparator": "equal",
                    "value": "Boyle"
                },
                {
                    "field": {
                        "api_name": "Account_Name.Phone" //account lookup field in the Contacts 
                    },
                    "comparator": "contains",
                    "value": "99807"
                }
            ]
        }
    }
}


11. Why do I get a "RESOURCE_NOT_FOUND" error when checking the status of a Bulk Read job?



{
    "status": "error",
    "code": "RESOURCE_NOT_FOUND",
    "message": "The requested resource doesn't exist.",
    "details": {
        "resource": "5725767000006841003"
    }
}




The "RESOURCE_NOT_FOUND" will be thrown for the following three reasons.

  • API version mismatch : If there is a version mismatch between the API used to create the job and the API used to fetch its status. For example, if you create a Bulk Read job using v6 and then try to check the job status using v8, you will get the "RESOURCE_NOT_FOUND" error. Always use the same API version consistently for all operations related to a Bulk Read job, from creation to status check to file download. Double-check the version in your request URL before making API calls.
  • Job ID expiration : If you pass an expired job ID, the system will return this error.
  • Invalid job ID : If you pass an incorrect job ID in the job_id key, the system will return this error.

12. What file formats are supported?

The data is returned as a ZIP file containing either a CSV or ICS file upon job completion. You can download the file from the URL provided in the response of the Status API call.
  • CSV: Default format for all modules.   
  • ICS: Available only for the Events module.

13. How long are the exported files available for download?

The download_url is valid for one day after job completion. After that, the file is inaccessible.

14. How to handle large datasets beyond the record limit?

Use the page key to paginate the export of large datasets. The maximum possible value of page key is 500.

For example, 
  • page=1 retrieves records 1 to 200,000
  • page=2 retrieves records 200,001 to 400,000
If the more_records key is true in the response of Get the Status of the Bulk Read Job API, it indicates that there are more records available to fetch. In such a case, use pagination and make more Bulk Read API calls to retrieve them. 

Request Method: GET
Sample Response:

{
    "data": [
        {
            "id": "3652397000000646004",
            "operation": "read",
            "state": "COMPLETED",
            "result": {
                "page": 1,
                "per_page": 200000,
                "count": 200000,
                "download_url": "/crm/bulk/v8/read/2276164000001136017/result",
                "more_records": true,
                "next_page_token": "bca6fba106357ae3b1ecbd63f"
            },
            "query": {
                "module": {
                    "id": "2276164000000000125",
                    "api_name": "Contacts"
                },
                "page": 1
            },
            "created_by": {
                "id": "2276164000000471001",
                "name": "Patricia"
            },
            "file_type": "csv"
        }
    ]
}


Use the page_token key to get the next set of records. You can find the value for page_token in the next_page_token field of the response from your Get Bulk Read Job Status API call. 

Now, again, use the POST - Bulk Read API with this token to fetch the next batch of records.
Request Method: POST
Sample Request: 

{
    "query": {
        "page_token": "bca6fba106357ae3b1ecbd63f"
    }
}


15. What are the download rate limits for the Bulk Read API?

A maximum of 10 download requests are allowed per minute. If this limit is exceeded, the server returns an HTTP 429 (Too Many Requests) error.

16. Is it possible to export records based on a custom view?

Yes, the Bulk Read API supports exporting records based on a custom view by specifying the CVID in your request. Refer to the Bulk Read API documentation for details.

17. Does the Bulk Read API preserve the order of fields in the response?

The Bulk Read API does not follow a specific order for fields in the response when all fields from a module are requested. However, if you specify a set of fields using the fields JSON array, the response will maintain the same order as provided.

18. Is it possible to schedule multiple Bulk Read jobs?

Yes, you can schedule multiple Bulk Read jobs simultaneously.

19. Is it possible to cancel a Bulk Read request after it is initiated?

No, once a Bulk Read request is initiated, it cannot be cancelled.

20. Do the download URLs require any kind of authentication? Or can anyone access them?

Yes, authentication is required to access download URLs.
  • Admin users can download the results of all Bulk Read jobs.
  • Non-admin users can only download their own Bulk Read jobs.

21. How many records can be exported from the Events module in ICS format per API call?

The ICS format is supported only for the Events module. You can export up to 20,000 records in ICS format from the Events module in a single API call.

Frequently Asked Questions on Bulk Write API

1. What is the Bulk Write API and what operations does it support?

The Bulk Write API allows you to insert, update, or upsert large sets of data (up to 25,000 records) asynchronously in Zoho CRM. 

It supports three main operations:
  • Insert: Create new records
  • Update: Modify existing records 
  • Upsert: Update existing records or create new ones if no matching record exists.

2. What file formats are supported for bulk operations?

The Bulk Write API accepts one ZIP file containing CSV files.
  • To import records into modules such as Deals and Accounts,i.e, to import records only to the parent modules, the ZIP file should contain only one CSV file. For example, if you want to import 50,000 records into the Leads module, you need to make two CSV files (25,000 records each), compress each CSV file into a separate ZIP file, and make two separate Bulk Write API requests.
  • To import parent and child records (subform or linking module) in a single API call, the ZIP can include multiple CSV files - one for the parent module and others for the child modules. For more details on handling parent-child records, refer to Kaizen #131 - Bulk Write for parent-child records using Scala SDK.
  • The maximum allowed size of the ZIP file is 25 MB.

3. What are the key points to keep in mind while preparing a CSV file for the Bulk Write API?

  • Maximum of 25,000 records per file
  • Maximum of 200 column headers
  • Supported delimiters: comma (,), semicolon (;), colon (:), or pipe (|)
  • All records must belong to the same module
Things to note with the header row 
  • If field mapping is not provided in the API request, then the first row must contain CRM field API names. This enables automatic mapping by the system.
  • If field mapping is provided explicitly in the API request, then the first row can contain any name like display_label. In this case, the first row will be discarded by the system, and it will rely only on the field mapping in the API request.
Recommended way to create a ZIP file for Bulk Write API

It is recommended to create the ZIP file from the terminal. When you zip files through UI (right-click -> Compress), hidden files like __MACOSX may be added to the zip file, which can cause upload errors.
 
Example : 

zip bulk_data.zip parent.csv -> zip test.zip test.csv


Field mapping is
  • Optional for single-module bulk jobs.
  • Mandatory for parent-child module jobs.

4. What are the mandatory headers to include while making a Bulk Write job?

        

                            Header

 

                             Value

Authorization

Zoho-oauthtoken {access_token}

Content-Type

multipart/form-data

X-CRM-ORG {org_id}  Use the Organization API to get your org ID.

123456789

feature

bulk-write 


5. Why am I getting the "403 Invalid Response From Service Team" error while uploading my ZIP file using the Bulk Write API?

Using an incorrect or missing Org ID in the X-CRM-ORG header will result in this 403 error response. Specify a valid Org ID in the header when uploading the ZIP file.  Use the Organization API to get your Org ID.

6. How do I handle lookup fields in my input CSV?

For lookup fields, the column header should follow one of the following formats:

 

Option 1: To reference by ID

 

Option 2: To reference by a field value (like name)

Use the format: field_api_name.id

Example: Account_Name.id

Use the format: field_api_name.field_api_name

Example: Account_Name.Account_Name

7. How do default values work in field mappings for the Bulk Write API?

While mapping fields in your Bulk Write API request, you can set a default_value for any field. This is helpful when the uploaded CSV file does not have a corresponding value for the field, but you want to map a default value to that field in that case. 
Here is a sample field mapping for a picklist field Lead_Source with a default value:

Sample Field Mapping


{
    "api_name": "Lead_Source", // Picklist field
    "index": 2, // Column index in the CSV
    "default_value": { // Optional key with a default value
        "value": "call"
    }
}


If the CSV file has a value in column index 2, that value will be used. If the CSV column is empty for a record, the default_value - call (in our case) will be used instead. 
Please note that the default key is optional. If default_value is not provided and the field is required, records with missing values may fail.

8. How do I handle multi-select picklist fields in the Bulk Write API?

Use semicolons (;) to separate multiple values in the CSV file and in the default value mapping in the request body.
Example in CSV:  "A;B;C"

Sample Field Mapping

{
    "api_name": "Rating",
    "default_value": {
        "value": "A;B"
    }
}

If the CSV does not contain a value for the field, the value specified under default_value will be used.

9. How do I set a default value for a date field in the Bulk Write API? 

When setting a default value for a date field, only the ISO format is allowed. 

Sample Field Mapping


{
 "api_name": "Registered_day",
 "default_value": {
 "value": "2025-03-21"
 }
}

If the CSV column for the date field is empty, the default date in ISO format will be used. 

10. How do I set a default value for a decimal field in the Bulk Write API?

For decimal fields, the default value must be a number using a dot (.) as the decimal separator. Commas (;) are not allowed.

Sample Field Mapping

{
    "api_name": "Decimal",
    "default_value": {
        "value": "99.75"
    }
}

Only numbers with a dot (.) as the decimal separator are supported. Values like "99,75" are invalid and will cause errors.

11. Can I import Subform and MxN (linking module) data using the Bulk Write API?

Yes, the Subform and MxN (linking module) modules are treated as separate modules in Zoho CRM. Like modules such as Leads and Contacts, you can import data into CRM using the Bulk Write API.

For cases such as importing parent-child data, for example, Leads (parent module) and its associated subform records (child module), you must include multiple CSV files - one for the parent and one for the subform within a single ZIP file and upload it in a single Bulk Write request. Also, make sure the field mappings are correct in the input request.
Refer to Kaizen #131 - Bulk Write for parent-child records using Scala SDK for more details on handling parent-child records.

12. Is Multi-module Lookup (MML) supported in the Bulk Write API?

No, Multi-module Lookup (MML) fields are not currently supported in the Bulk Write API.
Currently, in Zoho CRM API Version 8, the Appointment_For field in the Appointments module is an MML field. Since the Appointments module itself is not supported in Bulk Write, importing data into it - including MML fields is not possible using the Bulk Write API.

13. Is it possible to cancel a Bulk Write request after it is initiated?

No, once a Bulk Write request is initiated, it cannot be cancelled. The job will run to completion unless it fails due to an error.

14. Can I schedule multiple Bulk Write jobs simultaneously?

Yes, you can schedule multiple Bulk Write jobs simultaneously. There is no restriction on the number of jobs you can initiate in parallel.

15. Are there any restrictions on the file name for CSV or ZIP files in the Bulk Write API?

No, there are no specific restrictions on the file name. You can name your CSV or ZIP files as needed. For example, leads_data.csv and leads_with_subform.zip.

16. Are Auto Number and Formula field types supported in the Bulk Write API?

No, both Auto Number and Formula fields are not supported in the Bulk Write API.

17. Are External ID fields supported in the Bulk Write API?

Yes, only the Org-based external ID field is supported, and user-based external fields are not supported.

18. What are the unsupported Modules in Bulk Write API?

The Attachments, Notes, Events, Calls, Upload file fields, and Record images are treated as separate modules in Zoho CRM and are not supported by the Bulk Write API. 




                                        x-----------------------------x



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!


Other Frequently Asked Questions in Kaizen

    • Sticky Posts

    • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

      Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the
    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #226: Using ZRC in Client Script

      Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
    • Kaizen #222 - Client Script Support for Notes Related List

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

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

      • Tracking Non-Inventory Items

        We have several business locations and currently use zoho inventory to track retail items (sales and purchase orders). We were hoping to use zoho inventory to track our non-inventory items as well (toilet paper, paper towels, etc). I understand that we
      • Price Managment

        I have been in discussions with Zoho for some time and not getting what I need. Maybe someone can help explain the logic behind this for me as I fail to understand. When creating an item, you input a sales rate and purchase rate. These rates are just
      • Set Warehouse based on Vendor

        Greetings. I would like to set automaticaly the Warehouse based on the Vendor. Context: I am working on an adaptation of a Purchase Order to be used as a Quotation. I have defined that when a user has to raise a quote the Vendor will be "PROCUREMENT" I would like to set the Warehouse to a predefined value when "PROCUREMENT" is set as Vendor. I have tried to do with the Automation feature using the Field Update option, but Warehouse does not is listed as a field. Can you help? Thanks in advance.
      • How to add interviews through API

        I'm trying to add an interview without much luck. The documentation gives examples of adding just about everything except an interview. However, the issue might be the way I'm formatting it, because the documentation is unclear to me. It seems as if the xml should be passed in the url, which seems unusual. I've tried the data as both plain and character escaped, but nothing seems to work, nor do I even get an error response. https://recruit.zoho.com/recruit/private/xml/Interviews/addRecords?authtoken=***&scope=recruitapi&version=2&xmlData=<Interviews> <row
      • Deprecation of the Zoho OAuth connector

        Hello everyone, At Zoho, we continuously evaluate our integrations to ensure they meet the highest standards of security, reliability, and compliance. As part of these ongoing efforts, we've made the decision to deprecate the Zoho OAuth default connector
      • Auto tagging

        Some of the articles I enter into Notebook get there when I enter them in Raindrop.io and IFTTT copies the articles in Notebook. When this happens the notes are tagged but instead of useful one word tags with topic the tag pertains to the specific article
      • Work Order wont mark as Completed

        I have a couple of work orders that won't mark as completed even when I've marked the Service Appointments as completed fully.
      • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

        Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the
      • How do I save audio files to my PC that I record into Zoho Notebook from my phone?

        I was thinking of using Zoho Notebook as a way to store composition ideas, as well as for other things if it can handle this. For this to be useful for me though, I need to be able to have an easy way to download those audio files to my PC, either individually
      • Introducing Radio Buttons and Numeric Range Sliders in Zoho CRM

        Release update: Currently out for CN, JP, AU and CA DCs (Free and standard editions). For other DCs, this will be released by mid-March. Hello everyone, We are pleased to share with you that Zoho CRM's Layout Editor now includes two new field formats—
      • How to filter subform report based upon main form report in dashboard

        Hi Team, I am creating a dashboard in Zoho Analytics. I want to have a main form report and below I want to show subform report of main form. If I filter the main form with date then I want to show subform records based upon main form. how can I achieve
      • Search mails in shared mailbox

        Hi everyone, is there a way to search mails in shared mailbox's? Search in streams or mail doesn't return anything from mails in shared mailboxes. Thanks! Rafal
      • Zoho CRM for Everyone's NextGen UI Gets an Upgrade

        Hello Everyone We've made improvements to Zoho CRM for Everyone's Nextgen UI. These changes are the result of valuable feedback from you where we’ve focused on improving usability, providing wider screen space, and making navigation smoother so everything
      • Kaizen #186 : Client Script Support for Subforms

        Hello everyone! Welcome back to another exciting Kaizen post on Client Script! In this edition, we’re taking a closer look at Client Script Support for Subforms with the help of the following scenario. " Zylker, a manufacturing company, uses the "Orders"
      • Change eMail Template for Event-Invitations

        Hello ZOHO-CRM Team How I can change the eMail Template for Event-Invitations? I work with the German Version of the Free Version. I know how I can modify eMail alerts or Signature Templates, but where I can other eMails modify you send out? Thank you for your answer. Regards, Juerg
      • Changes to the send mail Deluge task in Zoho CRM

        Hello everyone, At Zoho, we continuously enhance our security measures to ensure a safer experience for all users. As part of our ongoing security enhancements, we're making an important update on using the send mail Deluge task in Zoho CRM. What's changing?
      • Fail to send Email by deluge

        Hi, today I gonna update some email include details in deluge, while this msg pops up and restrict me to save but my rules has run for one year. can you tell me how to use one of our admin account or super admin account to send the email? I tried to update
      • Writing SQL Queries - After Comma Auto Suggesting Column

        When writing SQL Queries, does anyone else get super annoyed that after you type a comma and try to return to a new line it is automatically suggest a new column, so hitting return just inputs this suggested column instead of going to a new line? Anyone
      • Introducing Multiple Sandbox Types and Support for Module's Data Population

        Register here for the upcoming Focus Group webinar on Multiple Sandbox | Help documentation to learn more about the new enhancements Hello everyone,  Sandbox in CRM is a testing environment for users to create and test new configurations like workflow
      • Is It Possible to Convert a Custom Module to a Quote?

        I recently created a custom module in our CRM environment for RFQs so that our sales team can submit quote requests directly in Zoho rather than by email/phone. This allows for a cleaner overall process, minimizing potential errors and potentially encouraging
      • Convert invoice from zoho to xml with all details

        How to convert an Invoice to XML format with all details
      • Importing into the 'file upload' field

        Can you import attachments into the file upload field. I would expect it to work the same way as attachments do, But can't seem to get it to work.
      • Sync your Products Module for better context.

        In customer support, context is everything. The integration between Zoho Desk and Zoho CRM helps your sales and support teams function as one, delivering better customer experiences. With the latest update to this integration, you can now sync the Product module in your Zoho CRM with your Zoho Desk portal. This feature enables products from Zoho CRM to reflect in the "product" field in Zoho Desk. This can save your support team valuable time and effort.    Some things to note when syncing the two:
      • 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
      • 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,
      • CRM verify details pop-up

        Was there a UI change recently that involves the Verify Details pop-up when changing the Stage of a Deal to certain things? I can't for the life of me find a workflow or function, blueprint, validation rule, layout rule ect that would randomly make it
      • Does Zoho Writer have Dropdowns

        I want to add a drop down field in Zoho writer. Is this possible?
      • Custom Button to convert a Deal to a Custom Module?

        Hello Community I am in process of building out a custom CRM for my team and part of this is looking at building out a Custom Button or function of some sort where when a Deal is marked Closed Won the system will allow for a "Convert to Job" option to
      • How can Data Enrichment be automatically triggered when a new Lead is created in Zoho CRM?

        Hi, I have a pipeline where a Lead is created automatically through the Zoho API and I've been trying to look for a way to automatically apply Data Enrichment on this created lead. 1) I did not find any way to do this through the Zoho API; it seems like
      • Transitions do not update fields until the record moves to next stage

        We have a blueprint where a couple of stages have multiple transitions. If only some of the transitions are completed, but not all, Zoho does not update any of the fields impacted by the completed transitions. Is there any way Zoho can udate the fields
      • Blueprint enhancements - Parallel and multiple transitions, and more

        Last modified on Sep 4, 2023: All Zoho CRM users can now access these enhancements. Initially, these features were available only on an early access basis and by request. However, as of August 2, 2023, they have been made available to all users in all
      • Optimum CRM setup for new B2B business

        Can some advise the most common way to setup Zoho CRM to handle sales for a B2B company? Specifically in how to handle inbound/outbound emails. I have spent hours researching online and can't seem to find an accepted approach, or even a tutorial. I have
      • using the Client script on the load of the form if service no is empty means then i want to make issue relate to is Service

        using the Client script on the load of the form if service no is empty means then i want to make issue relate to field is Service if Purchae no is empty means then i want to make issue relate to is Purchase
      • Multiple header in the quote table???

        Hello, Is it possible in Zoho CRM to add multiple headers or sections within the Quote product table, so that when the quote is printed it shows separate sections (for example “Products” and “Services”)? To clarify, I’m asking because: This does not appear
      • using the Client script I want to Hide Show the Fields

        if Related to service means some of the field like service no want to shoe and hide Amc no , purchase no how i achive this let issu = ZDK.Page.getField('Issue_Related_To').getValue(); if (issu == 'Service') { var field_obj = ZDK.Page.getField('Warranty_Cases');
      • openUrl in blueprints

        My customer wants to open a URL at the end of a blueprint transition. Seems this isn't possible right now but it would be very useful. In this thread, https://help.zoho.com/portal/en/community/topic/openurl-not-working the Zoho agent said that it's logically
      • Dropshipping Address - Does Not Show on Invoice Correctly

        When a dropshipping address is used for a customer, the correct ship-to address does not seem to show on the Invoice. It shows correctly on the Sales Order, Shipment Order, and Package, just not the Invoice. This is a problem, because the company being
      • Prepayment of a sales order

        How does everyone handle this common (at least it is common for us!) situation? We require all our orders to be fully prepaid before shipment since we manufacture made to order, custom products. Since ZOHO does not allow a sales order to be prepaid, we are forced to create an invoice at the time an order is placed to allow the customer to pay it. Our sales category is therefore skewed, since the sale was actually booked at the time an order was placed, rather then at the time it is shipped, which
      • Access to Specific Zoho Desk layout for external parties

        Hi, We have a partner who handles for us sales requests from specific markets. He is not a Zoho Desk user. But we want him to b part of a specific Zoho Desk layout to handle inquiries.  How to achieve it in the easiest way possible?
      • Deposit on a Sales Order

        Good day, 100% of my business is preorders, no inventory. I am trying to run away from QB for one of my businesses, but I require two options that I don't seem to find with Zoho Books. 1 - If there is a way to apply a deposit on a sales order, as with
      • Next Page