Help with Multi-Agent to Call n8n Agent Tools Communication Issue

Hello,

I’m setting up a multi-agent translation workflow where a coordinator agent needs to delegate translation tasks to multiple specialized translator agents. I’m encountering an issue where my translator workflows aren’t being triggered by the multi-agent.

My Current Setup

Main Workflow

  • A multi-agent coordinator that analyzes translation chunks and should route them to 5 different translator workflows

  • 5 “Call n8n Agent” tools connected to the coordinator

  • Each “Call n8n Agent” tool is configured with a description like this:

  • INPUT (parameter tool_use)
    ↳ Pass the entire JSON object exactly as received from the coordinator.
    ↳ Do not extract or modify the nested structure.
    ↳ Expected format:
    {
    “content”: [
    { “type”: “text”, “text”: “…” },
    {
    “type”: “tool_use”,
    “id”: “toolu_auto_X”,
    “name”: “translator_X”,
    “input”: { “chunkData”: {…} }
    }
    ],
    “stop_reason”: “tool_use”
    }

  • EXTRACTS DATA FROM
    Will access the full chunk object from:
    tool_use[0].parameters.chunkData

Translator Workflows

  • Each starts with a “When Executed by Another Workflow” trigger
  • Trigger is set to “Accept all data” to receive the full JSON object
  • Linked to the correct workflow ID in the Call n8n Agent tool
  • Contains a Translator AI agent that should process the chunk

Multi-Agent Configuration

*** User message includes:**

Role: Project Manager
Scope: Kick-off of a multi-topic English-to-Thai translation (1 – 25+ topics)
──────────────── INPUT OBJECT ────────────────
Each incoming item has at minimum:

  • processType : “translation”
  • chunkType : “metadata” | “topic”
  • CHUNK DATA : { … } ← full source text & fields
  • ANALYSIS DATA : { … } ← script-analysis payload
  • chunkNumber : integer (position)
  • totalChunks : integer
  • isFirst / isLast : booleans
  • topicNumber : integer (only when chunkType = “topic”)

──────────────── YOUR TASKS ────────────────

  1. Scope – Read metadata to learn totalChunks.

  2. Plan - Create round-robin schedule for translator tools:
    Call n8n Agent Translator1
    Call n8n Agent Translator2
    Call n8n Agent Translator3
    Call n8n Agent Translator4
    Call n8n Agent Translator5

  3. Assign - For each chunk:
    • Select translatorId based on round-robin (1→2→3→4→5→1…)
    • Generate tool_use JSON response
    • Include complete chunk data to be processed by selected translator

  4. Track - Maintain assignment records internally

──────────────── REQUIRED RESPONSE FORMAT ────────────────
For every assignment return a raw JSON object (no Markdown) that looks exactly like this:
{
“content”: [
{ “type”: “text”,
“text”: “Chunk {{chunkNumber}} of {{totalChunks}} → {{translatorId}}”
},
{
“content”: [
{
“type”: “tool_use”,
“name”: “Call n8n Agent Translator1”, // Use exactly the tool name as shown above
“id”: “tool_call_1”,
“input”: { “chunkData”: {{FULL_CHUNK_OBJECT}} }
}
]
}

Do NOT alter {{FULL_CHUNK_OBJECT}}; forward it byte-for-byte.

──────────────── AFTER FIRST CHUNK ────────────────
Once you process the first item:

  • Emit the assignment as above.
  • Then send a second message that confirms detected project parameters (e.g., “9 chunks total; metadata processed; ready to coordinate”) and shows your internal distribution plan in JSON:
    • translatorId
    • chunkNumbers assigned (array)
    • status = “pending”

──────────────── CONSTRAINTS ────────────────

  • Never split a topic between translators.
  • Continue round-robin 1 → 2 → 3 → 4 → 5 → 1 … adapting if fewer than 5 translators remain idle.
  • Always acknowledge which translator received which chunk.
    (Reference placeholders you may need in templating engines)
    Chunk DATA : {{ JSON.stringify($json[‘CHUNK DATA’]) }}
    Analysis DATA : {{ $json[‘ANALYSIS DATA’] }}

System message includes instructions to:

You are the Translation-Coordinator Agent for an English➔Thai YouTube-script project.

───────── WHAT YOU RECEIVE ─────────
Each incoming message is a single JSON object with, at minimum:
• processType, chunkType, chunkNumber, totalChunks, isFirst, isLast
• “CHUNK DATA” – original script payload (object)
• “ANALYSIS DATA” – script-analysis markdown (string)

───────── YOUR JOB ─────────

  1. Analyze – read the metadata to learn totalChunks & sequence.

  2. Schedule - Assign chunks to five translator tools in round-robin sequence:
    Call n8n Agent Translator1
    Call n8n Agent Translator2
    Call n8n Agent Translator3
    Call n8n Agent Translator4
    Call n8n Agent Translator5

  3. Dispatch – for every chunk, emit a raw JSON response:

{
“content”: [
{ “type”: “text”,
“text”: “Chunk {{chunkNumber}} of {{totalChunks}} → {{translatorId}}”
},
{
“content”: [
{
“type”: “tool_use”,
“name”: “Call n8n Agent Translator1”, // Use exactly the tool name as shown above
“id”: “tool_call_1”,
“input”: { “chunkData”: {{FULL_CHUNK_OBJECT}} }
}
]
}

Do NOT alter {{FULL_CHUNK_OBJECT}}.
4. Track assignments internally (translator :left_right_arrow: chunk numbers).
5. After the first tool call send a follow-up text message
confirming project scope and showing your distribution plan:

{
  "plan":[
    {"translatorId":"translator_1","chunks":[1,6,11], "status":"pending"},
    …
  ]
}

The Problem
The coordinator appears to process the input data correctly, but the Call n8n Agent tools never get executed (no green checkmarks appear on the tools in the workflow diagram).
I believe my setup is correct:

Translator workflows start with "When Executed by Another Workflow" triggers 
Call n8n Agent tools have detailed descriptions of the expected format
Both trigger and tool configurations accept all data without transformation

What I've Already Tried

Checked that "Accept all data" is enabled in the trigger
Confirmed the workflows are active and properly saved

What could be preventing the multi-agent from successfully calling these translator tools? Is there a specific format requirement I'm missing?

Cheer,