DEV Community

ServBay
ServBay

Posted on

I Replaced My Manual Lead Follow-Up With n8n and a Local Gateway

I spent a week tracking what I actually did with incoming enquiries. The answer was embarrassing: copying text, pasting it into a sheet, reading it twice, writing a reply, then setting a reminder I sometimes forgot. Almost none of that was the part I get paid for.

So I rebuilt the pipeline. Nothing here needs code, and the piece that made it reliable was moving model access onto my own machine.

The shape of the thing

A form collects the enquiry. An orchestration tool picks it up, hands the free-text requirement to a model, and writes the result to two places: a CRM row and a task board card. A reply draft is created but not sent.

Lead pipeline: form → automation engine → local AI gateway → CRM, Notion and email draft

Step 1: the form

Tally gives me a form that behaves like a document. Four fields: name, email, budget as a single choice, and a long text field for the actual requirement. Switch on the Webhook and point it at n8n.

Step 2: the trigger

In n8n I add a Webhook node and start listening. Submitting a test entry shows me the raw payload, which is the moment the whole idea stops being abstract.

Step 3: the gateway (this is the part I got wrong first)

My first version called the model vendor directly from n8n. It worked for a week, then the bill spiked, and I discovered my key was sitting in an exported workflow file.

The second version routes everything through ServBay running locally. It acts as an AI development foundation on my machine, and the practical differences are concrete:

  • The AI gateway gives me one local endpoint for Anthropic, OpenAI, Gemini and the OpenAI-compatible relays I occasionally use.
  • Protocol conversion is handled there, so a node written against the OpenAI message format keeps working when I switch the underlying model.
  • I hand n8n a virtual key with a spending limit, not the real one. The real keys stay encrypted locally and never travel with an exported workflow.

That last point is what convinced me. My automation tool now holds a key that can be revoked and capped; the keys that cost real money never leave the laptop.

Four steps of automated lead processing: form data, gateway structuring, intent grading, CRM and Notion writes

Step 4: two writes

Parsing the model output gives me structured fields. One node appends a row to Airtable with the name, email, budget, the extracted pain point and the intent grade. A second node creates a Notion page titled with the customer name and urgency, pastes the summary and marks it as awaiting first review.

Step 5: draft, never send

The email node is set to create a draft. The generated reply lands in my outbox with the customer address already filled, and a message with the Notion link shows up in the team channel.

I turned off automatic sending on purpose. Quotations with discounts, complaints and anything the model grades as low or weird still get a human read before they leave the building.

The prompt, and the two rules that matter

【Analysis and decision rules】
1. Intent level:
   - High: budget above 5,000 and a concrete product, pain point or launch date.
   - Medium: a specific request, but budget unclear or still an enquiry.
   - Low: unrelated content, job applications, advertising, meaningless characters.
2. Extract the core pain point in 30 characters or fewer.
3. Draft a reply: confirm receipt, outline a solution, propose a 15-minute call.
   Leave the draft empty when intent is low.

【Output requirements】
Return JSON only:
{
  "client_name": "customer name",
  "intent_level": "high / medium / low",
  "urgent": true,
  "needs_summary": "pain point summary",
  "email_draft": "reply body",
  "need_manual_review": false
}
Enter fullscreen mode Exit fullscreen mode

Two things fixed my early garbage output. Requiring JSON only, with no explanatory sentence before or after. And telling the model to mark unrecognisable input for me instead of guessing an intent level.

Creating a project-level virtual key in ServBay Access Management

What it changed

The honest numbers after two months: roughly four hours a week back, first replies down from hours to minutes on high-intent leads, and a CRM that no longer has holes in it. The monthly cost of forms, orchestration and tokens sits well under what I used to lose by forgetting to follow up once.

Three traps I hit

Connecting too many systems at once. My first attempt wired email, SMS, calendar and two social platforms, and debugging it was hopeless. One flow first.

Automating a process that has no offline rules. If I cannot state my own classification standard in a sentence, the model cannot either. Automation amplifies clarity and chaos equally.

Changing the prompt without a backup. I broke my output format once and had no working version to roll back to.

If you want to try this, pick the single most annoying mechanical thing you did today and automate only that.

Top comments (0)