Available Events
Project Events
- project_update
- project_delete
Payload Event Name:
stream_updatePayload event.data:Model Events
- model_create
- model_update
- model_delete
Payload Event Name:
branch_createPayload event.data:Version Events
- version_create
- version_update
- version_receive
- version_delete
Payload Event Name:
commit_createPayload event.data:Comment Events
- comment_created
- comment_archived
- comment_replied
Payload Event Name:
comment_createdPayload event.data:Permission Events
- project_permissions_add
- project_permissions_remove
Payload Event Name:
stream_permissions_addPayload event.data:Issue Events
- issue_created
- issue_updated
- issue_reply_created
- issue_deleted
Payload Event Name:
issue_createdPayload event.data:The payload examples above show only the
event.data field content. The full payload includes the base structure (stream, user, server, webhook info) as shown in the Payload Structure section above. Use the event.event_name field to determine which event occurred and parse the event.data accordingly. To retrieve the full object data, use the IDs provided in event.data with the GraphQL API or REST API endpoints.Payload Structure
All webhook payloads follow this base structure:Frequently Asked Questions
How do I know which event to subscribe to?
How do I know which event to subscribe to?
Choose events based on what actions you want to react to. For example:
- Use
version_createto trigger CI/CD builds when new versions are published - Use
comment_createdto send notifications when comments are added - Use
issue_createdto integrate with issue tracking systems - Use
project_permissions_addto sync access control changes
What's the difference between version_create and version_receive?
What's the difference between version_create and version_receive?
version_create: Triggered when a version is created/published from a connector or API (when data is uploaded/pushed)version_receive: Triggered when a version is received/consumed by another service or application (e.g., when a connector receives data from another project, or when data is imported into a different application)
version_create for most CI/CD and automation workflows, as it fires when users actively publish data. Use version_receive to track when versions are consumed by downstream services or applications.Can I subscribe to multiple events with one webhook?
Can I subscribe to multiple events with one webhook?
Yes! When creating a webhook, you can select multiple events. The same webhook endpoint will receive payloads for all selected events. Use the
event.event_name field to determine which event occurred.Why do payloads use different event names than the UI?
Why do payloads use different event names than the UI?
The UI uses current Speckle terminology (project, model, version), while payloads use legacy names (stream, branch, commit) from Speckle v1/v2 for backward compatibility. This ensures existing integrations continue to work. Always check the
event.event_name field in the payload to see the actual event type.What data is included in webhook payloads?
What data is included in webhook payloads?
Webhook payloads contain reference data (IDs, names, metadata) rather than full objects. This keeps payloads lightweight and secure. Use the IDs provided in the payload to fetch complete object data via the GraphQL API or REST API when needed.