Mirror new SourceWhale contacts into HubSpot, enriched

Every contact your team adds in SourceWhale gets enriched with their current role and company, then created or updated in HubSpot without duplicates.

Agentic Task
SourceWhaleApolloHubSpotSlackSalesOperationsLead EnrichmentData SyncNotifications & Alerts
PromptCreate

When a new contact is added in SourceWhale, enrich that person and mirror them into HubSpot so the CRM never drifts from what outreach is actually doing. Trigger this on a webhook from SourceWhale's contact-added subscription so it runs once per new contact.

Take the contact from the webhook payload: email address, first and last name, and the SourceWhale campaign that added them. Run Apollo People Enrichment once on that email plus name to fill in current employer, job title, seniority and location. Apollo People Enrichment consumes credits, so enrich exactly once per new contact and never re-run it inside a retry loop.

Before writing anything to the CRM, check HubSpot with Search Contacts on the email address. This dedupe check always runs before any create. If there is no match, create the record with Create Contact. If there is a match, update that existing contact with Update Contact instead of creating a duplicate.

Write the SourceWhale campaign name into a HubSpot contact property, for example a single-line text property called SourceWhale campaign, so we can always tell which outreach sequence sourced the person. Set the contact lifecycle stage from what enrichment returns, and populate current employer, job title, seniority and location from the Apollo result.

If the enriched title is director level or above (director, head of, VP, C-level, founder or owner), also post a short heads-up with Slack Send a Message to our outreach channel. Keep it to a couple of lines naming the person, their title, their company and the campaign that pulled them in.

If Apollo returns no confident match, still write the HubSpot record from the raw SourceWhale fields and mark it as unenriched, rather than dropping the person. Leave the enrichment fields blank, set a clear unenriched flag, and still stamp the campaign name so the record can be reviewed later. Never skip HubSpot just because enrichment came back empty.

What does this prompt do?

  • Picks up every new contact the moment outreach adds them in SourceWhale, so the CRM never falls behind the campaigns.
  • Fills in current employer, job title, seniority and location automatically before anything reaches HubSpot.
  • Looks the person up in HubSpot first, so an existing contact gets updated rather than duplicated.
  • Stamps each record with the outreach campaign that sourced them, and posts a short heads-up in Slack when someone director level or above comes through.

What do I need to use this?

  • A SourceWhale account with admin access, so new contacts can be handed over automatically
  • An Apollo account with enrichment credits available
  • A HubSpot account where you can create and edit contacts
  • A spare contact property in HubSpot to hold the campaign name (a simple text field)
  • A Slack workspace and a channel for the senior-contact heads-ups

How can I customize it?

  • Move the bar for the Slack heads-up: director and above by default, or tighten it to VP and above.
  • Choose which Slack channel gets the alert, or send it as a direct message to the account lead instead.
  • Decide which lifecycle stage new contacts land on, and rename the property that stores the campaign name.

FAQs

Will this create duplicate contacts in HubSpot?
No. Every new person is looked up in HubSpot by email address before anything is written. If they already exist, their record is updated in place, and only genuinely new people get created.
What happens if nothing can be found about the person?
They are still added to HubSpot using the details that came from SourceWhale, and marked as unenriched so you can spot them and follow up manually. Nobody gets dropped.
Does this work on HubSpot's free CRM?
Yes. It only needs the ability to create contacts, update them, and add one custom contact property for the campaign name, all of which the free CRM supports.
How much enrichment does this use up?
One lookup per new contact, run a single time. The workflow never re-runs enrichment on the same person, so your credits track the number of new contacts and nothing more.
Can we switch off the Slack alerts?
Yes. You can drop the notification step entirely and keep the CRM sync, or raise the seniority threshold so only the most senior contacts trigger a message.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Provision customer entitlements in DynamoDB when a deal is won

When a HubSpot deal hits Closed Won, the customer's plan, seats and renewal dates land in your DynamoDB accounts table, with a Slack note showing what changed.

HubSpot
Amazon DynamoDB
Slack Bot
Agentic Task

Stop rekeying outreach contacts into your CRM.

Every person your team adds in SourceWhale lands in HubSpot enriched, deduplicated and tagged with the campaign that found them.