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.