Custom properties are fields that you can use to gather information about the contacts in your account. Here are several examples of how you might use custom properties:
- To collect additional information about your contacts, such as gender, size, coupon code, etc.
- To collect contacts' preferences, such as email frequency, type of content, etc.
- To collect contacts' responses to a questionnaire
You can collect virtually any type of information you'd like about a contact using custom properties, and then later use this information to tailor content or filter segments/flows. There is no limit to the number of custom properties that can be added to one profile.
How to Add a Custom Property to a Profile
There are three main ways custom properties are added to a contact's profile:
- You add this information yourself
- You ask contacts to provide this information
- The properties are synced through an integration
Add a Custom Property Yourself
When uploading a list, any column after the "Email" column can be used to attach a custom property to a profile. For example, you could have a "Gender" column that corresponds with a contact's gender. Additional points to keep in mind are:
- Any new value/column that you include in a CSV upload that does not already exist on a contact's profile will be added as a new custom property
- Any value/column that you include in a CSV upload that already exists on a contact's profile will be overwritten in the most recent upload
- Any new value/column that you include in a CSV upload that does not already exist on a contact's profile will not affect existing custom properties
Learn moreLearn more about how to add custom properties to an import file.
You can also add custom properties directly to a contact's profile. First, select the profile you would like to add a custom property to. Then, navigate to the bottom of the page and find the Information section. Here, you will see an area labeled Custom Properties, with an option to Add. Click this and add the custom property you would like.
Ask Contacts to Provide Information That is Collected as a Custom Property
You can collect custom properties straight from your subscribers when they sign up using a subscribe page, sign up form, or third-party list growth integration. You can also collect custom properties from existing subscribers using a manage preferences page.
- Collect custom properties with a sign up form
- Collect custom properties with a subscribe or manage preferences page
Any additional fields you add to a subscribe page or sign up form will be collected as custom properties. You can even use these methods as a sort of questionnaire if you would like to filter segments or flows by the responses you receive. If people update a custom property on a manage preferences page, this change will be reflected on their profile and their original property will be overwritten.
Custom Properties Synced Through Integrations
If you have any active integrations, these may also sync a number of specific custom properties. For example, the Shopify integration syncs an "Accepts Marketing" custom property. For more information on the custom properties that are synced through your integrations, please refer to the integration documentation.
How to Use Custom Properties
You can use custom properties to segment your audience, filter flows, and include dynamic content within emails. Once you've created a custom property, you will see it populate in the segment builder when you select Properties about someone. If at least one contact has a certain custom property, you will see it auto-populate in the drop-down menu. Likewise, this will happen when you add filters to a flow or an email within a flow.
You can also dynamically populate your emails with a custom property by using the "lookup" filter:
|Your gender is:
||Your gender is:
Custom Properties vs. Special Properties
Klaviyo also automatically records a number of "special" properties, which are different from custom properties. These can be identified by a "$" prefix and include:
- $id: your unique identifier for a person
- $first_name: first name
- $last_name: last name
- $phone_number: phone number
- $title: title at business or organization
- $organization: business or organization
- $city: city
- $region: region or state
- $country: country
- $zip: postal code
- $address1: address line 1
- $address2: address line 2
- $timezone: time zone
- $email: email address
- $latitude: latitude
- $longitude: longitude
If you would like to manually input one of the above values for a list, follow the same process as adding a custom property. Create an additional column and put the name of the special property in the first row. For example, if you would like to input a value for subscribers' home city, you would title the column "$city" and then fill in the values for each subscriber.
In order to import a special property, you must put a "$" before the property name. Otherwise, the property will be recorded as a custom property instead. The only exceptions to this rule are "First Name," "Last Name," and "Email."