HubSpot Integration: Auto-Upsert Directory Leads into Your CRM

Table of Contents
- What is HubSpot Integration?
- How It Works
- Setting Up HubSpot
- What Gets Synced
- Why Native Over Zapier?
- Pricing
- FAQ
What is HubSpot Integration?
PinLeads now has a native HubSpot integration. Every business you extract from Google Maps lands in your HubSpot CRM the moment your job finishes — no Zaps, no CSV exports, no field mapping.
Contacts are upserted by email, which means existing contacts get updated instead of duplicated. Companies are created automatically (deduped by domain) and linked to the matching contacts. Everything happens in a single batched API call per 100 leads, so it's fast and quota-friendly.
What gets synced:
- Contact: email, company name, phone, website, address, lifecycle stage
- Company: domain, name, website, phone, address (auto-created from website)
- Association: contact ↔ company linked automatically
What it does:
- Zero duplicates — upsert by email
- Auto-creates companies and associates them
- Configurable lifecycle stage (Lead, MQL, SQL, etc.)
- Works with both single-scrape and multi-scrape jobs
- Free with PinLeads Pro or Business (no extra charges)
How It Works
The integration uses OAuth 2.0 — you click "Connect HubSpot" once, approve PinLeads in your HubSpot account, and you're done. No API keys to copy, no webhooks to configure.
Here's the flow:
- You extract leads from Google Maps using PinLeads
- PinLeads syncs to HubSpot automatically when the job completes
- Contacts are upserted by email (no duplicates)
- Companies are created from website domains and linked to contacts
- Your CRM is updated — no manual work required
The entire process happens in the background. You just scrape, and HubSpot updates itself.
Setting Up HubSpot
Step 1: Upgrade Your Plan
HubSpot integration is available for Pro and Business subscribers. Free plan users can upgrade from the pricing page.
Step 2: Connect HubSpot
- Go to your Account Settings
- Scroll to the HubSpot Integration section
- Click "Connect HubSpot"
- You'll be redirected to HubSpot to authorize PinLeads
- Approve the OAuth consent screen
- You'll be redirected back to PinLeads with a success message
Step 3: Configure Settings (Optional)
Once connected, you can customize:
- Auto-create companies: Toggle whether companies are created and linked to contacts
- Lifecycle stage: Choose the default lifecycle stage for new contacts (Subscriber, Lead, MQL, SQL, Opportunity, Customer)
- Lead source: Custom field to mark contacts as coming from PinLeads
Step 4: Test the Connection
Click "Send Test Contact" to push a sample lead to your HubSpot. Check your HubSpot CRM for "PinLeads Test Business" to verify the connection.
Step 5: Start Scraping
Run any PinLeads scrape — single search, bulk URLs, or Chrome extension. Leads will flow to HubSpot automatically when the job finishes.
What Gets Synced
Contact Properties
| PinLeads Field | HubSpot Property | Notes |
|---|---|---|
| name | company | Business name from Google Maps |
| Used for dedupe (upsert) | ||
| phone | phone | Phone number from Google Maps |
| website | website | Business website URL |
| address | address | Full address from Google Maps |
| — | lifecyclestage | Configurable (default: Lead) |
| — | hs_lead_status | Set to "NEW" on import |
Company Properties
| PinLeads Field | HubSpot Property | Notes |
|---|---|---|
| website (domain) | domain | Used for dedupe (upsert) |
| name | name | Business name |
| website | website | Full URL |
| phone | phone | Phone number |
| address | address | Full address |
Important: Companies are only created when a lead has a website. If a lead has no website, only the contact is created. Leads without an email are skipped entirely (email is required for safe deduping).
Association
When both contact and company exist, they are automatically linked via the standard HubSpot "contact_to_company" association type.
Why Native Over Zapier?
| Via Zapier | Native HubSpot |
|---|---|
| Build a Zap, map fields, test | One-click OAuth |
| Requires paid Zapier plan for multi-step | Free with PinLeads Pro |
| Manual filter steps to avoid duplicates | Built-in upsert by email |
| Multi-step Zap to create + associate companies | Automatic in one call |
| 1 task per lead (quotas apply) | Batched (100/call) |
| No marketplace listing | HubSpot App Marketplace eligible |
The native integration is faster, more reliable, and doesn't require you to maintain a Zap. It also gives us the ability to add advanced features like bi-directional sync (reading HubSpot list memberships to dedupe before scraping) in the future.
Pricing
PinLeads
HubSpot integration is included with:
- Pro Plan: Starting at $9.99/month
- Business Plan: Starting at $29.99/month
- Free Plan: Not available
HubSpot
The integration works with any HubSpot account, including the free CRM tier. No paid HubSpot subscription is required.
FAQ
Will this create duplicate contacts in my HubSpot?
No. PinLeads upserts by email — if a contact with that email already exists, it gets updated instead of duplicated. Companies are also upserted by domain to avoid duplicates.
What happens if a lead has no email?
It is skipped from the HubSpot sync (email is required for safe deduping). The lead still appears in your PinLeads results and can be exported via CSV if needed.
Can I use Zapier and HubSpot at the same time?
Yes. Both integrations fire independently when a scrape completes. This is useful if you want HubSpot for sales and a Google Sheet for archival or Slack for notifications.
What HubSpot data does PinLeads access?
Only contacts and companies (read + write). PinLeads never reads or writes deals, tickets, emails, or any other CRM object. The OAuth scopes are minimal: crm.objects.contacts.read/write, crm.objects.companies.read/write, and crm.schemas.contacts.read.
How do I disconnect HubSpot?
Go to Account Settings → HubSpot Integration → Disconnect. Tokens are revoked with HubSpot and removed from our database immediately.
Is this in the HubSpot App Marketplace?
We are in the process of submitting the app for marketplace listing. In the meantime, the integration works fully via direct OAuth and will be available to all Pro/Business users immediately.
Does this work with multi-scrape jobs?
Yes. The HubSpot sync fires after both single-scrape and multi-scrape jobs complete. All leads from the job are synced in a single batched operation.
Can I customize the lifecycle stage?
Yes. In Account Settings, you can choose the default lifecycle stage for new contacts (Subscriber, Lead, Marketing Qualified Lead, Sales Qualified Lead, Opportunity, Customer).
What if the sync fails?
PinLeads logs each sync attempt in your Account Settings delivery log. You can see success/failure status, number of contacts/companies created, and any error messages. Sync failures are logged but don't block your scrape from completing.
Can I filter which leads get synced?
Currently, all leads with an email are synced. We plan to add filtering options in a future update (e.g., only sync leads with phone, skip leads below a certain rating, etc.).
Is my data secure?
Yes. OAuth tokens are encrypted at rest using AES-256-GCM. All API calls use HTTPS. PinLeads never stores your HubSpot password — only an access token that can be revoked at any time.
Getting Started
Ready to connect HubSpot?
- Upgrade to Pro or Business if you're on the free plan
- Go to Account Settings and click "Connect HubSpot"
- Approve the OAuth consent screen
- Click "Send Test Contact" to verify
- Start scraping — leads will flow automatically
The setup takes about 30 seconds. Once connected, you'll never have to manually export and import leads again.
Free Tools to Help You
Cold Email Subject Line Generator
Generate personalized, high-converting subject lines with predicted open rates.
Try Tool →Email Deliverability Checker
Analyze your emails for spam triggers and get deliverability scores.
Try Tool →Lead List ROI Calculator
Calculate the ROI of your lead generation campaigns with visual reports.
Try Tool →Related Articles

How to Find Roofing Leads Using Google Maps in 2026 (Complete Guide)
Discover how to find high-quality roofing contractor leads using directory extraction. Step-by-step tutorial with templates, CSV examples, and proven outreach strategies for B2B sales.

How Web Designers Find Local Business Clients with Directory Extraction
Learn the exact workflow successful web designers use to find local businesses with outdated websites, extract contact info, and pitch redesign services that convert.

How to Extract Leads from Google Maps Without Coding (2026 Tutorial)
Complete no-code guide to extracting leads from Google Maps. Extract names, phones, emails, and websites without writing Python code.

Directory Extractor with CSV Export: Complete Integration Guide
Learn why CSV export is critical for directory extractors and how to integrate scraped local business data into your sales pipeline and CRM systems.

Lead Generation for Commercial Cleaning Companies Using Google Maps
How commercial cleaning businesses can stop relying on referrals and start actively finding facility managers, property managers, and corporate clients using Google Maps extraction.

Why Apollo.io Fails for Google Maps Lead Gen (Better Alternative)
Apollo.io is built for enterprise SaaS sales, not businesses on Google Maps. Learn why Google Maps extraction is superior for finding plumbers, roofers, dentists, and service providers.
