JARVA  LABSJL
InsightsPlaybook

Build a sales-outreach agent in n8n in one afternoon.

n8n + Claude + a single Google Sheet = a working outreach agent that qualifies leads and drafts personalised first emails. No SaaS subscription, your data stays in your infra.

CE
Charif Eddini
Co-founder · Engineering · Amsterdam
·April 22, 2026·12 min read

What you'll build

A workflow that:

  1. Reads new rows from a "Leads" Google Sheet
  2. Enriches each lead with publicly available info (company, role, recent activity)
  3. Asks Claude to score ICP fit (1–5) and decide whether to reach out
  4. If yes — drafts a personalised first email
  5. Writes the draft back to the Sheet for human review before sending

Why n8n and not Apollo / Reply / Smartlead

Three reasons.

  1. Your data stays yours. The lead list never leaves your infra.
  2. It costs $0 in subscription. n8n self-hosted on a €5/mo Hetzner box runs forever.
  3. You can change the prompt. Apollo's lead scoring is a black box. Claude with a system prompt you wrote is not.

The workflow nodes

[Schedule Trigger]              every 30 min
    ↓
[Google Sheets: Get New Rows]   filter: status = "new"
    ↓
[HTTP: enrichment]              optional — Apollo / Hunter / your own scraper
    ↓
[Claude: ICP score]             system prompt + lead data → JSON {score, reason}
    ↓
[IF score >= 4]                 split branch
    ↓
[Claude: draft email]           system prompt with your tone + lead context
    ↓
[Google Sheets: Update Row]     write draft + score back, set status = "ready_for_review"

The Claude prompts

Two system prompts. Keep them in a Notion page or a config file you can edit without touching the workflow.

Prompt 1 — ICP scoring

You are JARVA Labs's ICP filter. Given a lead, score them 1–5 on fit.
Our ICP: founders or operators of B2B companies, 5–200 employees,
shipping software or running operational complexity. Bonus: based in EU or GCC.

Anti-ICP: agencies, consultancies, students, recruiters, anyone selling to us.

Return JSON: { "score": 1–5, "reason": "<one sentence>" }.

Prompt 2 — Email draft

You write first-touch outreach in JARVA Labs's voice. The voice is:
- Direct, no fluff. No "I hope this finds you well."
- Specific. Reference one real thing from the lead's profile.
- Short. 3 paragraphs max. Under 90 words total.
- Ends with a soft ask: "30 minutes if it's interesting?"

Generate one email. No subject line. No signature.

What you should NOT automate

The send. Always have a human review the draft. AI-drafted email + human send = high reply rate. Auto-send = spam folder within a week.

Where it gets interesting

Once this is running, layer in:

  • Reply detection — if a lead replies, route the thread to a "needs_human" Slack channel
  • Follow-up scheduling — after 5 days no reply, draft a follow-up
  • Calendar booking — when reply has positive intent, send a Cal.com link

That's a full sales agent. Built on $0/mo of SaaS. Your data, your prompts, your control.

Want this in your inbox weekly? Notes from the lab.

One email per week. Build log + curated insight + client-success snippet. No fluff.

Book a 30-min call