← all systems
OUTBOUNDENRICHMENTAI AGENT

Competitor Displacement

Finds companies running competitor tools. Scores them. Writes displacement outreach specific to the product they're using.

43 nodes3 workflowsn8n · Pronto · Airtable · Claude

The Problem

Displacement outbound should be the easiest sell — the prospect is already paying a competitor for the same thing. But real displacement requires four things at once: knowing who runs the competitor tool, scoring whether they're worth pursuing, finding the right person, and writing outreach that addresses pain points specific to THAT competitor. I watched teams attempt it by manually Googling tech stacks and writing "why we're better" emails that said nothing about the prospect's actual situation. This system handles all four. Two companies running different competitors get completely different outreach.

Stack

⚙️
n8n
Orchestrates discovery, scoring, enrichment, and sequencer enrollment
🔍
Pronto
Account search, lookalikes, tech stack detection, lead search, and email enrichment
📋
Airtable
Config store, scored accounts, enriched leads, and outreach sequences
🧠
Claude
AI Agent (Path A) or Claude Code skill (Path B) — 4-touch displacement sequence generation

How It Works

The execution path

01Competitors Detected
02Accounts Scored
03Leads Enriched
04Sequences Generated
Execution flow
WF1 fires Monday 8amaccount search + lookalike search (parallel async)
Pronto callbacks → save raw accountstwo webhooks
Tech stack enrichment → weighted scoring model
Threshold ≥ 60 → trigger lead search
Leads callback → enrich contacts (verified email)
AI Agent generates 4-touch displacement sequences
WF3 polls Outreach Ready → sequencer enrollment
Parallel discovery runs two searches simultaneously — direct account search and lookalike targeting. Results merge into a weighted scoring model: tech match carries 50%, lookalike similarity 20%, ICP fit 30%. Only accounts above 60 advance. Claude generates 4-touch displacement sequences using the specific competitor detected, not a swappable template.
WF1 — Competitor Discovery & Scoring (Monday 8am)

Fires two parallel async Pronto searches — account search by ICP keywords and lookalike search against your best customer. Both call back via webhooks, save to Airtable, then a tech stack enrichment loop detects competitor technologies. A weighted scoring model gates everything downstream.

  • ·Read ICP config from Airtable (keywords, industries, company sizes, competitor tech list)
  • ·Fire async: account search + lookalike search in parallel
  • ·Receive callbacks → tag source → save raw accounts to Airtable
  • ·Enrich each account via Pronto company_stack (batched, rate-limited)
  • ·Score: tech match (50) + lookalike (20) + ICP fit (30) — threshold ≥ 60
  • ·Qualifying accounts trigger async lead search → callback to WF2
WF2 — AI Displacement Activation

Receives leads from Pronto callback. Enriches each contact for verified email, then merges with config context and feeds everything to a Claude AI Agent. The agent applies a competitor pain library, persona routing rules, and give-first strategy to generate a 4-touch LinkedIn DM sequence per lead.

  • ·Receive leads callback from Pronto (body.leads format)
  • ·Enrich each contact via Pronto single_enrich (email verification)
  • ·Merge enriched leads with config context via Code node (not Merge — broken on n8n 2.12.3)
  • ·Claude AI Agent generates: Signal Tier, Angle, Touch 1–4 per lead
  • ·Save displacement leads to Airtable with full outreach sequences
  • ·Update source account status → "activated"
WF3 — Outreach Sequencer (shared)

Both paths converge here. Polls Airtable for leads marked Outreach Ready, formats them for the sequencer API, enrolls them, and updates status to "enrolled." One sequencer, two input paths.

  • ·Read leads where Outreach Ready = true AND status ≠ "enrolled"
  • ·Format payload for sequencer API (lead + 4-touch sequence)
  • ·POST to sequencer enrollment endpoint
  • ·Update Airtable: status → "enrolled", Outreach Ready → false

Key Design Decisions

⚖️
Weighted Scoring Gate
Tech match (50pts) + lookalike (20pts) + ICP fit (30pts). Only accounts scoring ≥ 60 trigger lead search. No enrichment credits wasted on low-confidence accounts.
🎁
Give-First Displacement
Touch 1 delivers a signal report — not a pitch. "We found you're using [competitor], here's what we see." Curiosity before conversion. Touches 2–4 introduce the displacement angle.
🔀
Agent → Sequencer Handoff
AI Agent generates displacement sequences in WF2, then WF3 picks up anything marked Outreach Ready and enrolls automatically. No manual handoff.
🔗
Async Webhook Coordination
Pronto async endpoints fire and forget. Webhook callbacks coordinate the pipeline — no polling, no blocking, no execution timeouts on long searches.

By The Numbers

43
Nodes
3
Workflows
4
Touches per displacement sequence
60
Point threshold before any outreach fires
← back to all systemsmatthew batterson · gtm engineer