---
title: Bulk operations with items (update/delete)
slug: bulk-operations-with-items-updatedelete
docTags: 
createdAt: 2022-04-29T10:08:16.000Z
---

In **CMS** entities tables, it is now possible to **`select all`** elements not only on the page, but in the entire definition.
To select all elements in the definition, you must first select all elements on the page by individually selecting all the elements or ticking the checkbox in the table header. Then the **`Select all {{$$$}} items`** button will appear above the table header.

::Image[]{src="https://api.archbee.com/api/optimize/5goaGPkGyPYxtK7K75CEC/iW4Y0IWRvMDG89FsuS_ZK_screenshot-2024-07-31-at-152803.png" size="96" width="2076" height="834" position="center" darkWidth="2076" darkHeight="834" showCaption="false"}

Selecting all elements in the definition is possible only if the number of elements exceeds the number displayed on the page.
Changing the **`page`**, **`pagination size`** (items per page), or deselecting one item from the selection list will reset **`select all`** selection in the definition.

Mass actions are available for bulk updating of the data of selected items, as well as deleting them.

Bulk actions can be performed on the **`entityId`** selection, when you select either individually manually, or all items on the page. The action will take place by passing the **`entityId`** list to the endpoint server. When selecting items through the **`Select All`** function in the definition, a **`filterRequest`** object will be passed to the server, on the basis of which the server itself will find all the elements that match the search criteria.

The action can be executed synchronously or asynchronously, depending on the number of elements passed to the operation. If there are up to **`300`** elements, the server will synchronously update/delete the items and the frontend will pull these changes.
If more than **`300`** elements participate in the operation, then the action will be processed asynchronously using the queue, which means that the frontend will receive a notification about the successful start of the operation, but the change will NOT be pulled. Moreover, even manually reloading the page immediately after the start of the operation may not pull up the changes, the time for processing the requested action is affected not only by the number of elements, but also by the load of the queue itself.

The "**Bulk Edit**" feature is available in both the CMS and Workflows > Processes > Task. This functionality allows you to update properties of multiple selected items simultaneously in a table view. Feature available for Admin users and users with "Bulk edit" permission

&#x20;v

1. For example, choose the group "Account Manager"
2. Add to the group permission with the name "Bulk edit"

   ::Image[]{src="https://api.archbee.com/api/optimize/5goaGPkGyPYxtK7K75CEC/h5yOrZaq1DdnKqe_5vFHg_5.png" size="90" width="2446" height="508" position="center" darkWidth="2446" darkHeight="508" showCaption="false"}
3. Find the user for whom you want to enable bulk editing.

   ::Image[]{src="https://api.archbee.com/api/optimize/5goaGPkGyPYxtK7K75CEC/ol3AReE6ZfcGfP4tTQ70w_8.png" size="90" width="1696" height="514" position="center" darkWidth="1696" darkHeight="514" showCaption="false"}



## How to use Bulk Edit in CMS Table and Workflows tasks

After when we select an item(s) that we want to update click on the "Bulk edit" button there will be an opened side drawer bulk edit menu where:

1. Select Property to Updat&#x65;**:**
   Choose the property (e.g., Language) from the list.
   Turn on the toggle (<font color="#ff0000">1</font>) to activate the property for editing.
2. Choose the new value for the selected property (<font color="#ff0000">2</font>)
3. Grayed-out properties won’t be updated (<font color="#ff0000">3</font>)
4. An active field will be provided for text input (<font color="#ff0000">4</font>)
5. Click "Cancel" to exit without making updates (<font color="#ff0000">5</font>)
6. Click "Save" to apply updates to all selected items (<font color="#ff0000">6</font>)

::Image[]{src="https://api.archbee.com/api/optimize/5goaGPkGyPYxtK7K75CEC/zW5gfMu-Sqp0g0eqVtTqF_screenshot-2024-07-31-at-162841.png" size="56" width="1086" height="2128" position="center" darkWidth="1086" darkHeight="2128" showCaption="false"}

## Bulk Edit for Properties with List option

If the property type is **entity** or **file** with the `list` setting, you can select the **update method** for this property **(1)**. The available options are ***replace*** (default method), ***add*** and ***remove***.&#x20;

<u>Be careful, the </u><u>**replace**</u><u> method is light and fast, while </u><u>**add**</u><u> and </u><u>**remove**</u><u> are heavy and slow, and updating with these methods can take a longer period of time.</u>

![Bulk edit properties list](https://api.archbee.com/api/optimize/ebGU_cEhg6nGW4QohjXfk-PXySsgAZXxsb2UjK4bdts-20250707-141034.png "Bulk edit properties list")

## How it works

### Replace

**Replace** is the basic method of updating a value. It will take new values ​​and replace old ones in the selected entities (by **entityIds** or by **filterRequest**). *The fastest to execute*

<u>Example</u>:

old values - \['old value 1', 'old value 2', 'old value 3']
new values - \['new value 1', 'new value 2', 'new value 3']
result -  \['new value 1', 'new value 2', 'new value 3']

### Add

**Add** method will take existing values ​​in the properties of the selected entities and add new values ​​there.&#x20;

<u>Example</u>:

old values - \['old value 1', 'old value 2']
new values - \['new value 1', 'new value 2']
result -  \['old value 1', 'old value 2', 'new value 1', 'new value 2']

If the type of property is **entity**, then the new values ​​will be added to the old ones, if there is a conflict of duplicates, they will be removed.&#x20;

<u>Example</u>:

old values - \['old value 1', 'old value 2']
new values - \['new value 1', 'new value 2', 'old value 1']
result -  \['old value 1', 'old value 2', 'new value 1', 'new value 2']

If the type of property is **file**, then the old values ​​and new ones will be merged.

<u>Example</u>:

old values - \['old value 1', 'old value 2']
new values - \['new value 1', 'new value 2', 'old value 1']
result -  \['old value 1', 'old value 2', 'new value 1', 'new value 2', 'old value 1']

### Remove

**Remove** method will take existing values ​​in the properties and filter them by the list of new ones. <u>Available only for property type - </u><u>**entity**</u>

<u>Example</u>:

old values - \['old value 1', 'old value 2', 'new value 1']
new values - \['new value 1', 'new value 2']
result -  \['old value 1', 'old value 2']

If no occurrences are found, then the old values ​​will remain unchanged.

<u>Example</u>:

old values - \['old value 1', 'old value 2']
new values - \['new value 1', 'new value 2']
result -  \['old value 1', 'old value 2']

### In Workflows > Process > Task

::Image[]{src="https://api.archbee.com/api/optimize/5goaGPkGyPYxtK7K75CEC/MPKPmT01Mt1LGwCPMynDT_1.png" size="86" width="1892" height="1392" position="center" darkWidth="1892" darkHeight="1392" showCaption="false"}

