Webhooks and Slack
Send task events to your own systems as signed JSON, to Zapier or Make, or as messages in a Slack channel.
Webhooks are on paid plans. Owners and admins add them in Team settings › Integrations › Webhooks and Slack; a team can have 10.
Add one
- A webhook (JSON): choose Add webhook, paste the address (it must start with https://), choose what to send and for which project, and choose Add webhook. Copy the signing secret shown next: it's shown once.
- A Slack channel: in Slack, make an app for your workspace at api.slack.com/apps, turn on Incoming Webhooks, and add one for the channel. Then choose Add Slack channel in Plotter and paste its address (https://hooks.slack.com/…).
- Zapier or Make: start a Zap with Webhooks by Zapier › Catch Hook (or Make's Custom webhook), copy its address, and add it in Plotter as a webhook.
Send test sends a test delivery and shows what the address answered.
What's sent
| Event | When |
|---|---|
task.created | A reviewer or a member makes a mark |
task.status_changed | A task is resolved, dismissed, reopened or started, here or in an issue tracker |
task.replied | Someone replies, or adds a team note (teamOnly: true) |
task.assigned | Someone assigns or unassigns the task |
Each delivery is a JSON body with id, type, createdAt, team, project, task (its key, title, status, page, who it's from and its url in Plotter) and change (what changed). Reviewers' email addresses are never sent.
Check the signature
Every JSON delivery has a Plotter-Signature header like t=1792558184,v1=5f2…. Compute an HMAC-SHA256 of the text t + . + the raw body, keyed with your signing secret, and compare it with v1 (hex). Refuse old t values to stop replays. In Node:
const [, t, v1] = header.match(/^t=(\d+),v1=([0-9a-f]+)$/);
const ok = crypto.createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex") === v1
&& Math.abs(Date.now() / 1000 - Number(t)) < 300;When an address fails
Plotter retries a failed delivery for about 15 hours. If an address keeps failing, the webhook stops and says why; fix the address and choose Turn on.