Setting up outbound webhooks
Outbound webhooks let LyncView push events to your URL in real time. Examples: a task is completed, a project changes status, a client uploads a file.
Setup
- Go to Settings → Webhooks.
- Click New Webhook.
- Enter your endpoint URL (must be HTTPS in production).
- Select the events to subscribe to (or use
*for all events). - Save. A signing secret is auto-generated and shown once — copy and store it.
Event payload
Every event POSTs JSON like:
{
"event": "task.completed",
"data": {
"task_id": "task-abc-123",
"project_id": "project-xyz-789",
"title": "Plan review approved",
"completed_at": "2026-04-28T10:15:00Z",
"completed_by": "user-456"
},
"timestamp": "2026-04-28T10:15:01Z"
}Verifying signatures
Each request includes X-Webhook-Signature (HMAC-SHA256 of the raw body using your secret) and X-Webhook-Event (event type).
Verify in Node.js:
import crypto from 'crypto';
function verifyWebhook(rawBody, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected),
);
}Always verify signatures. Webhooks without a secret won't fire — we refuse to send unsigned events.
Available events
task.completed— Task marked completetask.created— New task added to a projecttask.updated— Task title, due date, or assignment changedproject.created— New project startedproject.updated— Project status, name, or details changedproject.completed— Project marked completefile.uploaded— File uploaded to a projectclient.invited— Client invited to a projectcomment.created— Comment added to a task
Retries and timeouts
We wait up to 10 seconds for your endpoint to respond with a 2xx status. If we get 5xx or timeout, we retry up to 3 times with exponential backoff (1s, 5s, 25s). After 3 failures, we mark the webhook delivery failed and log it. Repeated failures don't disable the webhook automatically — that's on you to monitor.
Testing
Click Test on any webhook to fire a sample webhook.test event to your endpoint. Useful for verifying setup without waiting for real events.
Still have questions?
support@lyncview.com