Skip to main content

Deliverability

Deliverability is whether your messages actually reach inboxes and devices — and it is earned, not configured once. Hober gives you the enforcement machinery (suppression, consent checks, compliant unsubscribes) and a dashboard to watch your sending health; this guide is the practical playbook for using both.

It covers the deliverability dashboard and its API, domain authentication, warming up a new sending domain, list hygiene for email and push, and how suppression works.

If you have not set up your email channel yet, start with Email Channel Setup.


1. The deliverability dashboard

Open Deliverability in the dashboard. It reports on a rolling window — 7, 30, or 90 days (default 30) — and shows:

Suppression health cards — tenant-wide rates over the window:

CardMeaningWarning threshold
Bounce rateBounce suppression events divided by total sentTurns red above 2%
Complaint rateSpam-report suppression events divided by total sentTurns red above 0.1%
Unsubscribe rateUnsubscribe events divided by total sentNone — informational

The thresholds are deliberately conservative: they are the levels at which mailbox providers start distrusting a sender, and they are the same numbers we watch.

By channel — a per-channel table with Sent, Delivered, Delivery rate, Failed, and Invalid token counts. Comparing channels here is the quickest way to localize a problem: a delivery-rate dip on one push channel with rising invalid tokens is stale devices, not a content problem.

Delivery rate over time — a daily delivery-rate trend for the window. Watch for dips that line up with specific sends or imports.

Sending domain authentication — a callout linking to your email channel's configuration, where the per-channel panel verifies your SPF/DKIM records (see Email Channel Setup).

API

The same data is available programmatically:

GET /api/v1/deliverability?period=30d
Authorization: Bearer <token>

{
"window_days": 30,
"channels": [
{
"channel_id": "chan-uuid",
"sent": 12000,
"delivered": 11640,
"failed": 240,
"invalid_token": 120,
"delivery_rate": 0.97
}
],
"suppression": {
"events_by_reason": { "bounce": 84, "spam": 6, "unsubscribe": 120 },
"active_by_reason": { "bounce": 84, "spam": 6, "unsubscribe": 118 },
"bounce_rate": 0.007,
"complaint_rate": 0.0005,
"unsubscribe_rate": 0.01
},
"trend": [
{ "date": "2026-07-26", "delivery_rate": 0.97 }
]
}
FieldDescription
period (query)7d, 30d, or 90d. Defaults to 30d.
channels[]Per-channel delivery outcomes for the window. delivery_rate is delivered / sent as a 0..1 fraction.
suppression.events_by_reasonSuppression events recorded during the window, keyed by reason (bounce, spam, unsubscribe).
suppression.active_by_reasonCurrently active suppressions by reason.
suppression.bounce_rate / complaint_rate / unsubscribe_rateEvents divided by total sent, as 0..1 fractions — the dashboard cards render these as percentages.
trend[]One entry per day in the window with that day's delivery rate.

2. Domain authentication

For email, authentication comes before everything else. SPF, DKIM, and DMARC belong to your domain — Hober sends through SendGrid authenticated as you, so providers judge your domain's reputation, and unauthenticated mail is the fastest way to poison it.

The per-channel Sender domain deliverability panel checks your domain authentication status directly and shows the exact DNS records to verify, with per-record Verified / Pending status and a Re-check button. The full walkthrough — what each DNS record does and how to publish them — is in Email Channel Setup. Do not start a warm-up until every record shows Verified.

The honest limit: Hober tenants currently send from SendGrid's shared IP pools. Your domain reputation is yours alone; IP reputation is shared with the pool. Dedicated IP options and inbox-placement testing are on the roadmap — until then, the suppression and consent enforcement described below is what keeps the pool healthy, and it applies to every tenant equally.


3. What protects your reputation

Four mechanisms run on every send, without configuration:

  • A per-tenant suppression ledger. Bounces, spam complaints, and unsubscribes are recorded per tenant and enforced on every subsequent send. A suppressed address is not "less likely" to be contacted — it is structurally excluded at dispatch.
  • Consent enforced at send time. Every message — including ones an AI agent proposes — passes the consent, quiet-hours, and frequency-cap guardrail before delivery. Withdrawn consent suppresses immediately.
  • Standards-compliant unsubscribes. RFC 8058 one-click List-Unsubscribe headers and human-readable preference links ship on every marketing email — which is what mailbox providers now expect from senders. See built-in compliance footers.
  • Visible health. The deliverability dashboard shows delivery rate, bounce and complaint rates, and trend — with the warning thresholds above.

4. Warming up a new sending domain

Providers treat a new domain (or a long-dormant one) as unknown until it builds an engagement history. Ramping too fast looks identical to spam.

  1. Authenticate before anything. Verify SPF and DKIM in the channel's deliverability panel first.
  2. Start with your most engaged segment. First sends should go to recent openers/clickers or fresh signups — recipients likely to engage, which is the signal providers read.
  3. Ramp volume gradually. A practical schedule: hundreds per day in week one, doubling every few days as metrics hold. Avoid a first-week blast to a cold, imported list.
  4. Watch the dashboard thresholds. If bounces exceed 2% or complaints exceed 0.1%, pause the ramp, clean the segment, and let the metrics recover before resuming.
  5. Keep suppression on. Never re-import or work around suppressed addresses; the ledger is protecting the domain you are warming.

5. List hygiene

Email: the suppression ledger

Suppressions are recorded automatically from three sources:

ReasonRecorded when
bounceSendGrid reports the address bounced
spamThe recipient marked the message as spam
unsubscribeThe recipient unsubscribed — one-click header, footer link, or the preference center

All three are enforced at dispatch: the email adapter checks the ledger before every send, so suppressed addresses are skipped even if they remain in your imported lists or segments.

Practical rules:

  • Never re-import around a suppression. Re-importing a suppressed address does not clear it — dispatch still excludes it — and attempting to bypass suppressions is exactly the behavior that damages the shared pool.
  • There is currently no self-serve way to remove an address from the suppression ledger. Treat suppression as durable; if a subscriber genuinely wants back in, the compliant path is a fresh opt-in through the preference center.
  • Watch active_by_reason vs events_by_reason. Events tell you what happened in the window; active counts tell you the ledger's current size.

Push: invalid token detection

Push reputation is token hygiene, not IPs. Invalid device tokens are detected automatically at delivery time — when the platform reports a token as gone or unregistered, the attempt is recorded as invalid_token — and fed back into deliverability as the Invalid token column in the per-channel table.

A rising invalid-token count means your device list is aging (app uninstalls, expired registrations). That is normal in absolute terms; a sudden spike usually means you targeted a long-inactive segment.

For deleting subscriber data outright (GDPR requests rather than deliverability hygiene), see GDPR Data Retention.


6. Unsubscribes are not the enemy

The Unsubscribe rate card is deliberately neutral, with no warning threshold: an easy unsubscribe is your friend. Recipients who cannot find the unsubscribe button click "mark as spam" instead — and spam complaints (threshold 0.1%) hurt your reputation roughly an order of magnitude more than unsubscribes do.

This is why Hober ships one-click List-Unsubscribe headers and preference-center links on outbound email automatically, and why you should not hide or delay them in your own templates. A rising unsubscribe rate is a content and frequency signal — segment better, send less — not a deliverability emergency.


7. Monitoring playbook

A lightweight routine that catches most problems early:

  1. After every large send, check the suppression cards. Bounce above 2% or complaints above 0.1% → pause further sends to that audience, inspect the segment (Where did these addresses come from? How old is the consent?), and resume only after the rates recover.
  2. Weekly, scan the Delivery rate over time trend for dips and the By channel table for outliers. Investigate channel-level drops before they compound.
  3. After any DNS or SendGrid account change, re-run the domain authentication check on the email channel — records can silently break when DNS is migrated.
  4. When importing a list, treat it as untrusted until proven: send to an engaged slice first and watch the bounce card before rolling out (see the warm-up schedule above — the same logic applies to new lists on a warm domain).

SMS and WhatsApp are Beta channels with their own carrier- and template-driven reputation mechanics, not covered in this guide.