Build an AI sales agent for outbound that books 8–12 meetings/week. Skip frameworks. Use n8n, Claude API, Apollo. Here's the actual architecture.
An AI sales agent for outbound is a system that autonomously identifies prospects, enriches their data, drafts personalized emails, and manages follow-up sequences without manual SDR intervention. Unlike traditional email automation, it uses Claude or another reasoning model to make decisions about when to send, to whom, and what to say based on prospect context. The difference between a dead project and a live revenue engine is not the LLM model—it's architecture discipline. Production outbound requires orchestration (n8n), data storage (Supabase), LLM reasoning (Claude API), and compliance guardrails working in concert. One Fortune 500 client dropped from $8K/month in LangChain-based agent overhead to $1.2K/month using Claude API plus n8n because the stack was transparent and debuggable.
Most "AI sales agent" projects die in Slack conversations. They're sold as turnkey solutions, implemented as hobby projects, then quietly archived. Here's what actually ships and generates revenue without the framework bloat.
Founders and ops leads buy "AI SDR" tools expecting plug-and-play delivery. They get an over-parameterized LLM that hallucinates, burns API spend, and books zero real meetings. The real difference isn't the model—it's whether your stack is debuggable.
The reason most projects fail is architectural, not technical. When you use a single vendor's dashboard (or worse, a framework like LangChain), you lose observability. You can't see why the agent made a bad decision. You can't throttle emails to stay off spam lists. You can't sync data back to your CRM in real-time. The agent becomes a black box that costs money and generates excuses.
Production AI outbound needs four things: an orchestration layer (n8n) that controls every decision, a data layer (Supabase) that remembers what was already said to each prospect, a reasoning engine (Claude API) that decides if and what to send, and compliance guardrails that keep lawyers happy. You own every piece. No magical dashboards. No mystery pricing. No model updates that break your workflows mid-week.
One mid-market B2B SaaS company we worked with tried a popular "AI SDR" platform. Six weeks in, they'd spent $4K on API overages because the system was sending duplicate emails to the same prospects. They switched to this stack. Month one: $1.2K total spend. 23 meetings booked. ROI positive by day 18.
Layer 1 is orchestration. n8n runs on your own VPS or Vercel and decides what the agent does next: enrich leads, draft personalized emails, schedule follow-ups, update CRM. You control the flow.
Layer 2 is data and memory. Supabase PostgreSQL stores everything the agent has ever said to each prospect, plus company data, funding history, and tech stack. Optional: Pinecone for lead context retrieval-augmented generation (RAG). Your agent needs to remember. Without this, it hallucinates company details and sends generic emails that bounce.
Layer 3 is reasoning. Claude API, not GPT-4 Turbo. Claude's tool_use parameter is more reliable than function calling for multi-step sales workflows and costs 60% less per million tokens. At $3 per 1M input tokens and $15 per 1M output tokens, batch personalization of 100 prospects daily runs ~$12/month.
The stack is boring and that's why it works. You own every piece. No locked-in vendor. No proprietary model updates that tank your email delivery rates. No framework overhead. You debug with SQL queries and n8n logs, not vendor support tickets.
Your AI agent makes bad decisions without good data. Garbage in, garbage out.
Start with Apollo or Hunter.io for bulk prospect lists. Apollo wins for mid-market B2B (better accuracy on job titles, faster lookups). Hunter is cheaper per lookup but has longer latency. Ingest the list into Supabase.
Then enrich in n8n: pull company headcount from Apollo, recent funding from Crunchbase API, tech stack from BuiltWith, last LinkedIn update from the prospect's profile. Store it all in Supabase with timestamps. Use RAG (not fine-tuning) to give Claude context about each prospect. Fetch 2–3 pieces of company data before drafting the email. This cuts hallucinations by roughly 70%.
Example: A B2B SaaS company enriched 500 prospects with company funding data and recent job postings. The AI agent referenced specific hiring events in subject lines ("Congrats on the $15M Series B—here's how we help you onboard fast"). Email open rate jumped from 12% to 31%. Same audience, better data, better results.
One rule: never query the same prospect twice in a day. Add a Supabase check before any outreach: "Was this lead last messaged by the agent in the past 48 hours?" If yes, skip. This prevents spam complaints and keeps your sender reputation clean.
Clauide doesn't just write emails. It decides when to send them, to whom, and in what sequence. Use tool_use to control the flow.
Set up a system prompt that mimics your best sales rep. Don't say "Write like a friendly marketer." Be specific: "You're an SDR for a $50M SaaS company selling contract lifecycle management to general counsel at 100–5000-person firms. Your first touch is always a 2-sentence reference to a recent board update or hiring announcement specific to the prospect."
Have Claude make three decisions per prospect: (1) Should we message this person and why? (2) What's the hook? (3) What's the follow-up sequence? Use token budgeting. At 80K input tokens per request, a batch of 100 prospects for personalization costs ~$0.40 in API spend. Running this daily is under $15/month.
The system prompt should be tight—200 words, not 2000. More instructions don't mean better emails. A focused prompt beats a manifesto every time.
Good outbound is never a single email. It's a 5–7 touch sequence over 18–21 days. The AI agent decides which touch to send based on response status.
In n8n, create a conditional workflow: If no reply after 3 days, send touch 2. If no reply after 5 more days, send touch 3. If the prospect replied positively, hand off to Salesforce or HubSpot for manual follow-up. Sync every interaction back to your CRM immediately. Use n8n webhooks so your sales team sees what the agent did in real-time.
Test results: one client's agent sent 320 initial touches in week one. 52 replied positively. The agent's follow-up sequence on those 52 resulted in 11 booked demos ($250K in pipeline). A manual SDR would have taken 8 weeks to reach the same prospects. The agent did it in 7 days.
This is where most AI agents die legally. Add compliance guardrails inside the n8n workflow: check for GDPR consent, do-not-contact lists, and CAN-SPAM headers before Claude drafts anything.
Use n8n's built-in email sending or Instantly.ai for higher volume. Never let Claude hit SMTP directly. Set rate limits: max 20 emails per domain per day. Max 50 unique prospects per day initially. This keeps email providers from flagging your sender IP as a bot.
Example: A fintech client built a compliance check that flagged 40% of prospects as "no-contact" because they were in a regulated vertical. The agent caught these before sending. Zero compliance violations. Zero angry lawyers.
Claude API: ~$0.40/day for batch personalization of 100 prospects. ~$12/month.
n8n (self-hosted on a $5/month VPS): free software, $5 hosting, $0 per execution.
Apollo/Hunter: ~$500–2K/month depending on volume.
Supabase: free tier until 500K rows. ~$25/month after that.
Total: $537–2,537/month for a production AI sales agent that books 8–12 meetings/week. One booked deal at $5–10K contract value covers your entire month's spend. Most clients see positive ROI by week 6.
Mistake 1: Using a framework as a substitute for thinking. You end up debugging LangChain instead of the agent. Skip the framework. Use Claude API directly with n8n orchestration.
Mistake 2: Over-parameterizing the system prompt. More instructions don't mean better emails. A tight 200-word prompt beats a 2000-word manifesto.
Mistake 3: Sending cold emails without enrichment. The agent hallucinates, emails bounce, sender reputation tanks, domain gets blocklisted.
Mistake 4: Not throttling. Sending 500 emails in one day is spam. Spread it over a week. The agent should respect email provider limits.
Traditional email automation sends the same message to everyone on a list. An AI sales agent reads prospect data, makes decisions about timing and personalization, and adjusts its approach based on responses. It's reactive, not just scheduled.
If you start with templates and existing APIs, 2–4 weeks. If you're building from zero, 6–8 weeks. The hard part isn't the code—it's getting data clean and building compliance guardrails.
You can use ChatGPT, but Claude is faster, cheaper, and more reliable for multi-step workflows. Claude's tool_use parameter is more predictable than function calling. Use Claude.
---
If you want to talk through applying this to your stack, book a strategy call at cognival.co/book.
30-min strategy call. No pitch, real look at your stack.
Book a strategy call →