Send your leads to Zapier, Make or your own system
On paid plans, each time a visitor leaves their email or phone, Sincra sends the lead to a webhook address you choose. From there, a tool like Zapier or Make can add it to your CRM, a spreadsheet or a chat channel. You still get the lead email and the lead in your dashboard.
Connect it
- In your Sincra dashboard, open Settings and then Integrations.
- Paste your webhook address in Webhook address. It must start with https://.
- Turn on Send new leads to this address and select Save.
- Select Send a test lead to check that your address answers.
With Zapier
- Create a Zap and choose Webhooks by Zapier as the trigger, with the event Catch Hook.
- Copy the webhook URL that Zapier shows in the Test tab.
- Paste it in Sincra and select Send a test lead.
- Back in Zapier, select Test trigger. The lead fields appear, ready to use in the next steps.
With Make
- In a scenario, add the Webhooks app with the Custom webhook module, and select Add to create a webhook.
- Copy the address Make gives you.
- Paste it in Sincra and select Send a test lead. Make reads the fields from it.
What Sincra sends
One request per lead, the first time the lead has an email or a phone number. Leads from the simulator are not sent. Each request is a JSON POST like this one:
{
"type": "lead.captured",
"timestamp": "2026-11-06T10:15:00.000Z",
"data": {
"id": "3f2a9c7e1b4d8a6f0c2e",
"name": "Jane Doe",
"email": "jane.doe@example.com",
"phone": null,
"company": "Example Ltd",
"intent": "medium",
"summary": "Looking for a quote · Asked about pricing",
"origin_page": "https://example.com/pricing",
"conversation_url": "https://sincra.cloud/en/dashboard/inbox?chat=web_sess_1234",
"created_at": "2026-11-06T10:12:41.000Z"
}
}
A field Sincra doesn't have is null. The test lead has the same fields, with "type": "lead.test".
Check that a request comes from Sincra
Every request is signed following the Standard Webhooks specification. It carries three headers: webhook-id, webhook-timestamp and webhook-signature. Your signing secret is in Settings > Integrations. The Standard Webhooks libraries check the signature for you; this is the same check in Node.js:
import crypto from "node:crypto";
// rawBody: the request body exactly as it arrived, before parsing it.
function isFromSincra(rawBody, headers, secret) {
const id = headers["webhook-id"];
const timestamp = headers["webhook-timestamp"];
const signatures = headers["webhook-signature"] || "";
if (!/^\d+$/.test(timestamp || "")) return false;
if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 5 * 60) return false;
const key = Buffer.from(secret.replace(/^whsec_/, ""), "base64");
const expected = crypto
.createHmac("sha256", key)
.update(`${id}.${timestamp}.${rawBody}`)
.digest("base64");
const wanted = Buffer.from(expected);
return signatures.split(" ").some((entry) => {
const [version, signature] = entry.split(",");
if (version !== "v1" || signature === undefined) return false;
const given = Buffer.from(signature);
return given.length === wanted.length && crypto.timingSafeEqual(given, wanted);
});
}
Reject requests whose timestamp is more than 5 minutes old. The webhook-id is the same on every retry of a lead, so you can use it to avoid saving a lead twice.
If your address doesn't answer
Sincra counts a lead as delivered when your address answers with a 2xx code within 15 seconds. If it doesn't, Sincra tries again for up to 3 days, waiting longer each time. Redirects are not followed. If your address answers 410, Sincra stops sending until you save the address again. The last delivery shows under the address in Settings > Integrations.