execution.start
execution.start
This event is sent once when the execution of the workflow starts. It returns a live view URL of the running browser agent embeddable as iframe.
execution.step
execution.step
This event is sent every time the workflow is executing an action like clicking on a button or filling out an input field.
execution.success
execution.success
This event is sent once when the execution of the workflow has finished successfully. It includes the result data that is returned from the workflow.
execution.failed
execution.failed
This event is sent once the execution of the workflow fails and contains information about the error.The
llm_error_category field contains an AI-generated categorization of the error type. This field may be null if AI analysis was not performed.The original_error field contains the raw technical runtime error message before any AI analysis. This is useful for debugging and differs from message field that contains the Maintenance Agent’s analysis.execution.stopped
execution.stopped
This event is sent when one or several workflow runs were cancelled. It respectively either contains Response for multiple cancelled at once:
session_id of the cancelled run or session_ids that contains all of the cancelled runs.Response for single run cancelled:screenshot.uploaded
screenshot.uploaded
This event is sent when the upload of the screenshot has finished.
video.uploaded
video.uploaded
This event is sent when the upload of the workflow video has finished.
file.uploaded
file.uploaded
This event is sent when a file has been uploaded during workflow execution. The
signed_file_url expiration is configurable per workspace (default: 7 days, range: 1 hour to 7 days). Configure this in your workspace settings.interaction.waiting
interaction.waiting
This event is sent when user input is required to continue the workflow.
interaction.failed
interaction.failed
This event is sent when the user input was not provided in time or in a wrong format.
interaction.finished
interaction.finished
This event is sent when the user input was provided and the workflow continues.
Security
We sign webhook events with the secret you get when you register a webhook. We also add an expiry time. You can change the expiry time in the setting of the registered webhook. Here’s how we recommend to verify the message you receive from us:- Python
- Javascript
IP Allowlisting
All webhook requests from CloudCruise originate from the following static IP addresses. If your infrastructure requires IP-based filtering, add these to your allowlist:Deliverability
CloudCruise automatically retries failed webhook deliveries up to 3 times (4 total attempts including the initial request) with exponential backoff delays between attempts. Each delivery attempt has a 5-second request timeout. Total delivery time depends on failure mode, so retries may complete quickly for immediate network errors or take longer for repeated timeouts.Retry Conditions
A webhook delivery is retried when:- Network errors occur (connection timeout, DNS failure, etc.)
- Server errors are returned (HTTP status codes 500 and above)
- Request timeouts exceed 5 seconds
Manual Replay
If webhooks still fail after automatic retries, you can manually replay them:- Dashboard: Navigate to the run detail view and trigger a resend
- API: Send a POST request to
https://api.cloudcruise.com/webhooks/{session_id}/replay

