Skip to main content

Webhook eventTypes — enum replaced with lowercase dotted strings

Summary

Webhook subscription eventTypes no longer use the GraphQL WebhookEventType enum (PATIENT_CREATED, BOOKING_UPDATED, etc.).

They now use lowercase dotted strings (for example "patient.created", "booking.updated"). These are the same values:

  • accepted by createWebhook and updateWebhook
  • returned on WebhookSubscription.eventTypes
  • delivered in outbound webhook payloads as eventType

The WebhookEventType enum has been removed from the schema. eventTypes fields are [String!].

The full list of valid event type strings is documented in Webhook events. For integration setup, signature verification, and delivery behaviour, see the Webhooks guide.

Why

Partners should use one event-type format everywhere. Previously, subscriptions used SCREAMING_SNAKE_CASE enum values while delivered payloads used lowercase dotted strings (for example BOOKING_CREATED vs booking.created), which caused confusion during integration.

Migration

Update any webhook subscription code that passes or compares enum-style values.

Before:

mutation CreateWebhook {
createWebhook(
input: {
label: "Main integration"
url: "https://your-app.com/webhooks/semble"
eventTypes: [PATIENT_CREATED, BOOKING_UPDATED]
}
) {
data {
id
secret
eventTypes
}
error
}
}

After:

mutation CreateWebhook {
createWebhook(
input: {
label: "Main integration"
url: "https://your-app.com/webhooks/semble"
eventTypes: ["patient.created", "booking.updated"]
}
) {
data {
id
secret
eventTypes
}
error
}
}

When handling inbound webhooks, match on the eventType string in the payload (for example "patient.created"). You no longer need to map between subscription enum values and delivery format.

Invalid event type strings are rejected with a validation error from createWebhook / updateWebhook.

See also