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
- In the dashboard, go to Settings > Integrations.
- On the Webhook card, click Configure.
- In Endpoint URL, paste your endpoint. It must start with https://.
- Optional: in Signing secret, enter a secret of your choice.
- 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 value | When it is sent |
|---|---|
feedback_created | A new feedback item is created. |
status_changed | A feedback item moves to a new status. |
comment_added | Someone 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:
| Field | What it contains |
|---|---|
event | The event name: feedback_created, status_changed or comment_added. |
timestamp | The time of the event, in ISO 8601 format. |
occurredAt | The same value as timestamp. |
project.id | The ID of your Feedvote project. |
feedback | The feedback item: id, title, status, projectId and authorId. authorId can be null. |
actor | The person who did the action: id, name and email. Can be null. |
comment | For comment_added: the comment id and body. Otherwise null. |
changes | Details about what changed, or null. |
permalink | A link to the feedback item on your board, in the form https://your-subdomain.feedvote.app/feedback/ID. Can be null. |
integration | The 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.