Create Deliverability Alert
Creates a new deliverability alert that monitors a warm-up or outreach metric and notifies you through the configured channels when the threshold is breached.
Choosing the right dimensions
Each alert is defined by the combination ofwidget, metric, severity, and scope. These four fields, along with threshold, comparisonOperator, periodDays, periodMode, and scopeEntities, must be unique per team — creating a duplicate returns 409.
widget × metric
scope
periodMode
rolling— averages the metric over the lastperiodDaysdays. Best for noisy rate metrics likebounceRateordeliveryRate.consecutive— requires the condition to hold on every one of the lastperiodDaysdays. Useful withscore-style metrics that are reported once per day.
Notification channels
Set at least one channel toenabled: true in channelConfig. If you omit channelConfig entirely, the alert defaults to inapp only.
inapp— surfaces the alert in the lemlist deliverability dashboard.email— sends to the listedaddresses. At least one address is required when this channel is enabled.webhook— posts adeliverabilityAlertTriggeredevent to every webhook subscribed to that event. Configure the destination URL with Add Webhook.slack— sends a Slack message. Requires a Slack integration to be connected on the team.
Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
warmup, outreach inboxRate, spamRate, score, deliveryRate, bounceRate warning, critical global, mailbox, domain 0 <= x <= 100equal, below, above 1 <= x <= 30rolling, consecutive Required when scope is mailbox or domain and you want to target specific entities. Mailbox entries use the format userId|email|mailboxId. Domain entries are bare domains (e.g. acme.com).
Cool-down between re-evaluations after the alert triggers, in hours. Defaults to 12.
Response
Alert created
A deliverability alert configuration. The alert is evaluated periodically against your warm-up or outreach metrics and triggers notifications through the configured channels (in-app, email, webhook, Slack) when the threshold is breached.
Unique alert configuration identifier (prefixed with dac_).
ID of the team that owns the alert.
ID of the user who created the alert.
Creation timestamp.
Last update timestamp.
Data source the alert evaluates. warmup checks lemwarm metrics; outreach checks campaign-sending metrics.
warmup, outreach Metric being monitored. Valid combinations depend on widget: warmup supports inboxRate, spamRate, score; outreach supports deliveryRate, bounceRate.
inboxRate, spamRate, score, deliveryRate, bounceRate Alert severity.
warning, critical Aggregation level the metric is computed at. global covers all of the workspace's mailboxes (warm-up only); mailbox evaluates each mailbox individually; domain groups mailboxes by their sending domain.
global, mailbox, domain Restricts the alert to a subset of entities matching scope. When empty, all entities of that scope are checked. For scope=mailbox, each entry is a composite string userId|email|mailboxId. For scope=domain, each entry is a domain (e.g. acme.com). Ignored when scope=global.
Threshold value the metric is compared against (0–100, expressed as a percentage for rate metrics).
0 <= x <= 100How threshold is compared to the current value. below triggers when the value drops under the threshold; above triggers when it exceeds it; equal triggers on exact match.
equal, below, above Length of the evaluation window, in days (1–30).
1 <= x <= 30How the metric is computed over periodDays. rolling averages the metric across the window; consecutive requires the condition to hold on every one of the most recent periodDays.
rolling, consecutive Notification channels triggered when the alert fires. At least one channel must be enabled. If omitted on creation, defaults to inapp only.
Whether the alert is currently active. Disabled alerts are not evaluated.
Last time the alert was evaluated.
Last time the alert fired.
Cool-down between re-evaluations after the alert has triggered, in hours. Defaults to 12.