Enrich, score, and route new HubSpot contacts with Apollo

When a contact is created in HubSpot, an agent enriches them with Apollo, scores them against your ICP, writes a tier, creates a task, and DMs the owner.

Agentic Task
HubSpotApolloSlackSalesOperationsLead EnrichmentNotifications & Alerts
PromptCreate

Build me an agent workflow that enriches, scores, and routes every new HubSpot contact before a rep ever touches the record.

Trigger: a HubSpot outgoing webhook on contact.creation. The webhook payload gives me the contact ID, email, first name, last name, and company domain (when available).

First, look at the email domain. If it is a personal/consumer domain (gmail.com, yahoo.com, hotmail.com, outlook.com, icloud.com, aol.com, proton.me), skip enrichment, write a short HubSpot note saying the contact was skipped because the email is consumer, and stop. Do not burn Apollo credits on these.

Otherwise, call Apollo People Enrichment with the contact's email to pull title, seniority, department, and LinkedIn URL. Then call Apollo Organization Enrichment with the company domain to pull industry, employee headcount, latest funding round and amount, and tech stack.

Score the contact against an ICP rubric I will define. Default rubric: firmographic fit (industry in [SaaS, Fintech, RevOps tooling], headcount 50 to 5000, raised at least Series A) plus role seniority (VP and above is highest, Director is mid, IC is low). Output a numeric lead_score from 0 to 100 and a tier of A (80+), B (50 to 79), or C (under 50).

Use HubSpot Update Contact to write back: title, seniority, linkedin_url, industry, employee_count, latest_funding_stage, latest_funding_amount, tech_stack, lead_score, and lead_tier. Create the custom properties in HubSpot if they do not already exist.

Pick the account owner using this routing rule: territory by country first (US East to Alex, US West to Priya, EMEA to Jordan, APAC to Sam), and if territory is unknown, round-robin across the four owners. Make this list configurable so I can swap names later.

Use HubSpot Create Task to create a follow-up task assigned to that owner, associated with the contact. Subject: "New {tier} lead: {first_name} {last_name} at {company}". Due date: end of next business day. Priority: HIGH for tier A, MEDIUM for tier B, LOW for tier C.

Then use Slack Send a Message to DM that owner. The message should be one short paragraph (3 to 5 sentences) explaining why this lead matters: who they are, what the company does, why they fit our ICP, and any standout signal (recent funding, relevant tech in stack, senior title). End with the direct HubSpot contact link.

If Apollo returns no match for the person or the organization, still update HubSpot with whatever was found, set lead_tier to "needs review", and send a softer Slack note so the owner knows enrichment was incomplete and they should manually qualify.

Log every run with the contact ID, tier, score, assigned owner, and whether Apollo had a match, so I can audit later.

Additional information

What does this prompt do?
  • Listens for new contacts in HubSpot via webhook and runs end to end without a rep touching the record.
  • Calls Apollo People Enrichment on the email and Apollo Organization Enrichment on the company domain to pull title, seniority, LinkedIn, industry, headcount, funding, and tech stack.
  • Scores the contact against an ICP rubric (firmographic fit plus role seniority), writes a numeric lead_score and an A/B/C tier back to HubSpot.
  • Creates a HubSpot task on the right account owner and DMs them in Slack with a one-paragraph why-this-matters brief and the HubSpot link.
What do I need to use this?
  • A HubSpot account with permission to read and update contacts and create tasks.
  • An Apollo account with credits available for People Enrichment and Organization Enrichment.
  • A Slack workspace connected so the agent can DM the assigned owner.
  • An owner-routing rule (territory map, round-robin list, or default owner) the agent can follow.
How can I customize it?
  • Edit the ICP rubric and tier thresholds (industry, headcount band, funding stage, seniority weights) so A/B/C reflects your real qualification bar.
  • Swap the routing logic between territory based, round-robin, or a single default owner depending on how your team divides accounts.
  • Adjust the personal-email skip list and add other filters (free email providers, competitor domains, existing customers) to protect your enrichment budget.

Frequently asked questions

What triggers this workflow?
An outgoing HubSpot webhook on contact.creation. As soon as a new contact lands in HubSpot, the agent receives the payload and starts working.
How does the agent decide the A/B/C tier?
It applies an ICP rubric you define in the prompt: firmographic fit (industry, headcount, funding) plus role seniority. The numeric lead_score and the tier are both written back to HubSpot so reps can sort and filter.
Why skip personal email domains?
Apollo enrichment costs credits per call. Gmail, Yahoo, Hotmail, and similar consumer addresses almost never resolve to a real prospect, so the agent short-circuits those records to keep credits aimed at business domains.
How does the agent know which owner to assign?
You give it a routing rule: territory by country or state, round-robin across a list of reps, or a single default owner. The agent uses that rule to set the HubSpot task assignee and pick the Slack DM recipient.
What if Apollo returns no match?
The agent still writes back what it has, marks the contact with a lower tier or a needs-review flag, and sends a softer Slack note so the owner knows enrichment was incomplete.

Related templates

Weekend football matchday preview, posted to Slack

Every Friday, get a ready-to-read preview of your league's weekend matches, with positions, form, scorers to watch, and predicted results, posted to Slack.

API-Sports
Slack
Agentic Task
Weekly Braintree revenue and refund report for finance

Every Monday morning, finance leadership gets a clear recap of last week's Braintree sales, refunds, and disputes by email and Slack.

Braintree
Gmail
Slack
Agentic Task
Screen new HubSpot contacts for data breach exposure

The moment a new contact lands in HubSpot, we check their email against known data breaches and flag the high-risk ones so your team can act fast.

Have I Been Pwned
HubSpot
Slack Bot
Agentic Task
Daily IP reputation screening with Slack threat alerts

Every morning we check your list of IP addresses for abusive activity, update your spreadsheet, and alert your team only about the risky ones.

AbuseIPDB
Google Sheets
Slack
Agentic Task
Turn Heroku deploys into a readable Slack changelog

Every time you ship to Heroku, we post a clear summary to Slack listing what changed, who deployed it, and whether it was a rollback.

Heroku
GitHub
Slack
Agentic Task
Enrich and prioritize new Help Scout tickets in Slack

The moment a new Help Scout conversation arrives, we check the customer in your CRM, flag high-value accounts, and post a priority alert to Slack before anyone touches it.

Help Scout
HubSpot
Slack Bot
Agentic Task

Stop letting hot inbound leads sit cold in HubSpot.

Connect HubSpot, Apollo, and Slack once, and Geni enriches, scores, and routes every new contact the moment it is created.