Seeing this error?
INVALID_SCREEN_DATA
Expected the property ‘type’ to be of type string.
You’ve added a type field — but gave it the wrong data type. It must always be a string like "string", "number", "boolean", etc.
The Fix (TL;DR):
Set type as a string, not a number or any other type.
Correct:
"data": {
"name": {
"type": "number"
}
}
Incorrect:
"data": {
"name": {
"type": 123
}
}
Why This Happens
The type property tells WhatsApp Flows what kind of value to expect for a field — and it must always be a string. If you use a number, object, or boolean instead, the schema is considered invalid.
In the original example:
"type": 123
That’s a number, and the validator throws an error immediately.
Common Valid type Strings
"string" — for text values
"number" — for numeric input
"boolean" — for true/false flags
"object" — for structured data
"array" — for lists
Best Practices
Double-check your types. If it’s not quoted, it’s not a string.
Use a JSON linter or schema validator to catch these issues early.
Stick to standard types and avoid typos like "str" or "text".
This is a quick fix, but easy to overlook when building fast. Just remember: in JSON schemas, "type" always takes a string. No exceptions. For more troubleshooting insights related to WhatsApp Business API, check out heltar.com/blogs.