SIG9
A SYSTEM I BUILT · CONVERT

Website form leads, scored and answered with a reply I approve

Lead to reply is a system I built to follow up on website form leads. It checks each submission, catches repeats, adds the lead to HubSpot, then scores it and drafts a reply. I approve the draft in Telegram, and Gmail sends it while HubSpot gets a follow up task. It has run end to end on my own accounts.

Form leads that wait, or land in the CRM twice

A lead fills in the form on the website, and the message sits until someone has time for it. Leads that wait for a reply often go somewhere else. When someone does get to it, the details get typed into the CRM by hand. Some leads never make it in, and others show up twice.

I built lead to reply so each form lead lands in HubSpot once, with a score and a drafted reply waiting for me. I read the draft on my phone in Telegram, and I approve every reply.

[ ON SUBMIT ][ COMPLETE ][ FIRST TIME ][ CONTACT ][ OK TO EMAIL ][ DRAFT READY ][ APPROVED ]GMAIL SENDS ONLY AFTER I APPROVEWebsite forma lead fills it inSubmission checkedincomplete ones stop hereDuplicates caughta repeat does nothing newContact in HubSpotadded once, or updatedConsent checkedbuilt to hold back opt outsScored, reply draftedby one AI stepCard in Telegramthe lead, its score, the draftI approveone tap on the cardGmail sends the replyand HubSpot gets a follow up task[ ALONGSIDE THE FLOW ]Run log in a Google SheetA failed step alerts me
A form lead is checked, added to HubSpot once and scored, and its drafted reply waits for my approval in Telegram before Gmail sends it.

What is proven and what is not yet

What it doesStatusHow I know
Runs end to end on the real servicesProvenA test lead passed the checks, went into HubSpot, then was scored with a drafted reply. I approved it in Telegram, Gmail sent the reply and HubSpot got the follow up task. The run left one row in the run log and one record in Langfuse.
Scores the lead and drafts a replyProvenOn one test lead it took 5.35 s from the form to a score and a drafted reply.
A declined draft sends nothingProvenI declined a draft on the live system. No email went out and no HubSpot task was created. The run log recorded the decline.
The same submission sent again does nothing newProvenI sent one submission a second time. The run log marked it as a repeat, and it never reached HubSpot, the AI step or Gmail.
A failed step reaches meProvenA real Gmail sign in failure stopped one send. The run was logged, I got a Telegram alert with how to rerun the lead, and no HubSpot task was created for it.
Skips a lead who opted out of emailNot yet provenThe step is built. No opted-out lead has gone through it, in a test or on the live system.
An approval nobody answersNot yet provenThe card waits for my answer. In the only live test of that wait, the lead was dropped with no record and no alert. The fix is not done yet.
Turning away an incomplete submission with a clear errorNot yet provenThe clear error back to the form is fixed in the version I'd hand over. That fix has not been run yet.
A morning list of untouched leads in TelegramNot yet provenThe scan that finds them has run on the live system. Posting that list to Telegram has no recorded run yet.
The backup alert for failures the main flow can't catchNot yet provenA second workflow is set up to catch those. It has never fired for this system.
HubSpot limiting how fast it accepts requestsNot yet provenI tested the failure path with a forced HubSpot failure. A real HubSpot limit has not come up on a live run.

What you get at handover

  • It runs in an n8n account you own, signed in to your own HubSpot, Gmail, Telegram, AI model, Langfuse and Google Sheet.
  • Your leads stay in your HubSpot, and the run log stays in a sheet you own.
  • A setup guide that walks through connecting each account and sending a first test lead, so the system can be rebuilt from it.
  • A plain step by step guide to what each part does, for the person who runs it.
  • How failures reach you: a failed step is logged and sent to Telegram with how to rerun the lead. An approval nobody answers is not covered yet.
Every outside service it uses has run for real on accounts I own, with test leads, and no client runs it yet.

Questions

Does anything send without my approval?

Gmail sends the reply only after someone taps Approve on the card in Telegram. Limiting that to the people you name is built, and I haven't tested it with a second account yet. When I declined a draft on the live system, no email went out and no HubSpot task was created.

What happens to duplicate leads?

A submission sent a second time is marked as a repeat, and nothing new happens. When the same person fills in the form again, HubSpot updates their existing contact instead of adding a second one. The new message still gets its own draft for me to approve.

What if nobody approves the draft?

That case is not handled yet. The card waits for my answer, and in the only live test of that wait the lead was dropped with no record and no alert. Until the fix has been tested, it stays on the not yet proven list.

Can it work with a CRM other than HubSpot?

This version is built and tested with HubSpot. Another CRM means swapping the HubSpot steps and testing them again on real accounts before I call it done.

Have you installed this for a client?

No client runs it yet. It has run on my own accounts with test leads, and every result on this page comes from those runs.

BOOK A FREE CONSULTATIONWE GO THROUGH HOW YOUR FORM LEADS ARE HANDLED NOW
Mashrur Rahman · Founder, SignalNinePUBLISHED · UPDATED