Every person raising a support ticket in your helpdesk through any channel becomes a contact automatically. If you let customers create tickets without logging in, a new contact will be created with the email they provide in the ticket form.
You can make your customers log in before they could create a ticket or look at your knowledge base and forums. You can have them create a new account or single sign on through Google, Facebook or Twitter. In case of creation of new account, or SSO through Google and Facebook, email address will be the primary field through which the contact gets created. If a customer logs in through Twitter, the primary field will be the Twitter handle.
A new user can create an account by clicking on the sign up button on the top right corner of the helpdesk.
The sign up form will collect the user's name and email address. You can also set up captcha to prevent spam.
Repeated users can click on login on the top right corner of the customer portal. Even new users can click on login, use the SSO to login for the first time.
If you would like to restrict your customers from signing up and/or logging into the Customer Portal, you can modify the settings as required under Admin > Channels> Portals > Settings. A quick guide on how you can customize this access can be found here.
User activation email
You can enable user activation email for users creating a new account and make your account secure from spammers. Once a user signs up, an email notification containing the activation URL, is sent out to them on their registered email address. The users can click on it and create a password for their Freshdesk account. This can be managed under Admin > Workflows> Email Notifications > Requester Notification tab.