BasedOnB + Zapier
Automatically send newly scraped leads from BasedOnB to HubSpot, Google Sheets, Pipedrive, Notion, or any of Zapier's 6,000+ integrations — without writing a single line of code.
Prerequisites
- A BasedOnB account (free account works)
- A Zapier account (free tier supports 5 Zaps)
- The destination app connected in Zapier (e.g. HubSpot, Google Sheets)
Step-by-Step Setup
Create a webhook in BasedOnB
Go to Settings → Webhooks and click Add Webhook. You'll need the Zapier webhook URL from Step 2, so keep this tab open.
What to fill in:
- Name: e.g. "Zapier – HubSpot CRM"
- Endpoint URL: Paste the Zapier webhook URL from Step 2
- Events: Check
scrape.done
Set up a Zapier Webhook trigger
In Zapier, create a new Zap. For the trigger:
- Search for and select Webhooks by Zapier
- Choose Catch Hook as the event
- Copy the generated webhook URL (it looks like
https://hooks.zapier.com/hooks/catch/...) - Paste this URL into your BasedOnB webhook (Step 1) and save
Send a test event from BasedOnB
Back in BasedOnB Settings → Webhooks, click the Test button next to your webhook. This sends a sample scrape.done payload to Zapier so it can detect the data structure.
In Zapier, click Test Trigger — it should find the test event with fields like data__scrape_id, data__query, data__leads_found, etc.
Add your action (CRM, Sheets, etc.)
With the trigger configured, add an action step. Popular choices:
Google Sheets
Append a row for each completed scrape job
HubSpot
Create a new contact or company from lead data
Pipedrive
Add a lead or deal automatically
Notion
Create a database entry with job details
Map the webhook fields to your action. Use data__query for the search term, data__city for the city, and data__leads_found for the lead count.
Publish your Zap
Test the full Zap, then turn it on. Now every time a BasedOnB scrape completes, Zapier will automatically run your action. You can monitor deliveries in BasedOnB Settings → Webhooks → View Logs.
Example Webhook Payload
This is what Zapier receives when a scrape completes:
{
"event": "scrape.done",
"created_at": "2026-01-15T10:05:00Z",
"data": {
"scrape_id": "job-uuid",
"query": "restaurants",
"city": "Istanbul",
"country": "Turkey",
"leads_found": 47,
"credits_charged": 47
}
}In Zapier, these fields appear as data__scrape_id, data__query, data__leads_found, etc. (Zapier flattens nested JSON with double underscores.)
Frequently Asked Questions
Does this work with the free Zapier plan?
Yes. The free Zapier plan supports up to 5 Zaps with 100 tasks/month. Webhooks by Zapier is available on all plans.
Can I get individual leads (not just job metadata) in Zapier?
The webhook payload contains job-level data (query, city, leads count). To get individual lead records, use the BasedOnB REST API to fetch results after the scrape.done event and pass them to Zapier via a Code step or custom app.
What if my Zap fails to receive the webhook?
Check Settings → Webhooks → View Logs in BasedOnB to see delivery status. You can also click Test to resend. Make sure your Zapier webhook URL is correct and the Zap is turned on.
Can I filter — only trigger for scrapes with more than N leads?
Yes. Add a Filter step in Zapier after the trigger: continue only if data__leads_found is greater than your threshold.