Yes. ZipLead posts a JSON webhook to one URL you save in Settings, and Make's Custom webhook module receives it. There is no ZipLead app in Make's directory, so you use that generic module and route on the event name. On the ZipLead side, The Webhook URL field is on Command ($179/mo), the plan that includes API access. Operator and the free plan do not have it.
In Make, create a new scenario and click the big plus. Search for Webhooks and pick Custom webhook. Click Add, give it a name, Save. Make shows an address on hook.<region>.make.com. Copy it.
In ZipLead, open the dashboard and click Settings in the left sidebar. Scroll to the section titled Webhook URL. Paste the address into the field and click Save.
A Send test payload button appears under the field once a URL is saved. Click it while the Make module is listening. Make reports Successfully determined and now knows the fields event, timestamp and data.
The test's data field only has message and userId. Real events carry different fields (see the table). After the first real event lands, open the webhook module and click Re-determine data structure so the real fields show up for mapping.
Add a Router after the webhook. On each route set a filter: event, Text operator Equal to, and the event you want (prospect.gold, pipeline.moved, and so on). For one bundle per prospect, put an Iterator on data.prospects.
Google Sheets, Slack, a CRM, an HTTP module to your own system. Then set scheduling to Immediately as data arrives and turn the scenario on. Run a search in ZipLead to see scrape.completed come through.
Same URL for all of them. Filter on the event field in the body or the X-ZipLead-Event header.
| Event | When it fires | What data holds |
|---|---|---|
test.ping | You click Send test payload in Settings. | message, userId |
scrape.completed | A search finishes. | jobId, location, radius, industries, totalProspects |
prospect.enriched | You enrich prospects in a search. | jobId, enrichedCount, prospects (id, name, score, tier) |
prospect.gold | A prospect you just enriched scores 85 or higher, the Hot tier. Sent alongside prospect.enriched. | jobId, count, prospects (id, name, score, tier) |
pipeline.moved | You move one or more prospects to a new pipeline stage. | prospectIds, newStatus, prospects (id, name) |
alerts.raised | The weekly monitoring run finds changes, and only if the Webhook switch under Alert delivery is on. | count, alerts (prospectId, prospectName, type, severity, message) |
POST https://your-endpoint
Content-Type: application/json
User-Agent: ZipLead-Webhook/1.0
X-ZipLead-Event: prospect.gold
{
"event": "prospect.gold",
"timestamp": "2026-09-09T18:20:11.000Z",
"data": {
"jobId": 4127,
"count": 2,
"prospects": [
{ "id": 88213, "name": "Coastline Drain Co.", "score": 91, "tier": "PRIME" },
{ "id": 88240, "name": "Peak Electric", "score": 86, "tier": "PRIME" }
]
}
}There is a single Webhook URL field. Every event goes to it. If you want Zapier and Make both, catch it once and fan out from there.
The field rejects anything that does not start with https://.
ZipLead sends each event once and waits up to 10 seconds for a 2xx. If your endpoint is down or slow, that event is gone. It does not queue and it does not try again.
There is no signing secret or HMAC header. If you need to know a request really came from ZipLead, put a secret in the URL itself (Zapier and Make URLs already are unguessable) and check it on your side.
The prospect events carry id, name, score and tier. They do not carry phone, website, address or email. For the full record, download the CSV or call GET /api/v1/prospects with the job_id from the event.
tier arrives as PRIME, SOLID, WATCH or SKIP. The app shows those as Hot, Warm, Cold and Skip. Same thing, older names.
Yes. Webhooks and the REST API are the two things Command adds on top of Operator, along with 200 searches and 500 enrichment credits a month instead of 100 and 100. On Operator you can still export a CSV and import it wherever you want.
Because it learned the structure from the test payload, whose data field only carries message and userId. Send a real event (run a search, or move a prospect in the pipeline), then open the webhook module and click Re-determine data structure.
Not directly. ZipLead has one Webhook URL field, so every event goes to one place. Point it at Make and use an HTTP module to forward to Zapier if you need both, or the other way round.
No. Prospect events carry id, name, score and tier. For the phone, website and address, download the CSV from the search, or have Make call GET /api/v1/prospects?job_id=<jobId> with your API key from Settings, which returns the full records.
5 free searches a month, no card, so you can see the data before you pay for the webhook. On Zapier instead? That page is here.
Run a free search