Classify cold email replies for AI inbox triage
A production-grade classifier for the 'Categorize Reply' node in an n8n, Make, or custom pipeline. Every inbound reply becomes structured JSON — category, objection type, extracted referral contacts, OOO return dates, and a requires_human flag with explicit escalation rules — so your automation routes interested replies to reps in minutes while objections and OOOs feed the right follow-up branches.
You are a reply classification engine for a cold email inbox. You receive the raw text of one inbound reply to an outbound campaign. You output ONLY a JSON object — no preamble, no explanation, no markdown fences — matching this exact schema:
{
"category": "interested" | "objection" | "referral" | "ooo" | "negative",
"confidence": 0.0-1.0,
"objection_type": "budget" | "timing" | "incumbent" | "no_need" | "trust" | "other" | null,
"referred_contact": { "name": string or null, "email": string or null, "title": string or null } | null,
"return_date": "YYYY-MM-DD" or null,
"requires_human": boolean,
"summary": one sentence, max 20 words
}
Classification rules:
- "interested": any positive engagement — questions about the product, pricing curiosity, meeting acceptance, 'tell me more'. Pricing questions are interested, not objection.
- "objection": pushback that leaves the door open — budget, timing, incumbent vendor, 'we tried this before'. Set objection_type.
- "referral": redirects to another person. Extract referred_contact fields; never invent values not present in the text — use null.
- "ooo": autoresponders. Extract return_date if stated; if a delegate is named, ALSO populate referred_contact.
- "negative": clear rejection, unsubscribe demands, hostility, legal threats.
- requires_human is true for: legal/compliance language (GDPR, CCPA, lawsuit, attorney), threats, press or partnership inquiries, existing-customer confusion, anything sexual or abusive, and any reply where confidence is below 0.7.
- Ambiguous polite brush-offs ('thanks, we're all set') are "objection" with objection_type "no_need", not "negative".
- If the reply quotes the original outbound email plus a one-line answer, classify based on the one-line answer only.
- Non-English replies: classify normally, note the language in summary.
- If the text is empty or pure signature/legal boilerplate, output category "negative", confidence 0.3, requires_human true.
Output the JSON object and nothing else.How to use it
- 1
Paste the prompt as the system prompt in your pipeline's LLM node (n8n's Claude or OpenAI node, or a direct API call), with the reply text as the user message.
- 2
Wire the JSON output to a router: interested pings the rep on Slack instantly, referral and ooo feed contact-extraction branches, requires_human goes to a review queue.
- 3
Test against 20 real replies from your inbox before going live — check the ambiguous ones (polite brush-offs, quoted-thread replies) land where you expect.
- 4
Log every classification next to the eventual human judgment for a week, then tighten the rules section with any recurring misses.
Best practices
Keep the requires_human threshold conservative at first — a false escalation costs a minute of review; a hostile reply answered by automation can cost the domain.
Strip email signatures and quoted threads before classification where you can — n8n's code node can cut everything after the first quoted line — accuracy jumps noticeably.
Route by confidence, not just category: an 'interested' at 0.95 can trigger an instant rep alert, while 0.72 goes to the review queue first.
Re-run your misclassification log monthly and patch the rules — every inbox develops its own weird reply patterns.
Example: what this looks like in practice
A RevOps lead at a company sending 15,000 cold emails monthly wires this into n8n between the Smartlead reply webhook and a router node. Across the first week it processes 340 replies: 41 interested (reps alerted on Slack within two minutes, versus the next-morning average before), 63 objections tagged by type and fed into tailored follow-up branches, 12 referrals with contacts extracted straight into a Clay table, 96 OOOs scheduling their own re-sends, and 128 negatives auto-suppressed. Nine replies flag requires_human — including one GDPR demand and one confused existing customer that automation would have mangled. Reply-to-meeting conversion rises simply because interested replies stopped waiting overnight.
Best fit
This prompt is one gear in a bigger machine. We orchestrate 20+ tools into outbound systems our clients own — and guarantee the results.
Apply for a Pilot Spot → →Frequently asked questions
Yes — modern LLMs handle the five core categories (interested, objection, referral, OOO, negative) with high accuracy when the prompt defines edge cases explicitly: pricing questions count as interested, polite brush-offs are objections rather than negatives, quoted threads are classified by the new text only. The requires_human flag catches the genuinely ambiguous rest. Expect strong day-one performance and better-than-junior-SDR consistency after a week of rule tightening.
More reply & objection handling prompts
Convert a positive reply into a booked meeting before it cools off
Closes the gap where outbound pipelines leak most — between 'interested' and 'booked'. The reply answers their question in one line, offers two concrete times plus a link, and names the meeting payoff, all under 70 words. The pre-written 48-hour bump catches the prospects who meant yes but got busy, which is most of them.
Handle 'we already have a vendor' without trashing the competitor
Turns the most common outbound objection into a wedge conversation. Instead of attacking the incumbent or retreating, the reply legitimizes the prospect's choice and probes one specific gap as a question — the only competitive angle that doesn't insult their judgment. The interview forces you to name a provable differentiator, and the model pushes back if it's generic.
Answer 'can you guarantee results?' without overpromising or dodging
Answers the guarantee question the way buyers actually mean it — proof, downside protection, and shared risk — without the overpromise that becomes churn or the dodge that reads as no confidence. If your interview answers reveal you have no real risk-reversal structure, the model says so and proposes guarantee structures instead of writing copy that papers over the gap.