> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useinvent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Properties

> Define custom fields that store extra information on every contact

Properties are custom fields stored on every contact. Out of the box, a contact has a name, email, and phone. Properties let you capture everything else your business cares about: a size preference, a loyalty tier, a renewal date, a marketing opt-in.

Open **Audience → Properties** in the sidebar to manage them.

<Frame>
  <img src="https://mintcdn.com/invent/UlzY1s6NCo5CVlGO/assets/guides/audience-properties-list.png?fit=max&auto=format&n=UlzY1s6NCo5CVlGO&q=85&s=d7bda12f7e931e6ee6584d8280229cfc" alt="Properties List" style={{ maxHeight: '400px' }} width="2560" height="1720" data-path="assets/guides/audience-properties-list.png" />
</Frame>

Each property shows its name, its type, and details like the options of a Select property.

<Note>
  Only admins and developers can create or edit contact properties. Other members see the values on contacts but cannot change the property definitions.
</Note>

## Property Types

| Type             | Best for                                            |
| ---------------- | --------------------------------------------------- |
| **Text**         | Short free-form values (e.g. a referral source)     |
| **Long text**    | Notes and multi-line values                         |
| **URL**          | Links (e.g. a LinkedIn profile)                     |
| **Email**        | Additional email addresses                          |
| **Phone**        | Additional phone numbers                            |
| **Number**       | Quantities and scores (e.g. loyalty points)         |
| **Currency**     | Money amounts (e.g. lifetime spend)                 |
| **Checkbox**     | Yes/no flags (e.g. marketing opt-in)                |
| **Date**         | Dates without a time (e.g. birthday)                |
| **Date & time**  | Timestamps (e.g. last purchase)                     |
| **Select**       | One option from a fixed list (e.g. loyalty tier)    |
| **Multi-select** | Multiple options from a fixed list (e.g. interests) |

## Adding a Property

<Steps>
  <Step title="Click + Add property">
    A menu opens where you can search and pick the property type.
  </Step>

  <Step title="Pick a type">
    Choose the type that matches the data you want to store. For Select and Multi-select, you define the list of options, each with its own color.
  </Step>

  <Step title="Name it">
    Give the property a clear name (e.g., "Loyalty Tier"). The property immediately appears on every contact profile.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/invent/UlzY1s6NCo5CVlGO/assets/guides/audience-properties-add.png?fit=max&auto=format&n=UlzY1s6NCo5CVlGO&q=85&s=18f94544499d6c7d1838e0f752e27fb6" alt="Add Property" style={{ maxHeight: '400px' }} width="2560" height="1720" data-path="assets/guides/audience-properties-add.png" />
</Frame>

## Managing Properties

From the Properties page you can:

* **Rename a property** by clicking its name
* **Reorder properties** by dragging the handle that appears on hover. The order here is the order shown on contact profiles
* **Edit options** via the three-dot menu: change the option list of a Select property, tweak formatting, or delete the property

<Warning>
  Deleting a property permanently removes its values from all contacts.
</Warning>

## Properties on the Contact Profile

Every property appears in the **Properties** section of the contact profile panel, where you can view and edit values inline.

<Frame>
  <img src="https://mintcdn.com/invent/UlzY1s6NCo5CVlGO/assets/guides/audience-contact-properties.png?fit=max&auto=format&n=UlzY1s6NCo5CVlGO&q=85&s=0a640be814beb8caaba34fe6ddbe244b" alt="Contact Properties" style={{ maxHeight: '400px' }} width="1000" height="1656" data-path="assets/guides/audience-contact-properties.png" />
</Frame>

## Let Your Assistant Fill Properties

Properties become really powerful combined with your AI assistants. With the **Update Contact Info** capability enabled, an assistant saves contact details (name, email, phone, and any custom properties) directly to the contact profile as it learns them in conversation.

For example, when a customer mentions they usually wear a size M, the assistant can set the "Size" property on their contact, no manual data entry needed.

To enable it:

<Steps>
  <Step title="Open the assistant's settings">
    Go to **Assistants**, pick your assistant, and scroll to the **Contact Properties** section of the Settings tab.
  </Step>

  <Step title="Turn on Update Contact Info">
    This lets the assistant save contact details directly to the contact profile.
  </Step>

  <Step title="Set the visibility per property">
    Each property starts as **Hidden**. Choose what the assistant may do with it:

    * **Hidden**: The assistant cannot see the property
    * **Visible**: The assistant can see the property during conversations
    * **AI Controlled**: The assistant can see and update the property
  </Step>

  <Step title="Save changes">
    Click **Save Changes**. The assistant applies the new access on its next conversation.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/invent/UlzY1s6NCo5CVlGO/assets/guides/assistants-contact-properties.png?fit=max&auto=format&n=UlzY1s6NCo5CVlGO&q=85&s=88d3875be44ae44c6ca32351ad692036" alt="Assistant Contact Properties Configuration" style={{ maxHeight: '400px' }} width="1406" height="1096" data-path="assets/guides/assistants-contact-properties.png" />
</Frame>

<Note>
  Visibility is per assistant, so a support assistant can update a "Size" property while a billing assistant cannot even see it. See [Assistant Configuration](/assistants/introduction#assistant-configuration) for the rest of the assistant settings.
</Note>

## Setting Values via the API

Developers can set property values programmatically when creating or updating contacts through the [API](/api-reference/getting-started/introduction), using the property keys defined on this page.

## Best Practices

1. **Start small**: A handful of properties your team actually fills beats a long list of empty fields
2. **Prefer Select over Text** for anything with known values: options keep data consistent and filterable
3. **Name properties for humans**: "Loyalty Tier" is better than "tier\_lvl"
4. **Pair with assistants**: Let the AI keep properties up to date automatically with the Update Contact Info capability

## Next Steps

<CardGroup cols={2}>
  <Card title="Segments" icon="users" href="/guides/audience/segments">
    Group contacts for targeted broadcasts
  </Card>

  <Card title="Assistant Capabilities" icon="wand-magic-sparkles" href="/assistants/capabilities">
    Enable Update Contact Info and other assistant powers
  </Card>
</CardGroup>
