# JOIN Node - Manual mode & Merged Object

**URL:** <https://discourse.nodered.org/t/join-node-manual-mode-merged-object/20126>\
**Category:** General\
**Created:** [9 January 2020 16:10 UTC](https://discourse.nodered.org/t/join-node-manual-mode-merged-object/20126 "2020-01-09T16:10:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![soma](https://avatars.discourse-cdn.com/v4/letter/s/aca169/32.png) [@soma](https://discourse.nodered.org/u/soma)\
**Post date:** [9 January 2020 16:10 UTC](https://discourse.nodered.org/t/join-node-manual-mode-merged-object/20126/1 "2020-01-09T16:10:52Z")

</div>

Hi, I want to merge 2 payloads containing different fields into one with the JOIN node. I'm using the Manual mode to create a merged object. I'm facing strange through testing.

I've simplified my flow to this:

```auto
[{"id":"d28e2caa.c58df","type":"function","z":"73f2c6a9.b53548","name":"payload1","func":"msg = {\n payload: {\n correlationId: '012345',\n trigger: 'trigger'\n }\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":320,"y":980,"wires":[["d6918015.cbf79","b5259e2.10e2c6"]]},{"id":"9e0f4a4e.6daf08","type":"function","z":"73f2c6a9.b53548","name":"payload2","func":"msg = {\n payload: {\n pictures: [\n {\n pictureName: '00_12_laserIn.jpeg',\n camera:'12',\n trigger:'laserIn'\n },\n {\n pictureName: '00_13_laserOut.jpeg',\n camera:'13',\n trigger:'laserOut'\n }\n]\n }\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":320,"y":1020,"wires":[["d6918015.cbf79","4746d0f4.b8a55"]]},{"id":"d6d1765d.d10a48","type":"inject","z":"73f2c6a9.b53548","name":"inject1","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":980,"wires":[["d28e2caa.c58df"]]},{"id":"d6918015.cbf79","type":"join","z":"73f2c6a9.b53548","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"payload","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":470,"y":1000,"wires":[["6fd97b52.2d1044"]]},{"id":"6fd97b52.2d1044","type":"debug","z":"73f2c6a9.b53548","name":"both","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":610,"y":1000,"wires":[]},{"id":"a5d0c387.50b6","type":"inject","z":"73f2c6a9.b53548","name":"inject2","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":1020,"wires":[["9e0f4a4e.6daf08"]]},{"id":"4746d0f4.b8a55","type":"debug","z":"73f2c6a9.b53548","name":"down","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":470,"y":1040,"wires":[]},{"id":"b5259e2.10e2c6","type":"debug","z":"73f2c6a9.b53548","name":"up","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":470,"y":960,"wires":[]}]

```

![join_node_manual_merged](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/4/9446a2ab92aa679cf924e619f8c025cfbfb2ec72.png)

payload1:

```auto
msg = {
    payload: {
        correlationId: '012345',
        trigger: 'trigger'
    }
};

```

payload2:

```auto
msg = {
    payload: {
        pictures: [
            {
                pictureName: '00_12_laserIn.jpeg',
                camera:'12',
                trigger:'laserIn'
            },
            {
                pictureName: '00_13_laserOut.jpeg',
                camera:'13',
                trigger:'laserOut'
            }
        ]
    }
};

```

Expected Result:

```auto
msg = {
    payload: {
        correlationId: '012345',
        trigger: 'trigger',
        pictures: [
            {
                pictureName: '00_12_laserIn.jpeg',
                camera:'12',
                trigger:'laserIn'
            },
            {
                pictureName: '00_13_laserOut.jpeg',
                camera:'13',
                trigger:'laserOut'
            }
        ]
    }
};

```

Tests:

- Fire _ **inject1** _ only =\> Debug logs 'up' and 'both' =\> 'both' contains only payload1 _ **--KO--** _
- Fire _ **inject2** _ only =\> Debug logs 'down' only _ **--OK--** _
- Fire _ **inject1** _ and then _ **inject2** _ =\> Debug logs 'up' then 'both then 'down' =\> 'both' contains only payload1 _ **--KO--** _
- Fire _ **inject2** _ and then _ **inject1** _ =\> Debug logs 'down' then 'up' then 'both' =\> 'both' contains the expected result _ **--OK--** _

Issues:

- Why log 'both' is always logged when _ **inject1** _ is fired?
- How can I have the expected result

Thank you for your help

Node-RED version: 1.0.3

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [9 January 2020 16:52 UTC](https://discourse.nodered.org/t/join-node-manual-mode-merged-object/20126/2 "2020-01-09T16:52:17Z")

</div>

Hi @soma

The message from `inject1` has 2 properties. The message from `inject2` has 1 property. So in total, you have 3 properties to join. However, your Join node is configured to wait for 2 message parts - hence the unexpected result.

If you change it to 3, it does what you want.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [10 February 2020 15:22 UTC](https://discourse.nodered.org/t/join-node-manual-mode-merged-object/20126/3 "2020-02-10T15:22:55Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
