# Put Object

Updates a record of a given type by fully replacing its content.

Unlike [Patch Object](/documentation-and-resources/components-and-data/flows/node-reference/object/patch-object.md), Put expects a complete replacement object for the record. Any fields you omit from the input are omitted from the stored record after the update.

## 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 update
* **Object Id** - the record identifier to replace
* **Input** - the message or context path that contains the full replacement object
* **Concurrency control** - optional optimistic-locking toggle
* **Hash** - the message path that contains the record hash when concurrency control is enabled
* **Output** - the message path that receives the updated record
* **Response** - the message path that receives response metadata

`Type Id`, `Object Id`, and `Input` use the same typed-input pattern found on other Object nodes. In most flows, these values come from direct values, `msg`, or agent environment variables.

## 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 sends it with the request. If the record has changed since that hash was captured, the update fails with a `412 Precondition Failed` response instead of silently overwriting a newer version.

The hash you pass here typically comes from a previously retrieved record's `_metaData.hash`. See [Automatic Record Metadata](/documentation-and-resources/components-and-data/object-types/object-type-details/data-schema/automatic-metadata.md).

## 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/put-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.
