Send leads to other tools (webhooks)
Push every captured lead to Zapier, Make, n8n, Pabbly, TaskMagic, or your own endpoint — in real time.
Webhooks push each lead Komently captures — email, Instagram username, the keyword that triggered it, and the source post — to any other tool the moment it happens. No exports, no copy-paste: the lead lands in your spreadsheet, CRM, or email platform in seconds.
Available on paid plans
Webhooks are included on every paid and AppSumo plan. On the Free plan you can still export leads as CSV from the Leads page.How it works
A webhook is just a URL that accepts data. Automation platforms give you one for free: Zapier calls it a Catch Hook, Make a Custom webhook, n8n a Webhook node, Pabbly a Webhook trigger. You paste that URL into Komently, and whenever a lead is captured we send it an HTTPS POST with the lead's details as JSON. Your platform then does anything you like with it — add a row to Google Sheets, create a CRM contact, subscribe the email to your newsletter.
Platform-specific walkthroughs:
Create a webhook
- 1
Get a webhook URL from your platform
Follow the guide for your platform above — each one shows you where to copy the URL. - 2
Add it in Komently
Go to Integrations in the left menu, click New webhook, pick your platform, paste the URL, and give it a name. That's it — no keys or passwords needed; the URL itself is the connection. - 3
Send a test lead
Open the webhook and click Send test lead. This sends a realistic sample so your platform can learn the field structure — Make and Pabbly literally build their field mapping from this one request, so don't skip it. - 4
Finish on the platform side
Map the fields (email, username, keyword…) into your action — a sheet row, a CRM contact — and switch your Zap/scenario/workflow on.
What we send
Every event is a JSON POST. The envelope tells you what happened; everything about the lead is in data, kept deliberately flat so every platform maps it cleanly:
{
"event": "lead.captured",
"event_id": "evt_9f3k2m1x8qv7",
"created_at": "2026-07-28T09:41:22.000Z",
"data": {
"email": "jane@example.com",
"instagram_username": "jane.doe",
"platform": "instagram",
"trigger_keywords": "GUIDE",
"trigger_source": "comment",
"automation_type": "comment_to_dm",
"automation_id": "cmb1a2c3d4e5f6",
"source_post_url": "https://www.instagram.com/p/AbC123xYz/",
"source_post_caption": "Drop GUIDE below and I'll DM you my free checklist 👇",
"account_username": "yourbrand",
"captured_at": "2026-07-28T09:41:20.000Z"
}
}event— currently alwayslead.captured(fires when a follower shares their email). More event types are coming.event_id— unique per event; identical across retries, so you can de-duplicate.trigger_keywords— the automation's keywords as one comma-separated string.source_post_url/source_post_caption— the post the automation is attached to (empty for all-posts and DM automations).
Field names are stable
We treat these key names as a contract — they won't be renamed, so your mappings won't break. New fields may be added over time; ignore what you don't need.Deliveries & retries
Each webhook's page shows a delivery log: every attempt with its HTTP status, response time, and the exact payload sent. Any 2xx response counts as delivered. If your endpoint is down or errors, we retry automatically — up to 8 attempts over about an hour, with increasing delays. A delivery that exhausts all retries is marked Failed and gets a Redeliver button.
Auto-pause on dead endpoints
If 10 deliveries in a row fail completely, the webhook is paused automatically so we stop hammering a dead URL. Fix the endpoint, then flip the toggle back on — re-enabling resets the failure counter.Endpoints that require login (custom headers)
Some endpoints — usually your own server or a locked-down self-hosted n8n — refuse requests that don't carry a credential, like an Authorization: Bearer … header. If yours does, open the webhook's "My endpoint requires authentication" section and add the header name and value it expects; we'll include it on every delivery. You can add up to 5 headers, and values are stored encrypted.
You almost certainly don't need this
Zapier, Make, Pabbly, TaskMagic, and n8n Cloud webhook URLs work with no authentication — the long random URL is the credential. Leave this section empty unless your endpoint returns401 or 403.The signing secret
Do I need this?
Probably not. If you use Zapier, Make, Pabbly, TaskMagic, or n8n, you can ignore the signing secret completely — everything works without ever touching it. It only matters if you point a webhook at your own server and want to verify who's calling it.Every webhook gets a secret (whsec_…) generated automatically — you never have to supply or configure anything. Each delivery is signed with it, so your code can prove a request really came from Komently and not from someone who guessed the URL. Note the direction: the signing secret is Komently proving itself to you; the custom headers above are you authenticating to your endpoint. They're independent — use either, both, or neither.
Each request carries these headers:
X-Komently-Event— the event typeX-Komently-Event-Id— the event id (same as in the body)X-Komently-Signature—t=<unix time>,v1=<HMAC-SHA256 hex>
The signature is HMAC-SHA256 over event_id + "." + timestamp + "." + raw body, keyed with your secret. In Node.js:
const crypto = require("crypto");
// X-Komently-Signature looks like: t=1753692082,v1=6f2a…e91c
const [tPart, vPart] = signatureHeader.split(",");
const timestamp = tPart.slice(2);
const received = vPart.slice(3);
const expected = crypto
.createHmac("sha256", process.env.KOMENTLY_WEBHOOK_SECRET) // whsec_…
.update(`${eventIdHeader}.${timestamp}.${rawRequestBody}`)
.digest("hex");
const valid = crypto.timingSafeEqual(
Buffer.from(expected), Buffer.from(received)
);If the secret ever leaks, click Rotate on the webhook to generate a new one (update your verifier at the same time).
Troubleshooting
- Test lead shows a red error? Check the URL for typos, and confirm the receiving workflow is switched on (n8n and Pabbly only listen when active/capturing).
- Deliveries fail with 401 or 403? Your endpoint requires authentication — add the header it expects under "My endpoint requires authentication" on the webhook.
- Platform receives nothing, but the log shows 200? You likely pasted a URL from a different workflow — copy it again from the one you're editing.
- Fields not appearing on the platform? Send a test lead while the platform is in its "waiting for data" / "capture response" state.
- Duplicate rows? Retries reuse the same
event_id. Most platforms handle this; for custom endpoints, de-duplicate on that field. - Real leads missing? Each lead fires once per webhook — if the same person re-submits the same email on the same automation, we don't send it twice.