Yes, you can add custom fields to the Joomla contact form relatively easily. It's possible to add various form elements, such as text fields, checkboxes, select boxes, etc. You can do it with core Joomla without any additional extensions installed.
When you are adding the custom fields, it's possible to remember that you always select "Mail" from the main Contacts: Field Groups and Contacts: Fields pages. Otherwise, the fields created won't appear on the contact form.
Create Fields Group
From your Joomla administrator, go to Components > Contacts > Field Groups. Select "Mail". Click "New" to add a new field group. Just add a title, for example, Extra, and save it.
Now, you should see the contact field group we just created.
Create Fields
In this tutorial, we will create two custom fields. The first will be textual fields and the second will be a checkbox. Of course, you can add more fields of various types on your contact form.
Go to Components > Contacts > Fields. Select "Mail". Click "New" to add the first custom field. We will name it "Extra text" and select the type "Text".
It's important to set permissions correctly. Otherwise, your website visitors won't be able to change the field value when they are contacting you.
Let's make one more field. This time, we'll make a checkbox field. If a user selects it, this indicates that your privacy policy has been accepted. This field will have only one value "yes" and it will be the default value.
Don't forget to set the permissions as for the first field!
Now, in Components > Contacts > Fields you should see the two fields that we just created.
Check Custom Fields in the Contact Form
Open the Contact page now on your website's front end. The extra fields we just created should appear below the default contact fields.