---
title: "Custom Object Record Bulk Jobs"
method: POST
path: "/api/v2/custom_objects/{custom_object_key}/jobs"
tags: ["Custom Object Records"]
---

# Custom Object Record Bulk Jobs

`POST /api/v2/custom_objects/{custom_object_key}/jobs`

Queues a background job to perform bulk actions on up to 100 custom object records per single request.
Takes a `job` object with two nested fields:
* `action`, one of:
    * `"create"`
    * `"delete"`
    * `"delete_by_external_id"`
    * `"create_or_update_by_external_id"`
    * `"create_or_update_by_name"`
    * `"update"`
* `items`
    * For a `"create"` action, an array of JSON objects representing the custom object records being created
    * For a `"delete"` action, an array of strings representing Zendesk record ids
    * For a `"delete_by_external_id"` action, an array of strings representing external ids
    * For a `"create_or_update_by_external_id"` action, an array of JSON objects representing the custom object records being created or updated by external id
    * For a `"create_or_update_by_name"` action, an array of JSON objects representing the custom object records being created or updated by name. The `is_unique` property on the custom object's name field must be enabled.
    * For an `"update"` action, an array of JSON objects representing the custom object records being updated

Note: If autonumbering is selected for the custom object's name field, record names aren't allowed in the request body because they are generated automatically. If uniqueness is enabled, the record names must be unique.

#### Allowed For
* Agents

#### Response ###
This endpoint returns a `job_status` [JSON object](/api-reference/ticketing/ticket-management/job_statuses/#json-format) and queues a background job to do the work. Use the [Show Job Status](/api-reference/ticketing/ticket-management/job_statuses/#show-job-status) endpoint to check for the job's completion. Only a certain number of jobs can be queued or running at the same time. See [Job limit](/api-reference/introduction/rate-limits/#job-limit) for more information.

## Path parameters

- `custom_object_key` string, required

## Request body

- CustomObjectRecordsBulkCreateRequest
  - `job` object
    - `action` string
    - `items` CustomObjectRecord[] — An array of record objects for job actions that create, update, or set. An array of strings for job actions that delete.
      - `created_at` string, date-time — The time the object was created
      - `created_by_user_id` string — Id of a user who created the object
      - `custom_object_fields` object
      - `custom_object_key` string — A user-defined unique identifier
      - `external_id` string, nullable — An id you can use to link custom object records to external data
      - `id` string — Automatically assigned upon creation
      - `name` string, required — User-defined display name for the object. If autonumbering is selected for the custom object's name field, the name isn't allowed because it's automatically generated. If uniqueness is enabled, the name must be unique.
      - `photo` object, nullable — The record photo represented as an [Attachment](/api-reference/ticketing/tickets/ticket-attachments/). The `allows_photos` property must be set to `true` for the object
      - `updated_at` string, date-time — The time of the last update of the object
      - `updated_by_user_id` string — Id of the last user who updated the object
      - `url` string — Direct link to the specific custom object

## Response `201`

Created

- CustomObjectRecordsJobsResponse
  - `job_status` object
    - `id` string
    - `message` string, nullable
    - `progress` integer, nullable
    - `results` CustomObjectRecord[], nullable
      - `created_at` string, date-time — The time the object was created
      - `created_by_user_id` string — Id of a user who created the object
      - `custom_object_fields` object
      - `custom_object_key` string — A user-defined unique identifier
      - `external_id` string, nullable — An id you can use to link custom object records to external data
      - `id` string — Automatically assigned upon creation
      - `name` string, required — User-defined display name for the object. If autonumbering is selected for the custom object's name field, the name isn't allowed because it's automatically generated. If uniqueness is enabled, the name must be unique.
      - `photo` object, nullable — The record photo represented as an [Attachment](/api-reference/ticketing/tickets/ticket-attachments/). The `allows_photos` property must be set to `true` for the object
      - `updated_at` string, date-time — The time of the last update of the object
      - `updated_by_user_id` string — Id of the last user who updated the object
      - `url` string — Direct link to the specific custom object
    - `status` string
    - `total` integer
    - `url` string

---

[API](https://skmtc.dev/botbrains-io/apis/support-api.md) · [All operations](https://skmtc.dev/botbrains-io/apis/support-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/botbrains-io/support-api/revisions/d53eac07ba68/schema)
