Sales intelligence research

Our okki go Configuration Drifted for Three Days — Here's the Checklist I Now Run Before Every Sequence

2026-10-10 · Camille Ortega
Research diagram for Our okki go Configuration Drifted for Three Days — Here's the Checklist I Now Run Before Every Sequence

When I first took over quality and brand compliance for our outbound team, I assumed the hard part was the copy. The subject lines. The opening hooks. The rhythm of our outreach sequences. Three years and roughly 240 reviewed campaigns later, I've learned that the boring stuff is where the money actually bleeds. Config. Verification. API health. The things nobody wants to put on a slide.

This is the story of how the boring stuff almost cost us a sending domain.

Mid-Q3 2024. Four SDRs, two AI agents, one okki-go driven workflow. Every contact pushed into a sequence passed through a verification step before hitting the outbound queue. Standard practice. We updated the okki go npm package on a two-week cadence — pinned versions, staging first, canary send, then full rollout. Nothing fancy. Just routine.

Then one Thursday night, an engineer bumped us to [email protected] to grab a hotfix. Small diff. Changelog said "memory leak fix in the verification pipeline." Looked about as safe as a dependency update gets.

It took me three days to figure out what that update actually did.

Monday Morning, When the Numbers Looked Wrong

I open the dashboard at 7am Monday with coffee in hand. The coffee did not stay in the cup.

Our hard bounce rate had jumped from 0.4% to 6.2%. Out of roughly 3,000 sends over three days, 187 hard-bounced. User unknown. SMTP 550 5.1.1. The standard "that mailbox does not exist" code.

If you don't live in this world: Google's bulk sender guidelines that took effect in February 2024 are pretty clear. Keep your spam complaint rate under 0.3%. Keep your hard bounce rate under 2%. Cross 2% and you're on a watch list. Cross 5% and you're basically asking for a domain reputation problem.

We were at 6.2%. And climbing.

The part that made my stomach drop: every single address in that sequence had supposedly been verified. We paid for the API calls. We had the gate.

Chasing the Bug

I pulled the verification logs and cross-referenced the bounced addresses against the verification results. Guess what — every bounced address had been flagged as invalid at verification. Red flags everywhere. Some of them were addresses that had been flagged, removed, and re-added. They should never have entered the queue.

So why did they?

I walked over to our ops lead, Marc. He spent the morning tracing the flow. By 2pm we were staring at the verification API endpoint.

And then at the config layer.

Here's the thing: our outreach sequence wasn't the problem. Our checks weren't the problem. The problem was that [email protected] changed the shape of the object the verification call returned. The old version gave us {valid: true/false, reason: string}. The new version renamed those keys to {is_valid: true/false, status: string} — and buried the change in the changelog as part of the "memory leak fix." Because of course it did.

Our adapter layer was still reading .valid. Which now returned undefined. Which our code treated as... nothing. Not true. Not false. Just nothing. And nothingness failed open.

Every email flagged as invalid sailed straight into the send queue because our gate had quietly stopped gating.

The Turn

Here's what really stung. The bug wasn't the package. The bug was that we never verified the verifier.

Most teams focus on send volume and reply rates and completely miss the fact that the email verification API sitting in the middle of the stack needs to be tested just like any other dependency. I'd assumed "we use a verification API" meant "we're covered." It didn't. The API returning a value and our system correctly interpreting that value are two different things.

Look, I'm not going to pretend this was someone else's mistake. I signed off on that rollout. I'd watched the canary three days earlier and called it clean because the volume looked right. I hadn't looked at the shape of the response objects. I hadn't opened the api documentation email verification page in six months.

What It Cost Us

We killed every sequence that hadn't shipped out of the queue. Roughly 3,000 scheduled sends, about 800 already out the door. The other 2,200 got paused. Between the lost bookings from those paused sends and the cleanup time, we're estimating the whole thing ran us somewhere in the $18,000 range in opportunity cost, plus a full week of reputation recovery where we throttled to 20% volume and crawled back up.

The domain survived. But barely. And if we hadn't caught the bounce rate climbing on Monday morning, I don't want to think about what Thursday would have looked like.

The Checklist I Now Run Before Any Sequence Goes Live

I wrote this the weekend after. It's not fancy. It's not scalable to a 50-person sales org without some tooling. But it's what I'll never skip again:

  • Diff the response shape, not the changelog. Every time the okki go npm package updates, I pull the api documentation email verification page and manually compare the response schema against what our adapter expects.
  • Canary send to a seeded mailbox. Before any sequence launches, send a test batch through every step of the outreach sequence to addresses I control. If one hard bounce shows up, everything freezes.
  • Log the raw payload. Every verification call gets its full response object dumped to a log I can read. No more guessing what a renamed field did.
  • Fail closed, always. Any undefined or null on a send gate defaults to BLOCK, not PASS. Non-negotiable.
  • Check the bounce rate Monday 7am. Before I open Slack. Before I read email. If it's over 1.5%, we throttle the whole system down until we know why.

Four of those five are five-minute checks. The fifth one — the fail-closed rule — is the one that would have saved us entirely on its own.

If you're sitting in a RevOps seat and evaluating LinkedIn automation tool features right now, I'd push you to ask the same thing. What does the tool do when it gets an ambiguous response from a downstream API? Does it pass through or does it hold? Most vendors want to sell you throughput. Ask them about the failure mode instead. That's the answer that matters when something breaks at 2am.

What I Actually Learned

Real talk — I still update the okki go npm package every two weeks. I just don't update it on a Thursday night anymore.

Prevention over cure sounds obvious until you're the one looking at a 6.2% bounce rate on a Monday morning. Five minutes of verification beats five days of correction. Every single time.

Camille Ortega

Camille Ortega
Camille Ortega is an independent buyer-intent and visitor intelligence analyst covering intent data, sales triggers, website visitor identification, account matching, anonymous traffic, and go-to-market signals. She examines EU GDPR requirements alongside match confidence, false-positive rate, signal recency, account coverage, baseline conversion, lift, consent status, and activation latency. Her research helps marketing and sales teams judge whether signals improve prioritization, define responsible activation rules, and avoid treating weak identification probabilities as confirmed buyer interest.