AI won't replace salespeople. It replaces the work between calls
The direct answer, the sales tasks agents already own, the failure modes that kill them in production, and the one architecture I would not run.
The answer, and the law that produces it
Since 1 July 2019, California has made it unlawful to use a bot to communicate with a person in that state — misleading them about its artificial identity — in order to incentivize a sale (B&P Code § 17941). From 2 August 2026, Article 50 of the EU AI Act requires people to be told when they are interacting with an AI system (Regulation (EU) 2024/1689).
So, the direct answer: AI will not replace salespeople, because the part of the job that a buyer pays for is a named human taking responsibility for a commitment — but it is already replacing most of the work that happens between conversations, and the headcount whose entire job was that work is the headcount that goes away.
That is not a hedge. It is a boundary you can draw on a whiteboard, and vendors are already pricing on the correct side of it: Salesforce meters Agentforce in consumption credits tied to agent actions rather than selling it purely per seat (Agentforce pricing). Read that as a statement about what is being automated. Nobody meters a relationship. You meter tasks.
I took Metadata.io from $0 to $15M ARR, raised $50M against it, and hold six patents in AI-driven marketing. I am now building a zero-human company in public and paying the API bills for agents that run without me watching. Operating side, not forecast.
Which tasks have already moved, and the test that decides
The dividing line is not difficulty. It is reversibility. A wrong research brief costs a reader thirty seconds; a wrong price quote is a representation made to a buyer, and buyers hold you to it.
| Sales task | Agent owns it end to end? | The reason |
|---|---|---|
| List building and enrichment | Yes, from allowlisted sources | Output is verifiable against the source record; errors are caught before contact |
| Account research brief | Yes | Every claim carries a URL, so a human checks it in seconds |
| First-touch drafting | Draft yes, send no | Send is where deliverability and CAN-SPAM duties attach |
| Inbound chat qualification | Yes, with disclosure | Cheap to correct, and disclosure is now a legal requirement in California and, from August 2026, the EU |
| CRM hygiene, call notes, next-step logging | Yes | Pure transcription and field mapping; the failure mode is a bad field, not a bad promise |
| Quote and configuration | No — call a pricing engine | Prices must be looked up deterministically, never generated |
| Discovery on a complex deal | No | The valuable output is a changed opinion inside the buying group, held by someone who can be called back |
| Multi-threading a committee | No | Requires standing in a relationship, which does not transfer to a tool |
| Forecast commitment | No | Someone has to be accountable for the number |
Apply the test to any task in your own funnel. Ask what a bad output costs and who eats it. If the answer is "a few seconds of a rep's attention," give it to an agent today. If the answer is "a contract, a refund, or a domain reputation," keep the human on the button.
This is also why "will AI replace SDRs" and "will AI replace enterprise AEs" are different questions with different answers. The SDR function is mostly the left half of that diagram. The AE function straddles the line. Check the BLS Occupational Outlook Handbook page for the occupation you care about rather than a vendor press release — the projections are published, dated, and free.
Where sales agents actually break in production
None of these are exotic. They show up in month one.
Unbounded loops. An agent that can call tools can call them forever. The fix is a step cap enforced outside the model, not a prompt asking it to stop. OpenAI's Agents SDK exposes a max_turns argument on a run and terminates when it is exceeded (openai-agents-python) — that is the right shape, because the model cannot argue with the runner. I wrote up the pattern with an allowlist and a dry run in Build an AI agent loop with a step cap, allowlist and dry run.
Deliverability, not volume, is the constraint. Google's sender guidelines set the bar for anyone sending 5,000 or more messages a day to personal Gmail addresses: SPF and DKIM authentication, a DMARC record, one-click unsubscribe on subscribed mail, and a spam rate in Postmaster Tools kept below 0.10% with 0.30% treated as a line you never touch (Email sender guidelines). An agent that can write 40,000 personalised emails a month does not have a throughput problem. It has a complaint-rate problem. The blast radius is your domain.
Stale state presented as fact. Agents mix up what they retrieved this run with what they believe from last week. The distinction matters enough that I split it out: see AI agent memory: what it actually is and Agentic state: the data an agent keeps between steps. In a sales context, the symptom is an agent congratulating a prospect on a funding round from 2022.
Generated prices and terms. A model asked to "quote" will produce a number that reads correctly. Pricing must be a tool call into a system of record, and the agent's job is to pass the result through unmodified. If your agent can compose a discount, you have given a language model signature authority by accident.
Tool access built on terms you are violating. The LinkedIn User Agreement prohibits scraping and automated access (user agreement). Plenty of "AI SDR" products depend on exactly that. That is a business-continuity risk sitting underneath your pipeline, not a compliance footnote. Prefer connectors with a published contract — the Model Context Protocol exists precisely so tool access is a declared interface rather than a scraper (Anthropic, November 2024).
Browser-driving agents are still beta. Anthropic shipped computer use as a public beta and told people to isolate it and keep sensitive data away from it (announcement). If your GTM plan depends on an agent clicking through your CRM UI like a person, read the vendor's own caveats before you read the demo.
What a research-and-draft agent costs to run
Two thousand accounts a month, twelve tool-calling turns each. That is the first thing most teams stand up: an agent that reads an account's site and a handful of sources, produces a research brief, and drafts a first touch for a human to approve.
| Assumption | Value |
|---|---|
| Tool-calling turns per account | 12 |
| Input tokens per turn | ~9,000, once retrieved page text is in context |
| Output tokens per turn | ~700 |
| Accounts per month | 2,000 |
Arithmetic on published list prices. Retries are billed too, so a step that fails twice before working costs three times this.
Two things to notice when you move the sliders. Input tokens dominate — retrieval, not generation, is what you pay for, which means the cheapest optimisation is trimming what you stuff into context, not switching models. And list prices move: re-check OpenAI's pricing page and Anthropic's before you commit a number to a board deck.
Then the number the calculator does not show. Review time. If a human spends two minutes approving each brief, 2,000 accounts is 66 hours a month of human attention — usually a bigger line than the tokens. "Is this cheaper than an SDR" is answered by review time, not by inference.
The architecture I would not run
I would not give an outbound agent send authority with no human in the loop. Not yet.
Not because it cannot write a good email — it can — but because of how the failure presents. A model that starts producing slightly-off messages does not throw an error. It keeps working. You find out from a complaint rate that has already crossed 0.30% in Postmaster Tools, and domain reputation repairs slowly, on Google's schedule rather than yours (sender guidelines). Silent, delayed, expensive to reverse. That combination is exactly what a hard gate is for.
Two more I would avoid:
- Any "AI SDR" that sends from a shared or vendor-managed domain pool. You are inheriting other customers' complaint rates. When one of them blasts, your deliverability is part of the collateral.
- Cutting the sales team and keeping the process unchanged. The agents are good at the steps left of the boundary in the diagram above. If your pipeline dies without SDRs, you removed a function nobody replaced, and no amount of prompt work fixes a missing step.
What I would run instead: an agent that owns list building, research, CRM writes and drafting, with a step cap enforced in the runner, an allowlist of tools it may call, and a human approving the first outbound touch until you have your own measured complaint rate to point at. If you are standing this up for the first time, the shape is in Run a company with AI: your first agent, with hard caps.
The job that is left, and what would change my mind
The role that survives is smaller and harder. Reps stop being the people who assemble information and become the people who carry consequence: they set the price, they scope what is being promised, they say no, and their name is on the forecast. Fewer of them, doing the part that requires someone a buyer can hold to account. The middle of the funnel — where headcount was a proxy for research throughput — is where agents land first, because that is the reversible half.
Three things would move me:
- A legal regime where an AI system can bind a company to terms with an audit trail a court accepts. The direction of travel is the opposite: California requires the bot to identify itself, and Article 50 of the EU AI Act extends a disclosure duty across the single market from 2 August 2026 (Regulation (EU) 2024/1689).
- Buyers actively preferring an agent for high-consideration purchases. Preference for self-serve on simple products is already visible. Preference for negotiating a multi-year contract with a bot is not the same thing, and I have not seen it.
- A capped, unattended outbound agent holding a measured spam rate under 0.10% at real volume, over months, with no human approving sends — measured in the sender's own Postmaster Tools, published with dates.
That third one is the practical test, and nobody has shown it to me. Until someone does, the send button stays under a human thumb, and the answer stays no.
Sources
- California Business and Professions Code § 17941 (bot disclosure) — Makes it unlawful to use a bot to communicate with a person in California, misleading them about its artificial identity, to incentivize a sale; effective 1 July 2019.
- Regulation (EU) 2024/1689 — the EU AI Act — Article 50 transparency duties for AI systems that interact directly with people; Article 113 application dates, including 2 August 2026.
- Google — Email sender guidelines — Bulk sender thresholds (5,000+ messages/day to personal Gmail), SPF/DKIM/DMARC requirements, one-click unsubscribe, and the spam-rate targets of below 0.10% and never 0.30%.
- FTC — CAN-SPAM Act: A Compliance Guide for Business — Requirements for commercial email including honest headers, identification as an ad, opt-out honoured within 10 business days, and per-email penalties.
- Salesforce — Agentforce pricing — Salesforce meters agent work in consumption credits rather than selling it purely per seat.
- OpenAI Agents SDK (Python) — Framework-level max_turns argument that terminates a run outside the model's control.
- Anthropic — Model Context Protocol announcement — MCP as an open standard for connecting models to tools and data sources, announced November 2024.
- Anthropic — Claude 3.5 Sonnet and computer use — Computer use shipped as a public beta with explicit precautions recommended for isolation and sensitive data.
- LinkedIn User Agreement — Prohibits scraping, bots and automated access — the terms most 'AI SDR' data pipelines sit on top of.
- OpenAI API pricing — Current per-token list prices; they move, so the calculator should be re-run against this page.
- Anthropic pricing — Current per-token list prices for Claude models.
- BLS Occupational Outlook Handbook — Wholesale and Manufacturing Sales Representatives — The primary source for employment projections in this occupation, in place of vendor claims about headcount.