Alerts & audiences
Threshold and anomaly alert rules delivered to Slack, webhooks and email; audience segments with CSV, webhook, Meta and TikTok activation.
Updated 2026-09-02
Alerts#
Rules live under Alerts and are evaluated by the scheduler every 15 minutes.
| Mode | Fires when |
|---|---|
THRESHOLD | A metric crosses a value for the scope (clicks, installs, conversions, revenue, spend, cpi, cvr, roas, invalid_rate, uninstalls, reengagements, events:<name>) over the window |
ANOMALY | The metric's z-score against the trailing 28-day same-hour baseline exceeds the sensitivity (default 3σ) |
Scopes: organization, campaign or app. Channels: Slack incoming webhook, generic webhook (JSON), email. Alert events record status (OPEN, ACKED, RESOLVED) and are returned by the MCP recent_alerts tool.
{ "type": "alert.fired", "rule": "Invalid rate spike", "metric": "invalid_rate", "scope": { "type": "CAMPAIGN", "id": "…", "name": "Brand — Search" }, "value": 0.41, "threshold": 0.2, "window": "1h", "url": "https://app.whichclick.is/dashboard/alerts" }Audiences#
Audiences are saved segments over installs, events and conversions built in the Audiences editor (visual builder over a safe SQL subset):
installs where campaign in ("TikTok TR") and platform = ios
and events.purchase.count(30d) >= 1 and not events.subscribe.existsMembership is recomputed on demand or on a schedule; sizes are shown live.
| Export | Payload |
|---|---|
| CSV | Hashed device ids (SHA-256 IDFV / GAID) plus attributes |
| Webhook | Batches of members as JSON |
| Meta custom audience | Uploaded via Marketing API (hashed identifiers) |
| TikTok custom audience | Uploaded via Marketing API |
Audience activations require a partner connection under Integrations and are logged as AudienceExport records with counts and status.