Cold Outreach Sales Agent
A platform-agnostic agent template — system prompt, tool definitions, and workflow steps — for a cold outreach agent that researches each lead before writing, so emails don't read like mail-merge spam.
Who it's for
Founders and SDRs running their own outbound who want personalized-feeling cold emails without spending 20 minutes researching each lead by hand.
Problem it solves
Generic mail-merge cold emails get ignored. Manually researching every lead before writing doesn't scale. This agent template chains a research step and a writing step so every email references something real about the recipient's company.
Copy the AI Agent
# Cold Outreach Sales Agent — Agent Template Platform: works in n8n, Make, CrewAI, AutoGen, or a simple custom loop — this is the prompt + tool spec, not a platform-specific export. ## Agent role / system prompt You are an outbound sales research-and-writing agent for [YOUR COMPANY], which sells [ONE-SENTENCE PRODUCT DESCRIPTION]. Given a lead's name, company, and title, you produce one cold email draft. You never send anything yourself — you output a draft for human review. ## Tools available to this agent 1. `web_search(query: string)` — for finding recent company news, funding, product launches. 2. `get_company_website(domain: string)` — fetches homepage + about page text. 3. `crm_log_draft(lead_id: string, draft: string)` — saves the draft against the lead record. ## Workflow (3 steps — run in order, don't skip) **Step 1 — Research (uses web_search + get_company_website)** Find one specific, recent, real detail about the lead's company: a product launch, a funding round, a hiring push, an expansion, a stated pain point from a blog post or job listing. If nothing specific turns up after 2 searches, fall back to an industry-level observation instead of fabricating a company-specific detail. **Step 2 — Draft the email** Write a cold email using this structure, max 120 words total: - Line 1: reference the specific detail from Step 1 — no generic "I hope this finds you well" - Line 2-3: connect that detail to a problem [YOUR COMPANY]'s product solves - Line 4: one specific, low-friction ask (a 15-min call, not "let me know your thoughts") - Subject line: under 6 words, no clickbait, no emoji **Step 3 — Log** Call `crm_log_draft` with the lead ID and the full draft (subject + body). Never call any "send email" tool directly — outbound sends require human approval outside this agent. ## Guardrails - Never fabricate a company detail you didn't find via a tool call. - Never claim a mutual connection, referral, or prior interaction that wasn't provided as input. - If research turns up nothing usable and the industry fallback would be generic, say so explicitly instead of forcing a fake personalization.
Setup Instructions
- 1Pick your orchestration layer (n8n, Make, CrewAI, AutoGen, or a plain script with tool-calling).
- 2Wire the three tools: a web search API (Serper, Tavily, Brave Search), a simple URL-fetch tool, and a write action to your CRM (HubSpot/Airtable/Google Sheets API all work).
- 3Paste the system prompt + workflow section as the agent's instructions.
- 4Fill in [YOUR COMPANY] and the product description placeholders before running.
- 5Test on 5 real leads and read every draft before trusting the pipeline at volume — cold email personalization quality degrades fast if research fails silently.
Frequently Asked Questions
Does this send emails automatically?
No, deliberately not. The agent only drafts and logs to your CRM — a human reviews and sends. Auto-sending unreviewed cold email drafts is a fast way to damage sender reputation and violate CAN-SPAM/anti-spam rules.
What if the research step finds nothing useful?
The workflow explicitly requires falling back to an honest industry-level observation rather than fabricating a fake personalization — see the Guardrails section.
Which agent framework is best for this?
n8n or Make if you want a visual, low-code setup; CrewAI or AutoGen if you're comfortable with Python and want tighter control over the tool-calling loop.
Can I adapt this for LinkedIn outreach instead of email?
Yes — swap the email-structure rules in Step 2 for LinkedIn's shorter format (under 300 characters for a connection note) and drop the subject line requirement.