A rule that fires the moment it happens.
Real-time triggers watch live attributes continuously. The instant a condition is met, Signals delivers to your app or to the tools you already use to act.
// your app, when the page loads
const stream = signals.interventions.subscribe({
key: { user_id: "u_48213" },
service: "storefront"
});
stream.on("intervention", apply);{
"trigger": "high_value_basket_idle",
"key": { "user_id": "u_48213" },
"attributes": {
"basket_value": 184.20,
"basket_idle_seconds": 612
},
"fired_at": "2026-09-14T09:51:19.004Z"
}The moment passes before anything downstream knows.
A batch job finds the high-value basket that went idle ten minutes ago tomorrow morning. The third failed search shows up in a dashboard next week. Nothing in the stack pushes the moment it happens, so nothing acts on it.
A trigger is a rule and a delivery.
Set the conditions over live attributes, choose who receives it and what data travels with it, and Signals watches from the moment you publish.

Write the condition once. Signals watches. Something happens the instant it is true.
01 · ConditionA rule over live attributes, in the console or in code.
A basket over a threshold idle for ten minutes. A third failed search in a session. Something that did not happen inside a window.
02 · EvaluatedEvery incoming event updates the attributes the rule depends on.
The rule is checked as they change, in the same engine that computes the attributes. No second system to keep in sync.
03 · DeliveredInto your app over a live connection, or to a tool you already run.
Braze, Kafka, a webhook or Pub/Sub. Signals supplies the moment. You decide what happens next.
- Braze
- Kafka
- Pub/Sub
Rules that fire the moment they are true, delivered where you act.






Reuse the attributes you already defined. A rule is a threshold, a window and a key, nothing more to keep in sync.

Each incoming event updates the attributes the rule depends on, and the rule is checked as they change.

A trigger can fire when something does not happen inside a window, not only when it does.

Over server-sent events, so the page can change while the customer is still on it.

Braze, Kafka, webhooks and Pub/Sub. Signals supplies the moment. Your existing tools do the acting.

Preview how many keys match a rule against your warehouse data, and send a test to one key, before you publish it. Old versions keep firing until you retire them.

Full reference: Defining interventions, the in-app delivery →
Collect. Define. Serve.
Add the SDK, define one attribute, and watch it change while you click around your own product. The free tier runs on the real engine: no card, no sales call.