Hidden fields don't show up on the form. Their values can be seen on the response dashboard, in emails, and also as a reference on the form.
You can, for example, share a form link that contains a URL attribute:
You can then create a hidden field labelled 'source', and enable 'Fetch Values from URL Attributes' option under Settings. This would set the value of the hidden field to email and this is only visible to admins.
You can also use conditional logic to set the value of this field to something, based on the value of other fields.
Example, we have a hidden field labelled Message. If the total donation amount in our form is over 100, we set the value of Message to "Thank you for the generous donation". We can then show this message as a part of the success text, or in email(s).