Manage customer attributes

Updated

Customer attributes represent the things you know about your audience—their name, preferences, email address, etc. You can use them to personalize messages, track people with similar characteristics, trigger campaigns, and more!

What are customer attributes?

Customer attributes are data points about people in your audience: things like first_name, email or product_interests—any information that is important for your marketing workflows.

Every attribute has a name and a value. The name is how you reference the attribute whenever you want to get or set the value. When you want to personalize messages with customer data or group people by shared characteristics, you’ll use the attribute name.

Customer attribute is the umbrella term for a few types of data stored on people:

  • Identifiers are how your workspace does just that—identifies people. At least one identifier is required. Learn more in How to identify people.
  • Reserved attributes are attributes that have specific meanings in your workspace, where you can’t change the attribute name, but can often change the value. For instance, created_at is a reserved attribute whose value you can modify but not the name. There’s also an immutable reserved attribute called _created_in_customerio_at that our system generates when you add a person to your workspace. Check out the list of reserved attributes below.
  • Subscription preferences: With our out-of-the-box subscription page, people can update their global unsubscribe attribute (whether they are subscribed or not to messages). You can also create a subscription center so people can manage subscription preferences for topics too. Global unsubscribes and subscription preferences are managed by different attributes.

To learn more about setting subscription statuses, check out our overview.

If you send push notifications, people also have device data stored on their profile.

Naming best practices

In general, these are best practices for developing naming conventions of attributes:

Attribute names are case sensitive, so we recommend auditing your data to ensure you’re only adding/updating information to one attribute. If you send an attribute for some people as first_name and an attribute labelled First_name for others, you’ll have two different attributes for names in your workspace. This can make it hard to personalize messages with liquidA syntax that supports variables, letting you personalize messages for your audience. For example, if you want to reference a person’s first name, you might use the variable {{customer.first_name}}. or add the right people to segmentsA group of people who match a series of conditions. People enter and exit the segment automatically when they match or stop matching conditions. because not everybody will have the same attribute.

 Audit your attribute names in the Data Index

You can use your workspace’s Data Index to identify inconsistencies in your attribute names and identify the sources of your data.

Storing data as JSON

You store attributes using JavaScript Object Notation (JSON). JSON data is a set of keys and values. A key stores a value. For example in the attribute "first_name": "Jack", first_name is the key and Jack is the value.

In JSON, the syntax you use for a value determines what liquidA syntax that supports variables, letting you personalize messages for your audience. For example, if you want to reference a person’s first name, you might use the variable {{customer.first_name}}. filters and operators are available to you. In general, you should understand the difference between string, number, boolean, object, and array types.

Learn more in Storing and using JSON.

Don’t store sensitive data in your workspace

 Avoid storing sensitive information in Customer.io

You should limit the personal data you store to what you’ll use in Customer.io. You should not store sensitive data passwords and other tokens in Customer.io. While we take every effort to protect you and your customers’ data, limiting the data you share outside your backend systems limits potential security concerns and helps you respect your customers’ privacy.

You can grant access to our Support and Customer Success teams when you need to troubleshoot issues for a limited time. When you grant access, Customer.io personnel can see your audience’s attributes and the data you store, but only during that timeframe.

List of reserved attributes

Customer.io has reserved attributes to support core functionality in the platform.

AttributePurposeRequiredData Format
idA unique identifier for people. If the id does not yet exist, we create a new person.When importing by idOur default id limit is set to 150 characters. All valid UTF characters are allowed.
emailA person’s email address. If your workspace uses email as a unique identifier (the default setting for new workspaces), and the email address does not yet exist, we create a new person. The TO line of your email templates is prefilled with this attribute.When importing by emailValid RFC 5322 email addresses.
cio_idA unique, immutable identifier set by Customer.io, set automatically when you add a person.Created by Customer.iostring
created_atRecommended. Holds the date when a profile was created. This value lets you to take advantage of timestamp operators in segments and helps you determine the age of a person’s profile.Optionalunix epoch
_created_in_customerio_atThe date-time when a person was added in Customer.io. This value can be different from created_at. In the API, this value is represented by the timestamp for the cio_id attribute.Created by Customer.iounix epoch
unsubscribedDetermines whether a person is subscribed or unsubscribed from your campaigns and newsletters. (reference)OptionalWe support any case of true (i.e. TRUE, true, tRUe, etc.), 1, or "1" to represent unsubscribed. Any other value is considered “false”, or subscribed.
mobile_ad_idUsed to record either Apple’s Advertising Identifier (IDFA) or Android’s Advertising ID (AAID). This id can improve match accuracy in Google or Facebook Ads when using Ad Audiences.OptionalApple’s Advertising Identifier (IDFA) or Android’s Advertising ID (AAID)
email_sha256To keep your data secure, you can hash your customer email using the SHA256 algorithm before sending it to your account. This field is only used in Ad Audiences and cannot be used to send messages.OptionalValid encoded sha256
mobile_ad_id_sha256To keep your data secure, you can hash the mobile_ad_id using the SHA256 algorithm before sending it to your account. This field is only used in Ad Audiences.OptionalValid encoded sha256

Customer.io has also reserved these object and relationship attributes:

AttributePurposeRequiredData Format
cio_object_idA unique, immutable identifier for objects provided by Customer.io. If this does not yet exist in your workspace, we create a new object.When importing by cio_object_id
object_idA unique identifier for objects. If the object_id does not yet exist, we create a new object.When importing by object_idOur default id limit is set to 150 characters. All valid UTF characters are allowed.
objectIdStringAn analog for object_id in some Customer.io integrations.
relationshipUsed to reference relationships to objects. Cannot be used as the name of an object attribute.To reference relationships in liquid
_relationshipUsed in relationship-triggered campaigns to reference audience members who did not trigger the campaign. Cannot be used as the name of a customer attribute.To reference relationships in liquid
created_atUnix timestamp when the object was first created. Used when listing objects in the UI, for example.NoUnix timestamp
timezoneThe user’s time zone. Used for sending localized messages.NoRegion Format

What can you do with customer attributes?

Customer attributes are core to your messaging and workflows. They help you determine who to send to and the type of messaging and content that would engage them.

You can use customer attributes in a variety of ways:

Review our info on case sensitivity across the platform, so you know how to efficiently search for attributes and include them in conditions in workflows and liquid logic.

Update customer attributes

From a person’s page, you can manage the data you want stored on their profile including their identifiers, custom data, and subscription statuses.

  1. Go to a person’s profile.
  2. Click the Attributes tab and then Edit Attributes.
  3. Update the attribute name or value. Remember that you can’t update the name of reserved attributes, like id.
  4. Save your changes.

Learn more about updating subscription statuses in these other articles:

Remove attributes from a person

You may want to remove attributes so people are no longer a part of certain segments, trigger campaigns, or simply to clean up unnecessary data.

  1. Go to a person’s profile.
  2. Click the Attributes tab and then Edit Attributes.
  3. Click to remove the attribute.
  4. Save your changes.

Remove an attribute from your workspace

To delete an unwanted attribute from your workspace, you need to remove it from all segments and workflows that use it.

  1. Go to your Data Index.
  2. Click to open your attribute.
  3. Under Usage, go to where it’s used and remove it or archive the workflow.
  4. Click at the bottom of the attribute’s page in your index. This deletes the attribute from all profiles that use it.

If that attribute is stored on any customer profiles, it may take 24 hours (or longer) for us to fully purge the attribute from your workspace.

Copied to clipboard!
  Contents