# Delete Object

Deletes a record of a given type.

Use a Delete Object node in your Flow to specify and delete a single Record of the specified Object Type. To configure a Delete Object node in the [Flow Editor](/documentation-and-resources/components-and-data/flows/node-red-flow-editor.md), drag it from the Palette to the Workspace canvas, then double-click the node to open and configure its behavior.

<figure><img src="/files/Ddhm9kvKIiKZRksuvdUc" alt="Example of settings for a Delete Object node"><figcaption><p>Example of settings for a Delete Object node</p></figcaption></figure>

## Config tab

* **Name** - optional display name for the node in the editor
* **Config** - the native-object config used to access your Object Types
* **Type Id** - the Object Type to delete from, specified using one of several value types:
  * *type* - choose this option for a dropdown that includes the Display Names of the Object Types you have created in your Contextual tenant. If the dropdown appears empty for you, be sure that your Flow has been [initialized with a Config](/documentation-and-resources/components-and-data/flows/node-red-flow-editor/config.md), after which the dropdown will be kept in sync with your tenant.
  * *string* - choose the string option and type the Object Type ID directly. Using *type* is recommended when possible.
  * *msg.* - choose this option to read the Object Type ID from the current message, for example `msg.payload.typeId` or `msg.event.typeId`.
  * *env variable* - choose this option to read the Object Type ID from an agent environment variable.
* **Object Id** - the record identifier to delete
* **Concurrency control** - optional optimistic-locking toggle
* **Hash** - the message path that contains the record hash when concurrency control is enabled
* **Response** - the message path that receives response metadata

When the Delete Object node is included in the path of your flow, it will delete the specified Record if it exists.

## Concurrency control

The optional **Concurrency control** setting enables optimistic locking by record hash.

When enabled, the node reads a hash value from the configured message path and only deletes the record if the current record hash still matches. If the record has changed since that hash was captured, the delete fails with a `412 Precondition Failed` response.

The hash you pass here typically comes from a previously retrieved record's `_metaData.hash`.

## Source tab

The **Source** tab controls how the node behaves when it is processing a source stream rather than a single message.

* **Parallelism** can be set to `None`, `Ordered`, or `Unordered`
* `None` processes source items sequentially
* `Ordered` processes source items concurrently up to **Max** while preserving output order
* `Unordered` processes source items concurrently up to **Max** and emits results as they finish

These settings only apply when the node is operating on a source.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.contextual.io/documentation-and-resources/components-and-data/flows/node-reference/object/delete-object.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
