Sign up

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

  1. Open Settings → Notifications

    In Conversion alerts, choose New alert.

  2. 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.

  3. 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

FieldMeaning
SourceWhere the converting visit came from: UTM source, ref tag or referrer, with its channel (Organic Search, Social…).
CampaignThe visit’s utm_campaign, when present.
Landing page / Converted onThe first page of that visit, and the page where the goal fired.
Location and deviceCity and country, device type, browser and OS.
Visits and first seenHow many visits this visitor made and when we first saw them.
CustomerName and email, when you identify users.
Amount and planFor payment alerts.
View visitor journeyOpens 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>.

RequestDoes
GET /api/v1/alertsAlerts with trigger, recipients, isEnabled, triggerCount, dailyCount, monthlyCount, lastTriggeredAt and lastError, plus goals (names tracked in 90 days).
POST /api/v1/alertsCreates 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/historySent emails, newest first, with counts of sent and failed. Optional alertId and limit (up to 100).
terminal
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."}}'
Response
{
  "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.