The URL Sequencer target allows you to invoke multiple HTTP-based services or APIs in a timed sequence. You can configure up to 10 URLs, each with its own delay, and optionally repeat the entire sequence multiple times.
This target is useful for triggering external systems, webhooks, or REST APIs at specific intervals — for example, notifying a streaming platform, triggering automation workflows, or sending keep-alive requests to external services.
.png)
Location: Targets -> Url Sequencer
When to Use
- Trigger external webhooks — Notify third-party services when your broadcast starts or at timed intervals
- Orchestrate API calls — Send a sequence of requests to control external systems in order
- Keep-alive requests — Periodically ping services to maintain connections
- Automation workflows — Trigger external automation platforms (e.g., Zapier, n8n, Home Assistant)
- Multi-step integrations — Execute a series of API calls with precise timing control
Properties
URL 1
| Property | Description |
|---|---|
| URL | The HTTP or HTTPS endpoint to send a GET request to. Must be a valid URL starting with http:// or https://. |
| Delay | Time in milliseconds to wait before sending this request after the sequence starts. Set to 0 to send immediately. |
| Status | Read-only. Displays the current status of this request (e.g., "Request sent, awaiting response..." or "Request succeeded [status = 200, response time = 45ms]"). |
More URLs
Expand this section to configure up to 9 additional URLs (URL 2 through URL 10). Each URL has the same properties as URL 1:
| Property | Description |
|---|---|
| URL 2 - 10 | Additional HTTP/HTTPS endpoints to include in the sequence. |
| Delay | Individual delay for each URL, in milliseconds. |
| Status | Read-only status display for each request. |
Repeat Settings
| Property | Default | Description |
|---|---|---|
| Repeat | Off | When enabled, the entire URL sequence will repeat after all requests have been sent. |
| Repeat Delay | 0 | Time in milliseconds to wait before starting the next cycle. This delay is added after the longest URL delay in the sequence. |
| Max Repeats | 0 | Maximum number of times to repeat the sequence. Set to 0 for infinite repeats (continues until manually stopped). |
| Current repeat | — | Read-only. Displays the current repeat cycle count. |
Status
| Property | Description |
|---|---|
| Status Message | Read-only. Displays the overall state of the URL Sequencer Target (see Status Messages below). |
| Total Requests Sent | Read-only. Running count of all requests sent since the target was started. |
| Total Requests Failed | Read-only. Running count of requests that failed (network errors, timeouts, or non-success HTTP status codes). |
Status Messages:
| Status | Meaning |
|---|---|
| Idle | Target has not been started yet. |
| Stopped by user | Target was manually stopped. |
| Starting... | Target is initializing and validating URLs. |
| Options reset | Target settings have been reset to defaults. |
| Running requests... | Target is actively sending requests. |
| Waiting for remaining requests... | Sequence complete, waiting for pending responses. |
| All requests completed | All requests in the sequence have finished. |
Action
| Property | Options | Default | Description |
|---|---|---|---|
| Log level | Report issues as errors, Report issues as warnings | Report issues as errors | Determines how URL validation failures, timeouts, and network errors are logged. |
Action Buttons:
| Button | Description |
|---|---|
| Start | Validates all URLs and begins the sequence. Disabled while running. |
| Stop | Stops the sequence immediately. Any in-flight requests will complete, but no new requests will be sent. |
| Reset | Clears all URLs, delays, and counters back to defaults. Only available when stopped. |
Script Callback
| Property | Description |
|---|---|
| On Request Response | Name of a Script Engine function to invoke each time a request completes. The function receives a JSON object with request details (see Script Callback below). |
General
| Property | Default | Description |
|---|---|---|
| Autostart when application starts | On | When enabled, the URL Sequencer Target will automatically start when the project loads, provided at least one URL is configured. |
Script Callback
If you specify a function name in On Request Response, that function will be called in the Script Engine each time a request completes (whether successful or failed).
The callback receives a JSON object with the following properties:
| Property | Type | Description |
|---|---|---|
| Id | number | The URL slot number (1-10). |
| Url | string | The URL that was requested. |
| Delay | number | The configured delay in milliseconds. |
| StatusCode | number | The HTTP status code returned (e.g., 200, 404, 500). |
| Message | string | The response body content, or an error message if the request failed. |
| RequestDate | string | Timestamp when the request was sent (format: yyyy-MM-dd HH:mm:ss.fff). |
| ResponseTime | number | Time in milliseconds from request sent to response received. |
Example callback function:
function OnUrlResponse(json) {
var response = JSON.parse(json);
if (response.StatusCode === 200) {
Logger.Debug("URL " + response.Id + " succeeded in " + response.ResponseTime + "ms");
} else {
Logger.Debug("URL " + response.Id + " failed with status " + response.StatusCode);
}
}
Usage Examples
Single Webhook Notification
Trigger a single webhook when the project starts:
- URL 1:
https://hooks.example.com/broadcast-started - Delay:
0 - Repeat: Off
- Autostart when application starts: On
Staggered API Sequence
Send a series of API calls with specific timing:
- URL 1:
https://api.example.com/prepare— Delay:0 - URL 2:
https://api.example.com/start— Delay:2000(2 seconds) - URL 3:
https://api.example.com/notify— Delay:5000(5 seconds) - Repeat: Off
Periodic Keep-Alive
Send a keep-alive request every 30 seconds:
- URL 1:
https://api.example.com/keepalive - Delay:
0 - Repeat: On
- Repeat Delay:
30000(30 seconds) - Max Repeats:
0(infinite)
Limited Repeat Sequence
Run a notification sequence exactly 5 times:
- URL 1:
https://api.example.com/ping - Delay:
0 - Repeat: On
- Repeat Delay:
10000(10 seconds) - Max Repeats:
5
Tips
-
Validate your URLs before starting. The target will check that all URLs are valid HTTP/HTTPS addresses. If validation fails, check the log for details.
-
Use delays to control timing. Each URL's delay is measured from when the sequence starts, not from the previous URL. For example, if URL 1 has delay
0and URL 2 has delay1000, they will fire 1 second apart. -
Monitor the Status fields. Each URL shows its individual status, including HTTP status codes and response times — useful for debugging integrations.
-
Set appropriate repeat delays. When using repeat mode, the Repeat Delay is added to the longest URL delay to determine when the next cycle begins.
-
Use Max Repeats = 0 with caution. This creates an infinite loop that will continue until you manually stop the target or close the project.
-
Handle failures in your callback. If you're using Script Callbacks, always check the StatusCode to handle both successful and failed requests appropriately.
-
Check the log for errors. Failed requests, timeouts, and validation errors are logged according to your Log level setting.