Qualify Fillout leads and route them to HubSpot and Slack

Every time someone submits your Fillout form, enrich the lead with Apollo, score them against your ICP, and push qualified ones into HubSpot with a Slack alert.

Agentic Task
FilloutApolloHubSpotSlackSalesMarketingLead EnrichmentNotifications & AlertsData Sync
PromptCreate

Build an agent workflow that qualifies and routes inbound leads from a Fillout form the moment they come in.

Trigger: a Fillout webhook on new form submission. Use Fillout's Create Form Webhook operation to subscribe the workflow's webhook URL to my lead capture form. The submission payload includes the submission ID.

When the webhook fires, the agent should do the following:

1. Fetch the full submission with Fillout's Get Submission by ID so it can read every field. Pull out the submitter's work email, full name, and company name (or website domain if that's what the form collects).

2. Enrich the person with Apollo People Enrichment using the email. Then enrich the company with Apollo Organization Enrichment using the domain or company name. Call each Apollo endpoint at most once per submission to keep credit usage predictable. From the enriched results, capture: job title, seniority, employee count, industry, and any recent funding signals.

3. Score the lead 1 to 10 against this ICP rubric (edit these to match your business, this is the default): target titles include Head of Sales, VP Sales, Director of Revenue Operations, Chief Revenue Officer, Founder, and CEO; minimum company size is 25 employees; target industries include SaaS, B2B software, and technology. Weight seniority most, then company size, then industry. Recent funding within the last 12 months adds one point. If Apollo cannot enrich the person or company (missing or bad email or domain), score the lead 1 and note the reason.

4. If the score is 7 or higher: use HubSpot Batch Upsert Contacts (matched on email) to create or update the contact with the enriched fields plus a lead_score property and a lead_qualification_reason property. Then use HubSpot Create Deal to open a new deal in the New Lead stage, named "[Company] - [Person Name]", and associate it with the contact. Finally, use Slack Send a Message to post to the #sales-hot-leads channel with: person name, job title, company, employee count, industry, funding signal if any, the numeric score, and a one-sentence reason the lead qualified.

5. If the score is below 7: still use HubSpot Batch Upsert Contacts to create or update the contact with the enriched fields, the lead_score property, and a lifecycle tag of "unqualified". Do not create a deal. Do not post to Slack.

Keep the Slack summary punchy (5 to 8 lines max). Format it so a sales rep can decide in under 10 seconds whether to reach out. The scoring judgement, the enrichment interpretation, and the Slack summary drafting are the parts where the agent adds real value, so give it room to reason about ambiguous cases (for example, a Series A startup with 15 employees that's clearly on an ICP trajectory should be flagged as "borderline, worth a look" rather than silently dropped).

What does this prompt do?

  • Listens for new submissions on a Fillout form the moment they come in.
  • Pulls in job title, seniority, company size, industry, and funding signals from Apollo using the email and company on the form.
  • Scores each lead 1 to 10 against a simple ideal customer profile you define, then writes them into HubSpot with the score and enriched details.
  • Sends a Slack alert to your sales channel for hot leads with a short summary and a one-line reason they qualified.

What do I need to use this?

  • A Fillout account with the lead capture form you want to monitor.
  • An Apollo account for people and company enrichment (uses Apollo credits, roughly one call per submission).
  • A HubSpot account where new contacts and deals should be created.
  • A Slack workspace and the channel where your sales team wants hot lead alerts.

How can I customize it?

  • Rewrite the ICP rubric with your own target titles, minimum company size, and target industries.
  • Change the score cutoff (default is 7 out of 10) that decides which leads get a Slack ping versus a quiet HubSpot record.
  • Point the Slack alert at a different channel, or add extra fields (like source form or campaign name) to the summary.

FAQs

Will this create duplicate contacts in HubSpot if the same person fills out the form twice?
No. Contacts are matched on email, so a re-submission updates the existing HubSpot contact instead of creating a new one.
What happens to leads that don't hit the score cutoff?
They still get written to HubSpot, but tagged as unqualified so your team can see them without cluttering the Slack channel. No Slack alert is sent for them.
Does this use my Apollo credits?
Yes. Each form submission triggers one person lookup and one company lookup in Apollo. The workflow only calls Apollo once per submission to keep credit usage predictable.
Can I use this with a different CRM or destination?
Yes. Swap HubSpot for another CRM in the prompt, or add a step to also write the lead into a spreadsheet or database. The scoring logic stays the same.
What if the form doesn't include a work email or company name?
Apollo needs at least one strong identifier to enrich. If both are missing, the agent skips enrichment, scores the lead as unqualified, and still records the submission in HubSpot so nothing is lost.

Related templates

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App
Chat quality review board for LiveChat support leads

Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.

LiveChat
Slack
General Input Database
App
A searchable RFP answer library your bid team drafts from

Every proposal you have ever submitted in one searchable archive, with the closest past answers lined up against each question in a new RFP.

General Input Storage
General Input Database
Mistral AI
+2
App

Stop hand-triaging every form submission.

Connect Fillout, Apollo, HubSpot, and Slack once, and Geni qualifies and routes every new lead the second it comes in.