Skip to main content

Notification Destinations

Configure where FreshGuard sends alert notifications — email, Slack, or webhooks.

Notification destinations control where alerts are delivered when a monitoring rule triggers. Destinations are managed at the workspace level and can be shared across multiple rules — configure a Slack channel once and bind it to any number of rules.

Available Destinations

DestinationMinimum TierDescription
Email Free+ Notifications sent to an email address
Slack Starter+ Messages posted to a Slack channel via OAuth
Webhook Professional+ HTTP POST to any URL (auto-detects Slack URLs)

Destination Limits

PlanMax Destinations
Free1
Starter3
Professional10
EnterpriseUnlimited

Managing Destinations

All destinations are managed from the Notifications page in the dashboard.

  1. Go to Notifications in the sidebar.
  2. Click Add Destination to create a new destination.
  3. Select the destination type and fill in the details.
  4. Use the Test button to verify delivery before binding to rules.

Once created, destinations can be bound to rules from the rule creation or edit page. Each binding can have its own severity level, cooldown period, and recovery notification setting.

Email Free+

Email alerts are available on all plans.

Setup

  1. Go to Notifications and click Add Destination.
  2. Select Email.
  3. Enter a name (e.g., “Ops Team Email”) and the email address.
  4. Click Save.

You can add multiple email destinations (within your plan’s limit) to notify different team members or groups.

What Email Messages Include

Alert and recovery emails include:

  • The rule name, affected table, and rule type.
  • The current status and key metrics (data lag, row count, deviation).
  • A “View Alert in FreshGuard →” button linking directly to the alert detail page.

When a team member acknowledges an alert, an acknowledgement email is also sent with who acknowledged it, when, any notes, and a link to the alert.

Slack Starter+

Slack integration posts alert notifications directly into a Slack channel. FreshGuard uses a secure OAuth flow — no need to manually create webhooks or paste URLs.

Setup

  1. Go to Notifications and click Add Destination.
  2. Select Slack.
  3. Click Add to Slack — you’ll be redirected to Slack.
  4. Choose the Slack workspace and channel where alerts should be posted.
  5. Click Allow — you’ll be redirected back to FreshGuard.

The destination is created automatically with the channel name and workspace info. No manual configuration needed.

What Slack Messages Include

Alert and recovery messages contain:

  • The rule name and type.
  • The affected table and data source.
  • The current status (alert or recovered).
  • Key metrics (data lag, row count, deviation percentage).
  • A timestamp.
  • A “View in FreshGuard” button linking directly to the alert detail page.

When a team member acknowledges an alert, an acknowledgement notification is also posted to the channel with:

  • Who acknowledged it and when.
  • The rule and table name.
  • Any notes they added.
  • A “View Alert” button linking to the alert detail page.

Info

FreshGuard requests only the incoming-webhook permission — it can post messages to the channel you select during setup. It cannot read your messages, access other channels, or see your workspace data.

Reconnecting

If you need to change the channel, create a new Slack destination with Add to Slack and delete the old one. Slack OAuth connections are tied to a specific channel.

Webhook Professional+

Webhooks let you send alert data to any HTTP endpoint — PagerDuty, Opsgenie, a serverless function, or your own internal tools.

Setup

  1. Go to Notifications and click Add Destination.
  2. Select Webhook.
  3. Enter a name and the URL of your endpoint.
  4. Choose the format:
    • Auto (default) — Automatically detects Slack webhook URLs and uses Slack formatting; uses FreshGuard JSON for everything else.
    • Generic — Always sends FreshGuard JSON payload.
    • Slack — Always sends Slack-formatted payload (useful for Slack-compatible services).
  5. Click Save.

Tip

If you paste a hooks.slack.com URL, FreshGuard automatically detects it and switches to Slack message formatting. This is useful if you already have a Slack incoming webhook URL and don’t need the OAuth flow.

Payload Format

Generic webhook payloads are sent as JSON via HTTP POST:

{
"type": "alert",
"rule": {
"id": "rule_abc123",
"name": "orders freshness",
"tableName": "public.orders",
"ruleType": "freshness"
},
"result": {
"status": "alert",
"rowCount": 1500,
"lagMinutes": 180,
"executedAt": "2026-01-15T14:30:00Z"
},
"timestamp": "2026-01-15T14:30:05Z",
"source": "FreshGuard"
}

For recovery events, the type field is "recovery" and result.status is "ok".

Warning

Your endpoint must respond with a 2xx status code within 10 seconds. If the request fails, the alert is logged as failed in the alert history.

Binding Destinations to Rules

After creating destinations, you bind them to rules to start receiving alerts.

From the Rule Page

  1. Go to Rules and create or edit a rule.
  2. In the Notification Destinations step, check the destinations you want to use.
  3. For each selected destination, you can configure:
    • Severity level — Minimum severity to trigger (low, medium, high, critical).
    • Cooldown — How long to wait before sending another alert for the same issue (default: 5 minutes).
    • Recovery notifications — Whether to send a notification when the issue resolves (default: on).
  4. Save the rule.

A single destination can be bound to multiple rules, and a single rule can notify multiple destinations. Changes to a destination (like updating an email address) automatically apply to all rules that use it.

Testing Destinations

You can send a test alert to any destination from the Notifications page:

  1. Find the destination in the list.
  2. Click the Test (lightning bolt) button.
  3. Check that the test message was delivered.

Test alerts are clearly marked as test messages and do not appear in your alert history.