work / FIG. 04

← all systems

AI Lead Qualification & Multi-Channel Funnel

live demodemo build

Beauty salon. One landing form fans out through a webhook to Google Sheets, Telegram and Zoho CRM; AI scores intent hot / warm / cold and drops each lead into the right Klaviyo list for personalized email.

FORMn8nfan-outSHEETSTELEGRAMZOHO CRMAI SCOREhot/warm/coldKLAVIYO~8 sbranches isolated — one failure never blocks the rest
FIG. 04 — multi-channel funnel4 systems, 1 form
Demo of the full cycle: from the landing form to 4 systems + AI qualification in Klaviyo

The scenario

A beauty salon scenario: Instagram ad traffic driving a “first haircut −50%” promotion. Before automation, the ad pointed to the main site with a full menu and gallery — attention scattered and leads got lost. Every submitted inquiry was handled by hand: a manager copied contacts into a spreadsheet and the CRM, then sent everyone the same generic follow-up.

Pain Consequence
Manual copy of leads into Sheets/CRM 10–15 min per lead, human error
Slow reaction to a new inquiry Customer moves on to a competitor
No segmentation by intent Same email to everyone → low conversion
Data scattered across systems No single view of a lead
Process doesn’t scale A spike in leads overwhelms the manager

What I built

One workflow, one landing-page form submit, one webhook.

Fan-out to three systems in parallel. A single form POST hits an n8n webhook with allowedOrigins: * for cross-origin submits from the landing page. After field normalization, the data goes to Google Sheets (a running log), Telegram (an instant manager notification in Ukrainian, Kyiv time) and Zoho CRM (a lead card via OAuth 2.0) — three independent branches.

AI intent qualification runs alongside the fan-out, not after it. A prompt at temperature 0 reads the lead’s comment and returns strict JSON, {"category":"hot|warm|cold"}. A Switch node routes on that category into one of three Klaviyo lists — hot, warm, cold — so the next email a lead receives is already matched to how ready they are to book.

Every branch is isolated. onError: continueRegularOutput sits on every external-facing node, so a Klaviyo hiccup can’t take down the CRM write, and a CRM timeout can’t stop the Telegram alert.

Architecture

The diagram above matches the running workflow: one webhook normalizes the form fields and fans out to Sheets, Telegram and Zoho CRM directly, while a parallel AI-qualify branch scores intent and routes the same lead into the matching Klaviyo list through a Switch node.

Hard lessons that shaped it

  • A classifier needs a landing state, not just a happy path. A 3-level fallback — invalid JSON, a model timeout, or any parse failure — all resolve to “warm,” never to a dropped lead. Doing nothing was never an acceptable failure mode for a lead-capture step.
  • onError: continue belongs on every branch, not just the AI one. With four independent destinations, treating the workflow as one unit would mean a single flaky API — Zoho’s OAuth token expiring, say — blocks Sheets, Telegram and Klaviyo too. Isolating each branch keeps a partial failure partial.
  • One Klaviyo node, not three. The first version had a separate “add to list” node per category. Collapsing it into a single node with the list ID resolved dynamically from the Switch output cut node count and made adding a fourth segment later a one-line change, not a new node.

Results

Metrics are measured in test runs — this is a demo build, not a client testimonial.

Metric Before After
Processing one lead 10–15 min manually ~8 seconds automated
Manual work per lead ~10 min 0
Systems updated from one form 0 (manual copy-paste) 4 (Sheets, Telegram, Zoho, Klaviyo) + AI
Lead segmentation 0% (same message to everyone) 100% automatic (hot/warm/cold)
Manager reaction time hours instant notification, <10 s
AI qualification cost ~$0 (free-tier OpenRouter model)

Try it yourself

The landing page is live at everbeauty.mahinko.com — its form runs this exact pipeline. Submit a lead and watch it land in Sheets, Telegram, Zoho CRM and the right Klaviyo list within seconds.

contact

Have a process that eats your team's hours?

Describe it in a couple of sentences — I'll reply with an automation plan: what to build, what it touches, and what it will save.

telegram@shuriken_86mailtomahinko86@gmail.com

responseusually within one working day

// this form runs on my own n8n — a person replies, not an autoresponder