OTRS Config Part III: The Admin Interface and Common Tasks


This will be the last of my planned posts on OTRS configuration. If you missed Part 1 or Part 2, be sure to check them out.  This post covers more concrete tasks and is less concerned with the abstract ideas covered in the first two posts. The content here was prompted by particular business needs, but based on my experience so far, it should have a pretty wide scope of application. Speaking of which…

Scope of Application

The descriptions and screenshots in this document were generated for and from a Linux system with the following setup:

  • CentOS 6.4 or 6.5 | OpenSuSE 13.1
  • MySQL 5.1.71
  • OTRS 3.3.3 | OTRS 3.3.4
  • Apache 2.2.15 (Unix)
  • Viewed with Firefox 26

You might want to install a similar setup to follow along. But you can do all the same things on a Windows or Mac.

Admin Interface

The majority of the system configuration you do will be through the Admin tools in the OTRS web interface. This includes tasks we’ve already reviewed, like creating Groups, Roles, and Queues; assigning permissions; and associating different elements. OTRS has a relatively sophisticated set of administrative tools. The relationships of the various modules will take time and practice to master, but they are ultimately quite simple to navigate.

The one possible exception is the SysConfig interface, which we will look at next. Once you understand how it organizes the configuration modules, you will be able to take advantage of its power and convenience.


Much of the configuration of OTRS can be done through the SysConfig interface. Access the SysConfig interface by logging into OTRS and clicking the Admin tab. (If you do not have Admin access in OTRS, you will not see this tab.) SysConfig is in the System Administration group.


When you first open the SysConfig, there’s not much to see. The default view shows no modules. You begin navigating using the Actions sidebar on the left.


You can type specific terms into the search field, or you can filter by config groups. These groups take a little getting used to. As you get more familiar with the naming conventions used by OTRS, navigating to specific modules and properties via the config groups will get easier. The nice thing about OTRS being so popular is that you can find a lot of help online. (Note the self-fulfilling prophecy I just made!)

Before we get to looking at any of the modules, let’s Export the current settings.[1]

Exporting and Importing Settings

It is important to get into the habit of exporting the configuration settings before you make any changes—and especially before importing another collection of configuration settings.

Click the “Export Settings” button. You should see a dialog prompting you to save a Perl module file


Save the file somewhere that you can access it easily.

To import settings, click the “Import settings” button, browse for the file, and click “Submit.”

Module Access

Turn off Agents < – > Groups Assignments

Out of the box, OTRS allows you to assign Group rights directly to individual Agents.[2]


We’ve already reviewed the reasons that motivate us to assign Agent rights through roles exclusively. To enforce compliance with this policy, we can turn off access to the module that allows us to associate Agents directly with Groups.[3]

Note that turning off access to the module is not the same as disabling it. Any Agent-to-Group associations that have already been made will still be in place. Also, any action that redirects to the Agent-to-Group assignment will still be able to reach the module. The primary advantage of turning it off is that it eliminates accidental clicks and the amount of options you have to process as you perform administrative tasks.

Follow these steps to turn off the link:

  1. Navigate to the SysConfig interface.
  2. Select “Framework” from the dropdown on the left.


  3. Locate the module Frontend::Admin::ModuleRegistration and open it.


  4. Locate the property Frontend::Module###AdminUserGroup.


  5. Uncheck the box next to this property.


  6. Scroll to the bottom of the page and click Update.
  7. To make sure you’ve turned off the link, go back to the Admin interface. You should no longer see “Agents < – > Groups” under the Agent Management settings.



It is possible to change the workflow routes of OTRS, helping to prompt users through the experience they prefer.

Set the page Customers see at login

By default, when customers log on they see an overview of their open tickets. If that’s what your customers are used to, that’s great. But many customers are used to seeing a ticket entry screen when they log on to their help desk. To ease the transition to OTRS for these folks, we would want to preserve that experience.

  1. Navigate to the SysConfig interface
  2. Select “Ticket” from the dropdown on the left
  3. Locate and select Frontend::Customer
  4. Locate CustomerFrontend::CommonParam###Action. By default, this is set to CustomerTicketOverviewcustomerfrontend-action-overview
  5. Change the value to CustomerTicketMessagecustomerfrontend-action-message
  6. Click “Update”
  7. Log into the Customer portal to confirm that you are redirected to the new ticket view by default

Tip: You can often find out the name/value of a particular view by visiting that page and examining the URL


Changing the Appearance of OTRS

Change the Headline and Logo

default-headline                                                                          default-logo

OTRS uses its own logos and icons by default. Wouldn’t you? To place your own brand on the environment, you need to change the headline and logo. First, you’ll need an image. The OTRS blog recommends that the image be 135 x 50 pixels, but you can figure out the best size for your image through experimentation. In our case, let’s assume the image is named HelpBrand.jpg.

  1. Place the image in $OTRS:var/httpd/htdocs/skins/[Agent | Customer][4]/default/img
  2. Navigate to the SysConfig interface in OTRS
  3. Select “Framework” from the dropdown on the left
  4. Locate and select Frontend::Customer
  5. Change CustomerHeadline from “Example Company Support” to your desired text
  6. Find the group of CustomerLogo settings and change the URL to skins/Customer/default/img/HelpBrand.jpg
  7. Click “Update”
  8. Navigate to the Customer portal. You should see your changes reflected there

This help desk is gonna fly now!


To change the logo on the Agent side, adjust the corresponding AgentLogo settings in Frontend::Agent.

Ticket Settings

This section covers different ways to change what users and agents can and must input when filling out a ticket.

Make Time Units Mandatory

Agent tickets have time accounting turned on by default, but it is not a required field. Many organizations want time accounting to be required. Here’s how to do that:

  1. Navigate to the SysConfig interface
  2. Search for “time units”
  3. Depending on what packages you have installed, you may see only see one result here: Frontend::Agent. If you have the iPhone module installed, you will see more results. Select the subgroup “Frontend::Agent” in the group “Ticket.”
  4. There are a couple dozen settings here. You can use Ctrl + F to search for “time” or “account.”
  5. Ticket::Frontend::AccountTime should be set to “Yes”ticket-frontend-accounttime
  6. We are specifically looking for “NeedAccountedTime.” OTRS uses “Need” as a keyword to indicate that a field is required.[5] By default, this is set to “No.” Change it to “Yes.”ticket-frontend-accounttime-drpdwn
  7. Click “Update”
  8. Create a new ticket as an Agent by clicking Tickets>New Email Ticket
  9. Scroll down until you see the “Time units” field. It should have a star by it and be in black text instead of gray.


Add a New Ticket button to the customer interface

Out of the box, OTRS includes the “New Ticket” button in a dropdown menu in the Customer’s Ticket Overview interface.


While this may be accessible enough and intuitive to the vast majority of users, the dummies like me need a button that they can access a little more directly. Otherwise, we spend the first couple of weeks filling out phone request tickets for how to access the New Ticket button.

  1. Navigate to the SysConfig interface
  2. Choose “Ticket” from the dropdown on the left
  3. Find and select Frontend::Customer::ModuleRegistration
  4. The first group of settings is CustomerFrontEnd::Module###CustomerTicketOverview. This defines what the customer will see in the various menus and submenus throughout the customer interface. We’re going to stay within the CustomerTicketOverview section, but I recommend that you look over all of these settings and get familiar with them.sysconfig-customerticketoverview
  5. Notice the NavBarName property. By naming the NavBar, we are able to group and order actions, as well as persist a single NavBar across views.
  6. Scroll to the bottom of the NavBar entries, for CustomerTicketOverview. If you’ve made no changes, there are two of them: “Tickets” and “My Tickets.”
  7. Find the plus sign after the last entry, and click it.sysconfig-customerticketoverview-detail-filled
  8. The page will reload and give you an empty set of parameters. Fill them in as follows:
    • Description:       New Ticket
    • Name:                   New Ticket
    • Link:                      Action=CustomerTicketMessage
    • Priority:                90
    • AccessKey            n
  9. Click “Update”
  10. Log into the Customer portal. You should now see the “New Ticket” button in the NavBar


Dynamic Fields

Dynamic fields are how you gather information the developers of OTRS either didn’t think about or didn’t care about when they designed the system. Every organization has their own interests, and OTRS provides the flexibility to customize what data you’re tracking and presenting. We’ll look at one example: adding a branch name to a ticket. Warning: This is a long one! Adding dynamic fields and confirming they work takes quite a bit of setup.

Add a Branch field to the ticket

  1. Navigate to the Dynamic Fields Management interfaceticket-settings-tools
  2. Select “Dropdown” from the Ticket dropdown on the left.dynamicfieldsmanagement-overviewticket-dropdown
  3. Fill out form with the following details:
    • Name:             ddBranch
    • Label:             Branch
    • Field order:    1 (don’t worry about replacing anything that’s there)
    • Validity:         Valid
  4. Click the plus sign next to Add valueadd-value
  5. Set the Key to “101” and the Value to “Support Group”
  6. Set the Default Value to “Support Group”drpdwn-settings-supportgroup
  7. Leave the remaining settings as they are, and click “Save”
  8. Your new Dynamic Field should appear in the Dynamic Fields Listdynamic-fiels-list
  9. Navigate to the SysConfig interface
  10. Choose “Ticket” from the dropdown on the left
  11. Find and Select Frontend::Customer::Ticket::ViewNew
  12. Find Ticket::Frontend::CustomerTicketMessage###DynamicFieldticket-frontend-dynamicfield
  13. Click the plus sign
  14. Enter the key of your Dynamic Field (in this case “ddBranch”) and set the Content value to 1 (Enabled)key-content-filled
  15. Click “Update”
  16. Go back to the SysConfig interface
  17. Choose “Ticket” from the dropdown on the left
  18. Find and Select Frontend::Agent::Ticket::ViewZoom
  19. Scroll down to Ticket::Frontend::AgentTicketZoom###DynamicField
  20. Click the plus sign.
  21. Enter the key of your Dynamic Field (in this case “ddBranch”) and set the Content value to 1 (Enabled)
  22. Click “Update”
  23. We’re almost finished, but we need to make sure that OTRS displays the entire value of the field without truncating it. So go back to the SysConfig interface one more time
  24. Choose “Ticket” from the dropdown on the left
  25. Locate and select Frontend::Agent
  26. Locate Ticket::Frontend::DynamicFieldsZoomMaxSizeSidebar
  27. The default value is 18 characters. Set it to 140 (or whatever length you know you need)fields-zoom-max-sidebar
  28. Click “Update”
  29. Log into the customer interface
  30. You should see your  new field at the end of the default fields with your default value selectedbranch-dropdown
  31. Fill out and submit a test ticket
  32. Log into the Agent interface
  33. Locate and open your test ticket
  34. You should now see your Dynamic Field in the Ticket Information sidebar



I’ll continue to use OTRS and so may come across something new to share from time to time, but this ends my original trilogy of configuration posts. OTRS has plenty more features to explore, but we’ve covered all the major bases.  If you followed me this far, you should be able to tackle quite a bit more on your own. Feel free to use the comments here to drop a line and ask me questions. If there’s any way I can lend a hand, I will.

Love and kisses,


[1] Technically, OTRS actually stores all of its default settings. Anything you change in the SysConfig can be reset to the defaults pretty easily. Backing up the settings will become increasingly important as you customize the environment further.

[2] If you are not sure what Group rights are, review the OTRS documentation on Groups.

[3] Of course, the System Administrator will always be able to turn access to this module back on, but removing the option from plain sight will help us avoid mistakes.

[4] [Agent | Customer] should be read as “Agent or Customer,” and indicates that you will need to put it in each of the directories. The tree structure is otherwise the same. In the example, we’ll be changing the image on the Customer side.

[5] OTRS also sometimes uses the word “Mandatory” instead of “Needed.” See Ticket::Frontend::CustomerTicketMessage###ServiceMandatory.


49 thoughts on “OTRS Config Part III: The Admin Interface and Common Tasks

  1. Thanks, Tyler. It’s a great post!!!
    Do you have something like this trilogy for OTRS-ITSM?
    Thanks again.
    Best regards!

    • Thanks so much, Gonzalo! Glad you found it helpful. I don’t currently have these posts for ITSM, but it’s something I’ve been considering for future posts. If there’s enough interest, I’ll definitely put that on my project list!

  2. Hello, thank You for nice articles.

    At the moment I am struggling with dynamic fields. I added a check box to Close form (on agent side) and I do some notify action (Notifications (Event)) according to its value. But the problem is, when this action is triggered without a form. Then nothing happens because there is no check box value. Is it possible to set this dynamic check box value even if specific form is closed?

  3. hi, i created new group on otrs, then i add all agent to my new group unchecked them from default group (admin, users, root). After i logout i was login again i saw that i lost my admin right for all agents.. Any help, advice? thanks

    • My best guess is that the new group you created doesn’t have any admin rights, and since you removed all users (including yourself) from the admin group, none of your accounts have admin rights now. The root user should still have admin rights to everything, so if you need to restore admin rights to another login, you’ll need to log in as root and switch your account back to admin.

  4. Great write up, Tyler! This series was very helpful as I began deploying OTRS at work. One note I would make based on my research is that services may be better to use than multiple queues and sub-queues. Other than that, your material is great. I’d be interested in anything you have to say on ITSM as well since I hope to use that in the future.

  5. Thanks so much for the post. We have implemented OTRS as a basic HelpDesk system. We love it. We are now looking to extend our usage into the Process Management features. Reviewing the basics is a good step for us. This series of posts has been really helpful.

    We actually leverage OTRS to be able to segment our techs into teams that support multiple buildings. Now that we are looking to expand our usage, we need to make sure that our first swing at set up is still useful.


  6. Hi! Can I ask you a question? 🙂 In FAQ Explorer, is it possible to change the position of the tables? Looking forward for your reply. Thanks a lot 🙂

  7. Aw, this was an extremely good post. Spending some time and actual effort to make a top notch article… but what
    can I say… I put things off a whole lot and never manage to
    get anything done.

    • Thanks so much! I have not made one on the FAQ module yet. I plan to continue my coverage of OTRS this year. When I wrote these guides, I had the advantage that I was implementing OTRS at work and wrote these guides as part of my efforts there. Since then, I’ve changed jobs and started an online master’s program. But I’m excited to dig back into OTRS and extend my knowledge and documentation here. Look for new posts very soon!

  8. Thank you so much Tyler!
    Do you have something for developing customer interface? I need to show ConfigItem, tried to paste code from AgentITSMConfigItem into my module and I can track how many computer is registered in DB but I can’t see de detail and I don’t understand why… I’m really noob with Perl and in Otrs too!

    • Hi, Miaos! Sorry I’m just getting back to you. I was traveling when your comment came through, and I’m just getting caught up. I’m not sure I totally follow your question. Were you able to find an answer yet?

      • Thank you for your answer!
        Not at all, I’m still looking for a solution. Anyway I need to write a module for customer only and I’ve succeeded adding it to customer dashboard only. It’s hard for me to understand how to work on the code and on the template too… I’m too noob with Otrs and Perl I think! ^^
        Next I need to display a list of computer registered in CMDB but it will be great if I can have help for the previous step beacause I haven’t find too much online!

  9. OK this might sound stupid but I’m just not that familiar with linux. I’ve installed the OTRS iso exactly as the OTRS website suggests, using oracle Vbox, etc on a win server. All I’m able to see is the open shell command line and not any type of gui dir structure. So I’m absolutely clueless on how/where to save an image file to brand the customer portal. Perhaps I installed the wrong linux debian?

    • Hmm… If I understand your question, you need to save the image file to $OTRS:var/httpd/htdocs/skins/[Agent | Customer]/default/img, where $OTRS: is your OTRS home directory. You’ll still need to log in on the front end as an administrator to make the changes. The more difficult part will likely be getting the image from your source Windows system to the virtual server unless you’ve already set up shared folders. But it’s manageable.

  10. Well I do have the image file in a shared folder on the VBox but what I don’t know is how to get that into $OTRS:var/httpd/htdocs/skins/[Agent | Customer]/default/img. When I run the OTRS appliance on the vbox i get is the open shell cmd prompt. Not any type of file tree dir/gui if that makes sense. I get the admin front end piece just not how to place the img in the dir that otrs wants. I feel like most people have probably installed a complete distro and the OTRS download iso only installs the kernel to run OTRS and you then need to know linux cmd lines to config anything. Just my guess.

    • I gotcha. So you’re looking at a screen that has prompt that looks something like `username@hostmachine:~$`, and you’re not sure how to navigate or copy files.

      To change directories, the command is `cd [path-to-directory]`. So if you wanted to go to the Documents directory, you would type `cd /home/username/Documents`.

      While in a directory, you can use the command `ls` to view its contents.

      Finally, to copy a file, you use `cp`. So if your current file is in /home/username/Documents, and you want to move it to /opt/otrs/var/httpd/htdocs/skins/Agent/default/img, you would type the following into the command line: `cp /home/username/Documents/image.jpg /opt/otrs/var/httpd/htdocs/skins/Agent/default/img/image.jpg`

      • OK Thanks! It is a lot like a dos cmd prompt. I was able to move the new logo in. So one last follow up question if you don’t mind. I would much rather use a more gui style setup. It seems to me that once a virtual machine is setup that a linux OS like ubuntu could be put on then OTRS installed on ubuntu (or other distro) and that would eliminate the need to know shell cmds as much and can allow you to drag/drop/copy/paste into the appliance? Would that assumption be correct?

      • Absolutely. It’s all about what’s available and what you prefer. Most of the administration can be done from the GUI once OTRS is installed and you can get to it through your browser. But there are still a lot of customizations that have to be done by navigating to files and opening/editing them. If you have the option to do that with a GUI and that’s what you prefer, you’d just need a GUI installation of the OS to be able to do that.

  11. Hi Tyler, your blog is very useful and helped me alot too.ThanQ for sharing the valuable information. I’m a newbie to OTRS and linux. I’ve installed OTRS in centos 7 and done all the configurations. I need your help on importing bulk customer users into OTRS. I need to import the active directory users into otrs. I’ve searched and found this site: http://forums.otterhub.org/viewtopic.php?t=12410 , but unable to execute the command mentioned in it.

    I created an excel file from libre office in centos 7 and entered some data after first 5 columns i added a column and pasted the below formula and when tried to copy the result into the next line am getting an error as #NAME? and sometimes #REF I executed this command =”bin/otrs.AddCustomerUser.pl -f ” & firstnamecell & ” -l ” & lastnamecell & ” -p ” & passwordcell & ” -e ” & emailcell & ” -u ” & usernamecell .

    The Format which i tried in excel example:
    ravi Teja pass111 raviteja@otrs.com ravitejam These are the fields need to be imported into otrs as customer user.

    Please suggest the better way in doing the above task.

    • Hi Ravi. Sorry I didn’t respond any sooner. I’ve been in the process of moving to a new city. I don’t have any experience with bulk importing users, but my guess is that if you’re using the line `=”bin/otrs.AddCustomerUser.pl -f ” & firstnamecell & ” -l ” & lastnamecell & ” -p ” & passwordcell & ” -e ” & emailcell & ” -u ” & usernamecell ` without modification and without named ranges to reference, Excel is erroring out because it can’t find “firstnamecell” or “lastnamecell,” etc. It should be something like `=”bin/otrs.AddCustomerUser.pl -f ” & A1 & ” -l ” & A2 & ” -p ” & A3 & ” -e ” & A4 & ” -u ” & A5` in cell A6.

    • Ravi have you got Success in importing Users from AD.
      I have Implemented OTRS on CentOs 7. I have no idea how to Configure settings so that Agents and Customer User can be authenticated.
      I would really appreciate If you can Guide me on this.

  12. Hi Tyler! indeed very helpful. should have found this text before learning it mostly through trial and error 🙂
    What I haven’t solved yet is the OTRS feature that all autoreplies and notifications always get written into ticket history. Sure we want to be kind to customers and by e-mail automatically confirm that their ticket has reached us. But we don’t want to cram this always-the-same response into ticket history which just makes the ticket’s conversation longer and harder to read. I haven’t found any helpful article on this subject yet. Maybe you know how to fix this? thanks in advance!

    • This is funny. Just after posting the question it dawned on me to try set “Notification article type” to email-notification-inf (in Notification Management) – and this was it. Notification is now no longer written into ticket history. Maybe too simple …

  13. My brother recommended I would possibly like this web site.

    He was once entirely right. This post actually made my day.
    You cann’t imagine just how much time I had spent for
    this info! Thank you!

  14. We’re a gaggle of volunteers and opening a brand new scheme
    in our community. Your site provided us with helpful information to work on. You
    have done a formidable job and our whole group will
    probably be grateful to you.

  15. Thanks you for outlining these topics s in a simple and easy to follow format. Am wondering if it is possible to add a dynamic field as a column into the Customer ticket overview area. We are trying to find a way to help customers sort their tickets based on the request type which is currently identified through a dynamic field.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s