Skip to Content
FeedvoteDocs

Webhooks

How to send Feedvote events to your own HTTPS endpoint, what the request contains, and how to check the secret.

The Feedvote Webhook integration sends a JSON POST request to your own HTTPS endpoint when feedback is created, a status changes or a comment is added. You can use the Webhook to start your own automations. Only the project owner and admins can set up the Webhook.

Add a webhook

  1. In the dashboard, go to Settings > Integrations.
  2. On the Webhook card, click Configure.
  3. In Endpoint URL, paste your endpoint. It must start with https://.
  4. Optional: in Signing secret, enter a secret of your choice.
  5. Click Connect.

A project can have one Webhook. The Webhook card then shows Connected.

Events

The Webhook receives all three events. You cannot choose events for the Webhook.

event valueWhen it is sent
feedback_createdA new feedback item is created.
status_changedA feedback item moves to a new status.
comment_addedSomeone adds a comment to a feedback item.

Votes do not send a Webhook event.

Request format

Each event is one POST request with a JSON body. The Content-Type header is application/json.

Example body for a new feedback item:

{
  "event": "feedback_created",
  "timestamp": "2026-11-12T10:15:00.000Z",
  "occurredAt": "2026-11-12T10:15:00.000Z",
  "project": {
    "id": "proj_123"
  },
  "feedback": {
    "id": "fb_456",
    "title": "Export roadmap as CSV",
    "status": "backlog",
    "projectId": "proj_123",
    "authorId": "user_789"
  },
  "actor": {
    "id": "user_789",
    "name": "Sam Lee",
    "email": "sam@example.com"
  },
  "comment": null,
  "changes": null,
  "permalink": "https://yourteam.feedvote.app/feedback/fb_456",
  "integration": {
    "id": "int_001",
    "type": "webhook"
  }
}

The IDs, names and dates above are examples. The fields are:

FieldWhat it contains
eventThe event name: feedback_created, status_changed or comment_added.
timestampThe time of the event, in ISO 8601 format.
occurredAtThe same value as timestamp.
project.idThe ID of your Feedvote project.
feedbackThe feedback item: id, title, status, projectId and authorId. authorId can be null.
actorThe person who did the action: id, name and email. Can be null.
commentFor comment_added: the comment id and body. Otherwise null.
changesDetails about what changed, or null.
permalinkA link to the feedback item on your board, in the form https://your-subdomain.feedvote.app/feedback/ID. Can be null.
integrationThe id of this Webhook connection and its type, which is webhook.

The status value is one of backlog, todo, in_progress, done or canceled.

Signing secret

If you enter a Signing secret, Feedvote adds it to every request in the X-Feedvote-Signature header.

The header value is your secret itself. Feedvote does not compute a hash or HMAC of the body. To check that a request comes from Feedvote, compare the X-Feedvote-Signature header with your secret.

After you save, the dashboard does not show the secret again. When you open the Webhook settings later, the Signing secret field is empty. If you click Save changes with that field empty, Feedvote removes the secret. Enter the secret again each time you save.

Delivery rules

  • Your endpoint must answer with a 2xx status code. Any other answer counts as a failed delivery.
  • Feedvote does not follow redirects. A 3xx answer counts as a failed delivery.
  • Feedvote does not retry a failed delivery.
  • The endpoint must use HTTPS and a public internet address. Addresses such as localhost or private IP addresses are not accepted.

Change or remove the webhook

Only the project owner and admins can do this.

  • To change the endpoint or secret: on the Webhook card, click Settings, edit the fields, then click Save changes.
  • To stop all requests: on the Webhook card, click Disconnect. This removes the Webhook connection from the project.

Common questions

Can I choose which events go to my webhook?

No. The Webhook always receives feedback_created, status_changed and comment_added. Filter the events on your side using the event field.

Is the X-Feedvote-Signature header an HMAC signature?

No. The header contains the secret you entered in Signing secret. Compare it with your stored secret to verify the request.

Does Feedvote retry if my endpoint is down?

No. If your endpoint fails or returns a non-2xx status, that delivery fails and Feedvote does not send it again.

Why do I get "Endpoint must be a valid https:// address"?

The Endpoint URL must be a full address that starts with https://. Plain http:// addresses are not accepted.

Can I add more than one webhook endpoint?

No. A project can have one Webhook connection. Saving a new endpoint replaces the old one.

Do votes trigger a webhook?

No. Only new feedback, status changes and new comments send a request.

On this page