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

# Tasks.batch_create_or_update

`POST /entities/Tasks/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/Tasks/batch-modify`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/coevera/apis/coevera-crm-api/docs/entities/Tasks/batch-modify/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates or updates Task 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

- BatchTaskInput[]
  - `media_transcription_id` string, uuid: Id of the linked Media record holding the activity's call recording / transcription, when available.
  - `activity_type_id` string, uuid: Id of the task type.
  - `call_duration` integer: Duration of the recorded call. Set automatically when the task is linked to a call log.
  - `call_id` string, uuid: Id of the linked call record.
  - `call_outcome_id` string, uuid: Id of the call outcome option recorded for the call (e.g. Reached, Voicemail, No Answer).
  - `currency_exchange_rates_list_id` string, uuid: Id of the currency exchange rate list applied to this task.
  - `description` string: Free-form description of what the task entails.
  - `due_date` string, date: Date by which the task is expected to be completed.
  - `duration` number, double: Estimated duration of the task. Stored as a duration value (days/hours/minutes).
  - `owner_id` string, uuid: Id of the task owner.
  - `priority` 1 | 2 | 3: Priority level of the task: Low, Medium or High. Integer enum value: 1 - Low, 2 - Medium, 3 - High
  - `share_mode` 0 | 1 | 2 | 3: Sharing model applied on top of the owner/unit visibility (e.g. shared with selected sales units or selected users). Integer enum value: 0 - Standard, 1 - Private, 2 - AllView, 3 - AllEdit
  - `start_date` string, date: Date when work on the task is scheduled to begin.
  - `status` 1 | 2 | 3 | 4 | 5: Current status of the task (NotStarted, InProgress, Waiting, Completed, Deferred). Toggling to Completed marks any linked checklist items as done. Integer enum value: 1 - NotStarted, 2 - InProgress, 3 - Waiting, 4 - Completed, 5 - Deferred
  - `subject` string: Short summary line shown in lists and notifications.
  - `unit_id` string, uuid: Id of the sales unit.
  - `revision` integer: Revision when entity was lastly changed.
  - `sharing_units` object[]: Sales units that have been granted shared access to this task. Editable only when share_mode allows unit sharing.
    - `id` string, uuid: Id of the related TaskSharingSalesUnitRelation record.
  - `sharing_clients` object[]: Users that have been granted shared access to this task. Editable only when share_mode allows user sharing.
    - `id` string, uuid: Id of the related TaskSharingClientRelation record.
  - `account_relations` object[]: Accounts this task is linked to.
    - `id` string, uuid: Id of the related ActivityRelation record.
  - `contact_relations` object[]: Contacts this task is linked to.
    - `id` string, uuid: Id of the related ActivityRelation record.
  - `lead_relations` object[]: Leads this task is linked to.
    - `id` string, uuid: Id of the related ActivityRelation record.
  - `opportunity_relations` object[]: Opportunities this task is linked to.
    - `id` string, uuid: Id of the related ActivityRelation record.
  - `project_relations` object[]: Projects this task is linked to, including the per-objective ordering.
    - `id` string, uuid: Id of the related ActivityRelation record.
  - `quote_relations` object[]: Quotes this task is linked to.
    - `id` string, uuid: Id of the related ActivityRelation record.
  - `custom_entity_relations` object[]: Custom entity records this task is linked to.
    - `id` string, uuid: Id of the related ActivityRelation record.
  - `exchange_entity_id` string: External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
  - `gapi_entity_id` string: External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
  - `o365_entity_id` string: External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
  - `task_recurrence` object: Recurrence schedule generating periodic copies of this task, or empty when no recurrence is set up. Related TaskRecurrence record; see 'updateTaskRecurrenceInput' for its fields.
    - `id` string, uuid: Id of the related TaskRecurrence record.
  - `documents` object[]: Documents linked to this task.
    - `id` string, uuid: Id of the related CloudObjectRelation record.
  - `comments` object[]: Comments authored on this task.
    - `id` string, uuid: Id of the related ActivityComment record.
  - `tags` object[]: Tag labels applied to this task.
    - `id` string, uuid: Id of the related TagRelation record.
  - `call_sid` string: Identifier (SID) of a phone call made through Coevera calling, to attach that call to the task; null detaches the call. Write-only.
  - `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)
