Junction Sense is available as an add-on to customers on our Enterprise plan. Get in touch with your Customer Success Manager to learn more.
Automatic Evaluation
Automatic Evaluation
Continuous Query runs automatically on all existing and new users in your team.
Continuous Change Monitoring
Continuous Change Monitoring
Most Continuous Queries are scheduled intelligently in response to new data points or updates discovered through device data connections made through Junction Link and Junction Mobile SDKs. Some virtual resources, such as Device Reliability, refresh on a resource-specific schedule instead.
Result Pushing
Result Pushing
Junction pushes any Continuous Query result table changes to your Webhook or ETL Pipeline destinations.
Result Pulling
Result Pulling
The latest result table can be queried through Junction API at any time.

- No need to build your own scalable data pipeline from scratch to ingest, store, and aggregate standardized device data.
- No need to poll the Query API to receive query results.
Continuous Query requirements
Continuous Query uses the same Query DSL syntax as the Query API, but some resources and query shapes are available only through Continuous Query:- For most resources, the query must group by a truncated datetime.
- Every grouped query must select all group key columns.
An ungrouped Readiness Scores query is a supported exception when it directly selects the
date column and readiness values. See Readiness Scores.Device Reliability is a Continuous Query-only resource that does not support Index Column or Date Truncate expressions. An ungrouped query must select its provider, source type, and resource identity. A grouped query must use a non-empty subset of those identity columns.
Please reach out if your use case is limited by these restrictions.
Subscribing to query result changes
When a Continuous Query is re-evaluated and the result set has changed, Junction sends a Result Table Changed data event to your Webhook or ETL Pipeline destinations. This data event includes only the delta: new rows or changed rows with respect to the result row keys. Grouped queries usegroup_key.* columns, ungrouped Readiness Scores queries use date, and ungrouped Device Reliability queries use source_provider, source_type, and resource.
To re-fetch the whole result set, use the Get Result Table endpoint.
Treat this event as a notification that the result table changed, not as an ordered event log:
- The event does not include a query evaluation timestamp, sequence number, result version, or task ID.
- Webhook delivery can be retried or arrive out of order. Deduplicate webhook retries with the
svix-idheader; do not usesvix-timestampas query evaluation time or an ordering key. - Fetch the latest result table before making a stateful workflow decision. This prevents an older or retried delivery from regressing application state.
- The
dataobject uses columnar JSON. Arrays at the same position form one row. For example, index0in every array belongs to the same changed row.
query_id and user_id, return a successful response promptly, and fetch the current table asynchronously.