In Q2 2025, a B2B SaaS company, Northwind Digital, noticed something strange: their free-to-paid trial conversion rate had dropped from 11.2 percent to 6.8 percent over six weeks. Marketing blamed product. Product blamed onboarding. Engineering blamed marketing. Nobody was looking at email.
When they finally ran a seed list test, the answer was obvious. Sixty percent of their lifecycle automation emails were landing in the spam folder at Gmail, with similar results at Yahoo and a slightly better picture at Outlook. The trial flow depended on five automated emails sent over fourteen days. When more than half of those emails never reached the inbox, conversion collapsed.
This is the complete diagnosis and 90-day recovery playbook that took spam folder placement from 60 percent down to 4 percent and lifted trial conversion back above baseline.
- The crisis was caused by three compounding issues: an SPF record that had silently broken six months earlier, no DMARC enforcement, and a single high-complaint campaign that poisoned domain reputation.
- The recovery sequenced authentication fixes first (weeks 1-2), list hygiene second (weeks 3-4), and engagement-focused rebuilding third (weeks 5-12). Skipping the ordering would have wasted the early sends.
- Reputation recovery is not linear. Inbox placement bounced between 40 percent and 70 percent for the first four weeks before stabilizing as Gmail and Yahoo updated their internal sender models.
- The single highest-leverage fix was suppressing roughly 38 percent of the list (long-dormant subscribers and recent complainers) before resuming sends. This was politically difficult internally but mechanically essential.
- Final state: 96 percent inbox placement across Gmail, Yahoo, and Outlook; trial conversion recovered to 12.4 percent (above pre-crisis baseline).
The Background
Northwind sells project management software to mid-market manufacturing firms. At the time of the crisis they had roughly 50,000 active users and a marketing list of 280,000 contacts. Monthly send volume across all categories ran around 1.1 million emails, split roughly 60 percent transactional, 25 percent lifecycle automation, and 15 percent broadcast newsletter.
They sent through SendGrid on a shared IP pool with a custom return-path domain. Their authentication setup, in theory, was complete: SPF, DKIM, and a DMARC record with p=none. They had been sending without major issues for three years.
The Diagnosis
The first action was a full audit using our standard diagnostic stack: seed list placement test across 40 mailboxes covering Gmail, Yahoo, Outlook, Apple iCloud, AOL, and Comcast; live header inspection of recent campaigns; DMARC record analysis; SPF lookup audit; reputation pull from Google Postmaster Tools and Microsoft SNDS; and a complaint history review going back six months.
Three findings explained the crisis.
Finding 1: Broken SPF record
Northwind had added a marketing automation tool (Customer.io) six months earlier and updated their SPF record to include it. The update pushed the record past the 10-lookup limit, triggering a SPF PermError on every authentication check. Because their DMARC was at p=none, no mail was rejected, but every recipient that evaluated SPF saw a failure.
The SPF record looked like this:
v=spf1 include:_spf.google.com include:sendgrid.net include:_spf.customer.io include:mail.zendesk.com include:_spf.salesforce.com include:_spf.intercom.com include:mailgun.org include:spf.protection.outlook.com ~all
Counted out, the record required 12 DNS lookups to fully resolve. Anything above 10 triggers PermError under the RFC. The DMARC reports they had been receiving (but not reading) showed this clearly for six straight months.
Finding 2: DKIM signing not aligned for lifecycle automation
The transactional and newsletter mail was DKIM signed correctly with d=northwind.com (their root sending domain). The lifecycle automation, configured through a different SendGrid subuser, was signing with d=u123456.wl.sendgrid.net. DKIM technically passed, but it did not align with the From domain under DMARC alignment rules. Combined with the broken SPF, lifecycle emails failed DMARC alignment on both mechanisms.
Finding 3: A single bad campaign poisoned domain reputation
Eight weeks before we were brought in, Northwind had sent a re-engagement campaign to 95,000 contacts who had not opened email in over a year. The campaign produced a 1.4 percent complaint rate (the healthy threshold is below 0.1 percent) and a 14 percent hard bounce rate. Google Postmaster Tools showed their domain reputation falling from "High" to "Medium" within 24 hours of that campaign, then to "Low" over the following two weeks as continued lifecycle sends compounded the problem.
The 90-Day Recovery Plan
The recovery sequenced fixes deliberately. Authentication first, because any sends made before fixing SPF and DKIM alignment would continue to fail DMARC and reinforce the bad reputation. List hygiene second, because rebuilding reputation by sending to known bad addresses would be self-defeating. Engagement-focused rebuilding third, because only real engagement signals from real subscribers move the needle at Gmail and Yahoo.
Weeks 1-2: Authentication overhaul
The SPF record was flattened to consolidate includes and reduce lookups:
v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.0/24 include:_spf.google.com include:sendgrid.net include:_spf.customer.io ~all
By statically including the IP ranges for the lower-traffic senders (Zendesk, Intercom, Salesforce notifications) instead of nested includes, the lookup count dropped to 7. We documented the static IPs with a quarterly review cadence to catch any provider IP changes.
DKIM signing for the lifecycle automation subuser was reconfigured to use d=mail.northwind.com instead of the SendGrid default. The required two CNAMEs were added to DNS, and we ran header inspections on test sends to confirm alignment.
DMARC was advanced from p=none to p=quarantine with a 25 percent pct value, allowing gradual rollout. Aggregate reports were configured to flow into a parsing tool so the team would actually read them going forward. The full rationale for this rollout sequence is covered in the existing email authentication guide.
Weeks 3-4: List surgery
The 280,000-contact list was segmented by last engagement (open, click, or login) date:
| Segment | Last Engagement | Contacts | Action |
|---|---|---|---|
| Active | Within 90 days | 118,400 | Continue all sends |
| Recent | 91-180 days | 34,500 | Reduce frequency 50 percent |
| Lapsing | 181-365 days | 21,800 | Win-back attempt at end of recovery only |
| Dormant | Over 365 days | 89,200 | Suppress entirely |
| Complainers | Any spam complaint | 3,100 | Permanent suppression |
| Hard bounces | Bounced once | 13,000 | Permanent suppression |
The dormant segment (89,200 contacts, 32 percent of the file) was the politically hard cut. Marketing leadership initially resisted, arguing those were paid acquisitions. The case for suppression was that those contacts were already not generating revenue but were actively damaging the deliverability of the contacts that were. The data won the argument.
The remaining list was run through real-time email verification to catch syntax-valid but undeliverable addresses. The verification flagged an additional 7,400 risky addresses (catch-all domains, role accounts, and freshly created mailboxes that had not yet received delivered mail). Those were moved to a quarantine list for manual review.
Watch out: Verification services that only check syntax and MX records will miss spam traps and recently disabled mailboxes. Northwind used a verifier with actual SMTP probing and recent-activity scoring, which is what caught the additional 7,400 risky addresses that basic checks would have passed.
Weeks 5-8: Engagement-focused rebuilding
With clean authentication and a hygienic list, the rebuild phase began. The strategy was to manufacture genuine positive engagement signals by sending only to the most-engaged segment first, then expanding.
Week 5: Active segment only (118,400 contacts), only the highest-performing lifecycle emails. Send volume dropped to roughly 40 percent of pre-crisis levels.
Week 6: Active segment plus a small portion of the Recent segment, monitoring complaint and bounce rates daily. Sender reputation in Google Postmaster Tools shifted from "Low" back to "Medium" by end of week 6.
Weeks 7-8: Full Active and Recent segments. Newsletter resumed at half normal frequency. Google domain reputation reached "High" by the end of week 8.
Weeks 9-12: Stabilization and monitoring
Full send volume resumed by week 10, excluding the Dormant and Complainer segments which remained suppressed. DMARC was advanced from pct=25 to pct=100 at p=quarantine. Seed list testing was run weekly to confirm inbox placement was stable.
By day 90, the seed list showed 96 percent inbox placement (4 percent spam, 0 percent missing) across the major mailbox providers. Trial conversion had recovered to 12.4 percent, slightly above the pre-crisis baseline of 11.2 percent.
When rebuilding reputation, resist the urge to "catch up" on missed sends. Sending suppressed cadence emails after a recovery resumes creates volume spikes that the reputation models read as suspicious. Treat the suppressed window as gone and resume normal cadence from the recovery date forward.
What Did Not Work
Three approaches were considered and rejected during the recovery, but are worth documenting because they are common suggestions that would have made things worse.
Switching ESPs
Migrating to a new ESP was suggested as a way to "start fresh." This would have been pointless. Domain reputation follows the domain, not the IP. A new ESP with the same domain would have inherited the existing reputation. Worse, the migration itself would have introduced authentication churn at the worst possible time. The full case against this approach is in the existing deliverability improvement guide.
Buying a dedicated IP
Moving to a dedicated IP was suggested as another reset. At Northwind volume (1.1M/month) a dedicated IP could be sustained, but the timing was wrong. Cold-warming a new IP while sender reputation was already low would have produced extremely poor week-one results. The cost of a dedicated IP was justifiable, but only after reputation had stabilized. They added one in month four, post-recovery.
Email warmup services
An external consultant suggested running their main domain through an email warmup network for two weeks. This was rejected hard. Synthetic engagement signals from warmup networks are detectable by Gmail and Outlook and treated as policy violations, making bad domain reputation worse rather than better.
Final Results
| Metric | Pre-Crisis (Baseline) | Crisis Peak | Day 90 (Recovery) |
|---|---|---|---|
| Inbox placement (seed test) | 94% | 38% | 96% |
| Google domain reputation | High | Low | High |
| Complaint rate | 0.04% | 1.4% (peak) | 0.03% |
| Hard bounce rate | 0.6% | 14% (peak) | 0.2% |
| Open rate | 22.1% | 9.4% | 26.8% |
| Trial conversion rate | 11.2% | 6.8% | 12.4% |
Lessons
The Northwind recovery surfaces patterns we see in nearly every B2B SaaS deliverability crisis:
- The crisis was preventable. The broken SPF record had been visible in DMARC aggregate reports for six straight months. Nobody was reading them. Setting up DMARC report parsing into Slack or a dashboard catches this category of failure long before it becomes a revenue problem.
- The triggering event was a single bad campaign. Re-engagement campaigns to year-plus dormant lists are the most common cause of acute reputation damage. The math is simple: 95,000 sends with 14 percent bounce rate puts you 13,300 over the cliff.
- The hardest part was internal. Suppressing 89,000 paid acquisitions felt wrong to marketing leadership until the conversion math made it inevitable. Pre-establishing the engagement segmentation policy makes this decision easier in the moment.
- Authentication fixes alone do not recover reputation. Fixing SPF and DKIM stopped the bleeding. Only weeks of engagement-positive sending rebuilt the relationship with mailbox providers.
- Reputation lags behavior by 2 to 4 weeks. Northwind made all the right fixes by day 14, but inbox placement did not stabilize until week 8. Expect a tail.
Frequently Asked Questions
A complete recovery typically takes 60 to 120 days depending on the severity of the original damage and the size of the affected list. Authentication fixes can be deployed in days, but rebuilding the engagement signals that mailbox providers use to score domain reputation requires weeks of consistent positive sending behavior.
Yes. A single high-bounce or high-complaint campaign to a stale list can drop domain reputation from "High" to "Low" within 24 to 48 hours at Gmail. Re-engagement campaigns to dormant subscribers are the most common single-cause trigger for this kind of acute reputation damage.
Usually not. Domain reputation follows your sending domain, not your ESP. Switching providers does not reset reputation at the mailbox provider level, and the migration itself introduces authentication risk at the worst possible time. Fix the underlying causes before considering a migration.
Suppress anyone who has not engaged in 12 months or longer, plus anyone who has ever complained or hard bounced. In typical B2B SaaS recoveries this works out to 25 to 40 percent of the list. The contacts you remove were not generating revenue but were actively damaging the deliverability of the contacts that were.
Yes. Domain reputation in Google Postmaster Tools is the single best leading indicator of recovery progress at Gmail. Expect movement from Low to Medium within 2 to 3 weeks of starting clean sends, and Medium to High within 6 to 10 weeks. IP reputation lags domain reputation by 1 to 2 weeks.