Themes
This guide covers how to create, edit, and manage Zendesk themes at GitLab. Administrators should review the Administrator tasks section.
Technical Details
- Deployment type:
Standard - Sync repos
Danger
- Never directly modify themes in the Zendesk UI in any instance (sandbox or production). You will severely break the entire setup if you do (and it is not easy to fix).
- This is a very customer facing item. Exercise caution in making changes and ensure you thoroughly review a preview of the changes in the sandbox.
- We are looking to revamp and change how we work with themes in FY27. See gitlab-com/gl-security/corp/cust-support-ops/issue-tracker#752 and gitlab-com/gl-security/corp/cust-support-ops/issue-tracker#727 for more information.
Understanding themes
What are themes
A theme is a set of files that determine what your support portal looks like.
How we manage themes
While Zendesk offers a full way to manage themes via the UI, we turn to a more version controlled methodology. This allows for a set review process, the ability to perform rollbacks as needed, etc.
That being the case, we utilize sync repos.
Creating a theme as a non-admin
For the creation of a theme, please create a Feature Request issue (as it will require manual intervention by the Customer Support Operations team).
Editing a theme as a non-admin
For the modification of a theme, please create a Feature Request issue (as it will require manual intervention by the Customer Support Operations team).
Changing the live theme as a non-admin
To change the live theme, please create a Feature Request issue (as it will require manual intervention by the Customer Support Operations team).
Deleting a theme as a non-admin
To request the deletion of a theme, please create a Feature Request issue (as it will require manual intervention by the Customer Support Operations team).
Administrator tasks
Note
- All sections in this section require
Administratorlevel access to Zendesk.
Viewing themes in Zendesk
To view the themes in Zendesk:
- Access the knowledge center
- Click the
Customize designicon on the left side:
Creating a theme
Warning
- This should only be done if there is a corresponding request issue (Feature Request, Administrative, Bug, etc.). If one does not exist, you should first create one (and let it go through the standard process before working it).
- This can dramatically impact the usability and appearance of what our customers see when they use the support portal. Exercise caution in proceeding.
This is a very complex process to integrate into our systems. As such, please have a Fullstack Engineer for the Customer Support Operations team assist you in this. It is a very manual process.
Editing a theme
Warning
- This should only be done if there is a corresponding request issue (Feature Request, Administrative, Bug, etc.). If one does not exist, you should first create one (and let it go through the standard process before working it).
- This can dramatically impact the usability and appearance of what our customers see when they use the support portal. Exercise caution in proceeding.
- It is vital you follow the Versioning information. Not doing so can cause things to break severely.
To edit a theme, you will need to create a MR in the sync repo. The exact changes being made will depend on the request itself, but make sure to use our Versioning information in your changes.
Once the MR is created, a preview link will be generated in the MR comments. This link allows you to preview theme changes before merging. If you push new commits to your MR, a new preview link will be generated.
After a peer reviews and approves your MR, you can merge the MR.
Once merged, any preview themes generated (for preview links) will be deleted via automation from the system. Once that completes, it will fully merge into the default branch.
When the next deployment occurs, it will be synced to Zendesk.
Versioning information
Quick versioning guide
- First digit: Always matches
api_version(currently 4) - Second digit: Increment when creating new MR
- Third digit: Start at 0, increment for each commit to same MR
It is vital for the theme that we use the correct versioning style. The version itself stems from the data/theme/manifest.json file’s version attribute. It uses 3 digits separated by a period. When making changes, keep the meaning of these digits in mind:
- The first digit: should always match the
api_versionattribute - The second digit: when creating a new MR, you should take the previous value and add 1 to it
- The third digit:
Example 1
You need to perform changes to the theme, so you develop them and then create a new MR. The data/theme/manifest.json file had the following in it before you made any changes:
{
"name": "GitLab Zendesk Global Theme",
"author": "Jason Colyer",
"version": "4.0.39",
"api_version": 4,
"default_locale": "en-us",
Since you are creating a new MR, the new value should look like this:
{
"name": "GitLab Zendesk Global Theme",
"author": "Jason Colyer",
"version": "4.1.0",
"api_version": 4,
"default_locale": "en-us",
If, after creation, you needed to push new changes to the MR, the new value should look like this:
{
"name": "GitLab Zendesk Global Theme",
"author": "Jason Colyer",
"version": "4.1.1",
"api_version": 4,
"default_locale": "en-us",
Example 2
You are working with a peer on an existing MR for theme changes. After your development, you decide to push changes to the existing MR. The data/theme/manifest.json file had the following in it before you made any changes:
{
"name": "GitLab Zendesk US Government Theme",
"author": "Jason Colyer",
"version": "4.10.9",
"api_version": 4,
"default_locale": "en-us",
Since the MR already existed and you are pushing new changes, the new value should look like this:
{
"name": "GitLab Zendesk US Government Theme",
"author": "Jason Colyer",
"version": "4.10.10",
"api_version": 4,
"default_locale": "en-us",
Changing the live theme
Warning
- This should only be done if there is a corresponding request issue (Feature Request, Administrative, Bug, etc.). If one does not exist, you should first create one (and let it go through the standard process before working it).
- This can dramatically impact the usability and appearance of what our customers see when they use the support portal. Exercise caution in proceeding.
This is a very complex process to integrate into our systems. As such, please have a Fullstack Engineer for the Customer Support Operations team assist you in this. It is a very manual process.
Deleting a theme
Warning
- This should only be done if there is a corresponding request issue (Feature Request, Administrative, Bug, etc.). If one does not exist, you should first create one (and let it go through the standard process before working it).
- This can dramatically impact the usability and appearance of what our customers see when they use the support portal. Exercise caution in proceeding.
- You cannot delete the current live theme.
If deleting a non-live theme, you may proceed as normal. To do this:
- Navigate the themes listing
- Locate the theme in question and click the three vertical dots to the right side of it
- Click
Delete - Click
Delete themeto confirm the deletion
Performing an exception deployment
To perform an exception deployment for themes, navigate to the themes sync project in question, go to the scheduled pipelines page, and click the play button for the sync item. This will trigger a sync job for the themes.
Common issues and troubleshooting
Not seeing theme changes after a merge
As themes follow the Standard deployment type, they would only be deployed during a normal deployment cycle (or when an exception deployment has been done)
f895738e)
