Skip to main content

Webhooks

Configure outgoing webhooks to notify external systems of events in Ever Gauzy.

Supported Events

Event CategoryEvents
EmployeeCreated, Updated, Deleted
Time LogStarted, Stopped, Created, Updated
TimesheetSubmitted, Approved, Denied
TaskCreated, Updated, Status Changed
InvoiceCreated, Sent, Paid
ExpenseCreated, Approved

Webhook Payload

{
"event": "time_log.created",
"timestamp": "2024-01-15T10:30:00Z",
"tenantId": "tenant-uuid",
"organizationId": "org-uuid",
"data": {
"id": "time-log-uuid",
"employeeId": "employee-uuid",
"duration": 3600,
"projectId": "project-uuid",
"startedAt": "2024-01-15T09:00:00Z",
"stoppedAt": "2024-01-15T10:00:00Z"
}
}

Security

Webhook Signing

Webhooks include a signature header for verification:

X-Gauzy-Signature: sha256=hex-signature

Verify in your handler:

const crypto = require("crypto");
const signature = crypto
.createHmac("sha256", webhookSecret)
.update(JSON.stringify(body))
.digest("hex");

if (signature !== receivedSignature) {
throw new Error("Invalid webhook signature");
}

Retry Policy

AttemptDelay
1Immediate
21 minute
35 minutes
415 minutes
51 hour

After 5 failed attempts, the webhook is disabled.