Validate every new HubSpot contact email before outreach

By General Input

Every new contact's email is checked the moment it lands, tagged with a clear verdict in your CRM, and flagged in Slack when it will bounce.

Integrations

  • Mailgun
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Operations

Whenever a new contact is created in HubSpot, check their email address with Mailgun before anyone wastes outreach on it. Use a webhook trigger fed by HubSpot's contact creation event, so this runs the moment the record appears rather than on a schedule.

Take the email address from the incoming contact and run Mailgun's Validate Single Address operation on it. That returns a result of deliverable, undeliverable, do_not_send, catch_all, or unknown, plus a risk level of low, medium, high, or unknown, boolean flags called is_disposable_address and is_role_address, an array of reasons, and a did_you_mean value holding the closest suggestion when the domain looks like a typo.

Interpret those signals into one short verdict a salesperson can act on. Deliverable with low risk is a pass. Undeliverable means the address will bounce. A true is_disposable_address flag means a throwaway inbox. A true is_role_address flag means a generic inbox such as info@, sales@, or support@ that reaches a shared mailbox rather than a named buyer. A catch_all result, or do_not_send, or medium and high risk, all mean risky: the mail server accepts anything, so nobody can confirm the person actually exists. Use judgement when the signals conflict, for example a role address that is also undeliverable should be reported as undeliverable because that is the more actionable problem. Alongside the verdict, write one short human-readable reason drawn from the reason array, and mention the did_you_mean suggestion when Mailgun offers one, since a typo is usually fixable on the spot.

Use HubSpot's Search Contacts operation to locate the contact record by email address, then use Update Contact to write the verdict into one custom contact property and the short reason into another. Keep the verdict values to a small consistent set such as Deliverable, Undeliverable, Disposable, Role-based, Risky, and Unknown, so reps can filter lists and build segments on that property rather than reading free text. Always write the property, including for deliverable addresses, so that every contact carries a known state instead of a blank.

When the verdict is undeliverable or disposable, post a short note to the #sales-ops Slack channel using Slack Bot's Send a Message operation. Name the contact, give the email address, and say in one line why it failed, including the suggested spelling if Mailgun provided one. Keep it to a few lines so someone can glance at it and go find a better address while the lead is still warm.

Deliverable addresses pass silently with no Slack message at all. Role-based and risky catch-all addresses are recorded on the contact record but do not warrant a ping either, since they are a segmentation concern rather than something to chase. Only genuinely dead or throwaway addresses should interrupt anyone.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account