# About Name: Heltar Description: Automating WhatsApp for Businesses! Heltar is a growth engine for everyone, taking CRM space to the next level with WhatsApp Business API. URL: https://www.heltar.com/blogs # Navigation Menu - Home: https://www.heltar.com/blogs - Search: https://www.heltar.com/blogs/search - Try for free: https://www.heltar.com/get-started # Blog Posts ## Fixing INVALID_SCREEN_DATA in WhatsApp Flows: Expected the property ‘type’ to be of type string. Here's the Fix Author: Anushka Published: 2025-05-16 Category: Troubleshoot Tags: WhatsApp Flows Error URL: https://www.heltar.com/blogs/fixing-invalidscreendata-in-whatsapp-flows-expected-the-property-type-to-be-of-type-string-heres-the-fix-cmaqt8c0f0097kwl4ym5vttrc 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](https://www.heltar.com/blogs). --- This blog is powered by Superblog. Visit https://superblog.ai to know more. --- ## Fixing INVALID_SCREEN_DATA in WhatsApp Flows: Missing the definition of property ‘type’. Here’s the Fix Author: Anushka Published: 2025-05-16 Category: Troubleshoot Tags: WhatsApp Flows Error URL: https://www.heltar.com/blogs/fixing-invalidscreendata-in-whatsapp-flows-forgot-the-type-heres-what-you-missed-cmaqol4bj008gkwl4fii6nrjw 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](https://www.heltar.com/blogs). --- This blog is powered by Superblog. Visit https://superblog.ai to know more. --- ## INVALID_SCREEN_DATA in WhatsApp Flows: Property 'example' is allowed only as a top level property of data model. Here's the Fix Author: Anushka Published: 2025-05-16 Category: Troubleshoot Tags: WhatsApp Flows Error URL: https://www.heltar.com/blogs/invalidscreendata-in-whatsapp-flows-property-example-is-allowed-only-as-a-top-level-property-of-data-model-heres-the-fix-cmaqo9tw7008dkwl4audg3qd3 Seeing this error? **INVALID\_SCREEN\_DATA Property 'example' is allowed only as a top level property of data model. Invalid entry: '(path to error)'.** That means you've placed the \_\_example\_\_ field inside a nested schema, which is not allowed in WhatsApp Flows. The Fix (TL;DR): ---------------- Move the \_\_example\_\_ property to the top level of your data model — not inside properties or nested objects. ### Correct: "data": { "initial\_values": { "type": "object", "properties": { "number": { "type": "number" } } }, "\_\_example\_\_": { "initial\_values": { "number": 8553906697 } } } ### Incorrect: "properties": { "number": { "type": "number" }, "\_\_example\_\_": { "number": 8553906697 } } Why This Happens ---------------- WhatsApp Flows uses \_\_example\_\_ for previewing and testing data, but it only supports it at the root level of the data object. Nesting it inside properties or any sub-object results in an invalid schema. In your original schema: "initial\_values": { "type": "object", "properties": { "number": { "type": "number" }, "\_\_example\_\_": { "number": 8553906697 } // Invalid } } This usage breaks the schema validation. ### Best Practices * Always define \_\_example\_\_ alongside your top-level data fields, not inside nested objects. * Structure it to match the shape of your data model for clear previews and debugging. * Keep your schema clean by separating structure (type, properties) from sample data (\_\_example\_\_). This error is all about placement. Once you know that \_\_example\_\_ belongs only at the top, it’s a quick fix. Keep your data model clean, and your Flow will stay error-free. For more troubleshooting insights related to WhatsApp Business API, check out [heltar.com/blogs](https://www.heltar.com/blogs). --- This blog is powered by Superblog. Visit https://superblog.ai to know more. --- ## INVALID_SCREEN_DYNAMIC_DATA in WhatsApp Flows: Data model schema is invalid for '${expression}'. Missing schema for ${objectProperty}? Here's the Fix Author: Anushka Published: 2025-05-16 Category: Troubleshoot Tags: WhatsApp Flows Error URL: https://www.heltar.com/blogs/invalidscreendynamicdata-in-whatsapp-flows-data-model-schema-is-invalid-for-dollarexpression-missing-schema-for-dollarobjectproperty-heres-the-fix-cmaqo35jb008ckwl4xu13w93o Seeing this error? **INVALID\_SCREEN\_DYNAMIC\_DATA Data model schema is invalid for '${expression}'. Missing schema for ${objectProperty}.** This means your dynamic data is missing required properties for a component — typically labels or values expected in list-type components like CheckboxGroup. ### The Fix (TL;DR): When using a component like CheckboxGroup, the objects in your data array must include both label and value fields. Add this to your schema: "products": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "value": { "type": "string" } }, "required": \["label", "value"\] } } ### Why This Happens You're binding CheckboxGroup to data.products, but each product object only contains id: "properties": { "id": { "type": "string" } } But CheckboxGroup requires label and value properties to render correctly. ### Corrected Example "products": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "value": { "type": "string" } }, "required": \["label", "value"\] }, "\_\_example\_\_": \[ { "id": "001", "label": "Product A", "value": "product\_a" } \] } This satisfies the CheckboxGroup schema and avoids runtime errors. ### Best Practices * Always check what properties your component expects. For lists, it’s often label and value. * Use the required array in your schema to enforce data integrity. * Include good \_\_example\_\_ data to preview and test early. This validation error is about missing structure — not bad logic. WhatsApp Flows needs a precise data model that aligns with the UI components you use. Once you define the right fields, your Flow will render without issues. For more troubleshooting insights related to WhatsApp Business API, check out [heltar.com/blogs](https://www.heltar.com/blogs). --- This blog is powered by Superblog. Visit https://superblog.ai to know more. --- ## Fixing INVALID_SCREEN_DYNAMIC_DATA in WhatsApp Flows: Type Mismatch in Data Model? Here’s the Fix Author: Anushka Published: 2025-05-14 Category: Troubleshoot Tags: WhatsApp Flows Error URL: https://www.heltar.com/blogs/fixing-invalidscreendynamicdata-in-whatsapp-flows-type-mismatch-in-data-model-heres-the-fix-cmansjj8y0024runb7kqo36ma Running into this error? **INVALID\_SCREEN\_DYNAMIC\_DATA Expected '${dataModelPointer}' to be of type '${expectedPropertyType}'.** You're referencing dynamic data correctly, but the value's type doesn't match what the component expects. ### The Fix (TLDR): Make sure the data you're binding has the correct type for the component. If your component expects a string, you can’t bind a boolean. Example Fix: Convert your boolean to a string in the data model: "target": { "type": "string", "const": "true" } Or change the reference to work in a component that supports boolean logic (like conditional rendering), not in plain text. ### The Problem Explained Here’s what you have: "text": "${data.top.secondLevel.target}" But your schema defines target as: "target": { "type": "boolean" } The TextHeading component expects text to be a string, but you're giving it a boolean — which leads to the error. ### Corrected Example Option 1: Change target to a string if you want to render it directly. "target": { "type": "string", "const": "true" } Option 2: Use the boolean value in a condition, not as text. { "type": "Conditional", "condition": "${data.top.secondLevel.target}", "child": { "type": "TextHeading", "text": "Target is true" } } ### Best Practices * Match types exactly. If a component needs a string, don't give it a boolean, number, or object. * Avoid over-nesting. Deep objects are harder to debug when something breaks. * Use Conditional components for booleans instead of trying to render them directly as text. This error is all about data types — not structure. Get that right, and you’re good to go. For more troubleshooting insights related to WhatsApp Business API, check out [heltar.com/blogs](https://www.heltar.com/blogs). --- This blog is powered by Superblog. Visit https://superblog.ai to know more. --- ## INVALID_ON_CLICK_ACTION_PAYLOAD in WhatsApp Flows: Can't Bind Form Data? Here's the Fix Author: Anushka Published: 2025-05-14 Category: Troubleshoot Tags: WhatsApp Flows Error URL: https://www.heltar.com/blogs/invalidonclickactionpayload-in-whatsapp-flows-cant-bind-form-data-heres-the-fix-cmans1m2q0022runb2yt4iog1 If you're hitting the **INVALID\_ON\_CLICK\_ACTION\_PAYLOAD error** in WhatsApp Flows with a message like: **"Value of 'Form' component cannot be used in form binding."** You're likely trying to use ${form.form\_name} directly in your button’s payload — and that’s not allowed. The Fix: -------- You can’t bind the entire form object (${form.form\_name}) directly. Instead, you must reference individual fields from the form. Do this: "payload": { "text": "${form.form\_name.input\_name}" } Not this: "payload": { "text": "${form.form\_name}" } Why This Happens ---------------- WhatsApp Flows only allows dynamic binding to individual form fields. Trying to pass the entire form\_name object (like ${form.form\_name}) breaks the schema — hence the INVALID\_ON\_CLICK\_ACTION\_PAYLOAD error. It's similar to referencing a whole