Person attributes are a fundamental strength of Rock, so let’s spend some time unpacking this feature. When to Use Person Attributes Person attributes should be used any time you want to store the characteristics of an individual. There are a couple of situations when a person attribute may not be the best fit though. Ask yourself these questions before you add a new attribute: Is there already a common person element or person attribute that exists? You’d be surprised how many duplicate attributes get created.Is the attribute related to a specific group? If so, consider making it a group member attribute instead.Is this attribute really needed? While there are many interesting things you could track about an individual, you should ask yourself if the data item is helpful to your mission. You don’t want to get overwhelmed with the number of attributes you create.Will I be able to keep this attribute accurate going forward? If the value of the attribute changes over time you should ask yourself if you’ll be able to keep it updated. Inaccurate data is often worse than no data at all. For instance, tracking a child’s height might be interesting but impossible to keep accurate. Even if it’s accurate, there’s no way for a person to verify it. Managing Person Attributes Person attributes are managed from Admin Tools > Settings > Person Attributes. Each element of the person attribute is discussed in detail below. Name - The name of the person attribute. This will be used as the label when displaying the value.Description - While many people might skip over the description thinking that the name is obvious, we encourage you to spend a moment to enter a thoughtful description of the person attribute. What’s obvious to you now may not be clear to you, or others, in the future. You might define what it means to your organization.Sample: Baptized Here tells us that the individual was baptized at our organization and not by a previous church.Example Description 1: This value is updated by the baptism coordinator after the baptism record card is received.Example Description 2: This value is updated by the system once the individual is marked completed in a baptism workflow. Categories - While person attributes should be created wisely and purposefully, over time it’s likely your list will grow to be very long. To help with this, you can categorize attributes into groups. This allows you to manage groups of attributes instead of individual attributes. A person attribute can be in more than one category, allowing it to be displayed in multiple areas while maintaining a consistent value.Key - For the most part, you don’t have to worry about the attribute’s key. A default value is created for you based on how you name the attribute. The key is more for developers who might wish to override the default. (You know how developers can be.)Required - Yep, you guessed it. You can require that certain attributes be completed whenever a person is edited.Field Type - OK, this is where it gets fun. Rock allows attributes to store different types of data. You get to tell the system what type to use for your attribute. This determines what options exist for an attribute’s value. For example, let’s say you want your person attribute to track which foreign languages a person can speak. You wouldn’t want to pick a Field Type of “Date” because a date wouldn’t tell you anything about languages. Instead, a field type like “Defined Value” or “Multi-Select” would be better for tracking spoken languages. See below for a list of common field types and how they're used.Attribute Settings - What you see in this area will change based on the Field Type that's been selected. In this example we see options like "Password Field" and "FirstName Field" which only appear for Text attributes.Default Value - Most field types allow you to enter a default value that should be used when no specific value is provided.Enable History - If this is enabled, changes to the attribute's value will be written to the AttributeValueHistorical table in Rock. This table tracks changes to attribute values by storing the previous values and the current value. If you're not sure about this piece don't worry, it's turned off by default and doesn't impact your attribute whether it's enabled or not.Suppress History Logging - By default, Rock records changes to attribute values (along with other system changes) in the History table. You can view this information on the Person Profile page in the "Person History" section under the History tab. If an attribute value changes frequently, though, you’ll see a high volume of Person History entries. This is often the main reason for suppressing history logging.Analytics Enabled -This one applies to Business Intelligence (BI) reporting, which we cover in the Business Intelligence manual. If it's enabled, this attribute and its value will be tracked on Person Analytics tables (aka BI models). Specifically, tables like AnalyticsDimPersonCurrent and AnalyticsDimPersonHistorical will store the attribute's value. If you're not reporting from BI tables, this setting can be ignored.Analytics History Enabled - This is directly related to the Analytics Enabled setting above. In fact, this does nothing unless Analytics Enabled is also checked. Enabling analytics history will add historical rows to the AnalyticsSourcePersonHistorical and AnalyticsDimPersonHistorical BI tables. This allows you to track changes to attribute values over time in BI reporting. You can learn more about these types of tables in the Business Intelligence manual. As promised, let’s take a look at some attribute Field Type values and see how they can be used. Field TypeDescription BooleanThat’s just a fancy term for True/False. Use this for situations where the options are Yes or No, Done or Not Done. For instance, the Baptized Here attribute that comes with Rock is a Boolean. You were either baptized here or you weren’t. CampusDon’t use this to denote which campus someone attends. There's already a common element for that. Instead, this might be used to track which campus someone started attending or where they were baptized. Each of these could be different than their current campus selection. CampusesThis allows you to pick several campuses as the value of the attribute. Perhaps you could use this to track every campus they have ever attended. DateYou can probably guess what this does and how to use it. Date RangeTracks a start and end date. DecimalStores a number with a fractional value. Defined ValueDefined values are reusable lists of valid values. Marital Status, Phone Type and Record Status are all examples of defined value lists. You can use any of the pre-defined defined types or create your own. You can read more about defined types/values in the Rock Admin Hero Guide. FileAllows you to upload a document into the person attribute. This is helpful for storing scanned copies of signed membership covenants or other documents you want to keep on hand. If you think you’ll be uploading a lot of documents of a specific type, you might consider adding a new File Type. You can read more about this in the Rock Admin Hero Guide. When considering storing files in Rock keep in mind the storage implications of the files you’ll be adding to the system. HTMLAllows you to store a fragment of HTML that's specific to the person attribute. While this is uncommon, it's useful in some cases. IntegerStores a whole number (no fractions or decimals). MemoA larger text field for entering multiple lines of text. Multi-SelectAllows you to specify a list of values that multiple items can be selected from. You define the list of values by passing in a comma-separated list of items (Red, Blue, Green). You can also choose to store a separate value than the label by using the notation Value^Text (1^Red, 2^Blue, 3^Green). The items will be displayed as a checkbox list. PersonAllows you to tie the person attribute to a specific person. Be sure to consider using known relationships before adding a person attribute with a field type of Person as they are often a better solution. Single SelectAre very similar to the multi-select field type but only allow a single value to be selected. The single select field type has the added option of displaying the list as either a radio list or dropdown select. TextA simple single line of text. TimeAllows for the entry of time to a person attribute. The field types above are the most common for person attributes, but others exist that we don’t cover in this guide. The other types may be useful in certain edge cases, but the ones detailed above should be all you need for most scenarios. Secure Person Attributes The list of person attributes on the screen above also gives you the ability to secure person attributes so only a limited number of people can view and/or edit them. NoteBy default, All Users can view an attribute, but only Administrators can edit them.