Integrations and API
Webhooks
Webhooks send a POST request to your server whenever tasks or comments change, so other systems can react.
- Go to Settings → Integrations → Webhooks and click Add webhook.
- Enter the Endpoint URL. It must use
https://. - Pick the Events:
task.created,task.updated,task.moved,task.completed,task.reopened,task.deleted, andcomment.created. - Click Add webhook.
- Copy the Signing secret. It isn't shown again.
- Click Send test to send a
pingevent and check your endpoint.
What a delivery looks like
Each delivery is JSON with an id, the event type, created_at, workspace_id, the actor (id and name), and data.task with the task's id, key, title, description, board, list, assignees, labels, priority, dates, done state, and link.
The request carries these headers: Taskeni-Event, Taskeni-Delivery, and Taskeni-Signature.
Verify the signature
The signature header looks like t=<unix seconds>,v1=<hex>. Compute an HMAC-SHA256 of the timestamp, a dot, and the raw body with your secret, compare it with v1, and reject old timestamps.
import crypto from "node:crypto";
function isFromTaskeni(header, rawBody, secret) {
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
const expected = crypto.createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex");
const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < 300;
const given = Buffer.from(parts.v1 || "");
return fresh && given.length === expected.length && crypto.timingSafeEqual(given, Buffer.from(expected));
}Retries and the delivery log
- Any response other than 2xx, a network error, or no answer within 10 seconds counts as a failure.
- Failed deliveries retry after 1 minute, 5 minutes, 30 minutes, 2 hours, and 12 hours, then stop. That's about 15 hours in all.
- Each webhook shows its Recent deliveries with status, HTTP code, and attempts. The log keeps 30 days.
Good to know
- Only owners and admins can manage webhooks.
- A workspace can have up to 10 webhooks.
- Use the Active switch to pause a webhook without deleting it.
- Webhooks are included on every plan.
Didn't find what you needed? Contact support.