Alerts
Describe a condition in plain English and Celiq turns it into a governed daily check that notifies you in-app or over Slack when it triggers.
When to use it: When you want to be told the moment a metric crosses a line, without filling in a form or watching a dashboard.
Where to find it: The Alerts pill in the navigation (bell-plus icon) opens the Alerts page at
/alerts; you can also open the Set an Alert drawer from an Orion answer.Who can use it: Tracer, Weaver, and Luminary.
Alerts let you describe, in plain English, a condition you want Celiq to watch. Orion reads your sentence, matches it to a governed reveal and metric, and turns it into a structured check. Once a day Celiq re-runs that reveal, compares the value to your threshold, and โ if the condition is met โ raises the alert: it adds an item to your Action Center and, if you've pointed it at Slack, sends a message there too.
Overview
A natural-language alert is built from one sentence. You type the condition the way you'd say it to a colleague, Celiq parses it with Orion, and you confirm the structured result before anything is saved. From then on the alert runs unattended on a daily schedule.
Every alert resolves to four things:
- Metric โ the human-readable measure you care about (e.g. CAC, Return rate).
- Reveal โ the governed reveal that backs the metric. Alert values come from reveals only, never raw SQL.
- Condition โ one of
exceeds,drops_below, orchanges_by. - Threshold โ the number to compare against, with a unit (dollars, percent, count, or ratio).
Because evaluation runs through your governed reveal, an alert always uses your canonical metric definition and respects your row- and column-level security โ it can't fire on an approximation, and a restricted owner's alert can't broadcast a value computed over rows they aren't allowed to see.
When to use it
Use an alert when you want a metric watched continuously and don't want to remember to look:
- "Tell me if customer acquisition cost climbs past my target."
- "Let me know the day return rate slips below an acceptable level."
- "Ping me if revenue swings by more than 15% week over week."
If instead you want Celiq to surface unexpected movements you didn't think to watch for โ spikes and dips it detects on its own โ that's a different feature. See Signals.
Alerts vs Signals
| Alerts (this page) | Signals | |
|---|---|---|
| What it watches | A specific metric against a threshold you define | Anomalies Celiq detects automatically |
| How you set it up | Type a sentence in plain English | Celiq scans your metrics; no per-metric setup |
| What triggers it | Your condition (exceeds / drops_below / changes_by) is met | A statistical anomaly in a metric |
| Best for | "Tell me when X crosses this line" | "Tell me about anything unusual" |
Set an Alert when you already know the line you care about. Watch Signals when you want Celiq to find the surprises for you.
Concepts
| Term | What it means |
|---|---|
| Condition | The comparison Celiq makes. exceeds fires when the value goes above the threshold; drops_below fires when it falls under; changes_by fires when the absolute percent change reaches the threshold. |
| Threshold | The number the metric is compared against, plus a unit โ dollars, percent, count, or ratio. |
| Check schedule | How often the alert runs. Today the only supported schedule is daily. |
| Status | active (checked daily), paused (kept but not checked), or archived. Only active alerts run. |
| Notify channel | Where a trigger is delivered: in_app (the Action Center, the default) or slack (a channel or DM). |
| Reveal | The governed metric definition the alert runs against. Required โ an ungoverned metric can't be alerted on. |
Getting started
Prerequisites:
- A governed reveal that exposes the metric you want to watch. If the metric has no reveal, build one in Forge first.
- A workspace Anthropic API key so Orion can parse your sentence. If none is configured, parsing returns a hint to add one in Lumen โ AI settings.
- A role of Tracer or above (Tracer, Weaver, Luminary).
To open the Alerts page, click the Alerts pill in the navigation โ the bell-plus icon, distinct from the Action Center. The page lists every alert in your workspace with an Active Alerts (N) count, and a Create Alert button to add one.
Step-by-step
There are two ways to start: from scratch on the Alerts page, or directly from an Orion answer that already has the metric in context. Both open the same Set an Alert drawer.
Open the Set an Alert drawer
On the Alerts page, click Create Alert (or + Create Alert in the empty state). Alternatively, from an Orion answer that includes a metric, choose to set an alert on it โ the drawer opens pre-filled with your sentence.
Describe the alert in plain English
In the Describe your alert in plain English field, type the condition, e.g. "notify me when CAC exceeds $50". Then click Parse Alert โ (or press Cmd/Ctrl+Enter).
Review what Orion parsed
Orion returns a structured summary so you can sanity-check it before saving:
- Metric โ the metric and the reveal it resolved to, e.g. CAC (via cac reveal).
- Condition โ the comparison and threshold, e.g. exceeds $50.
- Check โ the schedule (daily).
If Orion isn't fully sure of the metric match, it shows a confidence note ("Medium confidence โ verify the metric is correct" or "Low confidence โ double-check the metric match"). Click Back to reword if it got the metric wrong.
Create the alert
Click Create Alert. The alert is saved as active and will be checked daily. Celiq also runs an immediate value preview so you can see where the metric stands right now.
Confirm it's wired correctly (optional)
On the Alerts page, click Test now on the alert. Celiq evaluates the reveal immediately and shows the current value against the threshold, e.g. Current: $38 (safe) or Current: $62 (triggered) โ no waiting for the daily batch and no notifications sent.
If Orion can't confidently match your sentence to a reveal โ the metric isn't governed, or the phrasing is ambiguous โ it returns a hint instead of saving a broken alert. Reword the condition, or build a reveal for the metric first in Forge.
Examples
Phrases you can type, and how they map to a condition:
| You type | Condition | Threshold |
|---|---|---|
| "notify me when CAC exceeds $50" | exceeds | 50 (dollars) |
| "alert me if return rate drops below 5%" | drops_below | 5 (percent) |
| "tell me when revenue changes by more than 15%" | changes_by | 15 (percent) |
Once parsed and created, the alert is stored as a structured config. A representative shape:
{
"metric_name": "CAC",
"reveal_name": "cac",
"domain_name": "marketing",
"condition": "exceeds",
"threshold_value": 50,
"threshold_unit": "dollars",
"check_schedule": "daily",
"confidence": "high"
}When the daily check finds the condition met, you'll see an Action Center entry titled like CAC exceeds $50 with the line Current value is $62. Triggered alert: "notify me when CAC exceeds $50". If the alert is pointed at Slack, the same trigger posts a message to your chosen channel or DM.
Best practices
- Threshold first, then watch. Set the line where it genuinely matters to you โ an alert that fires every day is noise.
- Test now after creating. A quick test confirms the alert is wired to the metric you intended and shows where the value sits today.
- Use
changes_byfor volatility. When the absolute level matters less than the swing (e.g. week-over-week revenue),changes_byreads the magnitude of movement rather than a fixed level. - Govern the metric once. Because alerts run on reveals, defining a metric well in Forge benefits alerts, Orion, and dashboards all at once.
- Pause instead of delete when you only want a temporary break โ a paused alert keeps its history and can be resumed.
Tips
You don't have to start from the Alerts page. After Orion answers a question that includes a metric, set an alert straight from that answer โ the metric and reveal are already known, so the drawer opens pre-filled and you just confirm the threshold.
Common mistakes
Expecting hourly checks. Alerts run once a day. There is no hourly or weekly schedule.
Expecting to edit the condition or threshold. An alert's actions are Test now, Pause/Resume, and Delete โ there is no edit. To change the metric, condition, or threshold, delete the alert and create a new one.
Skipping the review step. If a sentence could mean more than one metric, Orion may pick the wrong reveal and flag low confidence. Always check the parsed Metric line before clicking Create.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "No AI key configured for this workspace." | No Anthropic key is set for the workspace, so Orion can't parse the sentence. | Add an Anthropic key in Lumen โ AI settings, then parse again. |
| "Could not understand that alert." | Orion couldn't extract a structured config from the text. | Rephrase using a clear pattern, e.g. "notify me when CAC exceeds $50" or "alert me if return rate drops below 5%". |
| "Unsupported condition. Supported: exceeds, drops below, changes by X%." | The phrasing mapped to a condition Celiq doesn't support. | Reword to one of the three: exceeds, drops below, or changes by a percent. |
| "Could not read a threshold number from your alert." | No number was found in the sentence. | Include a number, e.g. "exceeds $50". |
| "Couldn't match 'โฆ' to a metric in your workspace." | Orion couldn't tie the metric to any governed reveal. | Use a metric that has a reveal, or create the reveal in Forge. The hint lists available metrics. |
| Test now shows an error instead of a value | The reveal failed to run or returned no numeric value (e.g. it has no metrics). | Open the reveal in Forge and confirm it resolves and exposes a numeric metric. |
| Alert never triggers even when you expect it to | It may be paused, or the daily batch hasn't run since the metric crossed. | Confirm the status badge reads Active, then click Test now to evaluate immediately. |
| Trigger doesn't reach Slack | The alert's notify channel isn't Slack, there's no target, or no Slack bot token is configured. | Confirm the alert is set to notify Slack with a valid channel/DM, and that the workspace has a Slack bot token. |