---
title: "StepChecklists.batch_create_or_update"
method: POST
path: "/entities/StepChecklists/batch-modify"
tags: ["Step"]
---

# StepChecklists.batch_create_or_update

`POST /entities/StepChecklists/batch-modify`

## Request

- Base URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id`
- URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id/entities/StepChecklists/batch-modify`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/coevera/apis/coevera-crm-api/docs/entities/StepChecklists/batch-modify/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates or updates StepChecklist records in one request: an item with an id updates that record, an item without one creates a new record.

## Query parameters

- `validation-level` integer
- `rollback-method` 0 | 1

## Request body

- BatchStepChecklistInput[]
  - `cloud_object_template` object: Document template the checklist item fills and attaches to the record. Set when item_type is UseDocumentTemplate. Related CloudObjectTemplate record; see 'updateCloudObjectTemplateInput' for its fields.
    - `id` string, uuid: Id of the related CloudObjectTemplate record.
  - `activity_type_id` string, uuid: Id of the appointment or task type that satisfies the checklist item, or empty when the item is not activity-based.
  - `cloud_object_format` 0 | 1: File format of the document generated from cloud_object_template when item_type is UseDocumentTemplate: the template's own format or PDF. Integer enum value: 0 - Default, 1 - Pdf
  - `cloud_object_template_id` string, uuid: Id of the document template the checklist item fills and attaches to the record. Set when item_type is UseDocumentTemplate.
  - `description` string: Free-text description shown alongside the checklist item.
  - `email_sequence_id` string, uuid: Id of the email sequence the record must be enrolled in to complete the item. Set when item_type is EnrollToEmailSequence.
  - `field_id` string, uuid: Id of the related field.
  - `item_type` 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11: Kind of checklist item, which determines what completes it, such as checking it off, filling in field, logging an activity of activity_type_id or running process. Integer enum value: 1 - Default, 2 - ActivityType, 3 - FieldType, 4 - CreateNote, 5 - AttachDocument, 6 - SendEmail, 7 - UseDocumentTemplate, 8 - EnrollToEmailSequence, 9 - RunProcess, 10 - MapSalesRole, 11 - CreateInfluenceMap
  - `item_validation` 1 | 2 | 3: Condition the item must meet before the record can move past the step; empty when the item is optional. RelatedActivityCompleted is allowed only when item_type is ActivityType. Integer enum value: 1 - Required, 2 - RelatedActivityCompleted, 3 - RelatedActivityLinked
  - `label` string: Display label of the checklist item.
  - `label_use_lang` boolean: When true, label is treated as a translation key and localized in the UI; otherwise the literal text is shown.
  - `process_id` string, uuid: Id of the related process.
  - `send_email_field_id` string, uuid: Id of the recipient field.
  - `send_email_lookup_field_id` string, uuid: Id of the Contact or Account lookup field whose primary record supplies the recipient; empty when the recipient comes from the Primary Contact or Primary Account.
  - `send_email_template_id` string, uuid: Id of the email template the email is pre-filled with when the item is completed by sending an email. Set when item_type is SendEmail; empty when no template is preset.
  - `step_id` string, uuid: Id of the pipeline or process step this checklist item belongs to.
  - `visibility_condition` string, binary: Filter expression that controls when the checklist item is shown. The item is visible only when the record matches this filter; defaults to a no-op filter matching all records. This payload conforms to the `StepChecklistVisibilityFilter` JSON Schema (see the linked schema).
  - `visibility_type` 0 | 1: Whether the item is always shown on the record or only when the record matches visibility_condition. Integer enum value: 0 - Always, 1 - Condition
  - `revision` integer: Revision when entity was lastly changed.
  - `sales_roles` object[]: Sales roles the checklist item is shown to. Empty means the item is shown to all roles.
    - `id` string, uuid: Id of the related StepChecklistSalesRoleRelation record.
  - `id` string, uuid: ID of object to update.

## Response `200`

Result per item, in request order: the id of the created or updated record, or the error.

- object
  - `success` boolean: True when the request succeeded; false on error.
  - `data` union[]
    - union
      - string, uuid: Id of the created or updated record.
      - Error: The body of every REST error. `code` and `name` are stable identifiers; `message` is for people. The full list of codes is at https://developers.coevera.com/reference/errors/.
        - `http_status` integer, required: HTTP status code.
        - `code` integer: Numeric code of the API error.
        - `name` string: Name of the API error.
        - `message` string: Message describing the error.
        - `success` boolean, required: Always false on error.

## Other responses

- `400`: Bad request: a bad or unknown parameter (codes 117, 118), a missing permission (code 50), conflicting data (code 2002) or any other API error. The REST API answers 400 where others answer 403 or 409; check `code`.
- `401`: Not authenticated: missing or wrong credentials, a credential of another space, or an expired token (code 401, ERROR_UNAUTHORIZED).
- `422`: Validation failed (code 40000, with the failing fields) or a required parameter is missing (code 119). By default one failed item fails a whole batch and nothing is written.
- `429`: Too many requests (code 182). Wait for the seconds in Retry-After, then retry.
- `500`: Unexpected server error (code 1000, ERROR_UNKNOWN).

---

[API](https://skmtc.dev/coevera/apis/coevera-crm-api.md) - [All operations](https://skmtc.dev/coevera/apis/coevera-crm-api/llms.txt) - [OpenAPI document](https://skmtc.dev/coevera/apis/coevera-crm-api/revisions/40ebbc83f179?raw)
