> ## Documentation Index
> Fetch the complete documentation index at: https://unify-19-preview.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create attributes

> Add fields and define the values your records can hold.

export const ThemedImageFrame = ({lightSrc, darkSrc, alt, caption}) => <Frame caption={caption}>
    <div className="block w-full dark:hidden">
      <OptimizedImage className="w-full" src={lightSrc} alt={(alt ?? caption) ?? ""} />
    </div>
    <div className="hidden w-full dark:block">
      <OptimizedImage className="w-full" src={darkSrc} alt={(alt ?? caption) ?? ""} />
    </div>
  </Frame>;

export const PlanAvailability = ({plans}) => <aside aria-label="Plan availability" className="not-prose my-6 flex items-start gap-3 rounded-xl border border-zinc-200 bg-zinc-50 px-4 py-3 text-sm leading-6 text-zinc-700 dark:border-zinc-700 dark:bg-white/5 dark:text-zinc-300">
    <svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className="mt-1 shrink-0">
      <path d="m12 3 9 5-9 5-9-5 9-5Z" />
      <path d="m3 12 9 5 9-5M3 16l9 5 9-5" />
    </svg>
    <span>Available only on {plans} plans.</span>
  </aside>;

## Overview

<PlanAvailability plans="Business" />

Attributes are the fields on an object. Their value types determine what each
field stores: text for an identifier, an integer for a count, or a date for a
renewal. You can add custom attributes to standard and custom objects.

Create the object first if it does not exist. Attributes on CRM objects are
managed by the connected integration and are read-only in Data management.

## Choose the fields and rules

Plan the values your source system will supply before creating attributes. For a
subscription object, a useful starting point is:

| Attribute | Value type | Purpose |
| - | - | - |
| Subscription ID | Text | A stable identifier from the source system. |
| Plan | Select | One of the plans your team defines. |
| Renewal date | Date | The calendar date the subscription renews. |
| Active seats | Integer | A whole-number count of seats in use. |

Make an attribute required when every new record must supply a value. Make it
unique when records must not share that value. A source system's subscription
ID is a useful candidate for both rules. A plan name usually repeats across
records, so it should not be unique.

Choose these rules before saving: the attribute editor does not let you change
its type, API name, required setting, or unique setting after creation. See
[Attribute value types](/reference/objects/value-types) for help choosing a type.

## Add an attribute

<Steps>
  <Step title="Open the object's attributes">
    Open [Settings → Data management](https://app.unifygtm.com/dashboard/settings/data/data-management),
    select the object, and open **Attributes**. Click **Create attribute**.
  </Step>

  <Step title="Choose the type and name">
    Select an **Attribute type**. For an identifier such as `sub_northstar_001`,
    choose **Text**. Enter an **Attribute name**, such as `Subscription ID`, and
    review the generated **Attribute API name**.

    The display name helps teammates recognize the field. The API name is the
    stable identifier used when sending values for it. The API name must be
    unique within the object.

    To link records in another object, choose **Relationship** and follow
    [Relate objects](/reference/objects/relate-objects).
  </Step>

  <Step title="Configure the values">
    Select **Make attribute required** or **Make attribute unique** if the
    field needs those rules. Leave them off for optional values that may repeat.

    For **Select** or **Multiselect**, enter the allowed options. Select stores
    one option; multiselect stores several. Add a description to explain what
    the field means or which source supplies it.

    <ThemedImageFrame lightSrc="/images/reference/objects/subscription-attribute-light.png" darkSrc="/images/reference/objects/subscription-attribute-dark.png" alt="The attribute editor with a renewal date field, its API name, and optional required and unique settings." caption="An optional date attribute for a subscription renewal." />
  </Step>

  <Step title="Save and check the attribute">
    Click **Create attribute**. Confirm the new attribute's name, type, and API
    name in the attributes list. If the list still shows its previous state,
    refresh the page before trying to create it again.

    Repeat for the remaining fields, then [inspect records](/reference/objects/inspect-records)
    after your integration or API has sent values.
  </Step>
</Steps>

## Update an attribute

Click a custom attribute in the **Attributes** tab to edit its display name or
description. You can add options to select and multiselect attributes. Existing
options are not removable in this editor.

Default attributes supplied by Unify cannot be renamed or deleted. CRM attributes
are read-only here; review their connected integration's configuration instead.

Deleting a custom attribute deletes its stored values and cannot be undone. An
ownership attribute used by an engagement policy cannot be deleted while that
policy still uses it.

Developers can also [create attributes through the API](/developers/api/data/attributes/create).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.