Webhooks

Webhooks overview

Lenit sends a POST request to a URL you register whenever an event happens. Receive it on your own server to notify people over your own channels — KakaoTalk, email, push — or wire it up to Slack, JANDI or Zapier.

What can you do with it?

ScenarioHow it works
Status change → notify the people involvedWhen the "Add dark mode" idea moves to Done, send a KakaoTalk message from your own account to everyone who voted or commented on it
Announcement published → notify related usersLink an announcement to an idea when you publish it, and everyone connected to that idea is notified automatically
Slack channel alertsPost to #product-feedback whenever a new idea comes in
Zapier / n8nCreate a Notion page, trigger an email campaign, and more — all from a no-code automation tool

One feature, many targets — automatic formatting

Depending on the webhook URL you register, the backend converts the payload to the right format automatically.

URL patternConverted to
hooks.slack.com/...A Slack Block Kit message
wh.jandi.com/...JANDI connectInfo
Every other URLThe standard Lenit JSON envelope (event + eventLabel + data + audience)

One organization can register several endpoints at once, each with its own events and audience.

A real-world setup
text
1
2
3
4
1. https://hooks.slack.com/...    → Engineering, every event
2. https://wh.jandi.com/...       → Marketing, announcements only
3. https://api.mycompany.com/...  → Your own server, status changes + audience
4. https://hooks.zapier.com/...   → Notion automation

Payload structure (for your own server)

POST body — the standard Lenit envelope
json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "event": "idea.status_changed",
  "eventLabel": "Idea status changed",
  "data": {
    "ideaId": "...",
    "title": "Dark mode support",
    "oldStatus": "Voting",
    "newStatus": "Done",
    "updatedAt": "2026-04-25T21:45:56",
    "audience": {
      "author":     { "externalId": "user_001", "traits": { "plan": "pro" } },
      "commenters": [ { "externalId": "user_002", "traits": {} } ],
      "voters":     [ { "externalId": "user_003", "traits": {} } ],
      "reactors":   [ { "externalId": "user_004", "traits": {} } ]
    }
  }
}

Request headers:

  • Content-Type: application/json
  • X-Lenit-Event: idea.status_changed

Registering a webhook

  1. In the admin dashboard, open Team · Integrations → Webhooks in the sidebar
  2. Click + Add webhook
  3. Enter the URL, tick the events you want, tick the audience groups, and save
  4. To check it really works, register a throwaway receiver such as webhook.site, then trigger a real event on the board — change an idea's status, say — and inspect the payload.
NoteThere is no separate "send test" button
The audience (voters, commenters, author) is only filled in meaningfully when the event fires exactly as it does in production, so we recommend verifying with a real event rather than a dummy send.

Next steps

←Installation guideEvent types→