ื“ืœื’ ืœืชื•ื›ืŸ ื”ืจืืฉื™

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.