Import recently funded companies from Crunchbase into HubSpot using n8n
Prerequisites
- n8n instance (cloud or self-hosted)
- Crunchbase API key (requires Enterprise or API/Data License plan)
- HubSpot private app token with
crm.objects.companies.readandcrm.objects.companies.writescopes - Custom HubSpot company properties for funding data (recommended:
funding_stage,funding_amount,funding_date,investors) - n8n credential configured for HubSpot
The search endpoints used in this workflow (/searches/funding_rounds, /searches/organizations) require a Crunchbase Enterprise or API/Data License plan. The Pro plan only provides Zapier integration and CSV exports, not direct API access. Pricing starts at ~$49/mo for basic API access.
Step 1: Add a schedule trigger
Create a new workflow and add a Schedule Trigger node:
- Rule: Every day at 8:00 AM (or weekly on Mondays — adjust to your preferred cadence)
This kicks off a daily check for new funding rounds.
Step 2: Search Crunchbase for recent funding rounds
Add an HTTP Request node to search for funding rounds announced in the last 30 days:
- Method: POST
- URL:
https://api.crunchbase.com/api/v4/searches/funding_rounds - Headers:
X-cb-user-key: YOUR_CRUNCHBASE_API_KEY - Body:
{
"field_ids": [
"identifier",
"announced_on",
"money_raised",
"funded_organization_identifier",
"investment_type",
"investor_identifiers"
],
"query": [
{
"type": "predicate",
"field_id": "announced_on",
"operator_id": "gte",
"values": ["{{$now.minus(30, 'days').format('yyyy-MM-dd')}}"]
},
{
"type": "predicate",
"field_id": "investment_type",
"operator_id": "includes",
"values": ["series_a", "series_b", "series_c", "series_d"]
}
],
"limit": 100
}Adjust the investment_type filter to match your ICP. Series A companies are actively building and buying tools. Seed-stage may be too early. Series C+ may already have established vendor relationships.
Step 3: Loop through funding rounds
Add a Split In Batches node to iterate over the entities array from the Crunchbase response. Each entity contains the funding round details and a reference to the funded organization.
Step 4: Fetch organization details
For each funding round, add an HTTP Request node to get company details:
- Method: GET
- URL:
https://api.crunchbase.com/api/v4/entities/organizations/{{ $json.properties.funded_organization_identifier.uuid }} - Headers:
X-cb-user-key: YOUR_CRUNCHBASE_API_KEY - Query params:
field_ids=short_description,categories,location_identifiers,num_employees_enum,website_url,linkedin
Step 5: Filter for ICP matches
Add an IF node to filter companies by your criteria:
- Condition 1:
num_employees_enummatches your target range (e.g.,c_0051_0100,c_0101_0250) - Condition 2: Company has a
website_url(needed for HubSpot domain)
Step 6: Check for existing companies in HubSpot
Add an HTTP Request node:
- Method: POST
- URL:
https://api.hubapi.com/crm/v3/objects/companies/search - Body:
{
"filterGroups": [{
"filters": [{
"propertyName": "domain",
"operator": "EQ",
"value": "{{ $json.properties.website_url.replace('https://', '').replace('http://', '').replace('www.', '').split('/')[0] }}"
}]
}]
}Add an IF node: proceed only if total equals 0.
Step 7: Create company in HubSpot
Add an HTTP Request node:
- Method: POST
- URL:
https://api.hubapi.com/crm/v3/objects/companies - Body:
{
"properties": {
"domain": "{{ $json.org.properties.website_url }}",
"name": "{{ $json.org.properties.identifier.value }}",
"industry": "{{ $json.org.properties.categories[0].value }}",
"description": "{{ $json.org.properties.short_description }}",
"funding_stage": "{{ $json.round.properties.investment_type }}",
"funding_amount": "{{ $json.round.properties.money_raised.value }}",
"funding_date": "{{ $json.round.properties.announced_on }}",
"investors": "{{ $json.round.properties.investor_identifiers.map(i => i.value).join(', ') }}"
}
}HubSpot will reject properties that don't exist. Before running this workflow, create the custom company properties: funding_stage (single-line text), funding_amount (number), funding_date (date), and investors (single-line text) in HubSpot Settings → Properties.
Step 8: Activate and test
- Click Execute Workflow to run a test pass
- Verify companies appear in HubSpot with correct funding data
- Toggle the workflow to Active
Cost
- n8n Cloud Starter: $24/mo for 2,500 executions. Daily run = ~30 executions/month (1 per day).
- Self-hosted n8n: Free.
- Crunchbase API: Enterprise plan required. Pricing varies — contact Crunchbase sales. Basic API access starts around $49/mo.
Need help implementing this?
We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.