Automated AI Lead Enrichment: Hubspot to Explorium for Enhanced Prospect Data
Go to WorkflowDescription
HubSpot Contact Enrichment with Explorium
Template
Download the following json file and import it to a new n8n workflow:
hubspot\_flow.json
Overview
This n8n workflow monitors your HubSpot instance for newly created contacts and automatically enriches them with additional contact information. When a contact is created, the workflow:
Detects the new contact via HubSpot webhook trigger
Retrieves recent contact details from HubSpot
Matches the contact against Explorium's database using name, company, and email
Enriches the contact with professional emails and phone numbers
Updates the HubSpot contact record with discovered information
This automation ensures your sales and marketing teams have complete contact information, improving outreach success rates and data quality.
Key Features
Real-time Webhook Trigger**: Instantly processes new contacts as they're created
Intelligent Matching**: Uses multiple data points (name, company, email) for accurate matching
Comprehensive Enrichment**: Adds both professional and work emails, plus phone numbers
Batch Processing**: Efficiently handles multiple contacts to optimize API usage
Smart Data Mapping**: Intelligently maps multiple emails and phone numbers
Profile Enrichment**: Optional additional enrichment for deeper contact insights
Error Resilience**: Continues processing other contacts if some fail to match
Prerequisites
Before setting up this workflow, ensure you have:
n8n instance (self-hosted or cloud)
HubSpot account with:
Developer API access (for webhooks)
Private App or OAuth2 app created
Contact object permissions (read/write)
Explorium API credentials (Bearer token) - Get explorium api key
Understanding of HubSpot contact properties
HubSpot Requirements
Required Contact Properties
The workflow uses these HubSpot contact properties:
firstname - Contact's first name
lastname - Contact's last name
company - Associated company name
email - Primary email (read and updated)
work_email - Work email (updated by workflow)
phone - Phone number (updated by workflow)
API Access Setup
Create a Private App in HubSpot:
Navigate to Settings → Integrations → Private Apps
Create new app with Contact read/write scopes
Copy the Access Token
Set up Webhooks (for Developer API):
Create app in HubSpot Developers portal
Configure webhook for contact.creation events
Note the App ID and Developer API Key
Custom Properties (Optional)
Consider creating custom properties for:
Multiple email addresses
Mobile vs. office phone numbers
Data enrichment timestamps
Match confidence scores
Installation & Setup
Step 1: Import the Workflow
Copy the workflow JSON from the template
In n8n: Navigate to Workflows → Add Workflow → Import from File
Paste the JSON and click Import
Step 2: Configure HubSpot Developer API (Webhook)
Click on the HubSpot Trigger node
Under Credentials, click Create New
Enter your HubSpot Developer credentials:
App ID: From your HubSpot app
Developer API Key: From your developer account
Client Secret: From your app settings
Save as "HubSpot Developer account"
Step 3: Configure HubSpot App Token
Click on the HubSpot Recently Created node
Under Credentials, click Create New (App Token)
Enter your Private App access token
Save as "HubSpot App Token account"
Apply the same credentials to the Update HubSpot node
Step 4: Configure Explorium API Credentials
Click on the Explorium Match Prospects node
Under Credentials, click Create New (HTTP Header Auth)
Configure the authentication:
Name: Authorization
Value: Bearer YOUR_EXPLORIUM_API_TOKEN
Save as "Header Auth Connection"
Apply to all Explorium nodes:
Explorium Enrich Contacts Information
Explorium Enrich Profiles
Step 5: Configure Webhook Subscription
In HubSpot Developers portal:
Go to your app's webhook settings
Add subscription for contact.creation events
Set the target URL from the HubSpot Trigger node
Activate the subscription
Step 6: Activate the Workflow
Save the workflow
Toggle the Active switch to ON
The webhook is now listening for new contacts
Node Descriptions
HubSpot Trigger: Webhook that fires when new contacts are created
HubSpot Recently Created: Fetches details of recently created contacts
Loop Over Items: Processes contacts in batches of 6
Explorium Match Prospects: Finds matching person in Explorium database
Filter: Validates successful matches
Extract Prospect IDs: Collects matched prospect identifiers
Enrich Contacts Information: Fetches emails and phone numbers
Enrich Profiles: Gets additional profile data (optional)
Merge: Combines all enrichment results
Split Out: Separates individual enriched records
Update HubSpot: Updates contact with new information
Data Mapping Logic
The workflow maps Explorium data to HubSpot properties:
| Explorium Data | HubSpot Property | Notes |
| ------------------------------ | ------------------ | ----------------------------- |
| professions_email | email | Primary professional email |
| emails[].address | work_email | All email addresses joined |
| phone_numbers[].phone_number | phone | All phones joined with commas |
| mobile_phone | phone (fallback) | Used if no other phones found |
Data Processing
The workflow handles complex data scenarios:
Multiple emails**: Joins all discovered emails with commas
Phone numbers**: Combines all phone numbers into a single field
Missing data**: Uses "null" as placeholder for empty fields
Name parsing**: Cleans sample data and special characters
Usage & Operation
Automatic Processing
Once activated:
Every new contact triggers the webhook immediately
Contact is enriched within seconds
HubSpot record is updated automatically
Process repeats for each new contact
Manual Testing
To test the workflow:
Use the pinned test data in the HubSpot Trigger node, or
Create a test contact in HubSpot
Monitor the execution in n8n
Verify the contact was updated in HubSpot
Monitoring Performance
Track workflow health:
Go to Executions in n8n
Filter by this workflow
Monitor success rates
Review any failed executions
Check webhook delivery in HubSpot
Troubleshooting
Common Issues
Webhook not triggering
Verify webhook subscription is active in HubSpot
Check the webhook URL is correct and accessible
Ensure workflow is activated in n8n
Test webhook delivery in HubSpot developers portal
Contacts not matching
Verify contact has firstname, lastname, and company
Check for typos or abbreviations in company names
Some individuals may not be in Explorium's database
Email matching improves accuracy significantly
Updates failing in HubSpot
Check API token has contact write permissions
Verify property names exist in HubSpot
Ensure rate limits haven't been exceeded
Check for validation rules on properties
Missing enrichment data
Not all prospects have all data types
Phone numbers may be less available than emails
Profile enrichment is optional and may not always return data
Error Handling
Built-in error resilience:
Failed matches don't block other contacts
Each batch processes independently
Partial enrichment is possible
All errors are logged for review
Debugging Tips
Check webhook logs: HubSpot shows delivery attempts
Review executions: n8n logs show detailed error messages
Test with pinned data: Use the sample data for isolated testing
Verify API responses: Check Explorium API returns expected data
Best Practices
Data Quality
Complete contact records: Ensure name and company are populated
Standardize company names: Use official names, not abbreviations
Include existing emails: Improves match accuracy
Regular data hygiene: Clean up test and invalid contacts
Performance Optimization
Batch size: 6 is optimal for rate limits
Webhook reliability: Monitor delivery success
API quotas: Track usage in both platforms
Execution history: Regularly clean old executions
Compliance & Privacy
GDPR compliance: Ensure lawful basis for enrichment
Data minimization: Only enrich necessary fields
Access controls: Limit who can modify enriched data
Audit trail: Document enrichment for compliance
Customization Options
Additional Enrichment
Extend with more Explorium data:
Job titles and departments
Social media profiles
Professional experience
Skills and interests
Company information
Enhanced Processing
Add workflow logic for:
Lead scoring based on enrichment
Routing based on data quality
Notifications for high-value matches
Custom field mapping
Integration Extensions
Connect to other systems:
Sync enriched data to CRM
Trigger marketing automation
Update data warehouse
Send notifications to Slack
API Considerations
HubSpot Limits
API calls**: Monitor daily limits
Webhook payload**: Max 200 contacts per trigger
Rate limits**: 100 requests per 10 seconds
Property limits**: Max 1000 custom properties
Explorium Limits
Match API**: Batched for efficiency
Enrichment calls**: Two parallel enrichments
Rate limits**: Based on your plan
Data freshness**: Real-time matching
Architecture Considerations
This workflow integrates with:
HubSpot workflows and automation
Marketing campaigns and sequences
Sales engagement tools
Reporting and analytics
Other enrichment services
Security Best Practices
Webhook validation**: Verify requests are from HubSpot
Token security**: Rotate API tokens regularly
Access control**: Limit workflow modifications
Data encryption**: All API calls use HTTPS
Audit logging**: Track all enrichments
Advanced Configuration
Custom Field Mapping
Modify the Update HubSpot node to map to custom properties:
// Example custom mapping
{
"custom_mobile": "{{ $json.data.mobile_phone }}",
"custom_linkedin": "{{ $json.data.linkedin_url }}",
"enrichment_date": "{{ $now.toISO() }}"
}
Conditional Processing
Add logic to process only certain contacts:
Filter by contact source
Check for specific properties
Validate email domains
Exclude test contacts
Support Resources
For assistance:
n8n issues**: Check n8n documentation and forums
HubSpot API**: Reference HubSpot developers documentation
Explorium API**: Contact Explorium support
Webhook issues**: Use HubSpot webhook testing tools