Skip to content

Webhooks

Webhooks send JSON to an external URL when selected events occur. An administrator configures one URL per event in the app’s webhook settings. No webhook is sent for an event whose URL is empty.

Integrations settings showing webhook URL fields

EventTrigger
presentation.moved_to_organizationA presentation is shared to the workspace
slide.added_to_organization_libraryA slide is added to the team library
presentation.publishedA presentation is published
comment.createdA comment is posted
interaction.poll_closedA poll is closed
interaction.likert_closedA Likert scale is closed
interaction.feedback_submittedFeedback is submitted

The presentation and comment events include event, createdAt, actor details, presentation details, and applicable links. A slide-library event carries slide details instead of presentation details. Interaction events carry event, timestamp, a session ID, and interaction details such as type, slide ID, totals, and status. Treat fields that do not apply to an event as optional.

Deckyard sends an HTTP POST with a JSON body and an x-sb-event header. Delivery runs in the background: a failed recipient does not fail the action that produced the event. Failed deliveries are logged on the server.

You can set an optional signing secret in the admin settings. With a secret, Deckyard adds x-sb-signature: sha256=<hex>, an HMAC-SHA256 signature of the exact request body. Verify it against the raw body before processing a webhook. Without a secret, the signature header is absent.

Webhook destinations must be public HTTP or HTTPS URLs; Deckyard blocks loopback and private-network addresses. The request times out after 4.5 seconds and does not follow redirects.