Vercel built an AI agent to handle its inbound leads. The first version was a prompt of about 125 lines, written by its best SDR. As Vercel moved upmarket into enterprise, the prompt grew to about 1,000 lines, and the model didn't always follow it.

Vercel team photo (left) + "When Inbound Sells Itself" Office Hours card with Tom Tunguz & Jeanne DeWitt Grosser (right)
Jeanne DeWitt Grosser, Vercel's COO, explained the fix to the investor Tomasz Tunguz this month. They split the prompt in two. Anything with a fixed answer became a rule, written by engineers as code. Only the judgement calls stayed with the model. Inbound now runs on 14 rules.
One of them covers leads from an account that already has an open opportunity in Salesforce. Those go straight to the account executive who owns the deal. "The model shouldn't get to decide, we just want that to occur," she said.
The SDRs didn't lose their jobs. They were promoted to outbound roles, skipping the usual year.
Why I changed my mind, and what I still believe
I have called AI SDRs one of the biggest scams in GTM, and I still mostly believe it. The promise was personalised emails at scale, with the model left to figure out your business. It can't, because most of how your business works was never written down.
This week we launched RevSure Digital Workers anyway, including a Digital SDR that books meetings. When I look back I think our customers always needed it. Once their attribution data was connected in one place, they kept asking whether we could do what their SDR does. We could, because the SDR also reads the same history the attribution reads - much like what Digital Worker reads from. Nothing goes live until someone on your team approves it, and you judge it on the pipeline it creates.
Most of your sales process is rules nobody wrote down

Watch your best SDR handle a new lead. An existing customer goes to the account manager, a lead from an account with an open deal goes to the rep who owns it, a lead from a partner's account goes to the partner manager and a student or a competitor gets nothing. None of those is a judgement. Given the facts, the answer is the same every time.
They live in your best SDR's head, so every AI tool you buy is left to guess them. As we go further upmarket you go, the more of these rules get written or stored in the best SDR's mind. That is exactly what happened to Vercel's prompt.
The real judgment calls are fewer than you'd think: what does this person actually care about, what should the first message say, is now the moment to ask for a meeting or to send something useful first. A rote tool can't touch those. A good model can, and that's what makes it worth it.
Outbound is where AI SDRs went wrong
Outbound runs on the same split. Before your best SDR writes a cold email, they check a list of rules without thinking about it. Is this account already a customer? Is there an open deal? Did a colleague email them this month? Did we lose them last quarter, and why? An agent that skips those checks emails a customer's CFO about a product they already own. Those checks are rules, and they belong in code before the agent sends anything.
The judgement calls in outbound are the ones that earn a reply. Why this account, and why now? Which person in the buying group should hear from you first? What can you tell them that they haven't already heard? The line about their college or their city was the agent guessing at those questions because nobody gave it a reason to write.
Sort your process with the two-SDR test
This takes an afternoon with your best SDR and your ops lead.
First, list every decision your best SDR makes between a lead arriving and a meeting being booked, however small. There will be more than you expect.
Second, run each one through the two-SDR test. If two good SDRs, given the same facts, would always make the same call, it is a rule. If they could reasonably disagree, it is a judgement call.
Rule → build it as routing | Judgement call → give it to the agent |
|---|---|
Two good SDRs always agree | Two good SDRs could reasonably disagree |
Open opp in Salesforce → opp owner | Which problem this person most likely has |
Customer → account manager | What the first message says |
Personal / university domain → no outreach | Ask for the meeting now, or send something useful first |
Third, write every rule as one line: if this, then that, with the CRM field it reads. If you can't name the field, you have found a data gap, and the rule won't work until you fix it.
Fourth, hand the rules to your ops team to build as routing and filters. Keep them out of the agent's prompt. Give the agent only the judgement calls, with the account history it needs to make them.
A finished sheet can be this short. Copy it and change the lines to fit your business.
Rules. If Account Type is Customer, route to the account manager. If the account has an open opportunity, route to the opportunity owner. If Partner Sourced is ticked, route to the partner manager. If the email domain is personal or a university, no outreach. If the account is on the do-not-contact list, no outreach. If anyone on the team emailed the account in the last 30 days, no new outbound sequence. If the account was closed-lost in the last 90 days, send it to the AE who owned the deal before any outreach. Judgement calls for the agent: why this account, now; which person in the buying group to write to; what the first message says; whether to ask for a meeting or send something useful first.
Start with approval, then earn the right to sample

For the first weeks, have a person approve every message before it goes out. Each time you edit one, ask whether the agent broke a rule or made a weak judgement call. A broken rule means the rule belongs in code, so add it to the sheet. A weak judgement call usually means the agent couldn't see enough of the account's history.
When the edits get small, move from approving everything to checking a sample. Vercel reviewed its agent's work at first and now checks about one message in every 100.
Judge it the way you judge a campaign. Split the accounts at random, let the agent work one half, and after 30 days compare pipeline created per account in each half.
What this does not do?
Rules make an agent predictable. They don't make your messaging good, and they won't fix a CRM with the wrong owner on half your accounts. The 30-day split is a rough read, not incrementality testing with a proper statistical design, statistically derived multi-touch attribution or marketing mix modelling. It will tell you whether the agent is moving anything, cheaply and quickly.
Turn the rules into code before you count the reps
Most teams ask how many reps an agent can replace. I'd rather know how much of our sales process we can turn into rules today.
Vercel's answer was 14, and its SDRs moved up to the conversations only humans can have. That is what an agent that works looks like. Writing the rules is unglamorous work in a spreadsheet, but it decides whether your agent helps you or embarrasses you in front of a buyer.
If someone on your team owns SDRs or inbound, forward them this issue and book an afternoon with your best SDR to run the two-SDR test this week.
P.S. This week we launched RevSure Digital Workers: a Digital SDR, an ABM Manager, a RevOps Analyst and a few others, all working from the same data we spent four years connecting for attribution. For four years we've helped GTM teams see what's happening in their funnel. Now we're helping them move it.


