Skip to main content
Webhooks deliver real-time POSTs to your endpoint whenever something happens in your Sleekplan workspace. Use them to mirror data, automate workflows, or connect Sleekplan to tools without a native integration.

Use cases

  • Store new feedback items directly in your own database.
  • Capture a visitor’s email address the moment they set it.
  • Trigger a Slack message or Zapier workflow when a user votes, comments, or subscribes to a suggestion.
  • Sync changelog publishes to an external CMS or mailing list.

1

Create a public HTTP endpoint

Set up a server endpoint that accepts POST requests and returns a 2xx HTTP status to acknowledge receipt.Secure your endpointAppend a secret key as a GET parameter to your endpoint URL, then validate the parameter server-side before processing the payload:
https://endpoint.yourapp.com/webhooks?key=MY_SECRET_KEY
Sleekplan does not sign webhook payloads with an HMAC signature. Using a secret GET parameter is the recommended way to verify that requests originate from Sleekplan.
2

Register the webhook

  1. Open your product Settings.
  2. Navigate to the Developer section.
  3. Scroll to Webhooks, click Add webhook.
  4. Enter your endpoint URL (with the ?key= parameter).
  5. Save — Sleekplan starts delivering events immediately.

Events

Feedback and suggestion events

EventTriggered when
item.createA new feedback item is submitted.
item.updateA feedback item is edited or its status changes.
item.deleteA feedback item is deleted.
comment.createA comment is added to a feedback item.
comment.updateA comment is edited.
comment.deleteA comment is deleted.
vote.createA user votes on a feedback item.
subscription.createA user subscribes to a feedback item.
subscription.deleteA user unsubscribes from a feedback item.

Other events

EventTriggered when
user.createA new user record is created in Sleekplan.
user.updateA user’s profile data is updated.
user.deleteA user is deleted.
changelog.createA new changelog entry is published.
changelog.updateA changelog entry is edited.
changelog.subscribeA user subscribes to the changelog.
satisfaction.createA CSAT response is submitted.

Payload format

General structure

{
  "product_id": 5456534244,
  "action": "item.create",
  "data": {},
  "timestamp": "1506985999999"
}
FieldTypeDescription
product_idnumberThe numeric ID of your Sleekplan product.
actionstringThe event key, for example item.create or vote.create.
dataobjectThe event payload. Structure matches the REST API response for the relevant resource.
timestampstringUnix timestamp (milliseconds) when the event occurred.

Example: item.create

{
  "product_id": 5456534244,
  "action": "item.create",
  "data": {
    "feedback_id": "3",
    "product_id": "1",
    "title": "Show/search for similar ideas as you type",
    "description": "This can help us avoid users posting duplicate ideas",
    "status": "open",
    "trend": "0",
    "type": "user-interface",
    "total_up": "9",
    "total_down": "0",
    "total_sum": "9",
    "total_comments": "0",
    "total_ratio": "9",
    "total_subscriber": "1",
    "scoring": "0.55",
    "effort": "1",
    "created": "2020-05-22 16:49:00",
    "updated": "2020-05-22 16:49:00",
    "user": {
      "user_id": "4",
      "admin_id": 0,
      "data_name": "lennishq",
      "data_mail": "",
      "data_img": "https://storage.sleekplan.com/..."
    }
  },
  "timestamp": "1506985999999"
}
The shape of the data field matches the corresponding REST API response. See the REST API reference for the full structure of each payload type.