Setup
1. Copy your ingest URL
Each workspace has its own endpoint:2. Generate a webhook secret
Click Generate secret. Until a secret exists, the endpoint does not accept leads. The secret signs every request. Store it wherever you keep credentials for the system that will be sending, and treat it like a password.Signing a request
Every request carries two headers:
The signature is an HMAC-SHA256 over the timestamp and the raw request body, joined by a period, keyed with your webhook secret:
Sending leads
POST to your ingest URL with Content-Type: application/json.
Send
dry_run: true first. It exercises the signature, the payload shape, and the endpoint without creating records, which makes it the right thing to wire into a staging environment or a health check.
Example
What happens next
Leads arriving through the webhook behave like attendees from any other source. They can be enriched, added to Lists, matched to your CRM, and counted in Event Attribution. Email is the primary key for all of it, so a lead with no email produces a record but no attribution.Security notes
- Rotate the secret if it is ever exposed. Generating a new secret invalidates the old one, so update your sender first.
- Verify over TLS only. The endpoint is HTTPS and requests over plain HTTP are rejected.
- Never put the secret in client-side code. Send from a server, a form backend, or an automation platform, not from a browser.
Related
- Event Platforms: native integrations for Luma, Meetup Pro, Splash, and Zuddl
- Enrichment: resolve incoming leads to company, title, and seniority
- CRM: connect HubSpot, Salesforce, or Attio