**Source URL:** https://limited.veevavault.dev/medical/vault-api/api-reference/24.3/object-lifecycle-workflows/object-record-user-actions/initiate-object-action-on-multiple-records.md

# Initiate Object Action on Multiple Records



Use this request to initiate an object user action on multiple records. Maximum 500 records per batch.

<Endpoint path="/api/{version}/vobjects/{object_name}/actions/{action_name}" method="POST"></Endpoint>

## Headers {#headers}

<FieldTable>
| Name | Description |
| --- | --- |
| `Content-Type` | `application/x-www-form-urlencoded` |
| `Accept` | `application/json` (default) or `application/xml` |
</FieldTable>

## URI Path Parameters {#uri-path-parameters}

<FieldTable>
| Name | Description |
| --- | --- |
| `object_name` | The object `name__v` field value. |
| `action_name` | The name of the `Objectaction` or `Objectlifecyclestateuseraction` to initiate. This is obtained from the [Retrieve User Actions](/vault-api/api-reference/24.3/object-lifecycle-workflows/object-record-user-actions/retrieve-object-record-user-actions) request. The format for `action_name` is `Objectaction.{vobject}.{action}` or `Objectlifecyclestateuseraction.{vobject}.{state}.{action}`. For example, `Objectlifecyclestateuseraction.country__v.active_state__c.start_wf_useraction__c`. |
</FieldTable>

## Body Parameters {#body-parameters}

<FieldTable>
| Name | Description |
| --- | --- |
| `ids` | Comma-separated list of object record ids on which to initiate the action. |
| `{participant_group_name}.assignment_type__c` | The participant group assignment type for a workflow task, either `assigned` or `available`. Required if the workflow initiator must select either *Assigned to every user* or *Available to any user* when assigning participants to a task in the workflow start step. For example, `part_reviewers__c.assignment_type__c=assigned`. |
</FieldTable>

##### Values in Required Field Prompts {#values-in-required-field-prompts}

When providing values for field prompts on a start step, task step, or verdict, required fields cannot be omitted, set as blank, or defaulted to their existing value.

To preserve the existing value of a required field prompt in a workflow on a single record, submit the existing value as the new value.

For a workflow on multiple records, there is no way to preserve existing values in a field if that field is a required prompt. Setting a value for a prompt updates all records to the same single value.

## Request {#request}

<CodeExample title="">
```
curl -X POST -H "Authorization: {SESSION_ID}" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "ids: 0MO0771, 0MO0772, 0MO0773" \
https://myvault.veevavault.com/api/v17.3/vobjects/monitoring_event__v/actions/Objectaction.monitoring_event__v.copy_record__v

```
</CodeExample>

## Response {#response}

<CodeExample title="">
```
{
  "responseStatus": "SUCCESS",
  "data": [
      {
          "responseStatus": "SUCCESS",
          "id": "0MO0771"
      },
      {
          "responseStatus": "SUCCESS",
          "id": "0MO0772"
      },
      {
          "responseStatus": "FAILURE",
          "id": "0MO0773",
          "errors": [
              {
                  "type": "INSUFFICIENT_ACCESS",
                  "message": "User does not have sufficient privileges to perform the action"
              }
          ]
      }
  ]
}

```
</CodeExample>

---

**Previous:** [Initiate Object Action on a Single Record](/medical/vault-api/api-reference/24.3/object-lifecycle-workflows/object-record-user-actions/initiate-object-action-on-a-single-record)  
**Next:** [Multi-Record Workflows](/medical/vault-api/api-reference/24.3/object-lifecycle-workflows/multi-record-workflows)