summaryrefslogtreecommitdiff
path: root/doc/user/project/service_desk.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user/project/service_desk.md')
-rw-r--r--doc/user/project/service_desk.md224
1 files changed, 109 insertions, 115 deletions
diff --git a/doc/user/project/service_desk.md b/doc/user/project/service_desk.md
index 4f3ca12c582..76156690fe7 100644
--- a/doc/user/project/service_desk.md
+++ b/doc/user/project/service_desk.md
@@ -10,32 +10,38 @@ info: To determine the technical writer assigned to the Stage/Group associated w
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/214839) to [GitLab Starter](https://about.gitlab.com/pricing/) in 13.0.
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/215364) to [GitLab Core](https://about.gitlab.com/pricing/) in 13.2.
-Service Desk is a module that allows your team to connect directly
-with any external party through email right inside of GitLab; no external tools required.
-An ongoing conversation right where your software is built ensures that user feedback ends
-up directly where it's needed, helping you build the right features to solve your users'
-real problems.
+Service Desk is a module that allows your team to connect
+with any external party through email, without any external tools.
+An ongoing conversation in the same place as where your software
+is built ensures user feedback ends up where it's needed.
-With Service Desk, you can provide efficient email support to your customers, who can now
-email you bug reports, feature requests, or general feedback that will all end up in your
-GitLab project as new issues. In turn, your team can respond straight from the project.
+With Service Desk, you can provide efficient email support to your customers. They can
+email you bug reports, feature requests, or general feedback. They all end up in your
+GitLab project as new issues. In turn, your team can respond directly from the project.
As Service Desk is built right into GitLab itself, the complexity and inefficiencies
-of multiple tools and external integrations are eliminated, significantly shortening
+of multiple tools and external integrations are eliminated. This significantly shortens
the cycle time from feedback to software update.
For an overview, check the video demonstration on [GitLab Service Desk](https://about.gitlab.com/blog/2017/05/09/demo-service-desk/).
-## Use cases
+## How it works
+
+GitLab Service Desk enables people to create issues in your
+GitLab instance without needing their own user account.
+
+It provides a unique email address for end users to create issues in a project.
+Follow-up notes can be sent either through the GitLab interface or by email. End
+users only see the thread through email.
For instance, let's assume you develop a game for iOS or Android.
The codebase is hosted in your GitLab instance, built and deployed
with GitLab CI/CD.
-Here's how Service Desk will work for you:
+Here's how Service Desk works for you:
1. You provide a project-specific email address to your paying customers, who can email you directly
- from within the app.
+ from the application.
1. Each email they send creates an issue in the appropriate project.
1. Your team members navigate to the Service Desk issue tracker, where they can see new support
requests and respond inside associated issues.
@@ -43,61 +49,54 @@ Here's how Service Desk will work for you:
1. Your team starts working on implementing code to solve your customer's problem.
1. When your team finishes the implementation, whereupon the merge request is merged and the issue
is closed automatically.
-1. The customer will have been attended successfully via email, without having real access to your
+1. The customer's requests are handled through email, without ever having access to your
GitLab instance.
1. Your team saved time by not having to leave GitLab (or setup any integrations) to follow up with
your customer.
-## How it works
-
-GitLab Service Desk is a simple way to allow people to create issues in your
-GitLab instance without needing their own user account.
-
-It provides a unique email address for end users to create issues in a project,
-and replies can be sent either through the GitLab interface or by email. End
-users will only see the thread through email.
-
## Configuring Service Desk
NOTE:
Service Desk is enabled on GitLab.com.
You can skip step 1 below; you only need to enable it per project.
-If you have project maintainer access you have the option to set up Service Desk.
-Follow these steps to do so:
+If you have project maintainer access you have the option to set up Service Desk. Follow these steps:
1. [Set up incoming email](../../administration/incoming_email.md#set-it-up) for the GitLab instance.
- - We recommend using [email sub-addressing](../../administration/incoming_email.md#email-sub-addressing),
- but in GitLab 11.7 and later you can also use [catch-all mailboxes](../../administration/incoming_email.md#catch-all-mailbox).
+ We recommend using [email sub-addressing](../../administration/incoming_email.md#email-sub-addressing),
+ but in GitLab 11.7 and later you can also use [catch-all mailboxes](../../administration/incoming_email.md#catch-all-mailbox).
1. Navigate to your project's **Settings > General** and locate the **Service Desk** section.
1. Enable the **Activate Service Desk** toggle. This reveals a unique email address to email issues
- to the project. These issues will be [confidential](issues/confidential_issues.md), so they will
- only be visible to project members. Note that in GitLab 11.7, we updated the generated email
+ to the project. These issues are [confidential](issues/confidential_issues.md), so they are
+ only visible to project members. Note that in GitLab 11.7, we updated the generated email
address's format. The older format is still supported, however, allowing existing aliases or
contacts to continue working.
WARNING:
- This email address can be used by anyone to create an issue on this project, whether or not they
- have access to your GitLab instance. We recommend **putting this behind an alias** so it can be
- changed if needed, and **[enabling Akismet](../../integration/akismet.md)** on your GitLab
+ This email address can be used by anyone to create an issue on this project, regardless
+ of their access level to your GitLab instance. We recommend **putting this behind an alias** so it can be
+ changed if needed. We also recommend **[enabling Akismet](../../integration/akismet.md)** on your GitLab
instance to add spam checking to this service. Unblocked email spam would result in many spam
issues being created.
If you have [templates](description_templates.md) in your repository, you can optionally select
one from the selector menu to append it to all Service Desk issues.
- ![Service Desk enabled](img/service_desk_enabled.png)
-
-Service Desk is now enabled for this project! You should be able to access it from your project
-navigation's **Issues** menu.
+Service Desk is now enabled for this project! You should be able to access it from your project's
+**Issues** menu.
![Service Desk Navigation Item](img/service_desk_nav_item.png)
### Using customized email templates
- > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2460) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.7.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2460) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.7.
+> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/214839) to [GitLab Starter](https://about.gitlab.com/pricing/) in 13.0.
+> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/215364) to [GitLab Core](https://about.gitlab.com/pricing/) in 13.2.
+
+An email is sent to the author when:
-When a user submits a new issue using Service Desk, or when a new note is created on a Service Desk issue, an email is sent to the author.
+- A user submits a new issue using Service Desk.
+- A new note is created on a Service Desk issue.
The body of these email messages can be customized by using templates. To create a new customized template,
create a new Markdown (`.md`) file inside the `.gitlab/service_desk_templates/`
@@ -106,39 +105,46 @@ directory in your repository. Commit and push to your default branch.
#### Thank you email
The **Thank you email** is the email sent to a user after they submit an issue.
-The file name of the template has to be `thank_you.md`.
-You can use `%{ISSUE_ID}` placeholder which will be replaced by an issue IID in the email and
-`%{ISSUE_PATH}` placeholder which will be replaced by project path and the issue IID.
+The filename of the template has to be `thank_you.md`.
+There are a few placeholders you can use which are automatically replaced in the email:
+
+- `%{ISSUE_ID}`: issue IID
+- `%{ISSUE_PATH}`: project path appended with the issue IID
+
As the Service Desk issues are created as confidential (only project members can see them)
the response email does not provide the issue link.
#### New note email
-The **New note email** is the email sent to a user when the issue they submitted has a new comment.
-The file name of the template has to be `new_note.md`.
-You can use `%{ISSUE_ID}` placeholder which will be replaced by an issue IID
-in the email, `%{ISSUE_PATH}` placeholder which will be replaced by
- project path and the issue IID and `%{NOTE_TEXT}` placeholder which will be replaced by the note text.
+When a user-submitted issue receives a new comment, GitLab sends a **New note email**
+to the user. The filename of this template must be `new_note.md`, and you can
+use these placeholders in the email:
+
+- `%{ISSUE_ID}`: issue IID
+- `%{ISSUE_PATH}`: project path appended with the issue IID
+- `%{NOTE_TEXT}`: note text
### Using custom email display name
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7529) in GitLab 12.8.
-You can customize the email display name. Emails sent from Service Desk will have
+You can customize the email display name. Emails sent from Service Desk have
this name in the `From` header. The default display name is `GitLab Support Bot`.
-### Using custom email address **(CORE ONLY)**
+To edit the custom email display name:
+
+1. In a project, go to **Settings > General > Service Desk**.
+1. Enter a new name in **Email display name**.
+1. Select **Save Changes**.
+
+### Using custom email address
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2201) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.0.
-> - It was [deployed behind a feature flag](../feature_flags.md), disabled by default.
-> - [Became enabled by default](https://gitlab.com/gitlab-org/gitlab/-/issues/284656) on GitLab 13.7.
-> - It's enabled on GitLab.com.
-> - It's recommended for production use.
-> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#disable-custom-email-address). **(CORE ONLY)**
-
-If the `service_desk_email` feature flag is enabled in your configuration,
-then it's possible to create Service Desk issues by sending emails to the
-custom Service Desk email address, which should have the following format:
+> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/284656) in GitLab 13.8.
+
+If the `service_desk_email` is configured, then you can create Service Desk
+issues by sending emails to the Service Desk email address. The default
+address has the following format:
`project_contact+%{key}@example.com`.
The `%{key}` part is used to find the project where the issue should be created. The
@@ -148,53 +154,57 @@ The `%{key}` part is used to find the project where the issue should be created.
You can set the project name suffix in your project's Service Desk settings.
It can contain only lowercase letters (`a-z`), numbers (`0-9`), or underscores (`_`).
-![Setting custom Service Desk email address](img/service_desk_custom_email_address_v13_0.png)
+NOTE:
+The `service_desk_email` and `incoming_email` configurations should
+always use separate mailboxes. This is important, because emails picked from
+`service_desk_email` mailbox are processed by a different worker and it would
+not recognize `incoming_email` emails.
-You can add the following snippets to your configuration.
+To configure a custom email address for Service Desk, add the following snippets to your configuration file:
-Example for installations from source:
+- Example for installations from source:
-```yaml
-service_desk_email:
- enabled: true
- address: "project_contact+%{key}@example.com"
- user: "project_support@example.com"
- password: "[REDACTED]"
- host: "imap.gmail.com"
- port: 993
- ssl: true
- start_tls: false
- log_path: "log/mailroom.log"
- mailbox: "inbox"
- idle_timeout: 60
- expunge_deleted: true
-```
+ ```yaml
+ service_desk_email:
+ enabled: true
+ address: "project_contact+%{key}@example.com"
+ user: "project_support@example.com"
+ password: "[REDACTED]"
+ host: "imap.gmail.com"
+ port: 993
+ ssl: true
+ start_tls: false
+ log_path: "log/mailroom.log"
+ mailbox: "inbox"
+ idle_timeout: 60
+ expunge_deleted: true
+ ```
-Example for Omnibus GitLab installations:
+- Example for Omnibus GitLab installations:
-```ruby
-gitlab_rails['service_desk_email_enabled'] = true
+ ```ruby
+ gitlab_rails['service_desk_email_enabled'] = true
-gitlab_rails['service_desk_email_address'] = "project_contact+%{key}@gmail.com"
+ gitlab_rails['service_desk_email_address'] = "project_contact+%{key}@gmail.com"
-gitlab_rails['service_desk_email_email'] = "project_support@gmail.com"
+ gitlab_rails['service_desk_email_email'] = "project_support@gmail.com"
-gitlab_rails['service_desk_email_password'] = "[REDACTED]"
+ gitlab_rails['service_desk_email_password'] = "[REDACTED]"
-gitlab_rails['service_desk_email_mailbox_name'] = "inbox"
+ gitlab_rails['service_desk_email_mailbox_name'] = "inbox"
-gitlab_rails['service_desk_email_idle_timeout'] = 60
+ gitlab_rails['service_desk_email_idle_timeout'] = 60
-gitlab_rails['service_desk_email_log_file'] = "/var/log/gitlab/mailroom/mail_room_json.log"
+ gitlab_rails['service_desk_email_log_file'] = "/var/log/gitlab/mailroom/mail_room_json.log"
-gitlab_rails['service_desk_email_host'] = "imap.gmail.com"
+ gitlab_rails['service_desk_email_host'] = "imap.gmail.com"
-gitlab_rails['service_desk_email_port'] = 993
+ gitlab_rails['service_desk_email_port'] = 993
-gitlab_rails['service_desk_email_ssl'] = true
+ gitlab_rails['service_desk_email_ssl'] = true
-gitlab_rails['service_desk_email_start_tls'] = false
-```
+ gitlab_rails['service_desk_email_start_tls'] = false
+ ```
In this case, suppose the `mygroup/myproject` project Service Desk settings has the project name
suffix set to `support`, and a user sends an email to `project_contact+mygroup-myproject-support@example.com`.
@@ -203,27 +213,10 @@ As a result, a new Service Desk issue is created from this email in the `mygroup
The configuration options are the same as for configuring
[incoming email](../../administration/incoming_email.md#set-it-up).
-#### Disable custom email address **(CORE ONLY)**
-
-Service Desk custom email is under development but ready for production use.
-It is deployed behind a feature flag that is **enabled by default**.
-[GitLab administrators with access to the GitLab Rails console](../../administration/feature_flags.md)
-can opt to disable it.
-
-To enable it:
-
-```ruby
-Feature.enable(:service_desk_custom_address)
-```
-
-To disable it:
-
-```ruby
-Feature.disable(:service_desk_custom_address)
-```
-
## Using Service Desk
+There are a few ways Service Desk can be used.
+
### As an end user (issue creator)
To create a Service Desk issue, an end user does not need to know anything about
@@ -235,29 +228,30 @@ receive an email back confirming receipt:
This also gives the end user an option to unsubscribe.
If they don't choose to unsubscribe, then any new comments added to the issue
-will be sent as emails:
+are sent as emails:
![Service Desk reply email](img/service_desk_reply.png)
-And any responses they send will be displayed in the issue itself.
+Any responses they send via email are displayed in the issue itself.
### As a responder to the issue
-For responders to the issue, everything works as usual. They will see a familiar looking
-issue tracker, where they can see issues created via customer support requests and
-filter and interact with them just like other GitLab issues.
+For responders to the issue, everything works just like other GitLab issues.
+GitLab displays a familiar-looking issue tracker where responders can see
+issues created through customer support requests, and filter or interact with them.
![Service Desk Issue tracker](img/service_desk_issue_tracker.png)
-Messages from the end user will show as coming from the special Support Bot user, but apart from that,
-you can read and write comments as you normally do:
+Messages from the end user are shown as coming from the special
+[Support Bot user](../../subscriptions/self_managed/index.md#billable-users).
+You can read and write comments as you normally do in GitLab:
![Service Desk issue thread](img/service_desk_thread.png)
Note that:
- The project's visibility (private, internal, public) does not affect Service Desk.
-- The path to the project, including its group or namespace, will be shown on emails.
+- The path to the project, including its group or namespace, are shown in emails.
### Support Bot user