By default, the Firmhouse Checkout and data model of every Subscription offers a range of standard fields like address information, email, phone number, etc. Some of these fields can be made required, optional, or even fully hidden.
Sometimes, you want to store additional information about your customers that are not part of the standard fields that Firmhouse offers. For example, collecting customer's birthday to send them a gift or special birthday offer. Firmhouse supports collecting this data using Extra Fields. This article explains what kind of Extra Field options we offer, and how to manage them.
To start with, you can view your existing extra fields and create new ones by navigating to Checkout>Extra fields & validations.
Extra Field configuration Options
When attempting to create a new Extra field, you will have to configure several settings. Let's dive into each of them and their function!
Field Types
Every extra field has a type. The type influences how the field is shown on Checkout or when editing through the Firmhouse Portal. It also dictates what type of information you need to pass on when setting a field via the API.
Currently supported types are:
Short text - shows as single-line entry
Long text - shows as multi-line text box
Date - shows a date picker
Dropdown - select from a list of pre-defined values
Visibility
A field is either Public or Internal.
Public fields are automatically shown on Checkout. They can be entered and modified by the customer at this point.
Internal fields are private fields. They can only be seen and edited in the Portal or through an API key with write access.
Required or not
A field can be set to be required. If a field is required an error message will be displayed at Checkout if an empty value is entered. The API will also return a validation error message if the field is blank or not passed in.
Purpose (only with certain integrations)
When certain integrations are enabled on your project, you can set a field's Purpose.
The purpose setting is used to inform external or 3rd party integrations of what the content of the field means. This is useful when the field's name might be different or customized in a non-generic way. By setting the purpose there's a uniform way for external integrations to know for what use case the field is used so that integrations can explicitly look for the field's value depending on the use case.
Currently supported values are:
Phone number
Create an Extra Field
Steps:
In your Firmhouse project, go to Checkout > Extra fields & validations from the sidebar.
From the Extra fields overview, click the New extra field button.
Give your field a name. This is how the field will appear on Checkout and Portal.
Set the field type, visibility, requirement, and if available it's purpose and if you want the field to be send to Shopify.
Click Save extra field
⚠️ Adding a required extra field when you already have customers will cause that existing customers also need to be updated with that extra field. Upon changing the details of an existing customer it's also required to fill out the new extra field with a value. This can for example be done in batch by creating a script that uses our API to update all existing subscribers with the new mandatory extra field.
Edit an Extra Field
Steps:
In your Firmhouse project, go to Checkout > Extra fields & validations from the sidebar.
From the Extra fields overview, click Edit on the field you'd like to edit.
Change any of the settings of the field.
Click Save extra field
⚠️ Make sure to update any custom integrations when renaming an extra field if you are using its name. Typically you should be using the Extra Field's IDs to integrate so you don't have the problem that something breaks when renaming.
Renaming the Extra Field also modifies how it shows up in exports and reports.
Remove an Extra Field
Steps:
In your Firmhouse project, go to Checkout > Extra fields & validations from the sidebar.
From the Extra fields overview, click Delete on the field you'd like to delete. Confirm the removal in the dialog.
⚠️ Historic values of the extra field removed will still remain present on the customer record. However, the field will not be treated as mandatory anymore and it will not be possible to edit the field's value in the portal.