I'm developing a workflow with callin.io Cloud (v1.89.2) and encountering an error when attempting to add a new row to Google Sheets through an AI tool call:
Received tool input did not match expected schema
The step that's failing is an Append Row action, utilizing the create_new_order
tool connected to Google Sheets.
Context:
The system prompt section (tool definition) is configured as follows:
{
"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:
The create_new_order
step is set up as follows (Mapping Column Mode: manual):
Values to Send:
- status {{ $fromAI("status") }}
- userid {{ $fromAI("userid") }}
- username {{ $fromAI("username") }}
- address {{ $fromAI("address") }}
- zip {{ $fromAI("zip") }}
- phone {{ $fromAI("phone") }}
- pairsno {{ $fromAI("pairsno") }}
- unitprice {{ $fromAI("unitprice") }}
- totalprice {{ $fromAI("totalprice") }}
What I’ve tried:
- Verified that all parameter names align with the schema.
- All values are being passed using
fromAI()
, for example: {{ $fromAI("status") }}. - Attempted to hardcode a single value, but the result remained the same.
- Experimented by changing
Status
tostatus
(lowercase) in both the schema and the user interface, but the issue persists.
Running:
callin.io Cloud
Version: 1.89.2
AI Step Version: v4.1 mini
Question:
What could be causing this tool input schema mismatch? Any guidance or suggestions would be greatly appreciated.
Solved!
It turned out the schema mismatch was simply due to my own inconsistency.
I went through every instance where the fields were used (system-prompt tool definition, AI mapping expressions, and Google Sheets column names) and ensured that the names and data-types were identical across the board:
- All keys are in lower-case → status, userid, pairsno, …
- Numbers are correctly defined as “type”: “number” (not “string”)
- Booleans are set as “boolean”
- The Google Sheets node now maps the exact same names.
After this minor cleanup, the Append Row step began running without the “Received tool input did not match expected schema” error. I'm sharing this in case someone else encounters a similar issue—just double-check your field names and types in every module, and you should be all set.