LOW / CODEBlueprints
sales

Automate Lead Scoring from Forms to CRM

When a form submission comes in via Typeform, automatically score the lead based on responses and create or update the contact in HubSpot. Notify sales on Slack for high-scoring leads.

Intermediate~25 minn8nMake.com 339 downloads 755 views

Setup Instructions

1. Create a Typeform form with qualifying questions (budget, company size, timeline, role). Note the form ID from the URL. 2. In HubSpot, create a custom property called "Lead Score" (type: number) on the Contact object. Also create a static list called "Nurture Leads" for low-scoring contacts. 3. In your automation platform, create a new workflow triggered by Typeform's "New Entry" webhook. 4. Add a scoring node that evaluates responses: assign points for budget (>$10k = 30pts), company size (>50 = 20pts), timeline (<3 months = 30pts), and decision-maker role (20pts). 5. Add a conditional branch: if total score >= 70, route to the "High Score" path; otherwise route to "Low Score." 6. On the High Score path, add a HubSpot node to create or update a contact with the form data and lead score. Follow it with a Slack node that posts to your #sales channel with the contact name, score, and company. 7. On the Low Score path, add a HubSpot node to create the contact and add them to the "Nurture Leads" list. 8. Test the workflow by submitting a test entry in Typeform and verify the contact appears in HubSpot and the Slack notification fires.
Troubleshooting
**Typeform webhook not firing:** Ensure the webhook URL is correctly configured in Typeform's Connect settings. Check that the form is published (draft forms do not trigger webhooks). Test with Typeform's built-in webhook debugger. **HubSpot contact not created:** Verify your HubSpot API key has "Contacts: Write" scope. If updating an existing contact, make sure you are searching by email address first. Check that the "Lead Score" custom property exists and matches the exact internal name used in your API call. **Slack notification missing:** Confirm the Slack bot has been invited to the target channel. Check that the OAuth token has "chat:write" permission. If the message appears in a different channel, double-check the channel ID (not the channel name). **Scoring logic producing wrong results:** Log the raw Typeform field values before scoring. Field IDs in Typeform change if you duplicate or recreate questions — re-map them in your workflow if the form was recently edited.

Need a custom version?

We can build a tailored automation workflow for your specific needs.

New blueprints weekly

Get notified when we publish new automation workflows.