Create a webhook endpoint
Enter your endpoint URL
Provide the public HTTPS URL where fsckmsft should deliver events, for example
https://yourapp.example.com/webhooks/fsckmsft. The endpoint must be reachable from the internet and must respond with a 2xx status code to acknowledge receipt.Choose events to subscribe to
Select one or more events from the list below. You can also choose Send all events to receive everything — useful during development.
| Event | Triggered when |
|---|---|
project.created | A new project is created in the workspace |
project.updated | A project’s name, status, or settings change |
project.deleted | A project is permanently deleted |
task.created | A new task is added to a project |
task.updated | A task’s title, assignee, or status changes |
task.completed | A task is marked as complete |
workflow.run.started | A workflow run begins executing |
workflow.run.completed | A workflow run finishes (success or failure) |
workflow.run.failed | A workflow run encounters a fatal error |
member.invited | A new member is invited to the workspace |
member.removed | A member is removed from the workspace |
Webhook payload structure
Every webhook request is an HTTP POST with aContent-Type: application/json header. The body is a JSON object with a consistent top-level structure:
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for this event delivery attempt |
event | string | The event type, e.g. task.completed |
timestamp | string | ISO 8601 UTC timestamp of when the event occurred |
workspace_id | string | The workspace that generated the event |
data | object | Event-specific payload — shape varies by event type |
Verify webhook signatures
Every request fsckmsft sends to your endpoint includes anX-fsckmsft-Signature header. Verify this header on every incoming request to confirm it originated from fsckmsft and was not tampered with in transit.
The signature is an HMAC-SHA256 digest of the raw request body, using your endpoint’s signing secret as the key. It is hex-encoded and prefixed with sha256=.
Node.js / Express example
- Python
- Go
Retries and delivery guarantees
fsckmsft delivers webhooks with at-least-once semantics. If your endpoint does not return a2xx response within 10 seconds, fsckmsft marks the delivery as failed and retries automatically.
| Attempt | Delay after previous failure |
|---|---|
| 1st retry | 30 seconds |
| 2nd retry | 5 minutes |
| 3rd retry | 30 minutes |
| 4th retry | 2 hours |
| 5th retry | 8 hours |
Because fsckmsft uses at-least-once delivery, your endpoint may occasionally receive the same event more than once (e.g., during a network timeout where your server processed the event but the
200 OK was not received). Always deduplicate on the id field before processing.Manage webhook endpoints
From Settings → Developer → Webhooks, you can:- Edit an endpoint’s URL or event subscriptions at any time.
- Rotate the signing secret — generates a new secret. Update your server’s environment variable promptly, as fsckmsft starts signing with the new secret immediately.
- Pause delivery — temporarily stop sending events to an endpoint without deleting it. Useful during maintenance windows.
- Delete — permanently removes the endpoint. Events generated after deletion are not queued.