Skip to content

Testing and Debugging Flows

Updated: Jun 28, 2026

WhatsApp Flows provides multiple options for developers to test and debug their flows before publishing.

To test and verify that a flow works as expected, you can use:

To debug any issues with the flow developers can use:

Test flow using the interactive preview

Interactive preview of a WhatsApp Flow in the Flow Builder Preview section

Interactive preview lets you test the flow throughout the development process. Interactive preview triggers the same actions as the real device would, and if the flow has an endpoint configured, the flow sends encrypted requests to the endpoint. To start interactive preview:

  • Navigate to the Flows page in WA Account Manager⁠ and click on any Flow.
  • Trigger the interactive preview by clicking on the settings menu in the Preview section of the Flow Builder and enabling Interactive mode toggle.
  • In the modal that appears, select the phone number, enter any string as Flow token and choose how to Request data on first screen.

You can now interact and complete the flow in the preview. The Flow Builder logs each action in the Actions tab at the bottom of the editor where you can see more details. If the Flow is using an endpoint each data_exchange action will trigger the request to the endpoint. Full request and response are also visible in the Actions tab.

Send draft flow to your device

Draft Flow message on a device showing the draft-mode warning banner

Before you publish your flow you can also send it and test it on a real device. Flow messages sent in draft mode show a warning banner on the device. Once a Flow is published, the device no longer shows this warning.

Ensure you first send a message from your test device to the sender number. This is to make sure that you are within the 24-hour customer service window to receive the message. Learn more about customer service windows.

  • Navigate to the Flows page in WA Account Manager⁠ and click on any Flow in Draft state.
  • In the Flow Builder select three dot menu in the top right corner of the screen and select Send option.
  • In the modal select Sender number from the list. As the Recipient phone number, enter the phone number of your test device.
  • Enter any string as a Flow token (learn more about the flow_token parameter), select the Request Data option (learn more about providing data for the first screen) and click on Send.

You should receive a message with a Flow attached to your device and be able to test the Flow.

Draft messages can also be sent via API by setting mode parameter to draft.

Debug flow actions using the Actions section of the Builder

Actions tab at the bottom of the Flow Builder code editor listing logged Flow actions

When you enable the Interactive preview, the Flow Builder logs each Flow action in the Actions tab at the bottom of the code editor.

Flows without endpoint

For Flows without an endpoint the Action tab will show:

  • navigate actions including any data passed between the screens
  • back action when user clicks on back button
  • complete action with the full payload submitted at the Flow completion

Flows with endpoint

For Flows with an endpoint the Action tab will show all the actions:

  • init action with initial data returned by the endpoint
  • navigate actions including any data passed between the screens
  • data_exchange actions with HTTP status code, the unencrypted request sent to the endpoint, and the unencrypted response received from it.
  • back action when user clicks on back button
  • complete action with the full payload submitted at the Flow completion

Debug endpoint configuration and encryption setup using health check

Endpoint health check results in the Flow Builder showing configuration, reachability, encryption, and payload checks

The health check allows users to verify that the endpoint health check ping request and encryption are working correctly.

Endpoint health check is accessible from the Flow Builder, from the three dot menu in the top right corner of the screen. Select Setup under the Endpoint section. In the modal select Health check step and click on Run Check button to trigger the check.

Health check triggers a ping against the provided endpoint URI and if there's an error, the health check returns detailed error and resolution information.

It detects various issues such as:

  • Missing/incorrect configuration: It checks whether all the pre-requisites are set up correctly. For example, it checks whether the public key is uploaded, or whether the endpoint URI is set.
  • Endpoint not being reachable or responding correctly: It checks whether the provided endpoint URI is reachable from the internet, whether it is responsive, and whether it returns expected status code.
  • Encryption: It checks whether the response is encrypted, whether it is encrypted with the correct key, and whether it is base64 encoded.
  • Payload: It checks whether the response payload is as expected.

See also

See following reference guides for additional information:

Unofficial mirror for reference/search purposes. All content originates from developers.facebook.com — see the source link at the top of each page. Machine-readable indexes: llms.txt · llms-full.txt · About