Skip to main content
The WebView node opens a web interface for the user to complete an action (for example, a payment or a form). If you enable the flow-blocking option, the flow remains paused until it receives a callback response or the expiration time is reached.

How it works

1

Configure the URL

In the node, enter the URL of your web interface in the corresponding field. The flow sends that link to the user as a button or link in the chat.
The executionId is always added as a parameter in the URL when the WebView is opened. Your page must read it from the URL and send it in the callback.
The URL the user receives has this format (the executionId is added automatically):
https://your-domain.com?executionId=<value>
If your URL already has other query params, it is added with &: https://your-domain.com?foo=1&executionId=<value>.
2

The user opens the WebView

The user clicks the button and completes the action in the web interface (payment, form, etc.).
3

Your WebView sends the callback

When the user finishes, your web page must call the callback endpoint to unblock the flow.Endpoint (POST method):
https://workflows.jelou.ai/v1/webview/callback
Request body (JSON):
{
  "executionId": "exec_abc123xyz",
  "success": true,
  "data": {
    "paymentId": "pay_789",
    "status": "completed",
    "amount": 99.99
  }
}
FieldTypeRequiredDescription
executionIdstringYesValue that comes in the WebView URL when it opens (query param). Identifies the paused flow.
successbooleanYestrue = WebView success path (SuccessCallback), false = WebView error path (ErrorCallback).
dataobjectNoObject with information collected in the WebView to continue the flow (e.g. selected options). Saved in the response variable configured in the node.

While waiting

When the flow-blocking option is enabled, if the user writes something in the chat while the WebView is open:
  • They receive the message configured in Waiting message.
  • The flow does not advance until the WebView responds or the expiration time is reached.
The flow is only blocked if you enable the “Block flow until response” option, located in the advanced tab of the node.

Three possible outputs

When flow blocking is enabled, each callback result connects to a different branch through its own edge:
ResultConditionBranch
Successsuccess: true in the callbackFlow continues through the success output
Errorsuccess: false in the callbackFlow continues through the error output
ExpiredNo response before expirationTimeFlow continues through the expiration output
Connect all three edges of the WebView node to the corresponding nodes: one for success, one for error, and one for when the time expires.

Configuration

FieldDescription
URLWeb address that opens when clicked. You configure this in the node.
Input variableData passed to the URL as query params.
Expiration timeMaximum seconds to wait before taking the Expired output. Only applies if blocking is enabled.
Pending messageMessage the user receives if they write in the chat while the flow is waiting.
Response variableVariable where the data sent in the callback’s data field is stored.

Closing the WebView

If you want to close the WebView after an action, a trick: redirect to a WhatsApp link to return to the chat:
window.location.href = "https://wa.me/13239183195";