How it works
- User opens the flow in WhatsApp
- Meta sends an encrypted request to Kapso
- Kapso decrypts and forwards to your function
- Your function returns screen data
- Kapso encrypts and returns to Meta
- User sees the dynamic content
Setup requirements
Before using data endpoints:- WhatsApp phone number - Set in the Info tab
- Flows encryption - One-time setup per phone number (Kapso handles the key exchange)
- Function - Your code that returns screen data
Request format
Kapso sends this payload to your function:data_exchange object contains Meta’s original payload with the current screen and any user-submitted data.
Response format
Your function must return:| Field | Description |
|---|---|
version | Always "3.0" |
screen | Screen ID to display next |
data | Key-value pairs matching screen’s data schema |
Completing the flow
To end the flow and close it:Limits
| Limit | Value |
|---|---|
| Response timeout | 15 seconds |
| Rate limit | 100 requests/minute per flow |

