A ticket can be created three ways: the customer emails your support address, the customer submits the form on your web portal, or an agent raises one on their behalf. All three produce the same kind of ticket in the same queue. An administrator controls which channels are open from Settings.
Every portal has its own support address, in the form [email protected]. Anything sent to it becomes a ticket automatically - the subject becomes the ticket subject, the body becomes the description, and attachments come across with it. There is no form to complete and nothing to log in to.
Most teams keep the address customers already know by auto-forwarding their existing inbox, such as [email protected], to the Raiseaticket address. Customers carry on writing to the address on your website and never see the change.
The form is customisable, so you can add the fields your team actually needs and remove the ones it does not. You can also decide whether anyone may submit a request or only signed-in users, which is the usual choice for an internal helpdesk.

When a request arrives another way - a phone call, a chat, a conversation in the corridor - an agent or admin can raise the ticket for the customer so the work is still tracked and still counts towards your reporting. See creating a ticket on behalf of a customer for the steps.
Notifications go out automatically so nothing sits unnoticed:
From that moment the ticket has a status, an owner and a clock running against your service level agreement, and the first response time is measured from creation.
Tickets get resolved first time when they answer three things up front: what you expected to happen, what actually happened, and any error message or screenshot. A specific subject helps too - "Cannot log in to the billing portal" reaches the right person far faster than "Urgent".