I'm currently in the process of building a Helpdesk like application, and when the user creates a new ticket they need to select a customer and transaction by entering a certain number of criteria.

Once they have entered this information, the appropriate record is retrieved and shown. However, what I'm currently trying to work out, in the interest of user efficency, is the best way for the user to initiate this data transaction by clicking a button, pressing tab, or by giving them the option to do both?

or would giving them both be too much choice for the user?

2 Answers 2


You should stick to common convention on something like this.

If the inputs are set up like a spreadsheet then people understand that by pressing tab they will go to the next record and the first record will be processed.

Since you say this is a help desk app it doesn't sound like this is what you are doing, so I would say you should have a button.

That said, pro users will always appreciate keyboard shortcuts so making tab work as well sound like a good idea.

  • Would it be worth noting the shortcut itself in the user documentation? So that they are aware of the shortcut?
    – LiamGu
    Commented Aug 18, 2010 at 13:54
  • You should have a keyboard shortcut cheat sheet will all the shortcuts listed in one table.
    – Sruly
    Commented Aug 18, 2010 at 13:59
  • 2
    @Liam - you should document the shortcuts, but if it's a standard one (tab for "next field", enter for "submit" etc.) then users should discover it for themselves.
    – ChrisF
    Commented Aug 18, 2010 at 14:00

I have used a few different help desk systems and because of the nature of the beast, efficiency is always one of the top priorities. One thing myself and most if not all of my coworkers hated was when we had to wait for the app to do its own thing. Two of our systems automatically pulled up the client's information as soon as you left the input field(by tabbing, etc). Sitting and waiting for an ajax form to load was always annoying because it felt like the controls were out of my hands and the program was just "wasting my time doing its own thing". For this reason, I would suggest using a button to query for the client's information. Clicking the button just makes it feel like it is you who is controlling the program.

However, the frustration associated with having to wait for the system to do its own thing was probably caused by the fact that we were unable to fill out anything else until that information was loaded. If you set it up so that the tech can fill out the new ticket while the client's information is loading, I think that would be pretty snazzy. Of course this would only work with the creation of new tickets because you don't have to update existing information. If you went with this route, simply tabbing or clicking on the next field would be a little more palatable.

  • Great answer. The application itself will allow users to continue with the ticket whilst information is loaded, but if it can't find the information it allows them to create a new customer record. I think both you and @Sruly are correct and the way forwards is to give them both.
    – LiamGu
    Commented Aug 18, 2010 at 14:16
  • Most of the systems I have used had problems with page loads that wipe out form data you have already entered. What is your process when they have already filled in fields and the user isn't found? This sounds like one of the instances were there is potential for accidentally wiping the data already entered. Are you displaying the new customer record form without reloading the page? If you have to redirect to a different page or perform a reload, it might be worth looking into a way to grab whatever they have already entered and automatically populate the new form. Commented Aug 18, 2010 at 14:24
  • The only fields I have that are refreshed are those for the customer data, the rest of the page can still be filled in, but the ticket can't be opened until they have entered a either a new customer or found an existing one. The entire operation is done with several JSON POST/GET's
    – LiamGu
    Commented Aug 18, 2010 at 16:27
  • Sounds like you have that process worked out well. Just another comment and this isn't really related to the topic but it has been a big issue for me in the past. Session timeouts. A few of the helpdesk systems I used loved to time me out once I finished filling out the ticket. The devs didn't really keep in mind the fact that we are usually handling the call and the ticket creation at the same time. We would often find ourselves starting the ticket, troubleshooting with the user, and going back to finish the ticket only to find that it timed out. The users will love you if this isn't an issue Commented Aug 18, 2010 at 16:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.