Webhook Events
Events are the triggers that cause webhook deliveries. Each event represents a significant action within an organization's workspace.
Core Events
These events are built into the system:
api_key.created— a new API key was generatedapi_key.revoked— an API key was deletedmember.invited— a new member was invited to the organizationmember.joined— an invited user accepted and joinedmember.removed— a member was removed from the organizationmember.role_changed— a member's role was updated
Custom Events
Custom events are defined in the webhook_events array in config/custom.php:
// config/custom.php
'webhook_events' => [
'project.created',
'project.updated',
'project.deleted',
'comment.added',
'comment.deleted',
],
Dispatch custom events from your application code using the WebhookDispatcher:
WebhookDispatcher::dispatch($organizationId, 'project.created', [
'project_id' => $project->id,
'name' => $project->name,
]);
Wildcard Subscription
Use * to subscribe a webhook to all events, including any custom events added in the future:
{
"events": ["*"]
}
Payload Format
Every webhook delivery sends a JSON payload with a consistent structure:
{
"event": "member.joined",
"occurred_at": "2026-03-21T14:30:00Z",
"organization_id": 42,
"data": {
"user_id": 15,
"name": "Jane Smith",
"email": "jane@example.com",
"role": "member"
}
}
event— the event name that triggered this deliveryoccurred_at— ISO 8601 timestamp of when the event occurredorganization_id— the organization where the event happeneddata— event-specific payload with relevant details