Back to cases
Sales and RevOpsApr 28, 2026

Inbound lead intake and CRM relay

For a medium-sized B2B SaaS team, every website request enters a validated, researched and sales-ready workflow connected to HubSpot.

Case note

Every form submission creates one lead in Supabase. The workflow validates, researches, decides spam risk and only syncs HubSpot when the record is sales-ready.

7h/week savedB2B SaaSWebsite form
Inbound lead intake and CRM relay editorial cover

Use case

Turn every website request into a sales-ready workflow

Leads enter from website forms, campaign landing pages and referral or contact pages. Each submission is captured once, checked against clear rules, enriched with public context and routed either to HubSpot and the sales inbox or to internal review. The goal was not to reply to every submission automatically; it was to give the sales team each relevant lead with context, priority, a recommended next action and a clear reason to trust the data.

Result: HubSpot receives only validated leads, while the sales team gets the priority, likely need and recommended next action without researching each lead from scratch.

Workflow map

Lead intake from form to CRM

The view keeps the production logic and omits only internal status logs so it is easy to read.

Main pathInternal reviewSalesNoYesYesYesBack to CRMStart1. Check and score leadValidate | priority | offer | next action2. Read form + websiteSubmitted fields + website pagesPython3. Research public webCompany | contact | sourcesTavily4. Build sales summaryNeed | questions | reply draftOpenRouter5. Prepare sales briefPriority | context | source trailSpam risk?6a. Create/update CRMContact | company | deal | task | noteHubSpot7a. Alert salesPriority | likely need | next actionResendEnd6b. Hold out of CRMNo sales record yet7b. Ask for spam reviewFlags | context | lead IDResendReplyreceived?EndNo replyReceive replyReviewer responseResend webhookReply saysNOT SPAM?EndMark not spamReady to enter CRM

Main database: Supabase

The workflow uses Supabase as the source of truth: it stores each record, status, and key event so the team can see what happened, retry failures, and debug without searching every tool.

Tool icons

SupabasePythonTavilyOpenRouterHubSpotResend

The starting point

A medium-sized EU B2B SaaS company received demo and contact requests from website forms, campaign landing pages and referral pages. The leads were captured, but they were not sales-ready: someone checked the inbox, copied fields into HubSpot, researched the company, estimated urgency, assessed whether the submission was spam and then notified the owner. Response quality depended on who saw the lead first.

The diagnosis used real volume, connected tools, decision points and exceptions. The question was not only what to automate, but what proof would show that the workflow had completed correctly. The operating proof mattered as much as the automation.

The implementation

Ductio made Supabase the source of truth for every form submission, then built a processor that checks required fields, assigns priority, gathers company and contact evidence, researches public context, prepares a sales brief, assesses spam risk and routes validated leads to HubSpot and the sales inbox. Risky leads stay out of HubSpot and go to internal review; replying NOT SPAM resumes the normal path.

The implementation separated rules, free-text context, human decisions and external effects. That let the system improve daily work without turning every exception into a black box. AI as support inside the process, not as autopilot.

What was used

Tooling was chosen from the process outward, not from a pre-decided technical preference. Each piece needed a clear owner, a stable integration path and a simple way to inspect errors.

In practice, the build combined Website form, Supabase, Python/FastAPI, OpenRouter, Tavily, HubSpot, Resend. The tools visible to the team stayed close to their daily work, while integration logic was documented and kept separate from sensitive commercial decisions.

Website formSupabasePython/FastAPIOpenRouterTavilyHubSpotResend

The improvement showed up in daily work.

Rather than treating the result as a dashboard, the team felt it in three specific moments: less manual preparation, less context hunting, and fewer doubts about who needed to act.

Lead prep: Average sales prep for each qualified inbound lead moved from 30-45 min to <5 min.

Admin load: Manual copying, lookup, routing and CRM cleanup moved from 9 h/wk to 2 h/wk.

Context quality: Sales context, source trail and likely need available before follow-up moved from Variable to Consistent brief.

Before/after proof

What changed in the operation

Before

1Lead arrives from website or campaign
2Someone checks the inbox
3Company context is researched manually
4Fields are copied into HubSpot
5Spam is cleaned after entering CRM
6Owner gets an ad hoc alert

After

1Website form writes one lead record
2Rules validate priority and spam risk
3Public research enriches company/contact context
4LLM creates a consistent sales brief
5Spam-risk leads go to review before CRM
6Qualified leads sync to HubSpot and sales email

Visible artifacts

  • Lead event run log
  • HubSpot timeline note template
  • Resend sales-notification example
  • Spam-review email with NOT SPAM recovery
  • Weekly lead digest

Controls

  • Clear validation rules before AI summary
  • Spam branch skips HubSpot until reviewed
  • NOT SPAM reply resumes the same CRM path
  • Every major step writes an event
  • Manual retry endpoint for one lead

What changed after launch

Sales stopped assembling context manually. Qualified leads arrived as clean HubSpot records with a short sales note, likely need, recommended next action and source trail. Risky submissions stayed out of the CRM until reviewed, and a weekly digest made lead flow visible without checking multiple systems.

The result was not only saved minutes. The team gained a shared sequence for reviewing inputs, understanding context, deciding, acting and checking that the workflow had been recorded. 7h/week saved

The workflow in one line

01Website form02Supabase03Research04Sales summary05HubSpot06Resend07Digest

How it was built

The workflow sends website form submissions to Supabase, applies explicit validation rules, uses Tavily for public research and OpenRouter for the sales summary, creates the required contact, company, deal, task and note records in HubSpot, and uses Resend for alerts and the recent-lead digest.

The stack was pragmatic: Website form, Supabase, Python/FastAPI, OpenRouter, Tavily, HubSpot, Resend. Tools were chosen for ownership, integration and maintainability, not for theater. The result is a system the team can understand and operate.

What was delivered

Implemented
  • Form intake
  • Lead event log
  • CRM sync
  • Fit scoring
  • Spam review
  • Sales digest
Benefits
  • Lead prep moved from 30-45 minutes to under 5 minutes for qualified leads.
  • HubSpot stayed cleaner because spam-risk submissions no longer created sales records automatically.
  • Manual lead admin dropped from roughly 9 hours/week to roughly 2 hours/week during the measured period.
Next step

Map a similar workflow.

Open brief
Ductio
DuctioSYSTEMS
AI-assisted automation plans for teams that need connected tools, monitored workflows, and maintainable handoff.
Operating focus

CRM operations, reporting workflows, approvals, document handling, and AI-assisted internal tools.

Copyright © 2026 Ductio. All rights reserved.