Create de-duplicated HubSpot companies from Google Maps with BasedOnBusiness

Go to Workflow
0 views
Built by ilyas YILDIRIM ilyas YILDIRIM
Created on August 21, 2026

Description

Quick overview
This workflow collects Google Maps business leads via BasedOnBusiness based on a form submission, filters for established companies with websites, and creates new HubSpot company records while skipping any domain that already exists in HubSpot to prevent duplicates.

How it works
Receives search criteria from an n8n form submission (category, city, country code, lead count, and minimum reviews).
Starts a BasedOnBusiness scrape job for the Google Maps query and polls BasedOnBusiness every 15 seconds until the job finishes or fails.
Fetches the scrape results from BasedOnBusiness and splits them into individual business items.
Filters out businesses that are permanently closed, missing a website, or below the minimum review count threshold.
Normalizes each business website into a bare domain and prepares the HubSpot company fields (name, domain, website, phone, address, city, country, and a Google Maps facts description).
For each company, searches HubSpot by domain and creates a new HubSpot company only when no existing match is found.

Setup
Create a BasedOnBusiness API key with scrapes:read and scrapes:write scopes and add it to an HTTP Bearer Auth credential used by the BasedOnBusiness HTTP requests.
In HubSpot, go to Settings > Integrations > Service Keys and create a service key with the crm.objects.companies.read and crm.objects.companies.write scopes. In n8n, paste it into a HubSpot App Token credential; both HubSpot nodes use that one credential.
Review the form defaults (lead count and minimum reviews) and adjust any filter thresholds to match your qualification criteria before activating the workflow.

Requirements
A BasedOnBusiness account and API key with the scrapes:read and scrapes:write scopes — https://www.basedonb.com/ (API reference and setup guide: https://www.basedonb.com/en/docs)
A HubSpot account. The free CRM plan is enough.

Customization
Raise the Minimum reviews form field to keep only established businesses, or set it to 0 to take everything that has a website.
Swap the Skip Existing branch for a HubSpot Company > Update node if you would rather refresh known records than leave them alone.
Map more Google Maps fields into Create Company in HubSpot, for example the rating as a custom property.

Additional info
A search costs BasedOnBusiness credits equal to the Number of leads you request, not the number of companies that survive the filter or get created in HubSpot. Businesses with no website are dropped on purpose: the domain is what HubSpot deduplicates on.

Nodes Used (3)

Code
n8n-nodes-base.code
HTTP Request
n8n-nodes-base.httpRequest
HubSpot
n8n-nodes-base.hubspot