← Back to the blog
Ways of Working4 min read

We Fixed Our Cold Email in a Day.

By JebbyJuly 21, 2026

We had 1,000 contacts ready to import into a new cold outbound campaign for one of our workshops, and the test sends were landing in Gmail spam. The obvious suspect was the email itself, so we rewrote it completely. New opener, new subject line, and we dropped the link entirely. It still landed in spam, and Gmail gave the same reason every time: "similar to messages identified as spam in the past."

That phrase is doing a lot of work. It means Gmail isn't grading the email you just sent. It's grading the relationship between that sender and that specific inbox, built up over every message that came before it. We had inboxes on our own team that had absorbed dozens of test sends over the weeks before, some landing in spam, and no rewrite was ever going to fix that. The inbox had already decided.

Once we tested on a genuinely fresh inbox, one with zero history with us, the same emails did something different. A new variant that had looked like it beat the spam filter turned out to only have been tested on inboxes that already trusted us. On a fresh inbox, it spammed too. So we compared the identical email across a small set of inboxes on our own team, each at a different stage of relationship with us. The one that had already flagged us as spam before stayed in spam, the worst end of the scale. The one with zero history landed in Promotions, the real neutral middle. The one with a reply history landed in Primary. The words were identical every time, and so was the sender. Three different outcomes, and the only thing that changed was the relationship. We even ran the content itself through a separate spam-filter scoring tool, and it came back clean, more evidence the words were never the problem. It's a small sample, our own team's inboxes rather than a real cross-section of prospects, but the pattern held consistently enough to act on.

That's the part worth sitting with if you send cold email yourself, at least in Gmail's tabbed inbox: placement is decided per recipient. There's no version of your copy that lands everyone in Primary. The only thing that reliably moves an inbox toward Primary is a reply. Your first touch's real job isn't to sell. It's to earn the reply that gets your second touch trusted.

That test alone felt like the fix. Spam had dropped to zero on the inboxes we could see, replaced by a healthy split of Promotions and Primary. So we moved on and started sending real volume against the workshop list. Once real volume was moving, we pulled the bounce report to see what was actually landing versus failing, and that's where the fix we thought we had hit a second problem.

We'd assumed most bounces were dead or mistyped addresses, the kind email verification tools exist to catch. The data said otherwise. The majority were valid, working mailboxes behind corporate security gateways rejecting the message purely on sender reputation. Verification checks whether an address exists. It has no opinion on whether that address's mail server trusts you, and for us, that gateway-level rejection was the bigger problem by volume. Running verification on the list would clean up a real slice of bad addresses and still leave the larger problem untouched.

What we're trying next is slower and less exciting than a cleverer subject line or a verification tool: separate the domain sending cold mail from the domain sending real customer email, so a reputation problem on one can't spill onto the other, then build sending history gradually before pushing volume, the same way you'd build credit before asking for a loan. For list building, it means screening for the accounts most likely to answer instead of treating every contact as equally reachable. A small business on standard email infrastructure is a different problem than an enterprise account behind a corporate gateway built to say no to strangers by default. We haven't run this long enough yet to call it solved, but it's the lever we're pulling.

None of this is written down anywhere as a lesson learned in the abstract. It's a diagnostic log in our own system, dated and specific, so the next campaign starts from what we actually proved instead of what we only assumed. That's the same habit we'd tell anyone running outbound to build. Write down what you tested, what actually happened, and what it ruled out, because deliverability breaks in ways that look identical to each other and require completely different fixes.

We Fixed Our Cold Email in a Day. — Framework Friday