Human in the loop ne fonctionne pas via l'appel d'outil avec N8N chat inference

Describe the problem/error/question

I am trying to use a Human-in-the-loop setup with an n8n chat agent and a Google Sheets tool. However, the agent is not calling the Google Sheets tool with chat HITL node, even after I tried adjusting the system prompt. Does anyone have an idea of how to implement this, or any suggestions for what I should look at in my current setup? Thank you in advance!

Please share your workflow

Share the output returned by the last node

the other tools that connect to the agent is working perfectly fine except the google sheet one that connect to HITL node

The agent isn’t calling that tool for three fixable reasons, and they compound.

  1. Tool names with spaces and special characters. customer address checking, Append row in sheet in Google Sheets, and the Call ‘add_to_cart’ style names all hurt tool-calling. The model sees the node name as the tool name, and spaces plus quotes make it unreliable, especially on lighter models. Give every tool a clean, consistent name with no spaces or punctuation. Half your tools already do this (product_catalog_query, address_lookup), so match that: save_customer_address, confirm_address_with_customer, add_to_cart, view_cart, remove_from_cart.

  2. The prompt never names the address-save or confirmation step. Your system prompt walks through address_lookup and shipping, but it never tells the agent to call the confirmation/save tool at all. Models call tools far more reliably when the prompt names each tool explicitly and gives always/never rules and an ordered checkout sequence. I rewrote that section below.

  3. The model. Your active model is google/gemini-3-flash-preview on OpenRouter (your OpenAI and Gemini nodes aren’t connected to the agent, so they’re inert). Flash-tier models are weak at picking the right tool from a large set. Move to GPT-5 (not mini) or Sonnet 4.5/4.6. That alone usually fixes half of “the agent won’t call my tool.”

Two smaller things I noticed: your HITL message was {{ $tool.parameters.district }}, but the wrapped tool has no district field (it’s district_th), so the confirmation would render blank. I fixed it to show the full address. And once you’ve done the above, if the agent still won’t fire it, connect save_customer_address directly to the agent and drive the approval from the prompt as a fallback.

Here’s your workflow with the renames, the rewritten prompt, GPT-5 wired in, and the HITL message fixed. Import and reconnect your credentials:

Au fait, je vois que c’est ton premier message…bienvenue !! @Theeranop_Laohade

Bonjour @Theeranop_Laohade
Le seul outil qui ne s’exécute jamais est celui qui se trouve derrière le wrapper d’examen humain, donc c’est le wrapper qu’il faut examiner, pas le raisonnement de l’agent. Ouvrez votre dernière exécution, cliquez sur le sous-nœud du modèle de chat et lisez son entrée : c’est la liste exacte des outils que le modèle a reçue. Si l’outil Google Sheets ne figure pas dans cette liste, le modèle n’a jamais eu la possibilité de l’appeler et aucune invite ne changera cela.
Pour un client confirmant sa propre adresse dans le chat, la forme supportée est deux outils simples sur l’agent plutôt que sur le wrapper d’examen :

  1. Nœud Chat connecté en tant qu’outil, Opération Envoyer et attendre la réponse, Type de réponse Approbation.
  2. Outil Google Sheets connecté directement à l’agent.
    L’agent demande une confirmation avec le premier, puis ajoute la ligne avec le deuxième une fois que le client approuve. Cela nécessite le Chat Trigger en mode Réponse « Utiliser les nœuds de réponse », que vous avez déjà. Gardez les deux outils sur le flux de travail principal : le nœud Chat ne fonctionne pas à l’intérieur d’un sous-flux de travail, y compris un sous-flux de travail utilisé comme outil d’agent, donc l’enregistrement ne peut pas être déplacé dans un outil Appeler un flux de travail n8n comme vos paniers.
    Chat | Nodes | n8n Docs