{
  "schema": "discordtemplatehub.template/v1",
  "source": "https://discordtemplatehub.com/templates/saas-support-desk",
  "updated": "2026-11-12",
  "slug": "saas-support-desk",
  "name": "SaaS Support Desk",
  "title": "SaaS Support Discord Server Template",
  "description": "Discord support server template for SaaS and dev tools: status and incident channels, help forum, private tickets, release notes and support roles.",
  "tagline": "For SaaS, APIs and developer tools that answer support on Discord.",
  "bestFor": [
    "SaaS support teams of 1 to 10",
    "Developer tools and APIs",
    "Open source maintainers"
  ],
  "sizeHint": "Forum-based so answers stay findable from 50 to 50,000 members.",
  "discord_template_url": null,
  "categories": [
    {
      "name": "START HERE",
      "channels": [
        {
          "name": "welcome",
          "type": "text",
          "topic": "Where to get help, support hours, links to docs.",
          "access": "Everyone can read; only Staff can post"
        },
        {
          "name": "rules",
          "type": "text",
          "topic": "Rules and what not to post publicly (API keys, invoices, personal data).",
          "access": "Everyone can read; only Staff can post"
        },
        {
          "name": "status",
          "type": "announcement",
          "topic": "Incident updates from your status page via webhook. Members can Follow it into their own servers.",
          "access": "Everyone reads; webhook and Staff post"
        },
        {
          "name": "releases",
          "type": "announcement",
          "topic": "Release notes and changelog.",
          "access": "Everyone can read; only Staff can post"
        }
      ]
    },
    {
      "name": "HELP",
      "channels": [
        {
          "name": "help",
          "type": "forum",
          "topic": "One post per question. Required tags: product area + Solved. Guidelines ask for version, steps, error text.",
          "access": "Members can read and post"
        },
        {
          "name": "private-support",
          "type": "text",
          "topic": "Ticket panel for billing and account issues.",
          "access": "Members open tickets"
        },
        {
          "name": "faq",
          "type": "forum",
          "topic": "Locked, curated answers copied from solved posts.",
          "access": "Everyone can read; only Staff can post"
        }
      ]
    },
    {
      "name": "BUILD",
      "channels": [
        {
          "name": "show-and-tell",
          "type": "forum",
          "topic": "What people built with the product.",
          "access": "Members can read and post"
        },
        {
          "name": "integrations",
          "type": "text",
          "topic": "Third-party integrations and SDK chat.",
          "access": "Members can read and post"
        },
        {
          "name": "general",
          "type": "text",
          "topic": "Everything else.",
          "access": "Members can read and post"
        }
      ]
    },
    {
      "name": "TEAM",
      "channels": [
        {
          "name": "support-queue",
          "type": "text",
          "topic": "Bot posts every new #help post here so nothing gets missed.",
          "access": "Hidden from everyone except Staff"
        },
        {
          "name": "escalations",
          "type": "text",
          "topic": "Bugs confirmed for engineering.",
          "access": "Hidden from everyone except Staff"
        },
        {
          "name": "mod-log",
          "type": "text",
          "topic": "Logs.",
          "access": "Hidden from everyone except Staff"
        }
      ]
    }
  ],
  "roles": [
    {
      "name": "Admin",
      "color": "#3a2fb8",
      "purpose": "Founders and community lead",
      "permissions": [
        "Manage Server",
        "Manage Roles",
        "Manage Webhooks"
      ],
      "assignedBy": "Owner"
    },
    {
      "name": "Support Team",
      "color": "#ff6b4a",
      "purpose": "Answers #help and tickets",
      "permissions": [
        "Manage Threads",
        "Manage Messages",
        "Timeout Members"
      ],
      "assignedBy": "Admin"
    },
    {
      "name": "Engineer",
      "color": "#0ea5e9",
      "purpose": "Joins escalated threads",
      "permissions": [
        "Manage Threads"
      ],
      "assignedBy": "Admin"
    },
    {
      "name": "Community Expert",
      "color": "#22c55e",
      "purpose": "Trusted users who answer well; can tag posts Solved",
      "permissions": [
        "Manage Threads in #help"
      ],
      "assignedBy": "Support Team"
    },
    {
      "name": "Customer",
      "color": "#64748b",
      "purpose": "Verified paying customers (optional priority)",
      "permissions": [
        "Open priority tickets"
      ],
      "assignedBy": "Manual check or integration"
    },
    {
      "name": "Product pings",
      "color": "#94a3b8",
      "purpose": "Opt-in release pings",
      "permissions": [
        "None"
      ],
      "assignedBy": "Onboarding"
    }
  ],
  "permissionNotes": [
    "#status and #releases: only Admin and the webhook can post. Webhooks are created per channel in Edit Channel > Integrations.",
    "Give Community Expert Manage Threads on #help only (channel override), not server-wide.",
    "#help forum: require tags so every post has a product area; turn on the forum guidelines.",
    "Never ask for API keys or invoices in public channels; move them to a ticket."
  ],
  "onboarding": [
    {
      "question": "What do you use?",
      "required": true,
      "multiSelect": true,
      "options": [
        {
          "label": "{Product area 1}",
          "grants": "Area role (filters #help tags and pings)"
        },
        {
          "label": "{Product area 2}",
          "grants": "Area role"
        },
        {
          "label": "API / SDK",
          "grants": "Default channel: #integrations"
        }
      ]
    },
    {
      "question": "Ping me for releases?",
      "required": false,
      "multiSelect": false,
      "options": [
        {
          "label": "Yes",
          "grants": "Product pings role"
        },
        {
          "label": "No",
          "grants": "Nothing"
        }
      ]
    }
  ],
  "automod": [
    {
      "rule": "Block Mention Spam",
      "setting": "On, with a low mention limit per message and raid protection enabled.",
      "response": "Block message + alert #mod-log + timeout member"
    },
    {
      "rule": "Block Suspected Spam Content",
      "setting": "On for all channels.",
      "response": "Block message + alert #mod-log"
    },
    {
      "rule": "Custom regex rule: leaked secrets",
      "setting": "Regex for your API key prefix (for example sk_live_ style patterns you issue). Block and alert, so keys never stay public.",
      "response": "Block message + custom message: 'Looks like a secret key. Rotate it and open a ticket.'"
    },
    {
      "rule": "Custom keyword rule: scams",
      "setting": "Keywords such as *free nitro*, *steam gift*, *dm me for*, *support team dm*, *refund dm*. Exempt Staff.",
      "response": "Block message + alert #mod-log + timeout member"
    },
    {
      "rule": "Member profile filter",
      "setting": "Block impersonation patterns like *admin*, *support*, *moderator*, *official* and your product name in usernames and nicknames.",
      "response": "Block member from interacting until they change their name"
    }
  ],
  "bots": [
    {
      "name": "Ticket Tool",
      "url": "https://tickettool.xyz",
      "job": "Private tickets",
      "why": "A button panel that opens a private channel between one member and staff, with transcripts.",
      "optional": false
    },
    {
      "name": "Carl-bot",
      "url": "https://carl.gg",
      "job": "Role menus, logging, tags",
      "why": "Button and reaction role menus for anything Onboarding doesn't cover, plus detailed mod logs and saved answers (tags).",
      "optional": false
    },
    {
      "name": "Discord webhooks (built in)",
      "url": "https://discord.com/developers/docs/resources/webhook",
      "job": "Status and release posts",
      "why": "Your status page, CI or changelog tool posts to a channel webhook. No bot needed.",
      "optional": false
    }
  ],
  "welcomeMessages": [
    {
      "where": "#welcome",
      "text": "Welcome to the {Product} community.\n\n• Docs: {link}\n• Need help? Open a post in #help: version, what you did, what you expected, the exact error.\n• Billing or account issue? Use the ticket button in #private-support. Never post API keys or invoices publicly.\n• Status updates appear in #status. Follow it to get them in your own server.\n\nSupport hours: {hours, timezone}."
    },
    {
      "where": "#help forum guidelines",
      "text": "Title = the problem in one line. Include version, steps to reproduce, expected vs actual, error text. Tag the product area. When solved, tag Solved."
    }
  ],
  "checklist": [
    {
      "phase": "Structure",
      "items": [
        "Create roles",
        "Create #help forum with required tags",
        "Set #status and #releases as announcement channels"
      ]
    },
    {
      "phase": "Wiring",
      "items": [
        "Create webhooks for status and releases",
        "Set up the ticket panel",
        "Route new #help posts to #support-queue"
      ]
    },
    {
      "phase": "Launch",
      "items": [
        "Seed #faq with 10 real answers",
        "Link the server from your docs and app help menu",
        "Test a full ticket with an alt account"
      ]
    }
  ],
  "guides": [
    "https://discordtemplatehub.com/guides/saas-support-discord-template",
    "https://discordtemplatehub.com/guides/discord-status-incident-channel",
    "https://discordtemplatehub.com/guides/developer-community-discord-channels",
    "https://discordtemplatehub.com/guides/open-source-project-discord-structure"
  ],
  "notice": "Discord Template Hub is an independent template shop. Not affiliated with, endorsed by or sponsored by Discord Inc. Discord is a trademark of Discord Inc."
}