Integration · Webhooks
Webhooks and Tellane.
The same pipeline Zapier uses, pointed at your own server.
Plan: Every plan.
Exactly what moves
What the integration does
- Events: lane.played, lane.completed, lead.captured, lane.published. Choose any subset per endpoint.
- Headers: X-Tellane-Event, X-Tellane-Delivery, X-Tellane-Timestamp, and X-Tellane-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>.<raw body>")>.
- Retries at 1 m, 5 m, 30 m, 2 h, 12 h until a 2xx within 10 seconds; then failed. Every attempt, with payload, is in the delivery log with a Retry button.
- If an endpoint's last three settled deliveries all failed it is paused and every admin is emailed; switching it back on resumes.
- Secrets are shown once and can be rotated; endpoints can be edited, tested, and paused.
Setup
Connect it
- Settings → Webhooks → Add endpoint: the https URL and the events.
- Copy the signing secret and verify X-Tellane-Signature on every delivery (the API reference has the verifier).
- Press Test to receive a sample delivery; check the delivery log for the response your endpoint returned.
Reference
Verify a signature (Node)
import { createHmac, timingSafeEqual } from "node:crypto";
export function verify(secret, header, rawBody, maxAgeSeconds = 300) {
const parts = Object.fromEntries(header.split(",").map((kv) => kv.split("=")));
const t = Number(parts.t);
if (!t || Math.abs(Date.now() / 1000 - t) > maxAgeSeconds) return false;
const expected = createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex");
return timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1 ?? ""));
}Full detail in the API reference.
FAQ
Questions
Is the payload the same as Zapier's?
Yes — Zapier is a webhook endpoint with a catch hook as the URL.
What if my endpoint is slow?
Answer 2xx within 10 seconds and process afterwards; otherwise the delivery is retried.
More integrations