The SDR No Human Can Run: 27 Touches, Four Channels, Two Languages, One Prospect.
Outbound is usually described as a cadence: a list of channels and the days you touch them. We rebuilt it as a state machine. One prospect can receive up to 27 touches across email, LinkedIn, SMS and voice, in Hebrew or English, with colleague escalation, hot-opener nudges, provider-failure rerouting and a nurture track after a polite no. Almost none of it fires on a calendar. It fires on conditions - open counts, reply silence, comment cooldowns, rate limits, number routability - evaluated per prospect, hourly. The finding is not that the agent sends more. It is that the agent is awake at the exact minute a condition flips, which is the one thing a human SDR structurally cannot be.
- Statuslive · in production
- Clearanceω-07
- SurfaceEMAIL · LINKEDIN · SMS · VOICE
- Read9 min read
- AgentMailsending inbox, open events, thread-aware replies
- Hunteraddress verification before first send
- UnipileLinkedIn view, comment, invite and DM
- SaperlySMS and outbound voice
- Hermesper-prospect copy, 12-lever human persona, Hebrew and English
- Supabaseper-prospect state ledger and append-only event log
H1: Reaction latency to a prospect-side event (fourth open, first reply, provider bounce) predicts meeting rate more strongly than total touch volume. H2: A condition-driven sequence run per prospect reads as more human than a calendar-driven one, because attention, not scale, is what the recipient perceives.
- Channels: email, LinkedIn, SMS, voice, plus a LinkedIn Ads lead-form webhook for inbound
- Assets: plain-text email with no tracking pixel, PDF deck, Excel workbook
- Per-prospect state: cadence day, open count, colleagues CC'd, comment cooldown, invite retry queue, number routability, nurture status
- Languages: Hebrew for Israeli founders, English for US prospects, chosen per prospect not per campaign
- Daily digest to a single human reviewer
The end-to-end recipe. Follow it top to bottom; each step assumes the previous one ran cleanly.
Email: six touches, then other people at the same company
Cold email goes out only after Hunter verifies the address: plain text, no tracking pixel, de-promoted copy, PDF deck attached. Follow-ups land on days 1, 3, 5, 8 and 12. The first follow-up attaches the Excel workbook; later follow-ups CC one colleague at the same company. If the whole cadence goes silent, the sequence hands off to a colleague, up to three per company, with an intro-request email carrying both files.
Fig.Email path for one silent prospect - 01VerifyHunter
- 02Cold emaildeck attached
- 03Days 1-125 follow-ups
- 04CC colleaguesame company
- 05Intro requestup to 3 people
Email: the two conditions that ignore the calendar
Four or more opens pulls the Excel follow-up forward to the next cycle instead of waiting out the schedule. Five or more opens with no reply triggers an out-of-sequence note: 'would love your thoughts even if it's not relevant.' Inbound replies get a thread-aware plain-text response that books calls. A 'no' or 'stop' gets exactly one last-check email, then the prospect moves to a link-free nurture track with a hard cap. The main sequence never restarts on them.
LinkedIn: view, comment, connect, DM - in that order
The agent views the profile, comments on the most recent post with a minimum five-day gap between comments, written through a 12-lever human persona and in Hebrew for Israeli founders, then sends a connection request whose note cites evidence. Rate-limited requests go to a 24-hour retry queue. After acceptance: one acceptance DM and three follow-ups at three, four and five-day intervals. About two weeks end to end. When the DM sender is a different person than the emailer, the copy opens with 'My colleague [Name] emailed you...'.
SMS and voice: silence is the trigger, not the day
A silent email at 24 hours triggers an SMS nudge in the prospect's own language, closing with 'let me know if not relevant' rather than 'reply STOP'. Destination validation is strict: NANP and Israeli mobile only. Silence 24 hours after the text triggers a call, maximum two attempts per prospect and 20 calls per day across the pipeline. SMS provider failures reroute to voice; a DestinationNotSupported response retires the number across both channels at once.
Fig.Condition chain, not a calendar - 01Email silent 24h→ SMS
- 02SMS silent 24h→ voice
- 03SMS provider fails→ voice
- 04Voice fails→ retire number
Inbound folds into the same machine
A LinkedIn Ads lead-form webhook creates the prospect, marks the email verified so no Hunter spend is incurred, and pings the reviewer. Inbound and outbound prospects then live in one state model, which is what stops the classic failure of texting somebody who filled in a form an hour ago.
- Email (6 + 3 colleague + nudges)41%
- LinkedIn (view, comment, invite, 4 DMs)26%
- SMS and voice11%
- Nurture drip after a no22%
- Maximum touch envelope per prospect: 27 across four channels and two languages - six emails, three colleague emails, an open-triggered nudge, a profile view, a feed comment, a connection request, four DMs, one SMS, two calls, and a capped nurture drip.
- Roughly 80% of state transitions in the pilot were condition-driven rather than date-driven. Only the day 1/3/5/8/12 email spine runs on a calendar at all.
- Median reaction time from a prospect-side event (fourth open, reply, bounce) to the corresponding action: under one hour. The manual control group, reviewing inboxes twice a day, averaged 7.4 hours.
- Zero recorded sequence restarts on prospects who said no, and zero texts sent to prospects who had replied within the previous 24 hours. Those two invariants are the ones that break first when humans run it.
- At 200 concurrent prospects the ledger held a few thousand mutable facts changing hourly - cadence day, open counts, colleague CCs, comment cooldowns, number routability. Hand-tracking that volume in a spreadsheet was abandoned in week one of the manual control.
The honest division of labor is that a person designs the sequence once and the agent plays it perfectly, per prospect, at whatever count the pipeline holds. An SDR can absolutely execute this for one prospect. Maybe five. What breaks a human is not the writing and not the volume; it is being awake at the exact moment the fourth open happens, on a Tuesday, for the 137th prospect, while also remembering that the comment cooldown on prospect 12 expires today and that prospect 44's phone number was retired yesterday. The prospect on the other side experiences none of that. They experience outreach that behaves like a single, patient, unusually attentive person. The scale is invisible; only the attention shows. That is the whole trick, and it is also the constraint: the moment the copy reads templated, twenty-seven touches stop being attention and start being harassment.
If you want to run this in your own stack, these are the only things that actually matter.
Model state per prospect, not per campaign
Every prospect carries their own record: cadence day, open count, colleagues contacted, comment cooldown, invite retry, number routability, nurture status. Campaign-level scheduling cannot express any of the rules that matter.
Verify before the first send, never after
Address verification ahead of the cold email keeps bounce rates low enough that the open-count conditions downstream mean something. Inbound form leads skip verification because the prospect typed the address themselves.
Make failures route somewhere
An SMS provider failure is a signal, not an error. Reroute to voice; if voice also fails, retire the number on both channels so nothing retries it forever.
Write the negative rules first
Never restart the main sequence after a no. Never text somebody who replied. Never comment twice inside five days. These are the rules that protect the sender reputation you spend months building.
Keep one human digest
A daily digest to a single reviewer is enough oversight. Dashboards nobody opens are not oversight; a short daily list of what the agent did and what it is about to do is.
Localize per prospect
Hebrew for Israeli founders, English for US prospects, decided per record. Language chosen at campaign level is the fastest way to look automated in a market where everybody knows everybody.
- [1]Internal: enso outreach sequence spec v3.1
- [2]Internal: per-prospect state ledger schema
- [3]AgentMail - programmable inboxes
- [4]Unipile - LinkedIn messaging API
- [5]Hunter - email verification





