← All posts

Campaigns, sequences, and a sorting hat, without going on autopilot

We do a lot of outreach around events: conferences, a competitor's viral LinkedIn post, an upcoming trip. For a while we ran those ad hoc, by hand, and it worked but didn't scale. So we built three things this past month: campaigns, sequences, and a router. The interesting part is what we didn't change.

Campaigns: a repeatable list with intent

A campaign is a named list with a job to do. You tag a list at import time (a CSV, a LinkedIn group, a single profile URL) and it joins a campaign with its own send window, its own angle, its own set of senders, and its own reporting funnel. When Black Hat comes around, you don't rebuild your outreach from scratch; you spin up a campaign and point a list at it.

One rule we baked in: the campaign always wins. If a prospect is enrolled into a campaign, any pending organic drafts for them are cancelled, so they don't get hit from two directions at once. Replies exit the sequence; acceptances advance it. It behaves the way a careful human would.

Sequences: multi-step, still one approval at a time

Connect, then message, then follow up: a real sequence, scheduled across days, respecting a per-account cap that's shared so no single LinkedIn account gets overworked. But every step still generates a draft, and every draft still goes through the review queue. The sequence decides when and what to attempt; you still decide what actually gets said.

Automation should remove the tedium of remembering, not the judgement of deciding. The schedule is automatic. The message never is.

The sorting hat: routing without the ick

With multiple senders, a flood of connection requests piling onto one person's queue is its own problem. So we built a router that distributes prospects across senders by persona fit (who's the best human to be the face of this particular conversation, by language, region, and domain) and then balances the load so no one sender drowns. We built it as a dry-run harness first and read the output before wiring it to anything live, because routing logic that's wrong in production is expensive to unwind.

Admins get a button to distribute the queue, with a sane daily cap per sender. It's deliberate, it's reviewable, and it stops the queue from becoming unmanageable.

More power, same discipline

Campaigns, sequences, routing: every one of these is the kind of feature that, in an agent-led tool, becomes another place for autonomy to creep in and another place for the bill to balloon. We added the power and kept the gate. The pipeline is still deterministic. You still approve every message. That's not a limitation we're working around. It's the product, scaling.

Outreach that respects both sides of the conversation

Deterministic pipeline, LLM drafting where it earns its keep, a human on every message. No agent loops. No credit burn.

Get started →

More from the blog

Never pitch your product to a competitor's employee · 27 May 2026 The bug that taught us to snapshot the truth · 19 May 2026