AgentSDR is an open-source, self-hosted AI SDR workspace for outbound sales teams. It runs email sequences, LinkedIn campaigns and WhatsApp calls from one place, and pairs them with an AI CRM that reads every reply, classifies it and drafts the answer. The product is described as the open-source AI SDR that replaces Clay, Smartlead, HubSpot and many more, and it is designed to run on your own server with your own model key. Its stated promise is to reach, reply and close from a single workspace: sequences on each channel, AI triage on every reply, and measurement of replies, meetings and customers in one view. It is built for teams that want to own their outbound stack instead of renting a hosted service.
Outbound today is spread across a long list of separate tools. The AgentSDR landing page shows logos for Smartlead, Clay, Instantly, HubSpot, HeyReach, Attio, lemlist, Salesforce, Apollo.io, Pipedrive, Expandi, Close, Outreach, Lusha, Salesloft, Hunter, Waalaxy and folk, making the fragmentation of the modern sales stack visible. AgentSDR's answer is to collapse that stack into one self-hosted workspace where email, LinkedIn and WhatsApp run side by side and every reply lands in a single AI CRM. Because it is self-hosted, your leads, conversations and call recordings live in your own Postgres database and your own storage bucket, and there is no hosted AgentSDR service in the middle. Provider keys are encrypted at rest with AES-256-GCM, and the data and sending reputation stay yours.
Email is the first channel. AgentSDR sends multi-step sequences from your own Google Workspace mailboxes, connected through a service account with domain-wide delegation. Any CSV or XLSX column can be used as a merge field, and the system supports {A|B} spin text. Each mailbox has its own daily cap — 30 by default — plus its own sending window and signature, and campaigns can share the same pool of mailboxes, which are assigned round-robin. The list tools include one-click unsubscribe and automatic bounce suppression. The email analytics view shows emails sent, leads contacted, replies, reply rate, bounced and unsubscribed, and it is explicit that opens and clicks are not recorded, so reply rate is the engagement metric to watch. A campaign table breaks those numbers down per campaign, and mailbox health is shown with near-limit warnings and connected versus failing accounts.
LinkedIn campaigns run across several accounts through Unipile. A sequence consists of an invite, an accept message and three follow-ups. Safe pacing keeps the accounts inside LinkedIn's limits: 30 invites a day on premium accounts and 5 on free accounts, a randomised 30–60 second gap between invites, and sending only inside each account's working hours; an account that hits LinkedIn's own limit pauses for the day. Search batches can bring up to 400 leads a day per account into campaigns, and every LinkedIn reply appears in one thread view with an AI draft ready. WhatsApp adds calling and messaging. A Chrome extension, the AgentSDR Call Recorder, dials inside WhatsApp Web when you call a lead from AgentSDR, records both sides to your Cloudflare R2 bucket, and your chosen model writes the transcript; it relies on WhatsApp Web's English interface. Unanswered leads can be retried after 1, 2 and 4 days, and messages sync with a 24-hour warm-up for new numbers and a limit of 25 new chats a day per number.
At the centre is the AI CRM and inbox. Every reply is classified as Interested, Customer, Not interested or Other, using your own stages. Grounded drafts are written from your knowledge base — pricing, FAQs, case studies and objections — and held for approval rather than sent automatically; reply sequences also have every follow-up step drafted for review. The analytics show how many drafts were sent, how many replies the AI classified, and the override rate for labels a person changed. In the sample data, 71% of sent drafts went out unedited (151 of 214). The inbox is keyboard-first: J and K move, Enter opens, and ⌘K jumps anywhere. An Action required queue centralises conversations waiting on you, follow-ups that are due, and drafts to review, alongside warnings such as failing mailboxes or disconnected LinkedIn accounts.
Under every channel is one database of people and companies. You import CSV or XLSX, add your own columns of text, number, date or select, and duplicates match on email or LinkedIn. Enrichment tables let a column call an API, run a formula, ask your model or pull from Apollo, and a table can then become a campaign. The AI layer is bring-your-own-model: every AI call runs on your OpenRouter key, pinned to the provider you chose with fallbacks turned off, so your data only goes where you decided. Classification, reply drafts, transcription and AI table columns all run this way. Optional lead enrichment integrations for emails, phones and company data include Hunter, Lusha, RocketReach, Snov, FullEnrich, LeadMagic, Findymail, ZeroBounce and Apollo, plus six more.
The overall method is expressed in three words: Reach, Triage and Measure. Reach covers sequences on email, LinkedIn and WhatsApp inside each channel's limits. Triage means every reply is classified by AI with the answer already drafted. Measure means replies, meetings and customers are tracked by channel in one view. Deployment follows the same self-hosted logic: clone the repository, copy the example environment file and set the database, auth and encryption secrets, then run docker compose up; the app is ready at localhost and each channel is connected from inside the interface. Guardrails apply everywhere: daily caps, sending windows, warm-up for new numbers, and Do Not Contact honoured on every channel. The AI proposes and a person approves — a confident classification can move a lead forward in the pipeline, but a backward move, a low-confidence call and every new Customer are held for a person.
The benefit is ownership and control. You send from your own accounts, so sending reputation and data stay yours; you pay for your server and your own AI usage rather than seats, tiers or per-contact fees. Analytics turn conversations into a clear view of meetings and customers by channel. In the sample workspace, 512 replies produced 104 positive replies (27% of people who replied), 37 meetings and 6 customers, with a median first response of 38 minutes; channel reply rates were 4.1% for email, 9% for LinkedIn and 18% for WhatsApp. Because drafts wait for approval, the human stays in charge of what goes out, while low-confidence classifications are held for review.
Concrete workflows run through the workspace daily. A team imports a list, builds an enrichment table, and creates a campaign from it. Email sequences pace themselves across a pool of Google Workspace mailboxes, respecting caps and windows. LinkedIn accounts send invites and follow-ups within their limits, and replies arrive in a thread with a draft ready. WhatsApp calls are dialled from AgentSDR, recorded, transcribed and retried if unanswered. Reps then work the triage queue: approving or editing AI drafts, clearing follow-ups that are due, and moving leads through stages such as Information Requested, Demo Requested, Meeting Requested, Meeting Done and Trial User. Analytics closes the loop by showing which channel brought the replies, meetings and customers, and a single deployment can hold several organisations with separate leads, inboxes and connected accounts.
AgentSDR is built for sales teams, founders and agencies that run outbound and want a self-hosted alternative to a stack of subscriptions; the product explicitly supports whole teams, with owners, admins and members, and multiple organisations in one deployment. What you connect is your own accounts: Google Workspace mailboxes for email sequences, Unipile for LinkedIn and WhatsApp, OpenRouter for every AI step, and Cloudflare R2 for call recordings, with optional enrichment providers for table data. The stack is a TypeScript Next.js 16 application using React 19, Postgres, Drizzle, Tailwind 4, Bun and Docker, and it needs a machine that runs Docker plus PostgreSQL 16 or newer. Pricing is free: the project is open source, with no seats or per-contact fees, so the only costs are your server, your connected accounts and your AI usage.
AgentSDR's core proposition is simple: one open-source, self-hosted workspace where email sequences, LinkedIn campaigns and WhatsApp calls sit beside an AI CRM that triages every reply and prepares the answer, with your data, your model key and your sending reputation kept on your own infrastructure. Teams reach, reply and close from a single place, with guardrails on every channel and a human approving the drafts.