Features
Conversion alerts
On this page
An alert emails you the moment a conversion is recorded: a goal such as signup, any payment, or a customer’s first payment. Each email says where that person came from and links to their full journey.
Create an alert
Open Settings → Notifications
In Conversion alerts, choose New alert.
Choose what triggers it
A goal is completed takes the exact, case-sensitive goal name (suggestions list goals tracked in the last 90 days; you can also set one up before its first event). Any payment fires for every new payment, renewals included. A new customer pays fires only on a customer’s first payment.
Choose who gets it
Just me or All members of this site. Every member can later switch Email me on or off for each alert, and the unsubscribe link in each email does the same for that one alert.
Optionally replace the subject and add your own message, for example who should follow up. A site can have up to 25 alerts; turn one off to pause it without losing its settings.
Verify it works
Trigger the goal once (or send a test payment) and check your inbox. The alert’s row shows how often it fired today and in total, and Recent alert emails lists every email with its status.
What the email shows
| Field | Meaning |
|---|---|
| Source | Where the converting visit came from: UTM source, ref tag or referrer, with its channel (Organic Search, Social…). |
| Campaign | The visit’s utm_campaign, when present. |
| Landing page / Converted on | The first page of that visit, and the page where the goal fired. |
| Location and device | City and country, device type, browser and OS. |
| Visits and first seen | How many visits this visitor made and when we first saw them. |
| Customer | Name and email, when you identify users. |
| Amount and plan | For payment alerts. |
| View visitor journey | Opens the dashboard with that visitor’s timeline of visits, pages, goals and payments. |
Server-side goals and payments are linked to a visitor through visitor_id, user_id or identify. When nothing links them, the email still arrives without the source.
Busy hours: summaries instead of a flood
Each alert sends up to five individual emails in any hour. After that, further conversions are collected and arrive as one summary an hour later, with counts by source and the latest conversions. While an alert is that busy it keeps sending at most one summary per hour, and it goes back to individual emails after a quiet hour.
Alerts are sent right after the conversion is stored and never slow down tracking. Retried requests and repeated webhook deliveries alert only once. Historical imports and backfills from Stripe or RevenueCat never alert.
Manage alerts with the API
Use an account token (read to list, write to change) or the site’s secret key, with ?site=<website id>.
| Request | Does |
|---|---|
| GET /api/v1/alerts | Alerts with trigger, recipients, isEnabled, triggerCount, dailyCount, monthlyCount, lastTriggeredAt and lastError, plus goals (names tracked in 90 days). |
| POST /api/v1/alerts | Creates an alert. Body: trigger ({ type: goal, goalName } or { type: payment | new_customer }), optional name, template.subject, template.message, notify (me | members), isEnabled. |
| GET /api/v1/alerts/{id} | One alert. |
| PATCH /api/v1/alerts/{id} | Changes name, trigger, template or isEnabled; subscribe: true | false adds or removes the calling member. |
| DELETE /api/v1/alerts/{id} | Deletes the alert. Its history is kept. |
| GET /api/v1/alerts/history | Sent emails, newest first, with counts of sent and failed. Optional alertId and limit (up to 100). |
curl -X POST "https://metricraven.com/api/v1/alerts?site=$SITE_ID" \
--header "Authorization: Bearer $METRICRAVEN_TOKEN" \
--header "Content-Type: application/json" \
--data '{"name":"Trial started","trigger":{"type":"goal","goalName":"trial_started"},"template":{"message":"Reply within the hour."}}'{
"status": "success",
"data": [{
"id": "6727c0f1a2b3c4d5e6f70812",
"websiteId": "ana_pub_…",
"name": "Trial started",
"trigger": { "type": "goal", "goalName": "trial_started" },
"destination": { "type": "email" },
"template": { "message": "Reply within the hour." },
"isEnabled": true,
"recipients": [{ "userId": "…", "email": "you@example.com" }],
"subscribed": true,
"triggerCount": 0, "dailyCount": 0, "monthlyCount": 0,
"lastTriggeredAt": null, "lastError": null,
"createdAt": "2026-11-02T09:00:00.000Z", "updatedAt": "2026-11-02T09:00:00.000Z"
}]
}The same actions are available as MCP tools (list_alerts, create_alert, update_alert, delete_alert, get_alert_history) and in the CLI as metricraven alerts.