Send Embers leads to Zapier
Point a signed Embers webhook at a Zapier Catch Hook, map the lead fields, and fan each qualified lead out to the rest of your stack.
Zapier is the quickest way to put an Embers lead somewhere Embers does not talk to directly: a sheet, a sequencer, a CRM Embers has no destination for. You do it by pointing a signed Embers webhook at a Zapier Catch Hook.
Before you start
- A Zapier account that can create a Catch Hook trigger.
- Somewhere to send the lead once Zapier has it.
- Somewhere to store the signing secret, if you plan to verify the signature inside the Zap.
Connect Zapier
-
Create a Catch Hook in Zapier
In Zapier, start a Zap with a Catch Hook trigger. Zapier gives you a public HTTPS URL. Copy that receiving URL, not the URL of the page you are looking at.
-
Register the URL in Embers
In the Embers app, go to Developer, then Webhooks (
/developer/webhooks) and add the Catch Hook URL as an endpoint. Endpoints must be public HTTPS on port 443, and a URL with a#fragment is rejected because browsers never send fragments in an HTTP request.An account can have up to 10 endpoints.
-
Subscribe to the events you want
Subscribe the endpoint to
lead.createdfirst. That is one event per newly qualified lead, and it already carries the engagement that qualified them.lead.engagement.addedfires every time an existing lead engages again. It is the highest-volume event and new endpoints are not subscribed to it by default. Add it only if your Zap is built to handle repeats. -
Send a test and map the fields
Use the sample send on the Webhooks screen while Zapier is listening. The delivery arrives with the event type
webhook.testand the nested lead shaped like the production event, so Zapier can record the field structure without a test creating a real CRM record.Then map what you need:
Embers field Use it for data.lead.linkedin_urnThe join key. Stable even when someone changes their vanity URL data.lead.nameFull name. The payload has no first or last name field data.lead.title,data.lead.companyRole and employer data.lead.score,data.lead.icp_confidenceBoth on the same 0 to 100 scale as the app data.lead.icp_reasonOne sentence on why they matched data.lead.top_signalsThe signals behind the score data.lead.contact.email,.phoneOnly when data.lead.contact.includedis truedata.engagement.recentThe comment text, post URL, and timestamps There is no grade field. Derive it from the score: A at 80 or above, B at 60, C at 40, D at 20, F below that.
-
Verify the signature
Anyone who learns a Catch Hook URL can post to it, so check the signature before the Zap writes anything. Embers sends Standard Webhooks headers:
webhook-id,webhook-timestamp, andwebhook-signaturein the formv1,<base64 HMAC-SHA256>.Decode the
whsec_secret from base64 and compute the HMAC over{webhook-id}.{webhook-timestamp}.{raw body}. Verify webhook signatures has the full recipe.
What Embers sends and when
A lead is delivered when its score is above zero, it matched your ICP or you approved it manually, and its company is not blocklisted. Nothing else reaches the Zap.
Delivery is at least once. Retries can arrive out of order, so deduplicate on webhook-id and keep the Zap safe to run twice on the same event.
Troubleshooting
The Zap fires twice for one person. That is normal at-least-once delivery, or a lead.created followed later by a lead.engagement.added. Deduplicate on webhook-id for exact repeats and on linkedin_urn for the person.
Embers paused the endpoint. Zapier returned a 4xx, or eight attempts failed over roughly 6.3 days. Fix the receiver, then edit the endpoint URL to clear the pause and replay from the delivery log. See Webhook endpoint is paused.
Email and phone are empty. Contact fields carry only what Embers has already stored. The webhook never triggers a fresh lookup, and included is false when there is nothing stored.
Related
Was this article helpful?
What went wrong?
Thank you. We read every answer.
Still stuck?
Send us the article you were following and what happened. We answer from the same inbox that writes these pages.