I’m working on a workflow using n8n Cloud (v1.89.2) and running into this error when trying to append a new row to a Google Sheet via an AI tool call:
Received tool input did not match expected schema
The failing step is an Append Row action using the create_new_order tool connected to Google Sheets.
Context:
The system prompt section (tool definition) looks like this:
{
"name": "create_new_order",
"description": "Registers a new order in the 'Orders' sheet. If pairs_no ≥ 4, free pickup is activated.",
"parameters": {
"type": "object",
"properties": {
"Status": {
"type": "string",
"description": "Initial order status, default is Received"
},
"user_id": {
"type": "string",
"description": "Unique user identifier",
"memory": "user_id"
},
"user_name": {
"type": "string",
"description": "Customer's full name",
"memory": "name"
},
"address": {
"type": "string",
"description": "Pickup/delivery address",
"memory": "address"
},
"zip": {
"type": "string",
"description": "Postal code",
"memory": "zip"
},
"phone": {
"type": "string",
"description": "Customer's phone number",
"memory": "phone"
},
"pairs_no": {
"type": "string",
"description": "Total number of shoe pairs",
"memory": "num_pairs"
},
"unit_price": {
"type": "string",
"description": "Price per pair of shoes",
"memory": "price"
},
"total_price": {
"type": "string",
"description": "Total order price (pairs_no * unit_price)",
"memory": "price"
}
},
"required": ["Status","user_id","user_name","address","zip","phone","pairs_no","unit_price","total_price"]
}
}
Google Sheets step setup:
Here’s what the create_new_order step looks like (Mapping Column Mode: manual):
Values to Send:
- status {{ $fromAI(“status”) }}
- user_id {{ $fromAI(“user_id”) }}
- user_name {{ $fromAI(“user_name”) }}
- address {{ $fromAI(“address”) }}
- zip {{ $fromAI(“zip”) }}
- phone {{ $fromAI(“phone”) }}
- pairs_no {{ $fromAI(“pairs_no”) }}
- unit_price {{ $fromAI(“unit_price”) }}
- total_price {{ $fromAI(“total_price”) }}
What I’ve tried:
- Confirmed all parameter names match the schema
- All values use fromAI(), e.g. {{ $fromAI(“status”) }}
- Tried hardcoding one value — same result
- Tested changing Status → status (lowercase) in both schema and UI — still failing
Running:
n8n Cloud
Version: 1.89.2
AI Step Version: v4.1 mini
Question:
What’s causing this tool input schema mismatch? Any advice or tips would be super appreciated