Sync LinkedIn Profile Visitors to HubSpot CRM
Who's it for
This workflow is built for sales professionals, recruiters, founders, and marketers who want to automatically capture LinkedIn profile visitors and convert them into actionable CRM leads. Perfect for anyone tired of manually checking who viewed their profile, copying data one by one, and losing warm leads because they never made it into your pipeline.
If you're running outbound sales, recruiting talent, building partnerships, or simply want to know who's checking you out on LinkedIn, this automation captures every visitor and enriches them with full professional data before syncing to your CRM.
How it works
The workflow automatically syncs your LinkedIn profile visitors to HubSpot CRM with enriched professional data.
The process flow:
- Scheduled trigger runs weekly (or manually) to fetch recent visitors
- ConnectSafely.ai API retrieves all profile visitors from the past 7 days
- Splits visitors into individual records for processing
- Apify actor enriches each visitor with complete LinkedIn profile data (email, company, title, location)
- Email validation filters contacts - only those with valid emails proceed
- HubSpot integration creates or updates contacts with full enriched information
- Loop continues until all visitors are processed
Setup steps
Step 1: Configure ConnectSafely.ai API Credentials
Obtain API Key
- Log into ConnectSafely.ai Dashboard
- Navigate to Settings → API Keys
- Generate a new API key
Add Bearer Auth Credential in n8n
- Go to Credentials in n8n
- Click Add Credential → Header Auth or HTTP Bearer Auth
- Name it "ConnectSafely.ai API"
- Paste your ConnectSafely.ai API key
- Save the credential
This credential is used by the "Fetch Profile Visitors" HTTP Request node.
Step 2: Configure Apify Integration
Get Apify API Key
- Sign up at Apify.com
- Go to Settings → Integrations → API
- Copy your API token
Find the LinkedIn Enrichment Actor
- Go to Apify Store
- Search for "LinkedIn Profile Scraper" or use actor ID:
UMdANQyqx3b2JVuxg
- Copy the actor URL
Add Apify Credential in n8n
- Go to Credentials → Add Credential → Apify API
- Paste your Apify API token
- Save the credential
Configure the Apify Node
- Open the Enrich LinkedIn Profile node
- Select your Apify credential
- Update the Actor ID URL with your chosen LinkedIn scraper actor
Step 3: Configure HubSpot Integration
Create HubSpot App Token
- Go to HubSpot Settings → Integrations → Private Apps
- Click Create a private app
- Name it "n8n LinkedIn Sync"
- Under Scopes, enable:
crm.objects.contacts.read
crm.objects.contacts.write
- Click Create app and copy the access token
Add HubSpot Credential in n8n
- Go to Credentials → Add Credential → HubSpot App Token
- Paste your access token
- Save the credential
Connect to HubSpot Node
- Open the Create HubSpot Contact node
- Select your HubSpot App Token credential
Step 4: Configure the Schedule
- Open the Run Weekly node
- Adjust the schedule based on your needs:
- Default: Every week
- High traffic profiles: Every day
- Low traffic: Every 2 weeks
Step 5: Test the Workflow
- Click the Test Manually node
- Click Test Workflow
- Verify:
- Profile visitors are fetched correctly
- Enrichment returns full profile data
- Contacts with emails are created in HubSpot
- Contacts without emails are skipped gracefully
Customization
Time Range Adjustment
Edit the JSON body in the Fetch Profile Visitors node to change the lookback period:
{"timeRange":"past_7_days","start":0,"fetchAll":true}
Options:
past_7_days - Last week's visitors (default)
past_30_days - Last month's visitors
past_90_days - Last quarter's visitors
Additional HubSpot Fields
The Create HubSpot Contact node maps these fields by default:
- First Name
- Last Name
- Email
- Job Title
- Company Name
- City
- Country
- Street Address
- LinkedIn URL
- Lead Status (set to "NEW")
To add more fields:
- Open the Create HubSpot Contact node
- Click Add Field under Additional Fields
- Map Apify output fields to HubSpot properties
Different CRM Integration
To use a different CRM instead of HubSpot:
- Delete the Create HubSpot Contact node
- Add your CRM node (Salesforce, Pipedrive, Zoho, etc.)
- Map the enriched fields to your CRM's contact properties
- Connect it to the "Has Valid Email" true output
Add Slack Notifications
Want to get notified when high-value visitors are captured?
- Add a Slack node after Create HubSpot Contact
- Filter for specific job titles or companies
- Send a message to your sales channel
Use Cases
- Sales Prospecting: Automatically capture decision-makers who are researching you before outreach
- Recruiting: Build a passive candidate pipeline from people checking out your profile
- Founder Networking: Know when investors, partners, or potential hires are interested
- Account-Based Marketing: Track when target account contacts view your profile
- Event Follow-up: Capture visitors who checked you out after conferences or webinars
Troubleshooting
Common Issues & Solutions
Issue: No visitors returned from API
- Solution: Ensure your LinkedIn account is connected in ConnectSafely.ai dashboard and has had recent profile views
Issue: Apify enrichment returning empty results
- Solution: Verify the LinkedIn URL format is correct (should be full URL like
https://www.linkedin.com/in/username). Check your Apify actor is running properly.
Issue: "Profile not found" errors
- Solution: Some LinkedIn profiles may be private or have restricted visibility. These will be skipped automatically.
Issue: HubSpot contact not created
- Solution: Check that your HubSpot App Token has
crm.objects.contacts.write scope enabled
Issue: Duplicate contacts in HubSpot
- Solution: HubSpot uses email as the unique identifier. The node is configured to "Create or Update" so duplicates should be updated, not created. Verify the email field is mapping correctly.
Issue: Rate limit errors from Apify
- Solution: Add a Wait node after the loop with 2-5 second delays between enrichment calls
Issue: Missing email addresses for most visitors
- Solution: This is normal - enrichment typically finds emails for 60-70% of profiles. Consider adding LinkedIn URL as a fallback identifier in your CRM.
Costs & Considerations
| Service |
Cost |
| ConnectSafely.ai |
Free trial available, then subscription |
| Apify Enrichment |
~$1 per 1,000 records |
| HubSpot |
Free tier works, or existing subscription |
| n8n |
Free (self-hosted) or cloud pricing |
Estimated monthly cost for 200 visitors/month: ~$0.20 for Apify enrichment
Documentation & Resources
Official Documentation
Support Channels
Connect With Us
Stay updated with the latest automation tips and LinkedIn strategies:
Need Custom Workflows?
Looking to build sophisticated LinkedIn automation workflows tailored to your business needs?
Contact our team for custom automation development, strategy consulting, and enterprise solutions.
We specialize in:
- Multi-channel engagement workflows
- AI-powered personalization at scale
- Lead scoring and qualification automation
- CRM integration and data synchronization
- Custom reporting and analytics pipelines