---
title: Split Message Joiner
slug: litmusedge/split-message-joiner
docTags: 
createdAt: 2026-08-25T21:33:10.684Z
---

The Split Message Joiner reassembles multiple messages into a single output, reversing the Message Splitter. Use it to collect the parts of a split message, or any run of related messages, back into one.

## Modes

The **Mode** parameter selects how the processor groups messages:

- `auto` reads the `_parts` metadata that the Message Splitter injects and reconstructs the original structure. It groups messages by `_parts.id`, orders them by `_parts.index`, learns the group size from `_parts.count`, and learns the shape from `_parts.type`. The processor drops any message that has no `_parts` field.
- `manual` collects a fixed number of messages and emits them together once the count is reached. The **Output Format** parameter sets how they are assembled.

## Manual mode output

In `manual` mode, **Output Format** controls the shape of the joined message:

- `array` emits a single message whose value is an array of the collected values in arrival order.
- `string` emits a single message whose value is the parts joined with the delimiter.
- `object` emits a single message whose value is a map built from each part's key, taken from the field named by **Key Field**.

## Flushing

**Count** sets how many messages to collect before emitting in `manual` mode. Set it to `0` to rely on the timeout only. **Timeout Ms** flushes an incomplete group after that many milliseconds of inactivity. Set it to `0` to disable the timeout.

## Parameters

:::hint{type="info"}
**Note:** The `auto` mode requires **Inject Parts** to be enabled on the Message Splitter, so that each message carries the `_parts` metadata the joiner needs.
:::

| **Parameters**     | **Details**                                                                                                               |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| Mode               | The join mode: `auto` reads `_parts` metadata from the Message Splitter, and `manual` collects a fixed count of messages. |
| Count              | In \`manual\` mode, the number of messages to collect before emitting. Set to `0` to rely on the timeout only.            |
| Output Format      | In `manual` mode, the output shape: `array`, `string`, or `object`.                                                       |
| Delimiter          | The separator used when joining string parts. Default is an empty string.                                                 |
| Timeout Ms         | Flushes partial groups after this many milliseconds of inactivity. Set to `0` to disable.                                 |
| Key Field          | In `manual object` mode, the field in each message that holds the map key. Default is `split_key`.                        |
| Pass Through Value | Joins the input with the output of the processor.                                                                         |

