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

  1. Settings → Webhooks → Add endpoint: the https URL and the events.
  2. Copy the signing secret and verify X-Tellane-Signature on every delivery (the API reference has the verifier).
  3. 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

Also connects to