n8n lead-scoring AI agent adds a human approval checkpoint

This describes an built in n8n for sales outreach . The pipeline works as follows: Apollo finds and filters potential leads, Claude analyzes each lead, scores how well it fits, and drafts an initial outreach message, then Slack routes it to a human for review and approval, and once approved the system sends the message and logs it. The goal was not full of sales outreach but adding a human checkpoint so AI handles the repetitive analysis while a person makes the final call.

Several lessons came out of building it. Having Claude return output made the workflow far easier to build, since downstream steps could reliably consume the data. Apollo's search is good for discovering leads, but getting verified contact details requires a separate enrichment step.

Slack-based approval is a workable middle ground between full and doing everything manually. n8n's expression syntax (={{ }}) is a small detail that can cause confusing bugs when debugging.

Key points

  • Workflow order: Apollo (lead discovery) → Claude (analysis, scoring, draft message) → Slack (human approval) → send and log
  • Deliberately kept a human approval checkpoint instead of full
  • output from Claude made downstream much more reliable
  • Apollo's search is for lead discovery only; verified contact enrichment is a separate step
  • n8n's ={{ }} expression syntax can cause confusing debugging issues
Read original