Getting this error?
INVALID_SCREEN_DATA
Missing the definition of property ‘type’.
This one’s simple: every field in your data model must declare its type. No type, no schema, no Flow.
The Fix (TL;DR):
Add a "type" to every property in your data model.
Correct:
"data": {
"name": {
"type": "string"
}
}
Incorrect:
"data": {
"name": {}
}
Why This Happens?
In WhatsApp Flows, the data section defines the structure of variables your screen will use. The schema expects a clear definition of what each field is — a string, number, object, array, or boolean.
Without the type property, the Flow builder has no clue how to handle the field — and throws the INVALID_SCREEN_DATA error.
Corrected Example
"data": {
"name": {
"type": "string"
},
"__example__": {
"name": "John Doe"
}
}
Now the Flow knows name is a string and can validate it properly.
Best Practices
Always include a "type" for every data field, even for nested properties.
Use "__example__" at the top level to provide sample values.
Validate your schema incrementally to catch missing types early.
This is one of the most common mistakes in Flow development — and one of the easiest to fix. Every field needs a type. Once you get that right, the rest falls into place. For more troubleshooting insights related to WhatsApp Business API, check out heltar.com/blogs.