Customer
Get Support Settings
Returns the account's customer-side support settings: the default watchers who are added to every new ticket, expanded with their names, plus the account's member list and whether the caller may change the settings. Any member of the account can read this.
Update Support Settings
Replaces the account's default watchers — the members who are automatically added as watchers (and notified) on every new ticket raised in this account. Send the complete list; an empty array clears it. Returns the same shape as Get Support Settings.
Get Support Notification Preferences
Returns the signed-in user's own support notification switches. A user who has never saved preferences gets the defaults (in-app on, email copies on, no digest). Preferences are per user, not per tenant.
Update Support Notification Preferences
Saves the signed-in user's support notification switches. All three fields are required — send the full set. Returns the saved preferences.
List Support Push Subscriptions
Lists the devices the signed-in user has registered for push notifications, newest first. A caller only ever sees their own devices.
Register Support Push Subscription
Registers a device for push notifications.
Delete Support Push Subscription
Removes one of the signed-in user's devices. The browser unsubscribes locally first and then tells us, so the endpoint of the subscription being dropped is the whole body.
List Support Webhooks
Returns the outbound webhooks registered for the current tenant, paginated, newest first by default. Any member of the account can list them; the signing secret is never included.
Create Support Webhook
Registers an outbound webhook for the current tenant. Ticket events matching `events` are POSTed to `url`, signed with a secret that is minted here and **returned exactly once, in this response** — it is not shown on any later list, read or update, so store it now. Only a tenant admin can create webhooks.
Update Support Webhook
Changes a webhook's URL, subscribed events or active flag. This is a partial update: any field left out keeps its current value. Switching a webhook from inactive to active resets its `failure_count` to 0 and starts a fresh failure streak. The secret cannot be changed or re-read here. Only a tenant admin can update webhooks; a webhook belonging to another tenant is a 404.
Delete Support Webhook
Deletes a webhook and its entire delivery log. Deliveries already queued for it fail with `Webhook no longer exists.` rather than being sent. Only a tenant admin can delete webhooks; a webhook belonging to another tenant is a 404.
Test Support Webhook
Sends a `ping` to the webhook right now — a single attempt, no retries — and returns the resulting delivery so you can see whether your endpoint accepted it. The ping is signed and carries the same headers as a real delivery (`X-SKU-Event: ping`), so use it to verify your signature check. The response is always 200 whether or not the endpoint accepted the ping; read `status`, `response_code` and `error` for the outcome. A ping to an inactive webhook is recorded as `failed` with `Webhook is disabled.` and no request is made. A failed ping does not count towards the webhook's `failure_count`. Only a tenant admin can send test pings; a webhook belonging to another tenant is a 404.
List Support Webhook Deliveries
Returns one webhook's delivery log, paginated, newest first by default — every ticket event and test ping queued for it, with the exact payload sent, the attempt count, the latest response code and any error. Any member of the account can read it; a webhook belonging to another tenant is a 404.
Get Support Deflection Suggestions
Before a ticket is opened: given what the customer is about to ask, returns the help-docs sections and the previously resolved tickets in their organisation that may already answer it. Results are cached for 60 seconds per user and query, so calling it as the customer types is fine.
Summarize Support Transcript
Turns a conversation between a customer and the in-app AI assistant into a ticket subject and a summary for the support agent, ready to be sent to Create Support Ticket. Nothing is stored — this only prepares the text.