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.
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?
What happens if nothing can be found about the person?
Does this work on HubSpot's free CRM?
How much enrichment does this use up?
Can we switch off the Slack alerts?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
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.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
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.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
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.
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.