Overview
When someone signs up, this workflow stores their details, enriches the record with company and email signals, classifies the lead, and posts to Slack when the lead looks high value.
How it runs
The workflow starts with input validation: email format, name presence, and domain extraction.
Before external API calls, the signup is written to your Supabase users table. If Hunter.io or
Kickbox is slow or unavailable, you still capture the lead.
After the insert, the workflow calls Hunter.io for company context and Kickbox to detect free or
disposable email addresses. A script combines both responses. Business email at a company with more
than ten employees maps to high_value. Free or disposable addresses map to low_value. A Switch
routes high-value leads to Slack. The final Postgres step writes enrichment fields for every
signup, whether or not Slack fired.
What each step does
-
JavaScript (validate_input): Validates email format, ensures a name is present, lowercases values, and extracts the domain.
-
Postgres (postgres_insert_user): Inserts email and full name immediately. Enrichment columns are updated later so API failures do not drop signups.
-
HTTP (Hunter.io, http_hunter_domain_search): Looks up the email domain for company name and employee count. Optional so Hunter outages do not stop the workflow.
-
HTTP (Kickbox, http_kickbox_verify): Detects free providers (Gmail, Yahoo, Outlook, etc.) and disposable addresses. Useful for separating business leads from personal signups.
-
JavaScript (classify_lead): Merges API responses. Free addresses become
low_value; others becomehigh_value. Parses Hunter employee ranges (for example"11-50") by averaging bounds. -
Switch (switch_lead_route): High-value leads go to Slack. Low-value leads exit without a notification.
-
Slack (slack_message_high_value): Posts name, email, company, and a follow-up note to your alerts channel. Runs only for high-value leads.
-
Postgres (postgres_update_user_enrichment): Updates company name, free-email flag, lead tier, and employee count for every signup.
Design notes
Saving the signup before enrichment keeps the workflow reliable. If Hunter or Kickbox is down, you still have the lead and can backfill enrichment later.
The Switch only controls Slack. The final database update runs for all signups so high- and low-value leads are stored with the same enriched fields.
Before you turn it on
- Connect your Postgres / Supabase integration. The
userstable needs these columns:email,full_name,company,is_free_email,lead_type,company_size_num. - Add your Hunter.io API key to Unmeshed secrets as
hunter_io_api_key. - Add your Kickbox API key as
kickbox_api_key. - Connect Slack and point it at
high_value_signup_alert, or rename the channel in the Slack step to match your team channel. - Trigger from your signup form or auth webhook with JSON containing
emailandname.
When this is the right template
- You are early-stage and handling sales directly.
- Your team needs high-value signups surfaced quickly.
- You want enriched lead records in your database without manual spreadsheet work.
- You run a SaaS product and want to prioritize signups that merit personal onboarding.