Skip to content

Instance Settings

Configure global settings for your Deckyard instance.

Instance settings control behavior across your entire Deckyard installation. Settings are divided into:

  • App settings - Global configuration accessible to admins
  • User settings - Per-user preferences like display name and language

Access the settings panel from the admin menu. Here you can configure:

Admin settings showing language configuration, AI assistant identity, email sender, session duration, engagement insights, stock media, and supported themes

  • Organization name - Your organization’s display name
  • Default language - Language for new users
  • Default theme - Theme applied to new presentations

Configure the sender information for outgoing emails:

{
"email": "presentations@yourcompany.com",
"name": "Your Company Presentations"
}

This overrides the default sender configured via BREVO_SENDER_EMAIL and BREVO_SENDER_NAME environment variables.

Define which languages are available for presentation content:

{
"supportedLanguages": ["en-GB", "nl", "de", "fr"]
}

Users can create multi-language content only in these configured languages.

Configure webhooks to integrate with external services. Webhooks send HTTP POST requests when specific events occur.

EventDescription
presentation.publishedA presentation was published
presentation.moved_to_workspaceA presentation was moved to a workspace
slide.added_to_team_libraryA slide was added to the team library
comment.createdA comment was added to a presentation
lead.submittedA lead capture form was submitted
interaction.poll_closedA poll was closed
interaction.feedback_submittedFeedback was submitted
interaction.likert_closedA Likert survey was closed

In the settings panel, enter the URL for each webhook you want to enable:

{
"webhooks": {
"presentationPublishedUrl": "https://your-service.com/webhook/published",
"leadSubmittedUrl": "https://your-service.com/webhook/lead",
"commentCreatedUrl": "https://your-service.com/webhook/comment"
}
}

Webhooks receive a JSON payload with event details:

{
"event": "presentation.published",
"createdAt": "2025-01-15T10:30:00.000Z",
"actor": {
"id": "user@example.com",
"email": "user@example.com",
"name": "John Doe",
"role": "user"
},
"presentation": {
"id": "abc123",
"title": "Quarterly Review",
"description": "Q4 2024 results",
"theme": "corporate",
"scope": "private",
"published": {
"id": "xyz789",
"slug": "quarterly-review",
"path": "/p/xyz789-quarterly-review",
"url": "https://your-instance.com/p/xyz789-quarterly-review"
}
},
"links": {
"editPath": "/app/abc123",
"editUrl": "https://your-instance.com/app/abc123",
"publicPath": "/p/xyz789-quarterly-review",
"publicUrl": "https://your-instance.com/p/xyz789-quarterly-review"
}
}

Each webhook request includes:

  • Content-Type: application/json; charset=utf-8
  • User-Agent: presentation-system-webhook/1
  • X-SB-Event: [event-name]
  • Webhooks are sent asynchronously and don’t block the API response
  • Failed webhooks are logged but not retried
  • Webhook timeout is 4.5 seconds

Enable or disable specific features via environment variables.

VariableDefaultDescription
DEMO_MODEfalseEnable demo mode (restricted features)
SANDBOX_MODEfalseEnable sandbox mode for public demos
DISABLE_UPLOADSfalseDisable file uploads
DISABLE_IMAGE_LIBRARYfalseDisable the image library
IMAGEKIT_ONLYfalseOnly use ImageKit for images
DISABLE_NOTIONfalseDisable Notion integration

When DEMO_MODE=true:

  • Some admin features are restricted
  • Data modifications may be limited
  • Useful for public product demonstrations

The client automatically detects available features based on:

  • Environment configuration
  • API key availability (AI features, media services)
  • Database mode

Settings are available via the API:

Terminal window
GET /api/settings/app

Returns global settings (webhooks excluded for non-admins).

Terminal window
PUT /api/settings/app
Content-Type: application/json
{
"supportedLanguages": ["en-GB", "nl"]
}
Terminal window
GET /api/settings/me
Terminal window
PUT /api/settings/me
Content-Type: application/json
{
"profile": { "name": "John Doe" },
"language": "nl"
}