Monitor Instantly email outreach campaign health, deliverability metrics, and sending account reputation. Key signals include email deliverability rate, bounce rate, reply rate, open rate, sending volume vs daily limits, account warmup progress, and spam placement rate.
set -euo pipefail
# Pull campaign performance data
curl "https://api.instantly.ai/api/v1/campaign/analytics?campaign_id=CAMP_ID" \
-H "Authorization: Bearer $INSTANTLY_API_KEY" | \
jq '{
sent: .total_sent, delivered: .total_delivered, bounced: .total_bounced,
opened: .total_opened, replied: .total_replied,
bounce_rate: (.total_bounced / .total_sent * 100),
reply_rate: (.total_replied / .total_sent * 100)
}'
// instantly-account-monitor.ts
async function monitorAccountHealth() {
const accounts = await instantlyApi.getAccounts();
for (const acct of accounts) {
emitGauge('instantly_account_reputation', acct.reputation_score, { email: acct.email });
emitGauge('instantly_daily_send_usage_pct', acct.sent_today / acct.daily_limit * 100, { email: acct.email });
emitGauge('instantly_warmup_progress_pct', acct.warmup_progress, { email: acct.email });
if (acct.reputation_score < 70) {
console.warn(`Low reputation: ${acct.email} (score: ${acct.reputation_score})`);
}
}
}
groups:
- name: instantly
rules:
- alert: InstantlyHighBounceRate
expr: instantly_bounce_rate > 5
annotations: { summary: "Instantly bounce rate exceeds 5% -- check lead list quality" }
- alert: InstantlyLowReputation
expr: instantly_account_reputation < 60
for: 1h
annotations: { summary: "Sending account reputation below 60 on {{ $labels.email }}" }
- alert: InstantlySendingCapNear
expr: instantly_daily_send_usage_pct > 90
annotations: { summary: "Sending account at 90% of daily limit" }
- alert: InstantlyWarmupStalled
expr: delta(instantly_warmup_progress_pct[24h]) == 0 and instantly_warmup_progress_pct < 100
annotations: { summary: "Warmup progress stalled on {{ $labels.email }}" }
set -euo pipefail
# Check reply and bounce rates across all active campaigns
curl "https://api.instantly.ai/api/v1/campaign/list?status=active" \
-H "Authorization: Bearer $INSTANTLY_API_KEY" | \
jq '.[] | {name, status, bounce_rate: (.bounced / .sent * 100), reply_rate: (.replied / .sent * 100), daily_sends: .sent_today}'
Track: deliverability rate by campaign, bounce rate trend (alert if rising), sending account reputation scores (table), warmup progress per account, daily send volume vs limits, reply rate over time, and spam complaint rate. A rising bounce rate is the most urgent signal -- it can cascade into domain blacklisting.
| Issue | Cause | Solution |
|---|---|---|
| Bounce rate >5% | Bad lead list quality | Verify emails before importing, use email verification API |
| Reputation dropping | Too many emails too fast | Reduce daily limit, extend warmup period |
| Campaign paused | Account hit daily send limit | Spread sends across more accounts |
| Opens not tracking | Tracking pixel blocked | Expected for privacy-focused recipients; use reply rate instead |
Basic usage: Apply instantly observability to a standard project setup with default configuration options.
Advanced scenario: Customize instantly observability for production environments with multiple constraints and team-specific requirements.