A free help desk software we used, which has the features in Back-end, front-end and email synchronization and Ticket assignment logic Customer self-service system: Have the helpdesk system which is to be the last insurance to help your customers to combat the problems. However, no one wants to wait for your reply if there is any chance to get the answer. So at higher priority, the customers should search their answers from the knowledgebase and articles you have prepared already. This must be designed intelligently and functionally.
More info you can check: http://www.phphelpdesk.org/