Skip to main content
The Detection Webhook Trigger is the entry point for every active Worlds workflow. It registers a webhook with the state machine and receives enriched detection data as detections occur. The Worlds computer vision system produces hundreds of detections per second across your cameras. On its own, that volume of data isn’t actionable. The purpose of every workflow is to distill raw detection data into actionable events on the Worlds platform — and this trigger is where that process begins.

When to use

Use this node as the first node in any workflow that processes live detection data. Every workflow starts with either this trigger or the Replay Trigger for testing.

Credentials

Select your GraphQL Subscription API credentials. These authenticate with the Worlds API and determine which sites and cameras are available to you. Credentials can be obtained from the Worlds platform and are shared across workflows — if you’ve already configured credentials in another workflow, the same ones will be available here. See Prerequisites for setup details.

Mode

The first decision is how you want to receive data: streaming or batch.
Receives signals in real time as detections occur. Each workflow execution processes one signal for one track (or one zone update for zone state).For example, if a person is detected 300 times over 5 minutes, your workflow executes 300 times — once for each detection. Each execution carries the current state of the track at that moment: position, velocity, zone data, dwell times, and more. The data gets richer over time as detections accumulate.Use streaming when:
  • You need real-time alerting or event creation
  • You’re monitoring zone occupancy (zone state is streaming only)
  • You want to react as conditions develop, not after the fact

Signal type

When using streaming mode, you choose what type of state data to receive. This is a fundamental decision that determines which check nodes you’ll use downstream.
Zone state is streaming only. Batch mode always produces track state signals because batch processes tracks after they expire — zones don’t expire, so there’s no batch equivalent for zone state.

Track state signals

Each signal carries a track state object with the track’s current position, velocity, zone interactions, dwell times, and motion history. See Tracks & Zones for the full structure. Key timestamp fields in track state:

Zone state signals

Each signal carries a zone state object listing all active tracks in the zone, their dwell times, and intersection data. See Signals for details. Zone state is best for use cases where you care about the aggregate activity in a zone (e.g., congestion, congregation, occupancy) rather than individual track behavior.

Filtering

After selecting your mode and signal type, configure which data to receive:

Batch options

These parameters appear only when mode is set to Batch.

Interactions (batch only)

When processing batch data, the state machine calculates interactions between tracks. For each detection, it looks at a 1-second window before and after that detection to identify other tracks that were nearby. An interaction is recorded when two tracks’ bounding boxes are within the configured proximity threshold. The interaction data includes:
  • How long the tracks were near each other
  • Minimum distance between them
  • Bounding box overlap percentage
  • Timestamps of first and last interaction
This interaction data powers Type III (Track Interaction) checks — use cases like safety near-misses, PPE compliance, and tailgating detection. The proximity thresholds in advanced settings control how close tracks must be to register as interacting. Lowering the pixel threshold means tracks must be closer together; raising it captures interactions at greater distances.

Other options

Output

The interactions array is only populated in batch mode on track_expired signals. In streaming mode, it is always empty.

Choosing your configuration

Example