DashboardSign inStart your trial

Lead Capture to CRM with Enrichment

A public form feeds a workflow that researches and scores each new lead, routes it for a quick human check, then writes the approved record into your CRM.

Capture leads on a public form, let AI enrich and score each one from its company site, have a human confirm the fit, and write the approved record straight into your CRM: no manual data entry, no lead sitting in an inbox.

Node chain: Form (bound table) → Data Change trigger (form submitted) → AI (research tools on, enrich + score) → Human Review (approve/reject with context) → Integration Action (create CRM record) → optional Slack notify.

#What you need

  • A workspace table for leads and a public form bound to it. The form’s fields come from the table, at minimum a name, email, and company or website.
  • A CRM integration connected (HubSpot, for example) so you can add an Integration Action.
  • Optionally, a Slack connection for the notify step.

#Build it

#1. Build the form and its table

Create a table with the columns you want to capture, then build a form bound to it. Set a title, intro, and success message; brand it with a logo if you like. Toggle it public and share the /f/<shortId> link. Every valid submission becomes a row in the bound table, stamped with the form it came from.

#2. Trigger on submission

In a new workflow, add a Data Change trigger. Set Change type to Form submitted and scope it to your form (or leave it open to fire on any submission to the table). Only published workflows fire on data changes. The submitted row arrives as trigger data, so downstream nodes read its fields directly.

#3. Enrich and score with research tools

Add an AI node and turn on research tools so it can reach the web mid-run:

  • Enable fetch_url to read the lead’s company site, and web_search if you want it to look wider.
  • Set an Allowed domains allowlist if you want to bound fetch_url to specific hosts, or leave it empty to allow any.
  • Set Max research pages to cap fetches per run (default 5); this bounds the token cost of enrichment.

Use JSON output so the review step and CRM write can read specific fields. A workable prompt:

Research this inbound lead and score its fit for us.

Name: {{trigger.name}}
Email: {{trigger.email}}
Company/site: {{trigger.website}}

Fetch the company site, then return JSON:
- summary: 2 sentences on what the company does
- segment: your best guess at their segment
- fitScore: 0-100 for how well they match our ICP
- reasoning: why you scored it that way

Keep Workspace context on so the model scores against your ICP without you pasting it into the prompt. Research tools only do work when the output depends on fresh external data, which is exactly the case here.

#4. Route it for a human check

Add a Human Review node so a person confirms the fit before the lead lands in your CRM. Two good shapes:

  • Approve / Reject (the default): the reviewer sees the enrichment ({{ai.summary}}, {{ai.fitScore}}, {{ai.reasoning}}) as context and approves, edits, or rejects. Wire the enriched fields in as context so the decision is one glance.
  • Task: if you want the reviewer to add something (a lead owner, a priority), use a Task approval with Collect fields (label + type: text, URL, or number). The collected values become the node’s output for the CRM write.

#5. Create the CRM record

After approval, add an Integration Action node for your CRM (e.g. HubSpot → create contact/lead). Map the fields from the trigger row and the enrichment: name and email from {{trigger.*}}, the summary and score from {{ai.*}}, and any values a Task review collected. Rejected leads never reach this step.

#6. Notify the owner (optional)

Add a second Integration Action for Slack to post to a channel or DM the owner: “New qualified lead: {{trigger.company}} scored {{ai.fitScore}}.” Now the right person knows the moment an approved lead is in the CRM.

#Make it learn

Start the Human Review node in Always ask: every enriched lead gets a human look. Approve the good fits, reject the bad ones, edit scores that are off. Those decisions feed confidence scoring , which learns your ICP from your calls, not just the prompt.

Once you’ve reviewed enough that the scoring tracks your judgment, switch to Confidence gated. Clear, high-fit leads start auto-approving straight into the CRM; borderline or low-confidence ones still come to you, as do any that trip a validation or containment gate. You keep a human on the judgment calls and stop rubber-stamping the obvious ones, and every decision, auto or manual, lands in the decision record .

#Cost

  • Form submission, Data Change trigger: free.
  • AI enrichment: bills AI Credits by token cost. Research pages add to the context, so the Max research pages cap directly bounds this; keep it tight.
  • Human Review: free, always.
  • Integration Action (CRM create, Slack notify): 2 Workflow Credits each.
  • Storing the lead row: metered as data storage , not per-write; reads and writes themselves are free.