Standing questions
Nothing happened. That was the problem.
Everywhere else, you ask. Here you don’t. Leave a governed question running and GraphJin keeps answering it against live data—then speaks up when the answer changes, when something expected never arrives, or when it needs your permission to act.
no prompt · nobody asked
0 rows in 4h · absence window elapsed18 kg on hand · below safety buffer2 watches correlated → 1 signal1 conversation woken · 0 duplicates · action held
No shipment scan in four hours, and green-bean inventory is already under the safety buffer. Neither one is an alert on its own. Together, Tuesday’s roast stops by 14:00.
Written, attached, and not sent. The workflow stays paused until you approve this exact version.
You declare the window. A watch that sees zero rows in four hours fires exactly like one that sees a thousand, so silence stops vanishing between polls.
Routine events discard or roll into an unseen digest, and related watches correlate by exact ID into one signal. One conversation woke up, not four channels.
Alerts fail open. If AI triage is unavailable, GraphJin still sends the raw notification. Actions fail closed. A workflow never runs without the required approval.
What it costs
A question you leave running is not a model you leave running.
The reason an organization can afford hundreds of standing questions is that keeping one alive does not involve a model at all. GraphJin compiles the question once and then answers it the way a database answers anything.
A watch rides GraphJin’s cursor-backed subscriptions. It resumes from its stored cursor, compares a hash of what came back, and stays quiet when nothing changed. No model decides whether something happened.
Describe the question in plain language and the agent writes the subscription. That is where model cost enters — once, at authoring time — which means the model tier you choose does not change what the watch costs to keep.
By default a fired watch lands in your inbox as data. AI triage that summarizes, scores, or suppresses noise is something you turn on per watch, with a daily cap so a noisy source cannot run up a bill.
Everything a standing question can do
Cursor-backed questions keep running across your systems.
“No shipment scan in four hours” becomes a first-class event.
Routine events drain into one useful, unseen summary.
Combine exact watch IDs without unsafe loops.
Hide an unseen event until later without acknowledging it.
Persist cursors and back off transient failures automatically.
Try it
The demo starts with its inbox already full.
Run the built-in demo and GraphJin registers four standing questions before it finishes booting. Three of them have already fired against the seeded data by the time you open the console. The fourth reports on silence: nothing in the demo is a critical incident, so a couple of minutes in it tells you so.