plotterDOCS
TEAM ADMIN

Webhooks and Slack

Send task events to your own systems as signed JSON, to Zapier or Make, or as messages in a Slack channel.

Owners and admins2 min

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

EventWhen
task.createdA reviewer or a member makes a mark
task.status_changedA task is resolved, dismissed, reopened or started, here or in an issue tracker
task.repliedSomeone replies, or adds a team note (teamOnly: true)
task.assignedSomeone 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:

js
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.

Still stuck? A person answers every email, usually the same day.Email hello@plotter.run