Skip to product menu
close
  • Recent Launches
    Press Space or Enter to display list of options
EXPLORE ALL PRODUCTS

Recent Launches

New

Payroll software with automated tax payments and filing.

Try now
New

Robotic process automation software to automate high-volume, rule-based tasks.

Try for free
New

Low-code IoT platform and solutions for connected businesses.

Try now
New

Business formation service to launch and grow your businesses.

Try now
New

Privacy-friendly application analytics solution.

Try for free

Sales

 
CRM

Comprehensive CRM platform for customer-facing teams.

CRM
 
Bigin

Simple CRM for small businesses moving from spreadsheets.

Bigin
 
Forms

Build online forms for every business need.

Forms
 
SalesIQ

Live chat app to engage and convert website visitors.

SalesIQ
 
Bookings

Appointment scheduling app for consultations with customers.

Bookings
 
Sign

Digital signature app for businesses.

Sign
 
RouteIQ

Comprehensive sales map visualization and optimal route planning solution.

RouteIQ
 
Thrive

Complete loyalty and affiliate management platform.

Thrive
 
Voice

Cloud Contact Center Software for businesses.

Voice
 
Suites
CRM Plus

Unified platform to deliver top-notch customer experience.

CRM Plus

Marketing

 
Social

All-in-one social media management software.

Social
 
Campaigns

Create, send, and track targeted email campaigns that drive sales.

Campaigns
 
Forms

Build online forms for every business need.

Forms
 
Survey

Design surveys to reach and interact with your audience.

Survey
 
Sites

Online website builder with extensive customisation options.

Sites
 
PageSense

Website conversion optimization and personalisation platform.

PageSense
 
Backstage

End-to-end event management software.

Backstage
 
Webinar

Webinar platform for webcasting online webinars.

Webinar
 
Marketing Automation

All-in-one marketing automation software.

Marketing Automation
 
LandingPage

Smart landing page builder to increase conversion rates

LandingPage
 
Publish

Manage all your local business listings on a single platform.

Publish
 
SalesIQ

Live chat app to engage and convert website visitors.

SalesIQ
 
Sign

Digital signature app for businesses.

Sign
 
Thrive

Complete loyalty and affiliate management platform.

Thrive
 
Voice

Cloud Contact Center Software for businesses.

Voice
 
NEW
LeadChain

Sync, manage, and convert leads across channels seamlessly.

LeadChain
 
NEW
CommunitySpaces

Online community platform for individuals and businesses to grow their network and brand.

CommunitySpaces
 
Suites
Marketing Plus

Unified marketing platform for marketing teams.

Marketing Plus

Commerce and POS

 
Commerce

eCommerce platform to manage and market your online store.

Commerce

Service

 
Desk

Helpdesk software to deliver great customer support.

Desk
 
Assist

Remote support and unattended remote access software.

Assist
 
Lens

Interactive remote assistance software with augmented reality.

Lens
 
FSM

End-to-end field service management platform for service businesses.

FSM
 
SalesIQ

Live chat app to engage and convert website visitors.

SalesIQ
 
Voice

Cloud Contact Center Software for businesses.

Voice
 
NEW
Solo

The all-in-one toolkit for solopreneurs.

Solo
 
Bookings

Appointment scheduling app for consultations with customers.

Bookings
 
Suites
Service Plus

Unified platform for customer service and support teams.

Service Plus

Finance

 
Books

Powerful accounting platform for growing businesses.

Books
 
FREE
Invoice

100% Free invoicing solution.

Invoice
 
Expense

Effortless expense reporting platform.

Expense
 
Inventory

Powerful stock management and inventory control software.

Inventory
 
Billing

End-to-end billing solution for your business.

Billing
 
Checkout

Collect payments online with custom branded pages.

Checkout
 
NEW
Payroll

Payroll software with automated tax payments and filing.

Payroll
 
NEW
Solo

The all-in-one toolkit for solopreneurs.

Solo
 
Practice

Practice management software for accounting firms.

Practice
 
Sign

Digital signature app for businesses.

Sign
 
Commerce

eCommerce platform to manage and market your online store.

Commerce
 
Suites
Finance Plus

All-in-one suite to manage your operations and finances.

Finance Plus

Email and Collaboration

 
Mail

Secure email service for teams of all sizes.

Mail
 
Meeting

Online meeting software for all your video conferencing & webinar needs.

Meeting
 
Writer

Word processor for focused writing and discussions.

Writer
 
Sheet

Spreadsheet software for collaborative teams.

Sheet
 
Show

Create, edit, and share slides with a sleek presentation app.

Show
 
Notebook

Beautiful home for all your notes.

Notebook
 
Cliq

Stay in touch with teams no matter where you are.

Cliq
 
Connect

Employee experience platform to communicate, engage, and build positive employee relations.

Connect
 
Bookings

Appointment scheduling app for consultations with customers.

Bookings
 
TeamInbox

Shared inboxes for teams.

TeamInbox
 
WorkDrive

Online file management for teams.

WorkDrive
 
Sign

Digital signature app for businesses.

Sign
 
Office Suite

Powerful collaborative work platform for teams.

Office Suite
 
Office Integrator

Built in document editors for web apps.

Office Integrator
 
ZeptoMail

Secure and reliable transactional email sending service.

ZeptoMail
 
Calendar

Online business calendar to manage events and schedule appointments.

Calendar
 
Learn

Knowledge and learning management platform.

Learn
 
Voice

Cloud Contact Center Software for businesses.

Voice
 
ToDo

Collaborative task management for individuals and teams.

ToDo
 
Tables

Work management tool to connect people, processes, and information.

Tables
 
FREE
PDF Editor

Collaborative online PDF editing tool.

PDF Editor
 
Suites
Workplace

Application suite built to improve team productivity and collaboration.

Workplace

Human Resources

 
People

Organize, automate, and simplify your HR processes.

People
 
Recruit

Intuitive recruiting platform built to provide hiring solutions.

Recruit
 
Expense

Effortless expense reporting platform.

Expense
 
Workerly

Manage temporary staffing with an employee scheduling solution.

Workerly
 
NEW
Payroll

Payroll software with automated tax payments and filing.

Payroll
 
Shifts

Employee scheduling and time tracking app.

Shifts
 
Sign

Digital signature app for businesses.

Sign
 
Suites
People Plus

Comprehensive HR platform for seamless employee experiences.

People Plus

Security and IT Management

 
Creator

Build custom apps to simplify business processes.

Creator
 
Directory

Workforce identity and access management solution for cloud businesses.

Directory
 
FREE
OneAuth

Secure multi-factor authenticator (MFA) for all your online accounts.

OneAuth
 
Vault

Online password manager for teams.

Vault
 
Catalyst

Pro-code platform to build and deploy your apps.

Catalyst
 
Toolkit

Complete resource for any admin-related lookup queries.

Toolkit
 
Lens

Interactive remote assistance software with augmented reality.

Lens
 
Assist

Remote support and unattended remote access software.

Assist
 
QEngine

Test automation software to build, manage, execute, and report testcases.

QEngine
 
NEW
RPA

Automate manual, tedious, and repetitive tasks easily.

RPA

BI and Analytics

 
Analytics

Modern self-service BI and analytics platform.

Analytics
 
Embedded BI

Embedded analytics and white label BI solutions, tailored for your needs.

Embedded BI
 
DataPrep

AI-powered data preparation service for your data-driven organization.

DataPrep
 
NEW
IoT

Harnessing IoT analytics for real-time operational intelligence.

IoT

Project Management

 
Projects

Manage, track, and collaborate on projects with teams.

Projects
 
Sprints

Planning and tracking tool for scrum teams.

Sprints
 
BugTracker

Automatic bug tracking software for managing bugs.

BugTracker
 
NEW
Solo

The all-in-one toolkit for solopreneurs.

Solo

Developer Platforms

 
Creator

Build custom apps to simplify business processes.

Creator
 
Flow

Automate business workflows by creating smart integrations.

Flow
 
Catalyst

Pro-code platform to build and deploy your apps.

Catalyst
 
Office Integrator

Built in document editors for web apps.

Office Integrator
 
ZeptoMail

Secure and reliable transactional email sending service.

ZeptoMail
 
QEngine

Test automation software to build, manage, execute, and report testcases.

QEngine
 
Tables

Work management tool to connect people, processes, and information.

Tables
 
NEW
RPA

Automate manual, tedious, and repetitive tasks easily.

RPA
 
NEW
Apptics

Application analytics for all apps.

Apptics
 
Embedded BI

Embedded analytics and white label BI solutions, tailored for your needs.

Embedded BI
 
NEW
IoT

Build, deploy, and scale IoT solutions for connected businesses.

IoT
 
DataPrep

AI-powered data preparation service for your data-driven organization.

DataPrep

IoT

 
NEW
IoT

Low-code IoT platform and solutions for connected businesses.

IoT

Search Result

 
CRM Plus

Unified platform to deliver top-notch customer experience.

Try now
CRM Plus
 
Service Plus

Unified platform for customer service and support teams.

Try now
Service Plus
 
Finance Plus

All-in-one suite to manage your operations and finances.

Try now
Finance Plus
 
People Plus

Comprehensive HR platform for seamless employee experiences.

Try now
People Plus
 
Workplace

Application suite built to improve team productivity and collaboration.

Try now
Workplace
 
Marketing Plus

Unified marketing platform for marketing teams.

Try now
Marketing Plus
 
All-in-one suite

Zoho One

The Operating System for Business

Run your entire business on Zoho with our unified cloud software, designed to help you break down silos between departments and increase organizational efficiency.

TRY ZOHO ONE
Zoho One
Zoho Marketplace

With over 2000 ready-to-use extensions across 40+ categories, connect your favorite business tools with the Zoho products you already use.

EXPLORE MARKETPLACE
Marketplace
Skip to main content

Create Bulk Write Job

Purpose

To create a bulk write job to import records into CRM.

Endpoints

Request Details

Request URL

{api-domain}/crm/bulk/{version}/write

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Scope

scope=ZohoCRM.bulk.CREATE
(or)
scope=ZohoCRM.bulk.ALL
(and)
scope=ZohoCRM.modules.ALL
(or)
scope=ZohoCRM.modules.{module_name}.{operation_type}

Possible module names

leads, accounts, contacts, deals, campaigns, cases, solutions, products, vendors, pricebooks, tasks, and custom

Possible operation types

ALL - Full access to the record
CREATE - Create a bulk write job

Sample request

Copiedcurl "https://www.zohoapis.com/crm/bulk/v3/write"
-X POST
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
-d "@inputData.json"

Request JSON

  • character_encodingString, optional

    Represents the charset of the uploaded file. It is usually auto-detected, but if specified, then it will be used to read the file.

  • operationString, mandatory

    Represents the type of operation you want to perform on the bulk write job.

    Values are

    • insert - To create CSV records as new records in CRM.
    • update - To update an existing record in CRM(This operation does not allow creation of new records).
    • upsert - To update an existing record in CRM and create new records, if they do not exist already.
  • ignore_emptyBoolean, optional

    True - Ignores the empty values in a column and updates only the fields of a record without empty values
    False or empty - The system updates records in CRM with empty values in the given file column.
    The default value is false.

  • callbackJSON Object, optional

    A valid URL that allows the HTTP POST method. The Bulk Write Job's details are posted to this URL on successful completion or failure of a job. Sample - "callback" : { "url": "https://sampledomain.com/getzohoresponse", "method": "post" }.
    This JSON Object takes two keys—url and method.

    • url(string) - A valid URL, which should allow HTTP POST method. The Bulk Write Job's details are posted to this URL on successful completion or failure of a job.
    • method(string) - The HTTP method of the callback url. The supported value is post.
  • resourceJSON array, optional

    A JSON array of objects containing the API names of modules that you want to import, their field mappings, and the corresponding file IDs obtained from Upload API.

    • type(string, mandatory) - Represents the type of module that you want to import. The value is data.
    • module(JSON object, mandatory) - The API name of the module that you select for bulk write job.
      For subforms: When you want to bulk-write subform data, you must give the API name of the subform here.
    • file_id(string, mandatory) - The file_id obtained from file upload API.
    • find_by(string, mandatory for update and upsert, optional for insert) - The API name of a unique field or ID of a record. The system uses the value of this field to find the existing records in CRM. When you specify this parameter for insert operation, the system will skip the existing records from the file.
    • field_mappings(JSON array, optional) - When the system processes a CSV file, the first row is treated as the header row. Each header name is treated as the field API name and data from a column are populated into the corresponding field represented by the API name. This parameter helps you to skip auto-mapping and define your own field mapping. Note that if you include this array in the input, data in the CSV will be mapped based only on the index value in this array.
      • api_name(string, mandatory) - The API name of the field present in Zoho module object that you want to import. Refer Fields Meta Data API for the list of fields available in a module. An invalid field API name throws an error.
      • index(number, optional) - The column index of the field you want to map to the CRM field. When you specify a non-existing index value, the system throws an error.
      • find_by(string, mandatory for lookup fields) - The API name of the unique field in the module against which the system checks if there are existing records in CRM. You can also use id, API names of the system-defined unique fields, custom unique fields, lookup fields, and display columns/fields(the results displayed based on a field, that are listed when you search for an associated lookup. For example, Account Name is the display column when you have a look up in Contacts that points to Accounts.) as find_by fields.
      • default_value(JSON object, optional) - Use this key if some of the records do not have a value in a column, and you want to replace it with a default value. Example: {"value": "Trade Show"}.

    Notes

    • For Subforms

      The field_mappings array must have the following mandatory object, besides the details of the other fields of the subform. This is to map the subform record with the respective parent record.

      
      "api_name":"Parent_Id",
      "find_by":"id",
      "index":"the_index_in_the_csv"
    • For Custom Layout

      To map the bulk data data into a specific layout, you must specify the unique ID of the custom Layout, under the default_Value JSON Object.

      Example:
      
      "api_name": "Layout",
      "default_value": 
      {
          "value": "{custom Layout ID}"
      }

      You can get layout ID from the Metadata Layouts API.

    • You can bulk-insert records in a specific layout of a module. Note that when you insert records using bulk-write the system ignores the custom layout-specific mandatory fields.
    • To insert the records in a specific layout, you must specify the name of the custom layout in your CSV file. If left unspecified/incorrect value specified, the system inserts the records in the default layout in that module. Also, you must specify the relevant details in the field_mappings key in the input. Refer to sample input for more details.
    • For field-types such as Date and Date/Time, there are default formats. For instance, for Date, the default format is MM/dd/yyyy, and for Date/Time, the default format is MM/dd/yyyy HH:mm:ss. If you specify the value for these fields in any other format in your CSV file, you must specify the format in your input. Refer to sample input for more details. Click here to know the allowed formats for Date, Date/Time, and Number fields.

Sample input to bulk-insert Subform data

Copied{
 "operation": "insert",
 "ignore_empty": true,
 "callback": {
  "url": "http://requestbin.fullcontact.com/1fcimk51",
  "method": "post"
 },
 "resource": [
  {
   "type": "data",
   "module": { 
       "api_name": "Contact_Sub" 
       },   
   "file_id": "111111000000541985",
   "field_mappings": [
    {
     "api_name": "Parent_Id",//The CSV must contain the parent record ID of the contact 
     "find_by": "id",
     "index": 3
    },
    {
     "api_name": "Secondary Phone",
     "index": 1
    },
    {
     "api_name": "Secondary Email",
     "index": 0
    }
   ]
  }
 ]
}

Sample input for bulk update

Copied{
    "operation": "update",
    "ignore_empty": true,
    "callBack": {
        "url": "http://requestbin.fullcontact.com/1bvgfh61",
        "method": "post"
    },
    "resource": [
        {
            "type": "data",
            "module": {
                "api_name": "Contacts"
            },
            "find_by": "id",
            "file_id": "111111000001492610",
            "field_mappings": [
                {
                "api_name": "Layout",
                "default_value": {
                    "value": "5725767000001022168" /*Specify the unique ID of the Custom Layout. 
If this ID is not specified, the update will be applied to all layouts.*/

                }
            },
            {
                "api_name": "id",
                "index": 1
            },
            {
                "api_name": "Last_Name",
                "index": 2
            },
            {
                "api_name": "Account_Lookup",
                "index": 3,
                "find_by": "Account_Name"
            }
        ]
    }
]
}

Response Structure

  • statusstring

    Specifies the status of the API call. Sample - "status": "success".

  • messagestring

    Specifies the pre-defined comments for the job. Useful in case any errors occur.

  • detailsJSON object

    Contains the following details of the bulk write job.

    • id(string) - Specifies the unique identifier(job_id) of the bulk write job. Sample - "id": "111111000000541958".
    • created_by(JSON object) - Specifies the ID and Name of the user who initiated the bulk write job. Sample - "created_by": { "id": "111111000000035795", "name": "Patricia Boyle" }.

Sample response

Copied{
  "status": "success",
  "code": "SUCCESS",
  "message": "success",
  "details": {
    "id": "111111000000541958",
    "created_by": {
      "id": "111111000000035795",
      "name": "Patricia Boyle "
    }
  }
}

Request JSON for parent-child modules

The parent module is the main module while subforms, line items, multi-select lookup fields and multi-user lookup fields are the children in the parent module. You must have individual CSV files for the parent and children.

  • character_encodingString, optional

    Represents the charset of the uploaded file. It is usually auto-detected, but if specified, then it will be used to read the file.

  • operationString, mandatory

    Represents the type of operation you want to perform on the bulk write job.

    Values are

    • insert - To create CSV records as new records in CRM.
    • update - To update an existing record in CRM(This operation does not allow creation of new records).
    • upsert - To update an existing record in CRM and create new records, if they do not exist already.
  • ignore_emptyBoolean, optional

    True - Ignores the empty values in a column and updates only the fields of a record without empty values
    False or empty - The system updates records in CRM with empty values in the given file column.
    The default value is false.

  • callbackJSON Object, optional

    A valid URL that allows the HTTP POST method. The Bulk Write Job's details are posted to this URL on successful completion or failure of a job. Sample - "callback" : { "url": "https://sampledomain.com/getzohoresponse", "method": "post" }.
    This JSON Object takes two keys—url and method.

    • url(string) - A valid URL, which should allow HTTP POST method. The Bulk Write Job's details are posted to this URL on successful completion or failure of a job.
    • method(string) - The HTTP method of the callback url. The supported value is post.
  • resourceJSON array, mandatory

    A JSON array of objects containing the API names of the parent and children modules that you want to import, their field mappings, and the corresponding file IDs obtained from the Upload API. Note that the first object in this array must contain the details of the parent module. Note that when you want to bulk-write data to a parent module that has a multi-select lookup field, your first CSV file must contain the data of the parent module, and the second CSV file must contain the data of the linking module.

    • type(string, mandatory) - Represents the type of module that you want to import. The value is data.
    • module(JSON object, mandatory) - The API name of the module that you select for bulk write job.
      For subforms or multi-user lookup, give their respective API names. For multi-select lookup, specify the API name of the linking module.
    • file_id(string, mandatory) - The file_id obtained from the file upload API. This ID must be the same for both the parent and child modules.
    • file_names(JSON array, mandatory) - The name of the CSV file you have uploaded. This is to map the right CSV with the right module.
    • find_by(string, mandatory for update and upsert, optional for insert) - The API name of a unique field or ID of a record. The system uses the value of this field to find the existing records in CRM. When you specify this parameter for insert operation, the system will skip the existing records from the file.
    • field_mappings(JSON array, mandatory) - When the system processes a CSV file, the first row is treated as the header row. Each header name is treated as the field API name and data from a column are populated into the corresponding field represented by the API name. This parameter helps you to skip auto-mapping and define your own field mapping. Note that if you include this array in the input, data in the CSV will be mapped based only on the index value in this array.
      • api_name(string, mandatory) - The API name of the field present in Zoho module object that you want to import. Refer Fields Meta Data API for the list of fields available in a module. An invalid field API name throws an error.
      • parent_column_index(number, mandatory for the child object in the resource array) - This key helps to map the right parent record with the child record. For example, consider that your parent module is Leads and it has a subform. The parent CSV has the data of 500 records, and the subform CSV has the data of 500 subform records. Each of these subform records belongs to a specific lead. So, to map the right child with the right parent, you must use the "parent_column_index" key. To establish this, there must be a common column in both parent and the child.
        For subforms and line items, it must be the "Parent_Id".
        For multi-select lookup and multi-user lookup, it must be the API name of the parent lookup in the linking module. 
        For example, if you have the parent module as Leads which has a multi-select lookup to Contacts, then the linking module will be Leads vs Contacts. So, your parent CSV will be for Leads and the child CSV for the linking module. Here, to map the child with the parent, you must specify the parent_column_index for the lookup field of the parent in the linking module.
        Refer to the Note section for more details.
      • index(number, optional) - The column index of the field you want to map to the CRM field. When you specify a non-existing index value, the system throws an error.
      • find_by(string, mandatory for lookup fields) - The API name of the unique field in the module against which the system checks if there are existing records in CRM. You can also use id, API names of the system-defined unique fields, custom unique fields, lookup fields, and display columns/fields(the results displayed based on a field, that are listed when you search for an associated lookup. For example, Account Name is the display column when you have a look up in Contacts that points to Accounts.) as find_by fields. When you include parent_column_index, this key is not required.
      • default_value(JSON object, optional) - Use this key if some of the records do not have a value in a column, and you want to replace it with a default value. Example: {"value": "Trade Show"}.

Notes

  • The details of the parent must be the first object in the "resource" array.
  • Each module can be mapped with only one CSV file.
  • For subforms and line items, you can map any system-defined and custom fields.
  • For multi-select lookup and multi-user lookup, you can only map the lookup fields in the linking module.

Sample Input

Copied{
    "operation": "insert",
    "ignore_empty": true,
    "callback": {
        "url": "https://entbf6cqr4sl.x.pipedream.net/",
        "method": "post"
    },
    "resource": [
        {
            "type": "data",
            "module": {
                "api_name": "Leads",
                "id": "3652397000000002181"
            },
            "file_id": "3652397000014524001",
            "file_names": [
                "bulk_write_leads.csv"
            ],
            "field_mappings": [
                {
                    "api_name": "Last_Name",
                    "index": 0
                },
                {
                    "api_name": "Company",
                    "index": 1
                },
                {
                    "api_name": "Email",
                    "find_by": "email",
                    "index": 2
                },
                {
                    "api_name": "User",
                    "find_by": "email",
                    "index": 3
                }
            ]
        },
        {
            "type": "data",
            "module": {
                "api_name": "Secondary",
                "id": "3652397000000002180"
            },
            "file_id": "3652397000014524001",
            "file_names": [
                "bulk_write_subform.csv"
            ],
            "field_mappings": [
                {
                    "api_name": "Secondary_Email",
                    "index": 0
                },
                {
                    "api_name": "Secondary_Phone",
                    "index": 1
                },
                {
                    "api_name": "Parent_Id",
                    "parent_column_index": 0,
                    "index": 2
                },
                {
                    "type": "data",
                    "module": {
                        "api_name": "Lead_Contact_Lookup",
                        "id": "3652397000000002185"
                    },
                    "file_id": "425153000103247021",
                    "file_names": [
                        "LeadsMultiLookUp.csv"
                    ],
                    "field_mappings": [
                        {
                            "api_name": "Leads",
                            "parent_column_index": 0,
                            "index": 0
                        },
                        {
                            "api_name": "Contacts",
                            "find_by": "id",
                            "index": 1
                        }
                    ]
                }
            ]
        }
    ]
}

Response Structure

  • statusstring

    Specifies the status of the API call as "COMPLETED", "IN PROGRESS", "FAILED".

  • resourceJSON array

    Each object in this array represents the details of the job such as the module(parent and children, individually), field mappings, and the status pertaining to this CSV file.

  • typestring

    Contains the value "data" representing a data import.

  • codestring

    Represents the status of the data in this CSV file.

  • fileJSON object

    Represents the status of data import of this CSV file. It also contains the CSV file name, number of records present in the CSV, number of records added, skipped, and updated.

Possible Errors

  • MANDATORY_FIELDS_NOT_MAPPED HTTP 400

    All the mandatory fields in the module are not mapped.
    Resolution: Map all the mandatory fields in the module.

  • MANDATORY_NOT_FOUND HTTP 400

    Mandatory key or value is not specified in the request body. Example: "message": "Required key find_by is not available".
    Resolution: Include the required key in the input.

  • INVALID_FIELD HTTP 400

    The field API name is invalid.
    Resolution: Specify the correct API name of the field.

  • INVALID_FORMAT HTTP 400

    You have entered the date in the wrong format.
    Resolution: Input the date in the correct format.

  • INVALID_FILE_ID HTTP 400

    The file ID specified is invalid.
    Resolution: Specify the correct file ID you received while uploading the CSV file.

  • HEADER_LIMIT_EXCEEDED HTTP 400

    The number of fields mapped has exceeded the maximum limit of 200.
    Resolution: You can only map up to 200 fields.

  • COLUMN_INDEX_NOT_FOUND HTTP 400

    Index is mapped with negative values.
    Resolution: "index" can only take positive integer values.

  • MODULE_NOT_AVAILABLE HTTP 400

    The module name specified is invalid.
    Resolution: The API name of the module is either wrong or this module is not supported for a bulk write job. Refer to the "Possible module name" section for the list of supported modules.

  • INVALID_URL_PATTERNHTTP 404

    Please check if the URL trying to access is a correct one
    Resolution: The request URL specified is incorrect. Specify a valid request URL. Refer to request URL section above.

  • OAUTH_SCOPE_MISMATCHHTTP 401

    Unauthorized
    Resolution: Client does not have ZohoCRM.bulk.CREATE. Create a new client with valid scope. Refer to scope section above.

  • NO_PERMISSIONHTTP 403

    Permission denied to create
    Resolution: The user does not have permission to create a bulk write job. Contact your system administrator.

  • INTERNAL_ERRORHTTP 500

    Internal Server Error
    Resolution: Unexpected and unhandled exception in Server. Contact support team.

  • INVALID_REQUEST_METHODHTTP 400

    The http request method type is not a valid one
    Resolution: You have specified an invalid HTTP method to access the API URL. Specify a valid request method. Refer to endpoints section above.

  • AUTHORIZATION_FAILEDHTTP 400

    User does not have sufficient privilege to create.
    Resolution: The user does not have the permission to create a bulk write job. Contact your system administrator.

Sample Response

Copied{
    "status": "COMPLETED",
    "resource": [
        {
            "status": "COMPLETED",
            "module": {
                "api_name": "Leads",
                "id": "3652397000000002181"
            },
            "field_mappings": [
                {
                    "api_name": "Last_Name",
                    "index": 0,
                    "format": null,
                    "find_by": null,
                    "module": null,
                    "parent_column_index": null,
                    "default_value": null
                },
                {
                    "api_name": "Company",
                    "index": 1,
                    "format": null,
                    "find_by": null,
                    "module": null,
                    "parent_column_index": null,
                    "default_value": null
                },
                {
                    "api_name": "Email",
                    "index": 2,
                    "format": null,
                    "find_by": "email",
                    "module": null,
                    "parent_column_index": null,
                    "default_value": null
                },
                {
                    "api_name": "User",
                    "index": 3,
                    "format": null,
                    "find_by": "email",
                    "module": null,
                    "parent_column_index": null,
                    "default_value": null
                }
            ],
            "type": "data",
            "code": "COMPLETED",
            "file": {
                "status": "COMPLETED",
                "name": "bulk_write_leads.csv",
                "added_count": 100,
                "skipped_count": 0,
                "updated_count": 0,
                "total_count": 100
            }
        },
        {
            "status": "COMPLETED",
            "module": {
                "api_name": "Secondary",
                "id": "3652397000000002180"
            },
            "field_mappings": [
                {
                    "api_name": "Secondary_Email",
                    "index": 0,
                    "format": null,
                    "find_by": null,
                    "module": null,
                    "parent_column_index": null,
                    "default_value": null
                },
                {
                    "api_name": "Secondary_Phone",
                    "index": 1,
                    "format": null,
                    "find_by": null,
                    "module": null,
                    "parent_column_index": null,
                    "default_value": null
                },
                {
                    "api_name": "Parent_Id",
                    "index": 3,
                    "format": null,
                    "find_by": null,
                    "module": null,
                    "parent_column_index": 0,
                    "default_value": null
                }
            ],
            "type": "data",
            "code": "COMPLETED",
            "file": {
                "status": "COMPLETED",
                "name": "bulk_write_subform.csv",
                "added_count": 69,
                "skipped_count": 0,
                "updated_count": 0,
                "total_count": 69
            }
        },
        {
            "status": "COMPLETED",
            "module": {
                "api_name": "Lead_Contact_Lookup",
                "id": "3652397000000002185"
            },
            "field_mappings": [
                {
                    "api_name": "Contacts",
                    "index": 1,
                    "format": null,
                    "find_by": "id",
                    "module": null,
                    "parent_column_index": null,
                    "default_value": null
                },
                {
                    "api_name": "Leads",
                    "index": 0,
                    "format": null,
                    "find_by": null,
                    "module": null,
                    "parent_column_index": null,
                    "default_value": null
                }
            ],
            "type": "data",
            "code": "INPROGRESS",
            "file": {
                "status": "COMPLETED",
                "name": "LeadsMultiLookUp.csv",
                "added_count": 0,
                "skipped_count": 10,
                "updated_count": 0,
                "total_count": 10
            }
        }
    ]
}

Show full

Show less