Integrations
HubSpot Integration
Push GitHub developer leads into HubSpot CRM automatically. Every stargazer, keyword match, or issue mention captured by GitLeads becomes a HubSpot Contact — including lifecycle stage, signal type, GitHub bio, company, and top languages.
How to Connect
- 01
Open Integrations
In your GitLeads dashboard, go to Integrations → HubSpot.
- 02
Click "Connect HubSpot"
You will be redirected to HubSpot's OAuth consent screen. Log in with the HubSpot account that has CRM write access.
- 03
Approve scopes
GitLeads requests crm.objects.contacts.write and crm.objects.contacts.read. These are the minimum scopes needed to create and deduplicate contacts.
- 04
Done
GitLeads will immediately start syncing new leads as they are captured. No manual imports needed.
Total setup time: under 2 minutes. No API keys, no HubSpot app installation, no developer required.
What Data Syncs
GitLeads maps GitHub profile data to HubSpot Contact properties. Standard HubSpot properties are used where possible; custom properties are created for GitHub-specific fields.
| GitLeads field | HubSpot property | Type |
|---|---|---|
| name | firstname + lastname | Standard |
| Standard | ||
| company | company | Standard |
| location | city | Standard |
| github_username | github_username (custom) | Custom |
| github_profile_url | github_profile_url (custom) | Custom |
| signal_type | gitleads_signal_type (custom) | Custom |
| signal_source | gitleads_signal_source (custom) | Custom |
| followers | gitleads_github_followers (custom) | Custom |
| top_languages | gitleads_top_languages (custom) | Custom |
| captured_at | gitleads_captured_at (custom) | Custom |
| — (auto) | lifecyclestage = "lead" | Standard |
Custom properties are created automatically in your HubSpot portal on first sync. You do not need to create them manually.
Deduplication
GitLeads deduplicates by email address. If a HubSpot Contact with the same email already exists, GitLeads updates the existing contact rather than creating a duplicate. If no email is available (the GitHub profile has no public email), GitLeads creates a new contact with the GitHub username as the primary identifier.
Deduplication by GitHub username (regardless of email) is available on Pro plan. Enable it in Dashboard → Integrations → HubSpot → Settings → Deduplication key.
Using Signal Data in HubSpot
Because GitLeads passes gitleads_signal_type and gitleads_signal_source as contact properties, you can build HubSpot workflows and lists that segment by signal quality:
- →Active List: Contacts where
gitleads_signal_type = stargazer— your highest-intent leads - →Workflow trigger: Contact property
gitleads_signal_typeis set → enroll in developer outreach sequence - →Deal creation: Trigger a deal with stage "GitHub Signal" when a contact with 1000+ followers is created via GitLeads
- →Sequence personalization: Use
{{contact.gitleads_signal_source}}token in email templates to reference the specific repo
Disconnecting HubSpot
Go to Dashboard → Integrations → HubSpot → Disconnect. GitLeads will stop syncing immediately. Existing contacts in HubSpot are not deleted. You can reconnect at any time.
Troubleshooting
Contacts are not appearing in HubSpot
Check Dashboard → Integrations → HubSpot → Sync Log for error messages. The most common cause is an expired OAuth token — click "Reconnect" to refresh.
Custom properties were not created
Custom properties are created on first sync. Trigger a test by clicking "Test Integration" in the HubSpot settings panel. If properties still do not appear, check that your HubSpot user has the "Edit property settings" permission.
Duplicate contacts are being created
This happens when leads have no public email and GitHub username deduplication is not enabled. Enable it under Dashboard → Integrations → HubSpot → Settings.