Skip to content

Built for agents · supervised by humans

The CRMfor AI agents.

Your agents talk to thousands of people. UndoCRM is where they remember who everyone is, what was said, and what's owed. It's built for agents as the users, with humans supervising.

Start free
Drag through time · Jane Doe, remembered across 9 agent writesnow
JD
Jane Doe · VP Support, Acme · jane@acme.com
Budget$80k / yr
Deal stageContract sent
Claimed bysdr-1
Contact rulesOK to contact
sdr-1 logged a reply: "budget approved, need SOC2"

The problem

Every CRM was built for a person clicking through screens. Agents get bolted on.

old · context
Six API calls and 9,000 tokens to learn who Jane is.

1 callContext in one call. A ~200-token brief on the person, ranked by what the agent is about to do.

old · logging
Contact, note, task, deal: four calls to log one email.

1 callLogging in one call. The conversation, what was learned and what's owed. Duplicate people merge automatically.

old · agents
Two agents emailed Jane the same morning.

claimTeamwork between agents. Agents claim a person before contacting them, and opt-outs are honored by every agent.

old · building
A mini-CRM, rebuilt inside every agent.

5 toolsNative to agents. Five MCP tools in HubSpot's vocabulary, which agents already know. Connect with one command.

What UndoCRM gives your agents

Everything an agent needs to talk to people well. Nothing it doesn't.

One person, every channel

Emails, phones and handles resolve to one record. Duplicate people merge automatically, so every agent sees the same Jane.

Memory across sessions and agents

Every conversation, fact and follow-up for every person. Each value keeps its history, with the agent that wrote it and when.

Teamwork between agents

Agents claim a person before contacting them. Two asking at once: exactly one wins.

Opt-outs every agent honors

One agent hears "stop"; every agent knows. Only a human can lift it.

Context in one call

A ~200-token brief, ranked by what the agent is about to do.

Humans in control

A clean dashboard for timelines, deals and an audit log of every agent action — with undo if something goes wrong. Undo never deletes data.

Native to agents

MCP-first. Five tools in HubSpot's vocabulary, which models already know.

How it works

One loop. Every conversation.

Read the brief

Rules, deals, tasks, facts and history — ranked by purpose, cut to a token budget. About 200 tokens.

read("jane@acme.com")

Check and claim

Blocked if they opted out or another agent is on it. Otherwise they're claimed for you.

can_contact(person, "email")
→ ALLOWED — claimed for you until tomorrow 09:00

Send

With your own tools — email, phone, SMS, LinkedIn. UndoCRM never sends anything and never calls a model.

your agent

Log what happened

One call records the conversation, what was learned and what's owed. New people are created; duplicates merge.

create(type: "interaction")

Humans supervise

Every one of those writes shows up in the timeline and the audit log, attributed to the agent that made it. If something went wrong, undo it.

Activity → Undo

Why it beats existing CRMs

Agents aren't salespeople. Stop making them use a sales tool.

Traditional CRMsUndoCRM
Main userSales repsAI agents
InterfaceUI first, API added laterMCP and API first, UI for supervision
Getting contextMany calls, raw recordsOne call, a ~200-token brief
Logging a conversationSeveral callsOne call
Multiple agentsCoordination is your problemBuilt in
PricingPer seatPer contact. Agents aren't seats.
AIPaid AI add-onsNo LLM inside. Your agent does the thinking.

Speed is the product

Fewer calls. Fewer tokens. No waiting.

<60ms
p95 for every agent call, with 1,000,000 contacts in one workspace
~600
concurrent writes a second, with zero duplicate people
5
MCP tools: read, create, update, delete, can_contact
0
LLM calls. Your agent decides; UndoCRM stores and enforces

Benchmarked with 1M contacts, 3M interactions and 2M facts in one workspace. Results and limits: docs/performance.

Humans in control

Four agents updated Jane's record today. You see all of it.

Every agent action lands in an audit log with the agent that made it. If one went wrong, undo it — try it here, and watch the record put itself back.

Contact v12
JD

Jane Doe

VP Support · Acme
⦸ Do not contact⇄ 3 identities
Budget$500k / yr
Deal stageClosed lost
Identitiesjane@acme.com · +1 415 555 0142 · jane.d@gmail.com
Job titleIntern
Audit log · Jane Doe 5 writes

⌘Z works here too — and anywhere on this page.

Connect in one command

Speaks MCP. And plain HTTP.

Works with Claude Code and any MCP client over Streamable HTTP. Results are short text written for a model, with the ids the next call needs. Errors say what to do instead.

$ claude mcp add --transport http undocrm https://undocrm.com/mcp --header "Authorization: Bearer ucrm_agt_…"
create({
  type: "interaction",
  person: "jane@acme.com",
  properties: {
    channel: "email", direction: "inbound",
    summary: "Budget approved at $80k; needs SOC2 first."
  },
  facts: { budget: "$80k/yr", blocker: "SOC2 report" },
  tasks: [{ due: "2d", subject: "Send the SOC2 report" }]
})

For agent builders

One workspace per customer. Created by API.

Built for developers whose agents talk to people: AI SDRs, recruiters, receptionists, support agents. Each of your customers gets an isolated workspace — its own agents, keys and data — from one call in your backend, so you can run agents for many clients.

Your organizationyour team · org keyucrm_org_…
Acme Corpa workspace per customerPOST /v1/workspaces
Agentsone key eachucrm_agt_…
Globexanother customerisolated

Pricing

Priced per contact. Agents aren't seats.

Free

$0
Contacts
1,000
Workspaces
1
API limits
60 req/min, 5,000/day
Start free

Beginner

$10/mo
Contacts
5,000
Workspaces
1
API limits
600 req/min, 100,000/day
Get started

Pro

$29/mo
Contacts
25,000
Workspaces
3
API limits
Unlimited (fair use)
Get started

Ultimate

$299/mo
Contacts
500,000
Workspaces
10
API limits
Unlimited (fair use)
Get started

Enterprise

Custom
Contacts
Custom
Workspaces
Custom
API limits
Contact us
Contact us

Questions

Asked and answered.

What is UndoCRM?
UndoCRM is the CRM for AI agents: agents are the users, and humans supervise. Agents that talk to people — AI SDRs, recruiters, receptionists, support agents — connect over MCP or HTTP to remember who everyone is, what was said and what's owed. They get context in one call, log a conversation in one call, and coordinate so two agents never message the same person. Humans watch timelines, deals and an audit log in a web app, and can undo any agent action.
How is UndoCRM different from Salesforce or HubSpot?
Salesforce was built for salespeople; UndoCRM is built for agents. Traditional CRMs are UI-first, with an API added later that mirrors the screens: getting context takes many calls that return raw records, logging a conversation takes several more, and coordinating multiple agents is your problem. UndoCRM is MCP- and API-first: a ~200-token brief in one call, logging in one call, coordination built in, no LLM inside, and pricing per contact rather than per seat, because agents aren't seats. It uses HubSpot's names for objects and properties, so agents already know the vocabulary.
What can I undo?
Every change an agent or a person makes in UndoCRM is recorded in an audit log, and most can be reversed with one click: merged contacts split back apart, logged interactions are hidden and their facts retracted, wrong facts are retracted, deals return to their previous stage, and do-not-contact rules are restored. Undo never deletes data. Messages your agent already sent through your own tools can't be unsent — UndoCRM's claims and do-not-contact checks exist to stop the wrong ones before they go.
How much does UndoCRM cost?
UndoCRM is priced per contact, not per seat. Free is $0 for 1,000 contacts, 1 workspace and 60 requests a minute (5,000 a day). Beginner is $10 a month for 5,000 contacts, 1 workspace and 600 requests a minute (100,000 a day). Pro is $29 a month for 25,000 contacts and 3 workspaces. Ultimate is $299 a month for 500,000 contacts and 10 workspaces. Pro and Ultimate have unlimited API requests under fair use. Enterprise plans are custom: contact us.
Does UndoCRM use an LLM?
No. Your agent reads the conversation and decides what matters; UndoCRM stores it, enforces the rules and coordinates agents. UndoCRM never sends your data to a model, which keeps it fast, cheap, predictable and private.
How do AI agents connect to UndoCRM?
Over MCP (Streamable HTTP) at /mcp with an agent API key, or over the REST API at /v1. In Claude Code it's one command: claude mcp add --transport http undocrm https://undocrm.com/mcp --header "Authorization: Bearer ucrm_agt_…". The server sends the agent its usage instructions when it connects.
How does UndoCRM stop two agents from messaging the same person?
Before any outbound message, an agent calls can_contact. If nobody else is handling the person, it returns ALLOWED and claims them for that agent (24 hours by default). Any other agent asking gets BLOCKED, with who holds the claim and why. The check and the claim happen in one database transaction, so two agents asking at the same instant can't both be allowed.
What happens when someone asks not to be contacted?
The agent records a do-not-contact rule for one channel or all of them, and every agent's next can_contact returns BLOCKED with the person's reason. Agents can add restrictions but cannot remove them; only a human can lift a do-not-contact rule.
Can I serve many customers from one account?
Yes. Your organization owns many workspaces, typically one per end customer, each fully isolated with its own agents, keys and data. Create them in the web app or from your backend with an org API key (POST /v1/workspaces). Your team signs in with owner, admin or member roles.
How fast is UndoCRM with a lot of data?
Measured with one million contacts, three million interactions and two million facts in a single workspace, every agent call answered in under 60 milliseconds at the 95th percentile, and concurrent writes ran at about 600 per second without creating duplicate people.
Where does UndoCRM run?
UndoCRM is a hosted service. Enterprise plans can discuss dedicated deployments.

Salesforce was built for salespeople. UndoCRM is built for agents.

Create a workspace, connect an agent with one command, and watch it work.

Your session · press ⌘Z to undo
⌘ZUndone