Help with Aggregate Items node: Missing "Output Type" and "Joiner" options

Hello everyone!
I’m currently building a bot and I’m trying to use the Aggregate Items node to concatenate multiple text messages into a single string. However, I’m having some trouble finding the options to do this.
What I’m trying to achieve:
I want to take the message.text from multiple incoming items and join them using a space or a comma as a separator.
The issue:
When I set the Aggregate node to “Individual Fields” and specify my field name, the “Output Type” dropdown (to select String) does not appear for me. Consequently, I can’t see the “Joiner” field either.
Environment details:

  • n8n Version: @2.13.3
  • Running via: n8n Cloud
    I’ve attached a screenshot of what my node looks like after I fill in the input field. Am I missing a specific step or is this related to the version I’m using?
    Any guidance would be very helpful! Thanks in advance.
  • I really need this node to work as a string aggregator because, currently, the bot is ‘spitting out’ the exact same number of messages it receives. For example, if a user sends 3 separate messages, the bot processes 3 different executions and sends 3 separate replies instead of one consolidated answer. This is why I need the aggregation and joining features to be visible and functional.

1 Like

This usually appears once you’ve selected the correct aggregation mode. Try refreshing or upgrading to the latest version if you’re on 2.13.x—the UI sometimes needs a config change to trigger that dropdown. If it still doesn’t show, try setting the field first, then changing the mode.

1 Like

It’s very interesting.
Please share your full workflow idea so that I can test in my local and can help you.

And I also need Google Drive and Google sheets data or credential.

Looking forward to hearing from you in more details.

I have for the same reason, I also get this issue, would love some help for it!

Hi Benjamin, thank you so much for the detailed explanation! I have already followed those steps and configured the Aggregate Items node as suggested, but unfortunately, it is still not working as expected. Instead of sending a single consolidated message, the workflow is still triggering multiple separate responses for each item. I am currently reviewing the Wait times and the Binary Data flow to see if there is a bottleneck there. If you have any other tips on how to force the aggregation before the final node, I would really appreciate it!

Aliança, I really appreciate your willingness to help! However, due to LGPD (General Data Protection Law) and our company’s privacy policies, I cannot share the full JSON or sensitive workflow data here

Hi @Alves.N8N
I believe what you’re running into here is more of an architectural limitation
In this case, what I would do is introduce a buffering step (for example using a Data Store, database, or Redis), then fetch multiple messages in a single execution before passing them to the Aggregate node. In n8n, each Telegram message triggers a separate workflow execution. The Aggregate node only works with items within the same execution, so it won’t combine messages that arrive across different runs.

2 Likes

This is a common limitation with the Aggregate node in n8n Cloud the UI can be confusing and sometimes the “Output Type” and “Joiner” options don’t show depending on how it’s configured.
The issue is that the Aggregate node doesn’t always behave well for text concatenation, especially in newer versions.


Recommended solution (simpler and more reliable)

Instead of using the Aggregate node, use a Code node to join your messages.

Add a Code node after your incoming items and use this:

const items = $input.all();

const combined = items.map(item => item.json.message.text).join(' ');

return [
  {
    json: {
      text: combined
    }
  }
];

What this does

  • Collects all incoming messages

  • Extracts message.text from each item

  • Joins them into one string (with space or you can use comma)

  • Returns a single item


Final step

Use this in your response node:

{{ $json.text }}

Why your current setup isn’t working

  • Aggregate node may not show “String” output depending on config

  • It’s more suited for structured data, not text merging

  • That’s why you’re getting multiple outputs instead of one

1 Like

Hey everyone! Just wanted to drop by and say a huge thank you for the tips.
I followed the suggestion to use a Code node right after the Wait node to filter the executions, and it worked like a charm! It allowed me to keep my ‘Edit Fields’ logic intact while perfectly handling the ‘message spitting’ issue from Telegram. Now my AI Agent reads the full context from Google Sheets and responds just once, exactly as it should.
Special thanks for the light – you guys saved my project! Cheers!

1 Like

I’m really happy to hear this helped :blush:
please consider leaving a like or marking the best reply as the solution ( it helps others find the answer more easily and also supports community contributors.)

1 Like

To collect all 11 results into one item, you need to combine them into a single item before the Google Docs node.

Simple solution

Add a Code node (Execute Once) after your last processing step and use:

const items = $input.all();

const combined = items.map((item, index) => {
return Trade ${index + 1}:\n${item.json.summary}\n\n;
}).join(‘’);

return [
{
json: {
content: combined
}
}
];

Then in Google Docs node use:

{{ $json.content }}

Result

  • All 11 summaries → combined into 1 item
  • Google Docs → creates one single document