# Use Discourse as a Private Support/Ticket System

**URL:** https://meta.discourse.org/t/use-discourse-as-a-private-support-ticket-system/72268
**Category:** Administrators
**Tags:** how-to
**Created:** [October 17, 2017, 12:35pm UTC](https://meta.discourse.org/t/use-discourse-as-a-private-support-ticket-system/72268 "2017-10-17T12:35:41Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![schungx](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/schungx/32/70989_2.png) [@schungx](https://meta.discourse.org/u/schungx)
#### Post date: [October 17, 2017, 12:35pm UTC](https://meta.discourse.org/t/use-discourse-as-a-private-support-ticket-system/72268/1 "2017-10-17T12:35:42Z")

</div>

On and off I’ve seen posters asking about how to use Discourse as a support (or ticketing) platform. I’d like to share my setup here for those with similar needs.

## Background

You run/work for an organization. You need to provide pre-sales, after-sales, technical and/or one-on-one support to your customers, agents, distributors and/or partners (which organization doesn’t?).

## What is Discourse

Discourse is primarily a _forums_ software, geared towards public, open _conversations_ of various topics. It is incredibly modern and performant, runs at lightning speed, and you have a lot of flexibility in how to setup your environment.

You want to see if you can coerce this fabulous piece of software to do what it isn’t originally designed to do.

## Prior Art

- [Configuring incoming email to create new topics or group messages](https://meta.discourse.org/t/start-a-new-topic-via-email-e-mail/62977)
- [Discourse as a private email support portal](https://meta.discourse.org/t/discourse-as-a-private-email-support-portal/34444)
- [Set up reply by email with POP3 polling](https://meta.discourse.org/t/set-up-reply-via-email-support-e-mail/14003)
- [Private Topics - are they supported?](https://meta.discourse.org/t/private-topics-are-they-supported/47043)
- [Using discourse as a community ticket system](https://meta.discourse.org/t/using-discourse-as-a-community-ticket-system/20607)
- [How to optimize issue/support ticket like workflow?](https://meta.discourse.org/t/how-to-optimize-issue-support-ticket-like-workflow/67820)
- [Can incoming Discourse email support replace old ticket portals?](https://meta.discourse.org/t/can-incoming-discourse-email-support-replace-old-ticket-portals/43522)
- [Create/See and Create Permissions (again)](https://meta.discourse.org/t/create-see-and-create-permissions-again/33150)

## What You Want

Your customers will open issues, or help tickets, on the system. They either open it under their own folder/category, or you can have some systematic/manual way of reclassifying them later on.

There may be sensitive things discussed, so by default you don’t want each customer to be able to see the issues or inquiries raised by other customers. In other words, each customer conversation should be private.

You want your support teams to each work on their allocated areas/categories. In other words, your teams should be able to see a list of all the support requests in their own categories, and be able to easily sort through them, manage them and follow-up on them without a lot of searching and filtering.

Some information may be sensitive, so each team’s area may be separated from another team’s, so they cannot view each other’s data.

**Note** : This method assumes that you are creating a dedicated ticketing platform, or that at the very least **there will be no overlap between the users of your Discourse web interface and those requesting support tickets**.  
In the event that you might need to support users who are already on the same instance, consider instead using private messages to a group, and [configure inbound email for the group inbox](https://meta.discourse.org/t/start-a-new-topic-via-email-e-mail/62977).

## Your Problem

1. Some core features are geared towards an open community, and may not be relevant to a private support forum, for example the badges.

2. You looked at the security/permissions system and you don’t find what you want: basically pure `Create` and `Create/Reply` permissions do not exist.

3. Your customers don’t really want to go through the hassle of creating an account on your forum just to ask a support question. But you also don’t want to open up your forum to the public and have silly posters come in and waste your time.

4. A lot of your customers work with emails, and you want to reply to them via email, but you also want your support teams to be able to manage these requests quickly and easily without digging through piles of email.

## How it Will Work

- You have a bunch of email addresses published for customers to send inquiries. For example, you may have an email address called `wonderful_product@support.example.com` for people to send questions regarding the `Wonderful Product` product line of your company.

- A customer sends an email to this address.

- The email is automatically turned into a topic in the appropriate `Wonderful Product` category.

- A _staged_ user (say, `MrFoo`) with no rights is created on the system to track all the requests sent by that email.

- You internal team support staff, under the group `WonderfulProductTeam`, which has `Reply/See` permission on the `Wonderful Product` category, sees the topic and post replies.

- Each reply turns into a reply email back to the originating customer.

- The customer feels that his/her email is being replied personally.

- The customer has no way to see the emails of any other customer on the system. Meanwhile, the `WonderProductTeam` sees all the emails sent to `wonderful_product@support.example.com` all together in a single list.

- You find that user `MrFoo` has been a great contributor and would actually like to involve him into your support pipeline. Go to his user profile and send him an invitation to become a member. Put him in an appropriate `Group` with appropriate access rights.

- `MrFoo`, now an valued member of your support organizatio, logs in and sees all his previous emails neatly under his account.

## Setup Instructions

### Basic Discourse setup

- Turn off `Settings|Basic Setup|enable badges` because badges are not awarded for posts in non-Everyone categories, which most of your categories will probably be. They will just confuse your users. Keep it if you have large, open-to-all-users categories.

- Turn on `Settings|Basic Setup|enable whispers` if you want whispers. This may be useful when you have many moderators.

- Turn on `Settings|Login|invite only` unless you want to allow customers to self-register themselves. You may not want the hassle.

- Turn on `Settings|Login|login required` because you are not running a public forum.

- Set `Settings|Trust Levels|default trust level` to `0` to make sure staged users created via email is level 0.

- Set `Settings|Trust Levels|default invitee trust level` to `1` to make sure that the users you actually _want_ to be on the system are level 1.

- Turn on `Settings|Email|enable staged users`

- (Optional) `Settings|Login|must approve users` may not be necessary if your forum runs on invitation only.

- (Optional) Set `Settings|Posting|approve new topics unless trust level` to `1` so that your staged users (which will be created as level 0) will have their topics pending staff approval.

- Turn off SSO because you obviously don’t want any unknown persons to sign into your forum.

### Set Up the Appropriate Email Addresses

- On your email system, setup a _MASTER_ mail-in email account, for example: `master@support.example.com`.

- For each area/team/category, create a new, specific email account, for example: `wonderful_product@support.example.com`.

- _FORWARD_ all emails to those specific accounts to the _MASTER_ email account. For example, an automatic forwarding should be created to forward all mail received by `wonderful_product@support.example.com` to `master@support.example.com`.

### Turn on `email in`

- Turn on `Settings|Email|reply by email enabled`

- Turn on `Settings|Email|email in`

- Turn on `Settings|Email|pop3 polling enabled`

- (Optional) Turn on `Settings|Email|pop3 polling ssl` if your POP3 email server requires SSL.

- (Optional) Turn on `Settings|Email|pop3 polling openssl verify` if your POP3 server uses SSL.

- Turn on `Settings|Email|reply by email enabled`

- Set `Settings|Email|reply by email address` to the _MASTER_ email account in the section above (for example: `master@support.example.com`).

- (IMPORTANT) If your email system does _NOT_ support the `+` feature, then turn off `Settings|Email|find related post with key`. This will use each email’s `In Reply To` header to find the correct thread, with certain security considerations.

- Set `Settings|Email|pop3 polling host`, `pop3 polling port`, `pop3 polling username`, `pop3 polling password` for your POP3 email server. The username and password should be for the _MASTER_ email address.

- Set `Settings|Email|email in min trust` to `0` because your staged users will be created with trust level 0.

- Set `Settings|Email|maximum staged users per email` to a small number unless you have a good reason to allow creating large number of staged users from an email.

- Set up suspected SPAM email domains in `Settings|Login|blocked email domains`. This prevents emails from unwanted domains from creating staged users in your forum and littering them with SPAM topics.

- Set up suspected SPAM email subjects in `Settings|Email|ignore by title`. This prevents emails with suspicious subjects from creating topics.

### Attachments

- Add allowed attachment formats in `Settings|Files|authorized extensions` because customers who requires support will typically send in attachments other than photos (maybe a PDF file, an Excel spreadsheet, a CAD drawing, an error log file, or a zip file).

- Set `Settings|Files|max attachment size kb` large enough so that reasonable attachments do not bounce. Typically 1MB to 2MB is enough.

### Set Up Email Info in Categories

- For each category that will receive emails from outside, set `Custom incoming email address` (in the `Settings` of the `Edit` dialog of that particular category) to the appropriate email account.

- Turn on the `Accept emails from anonymous users with no accounts` setting for each category that will receive emails.

### Set Up Security in Categories

- Remove the `Everyone` group from each category’s access list.
- Use `Group`s to manage access to each category.

### If You Have a Multi-Lingual (Worldwide ) Customer Base

- Turn on `Settings|Basic Setup|allow user locale`

- Turn on `Settings|Basic Setup|set locale from accept language header`

- Consider the `discourse-translator` plugin

- If you have Chinese users, please make sure to search `meta` for the settings required to support Chinese language posts.

---

_[View the full topic](https://meta.discourse.org/t/use-discourse-as-a-private-support-ticket-system/72268)._
