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

# Lesson 3 — Attributes and custom fields

> Add the fields your business needs, on any object.

<Note>
  **Lesson 3 of 10** · \~5 minutes · Prerequisite: [Lesson 2 — Objects and records](/en/arya-101/lesson-2-objects-and-records)
</Note>

## What you'll learn

* What attribute types exist
* How to add a custom field
* When to use a formula instead of a manual field

## Standard and custom attributes

Each object has **standard attributes** (name, owner, creation date, status) and you can add **custom attributes** to fit your business model.

Useful examples:

* On `Deal`: `Lead source` (select), `Probability` (number), `Acquisition cost` (currency)
* On `Company`: `NACE sector` (select), `Annual revenue` (currency)
* On `Invoice`: `Related project` (reference)

## Attribute types

<AccordionGroup>
  <Accordion title="Text">
    Free-form single-line string. For short names, codes, labels.
  </Accordion>

  <Accordion title="Long text">
    Multi-line field for descriptions, notes and extended content. Edited in the advanced editor (double click in spreadsheet view).
  </Accordion>

  <Accordion title="Number">
    Integer or decimal. You can set a unit (€, %, pcs, hours).
  </Accordion>

  <Accordion title="Currency">
    Number with currency symbol. Multi-currency with automatic conversion.
  </Accordion>

  <Accordion title="Date / Datetime">
    Day or precise timestamp. Timezone-aware.
  </Accordion>

  <Accordion title="Select (dropdown)">
    Pick from predefined options. Single or multi-select.
  </Accordion>

  <Accordion title="Checkbox">
    True/false. For flags like `VIP`, `Paid`, `Archived`.
  </Accordion>

  <Accordion title="Record reference">
    Link to another record. E.g. `Owner` (reference to `Employee`), `Parent company` (reference to `Company`).
  </Accordion>

  <Accordion title="Formula">
    Auto-computed from other attributes. E.g. `weighted_value = deal_value × probability / 100`.
  </Accordion>

  <Accordion title="Percentage">
    Percentage value (e.g. discount, margin, probability). Shown with the `%` symbol.
  </Accordion>

  <Accordion title="Email">
    Email address with format validation. Clickable to start a message.
  </Accordion>

  <Accordion title="URL">
    Web link with validation. Clickable to open the page in a new tab.
  </Accordion>

  <Accordion title="Address">
    Structured postal address (street, city, ZIP, country).
  </Accordion>

  <Accordion title="Image">
    Image attached to the record (e.g. product photo, company logo).
  </Accordion>

  <Accordion title="AI field">
    Value generated automatically by Arya's AI based on the record's content.
  </Accordion>

  <Accordion title="UUID">
    Auto-generated unique identifier. Useful for integrations and technical references.
  </Accordion>

  <Accordion title="Status">
    Special select with a workflow. Statuses can be grouped (e.g. `Open → Qualified → Won / Lost`).
  </Accordion>
</AccordionGroup>

## Add a custom field

<Steps>
  <Step title="Open the object configuration">
    Go to **Settings → Objects** and select the object (e.g. `Deal`).

    <Frame>
      <img src="https://mintcdn.com/agevole/BUuJGD62nuns4mJL/images/arya-101/lesson-03/en/object-settings.svg?fit=max&auto=format&n=BUuJGD62nuns4mJL&q=85&s=9ec2f5173301775818e90667c657c772" alt="Deal object configuration with attribute list" width="1200" height="720" data-path="images/arya-101/lesson-03/en/object-settings.svg" />
    </Frame>
  </Step>

  <Step title="Add attribute">
    Click **+ New attribute**. Name, type, required flag.
  </Step>

  <Step title="Define options (select)">
    For select attributes, enter options with a colour (useful in Kanban pipelines and filters).
  </Step>

  <Step title="Control visibility">
    Decide who can view and edit the field: everyone, specific roles, or only the record owner.
  </Step>

  <Step title="Save">
    The field is immediately available on every record of that object, in views, filters and automations.
  </Step>
</Steps>

<Tip>
  The **Required** toggle applies to both custom attributes and system ones (e.g. the **Last name** on Contacts). When it's on, the field shows an asterisk and is required in forms and imports; when it's off, the field is optional. You manage it entirely from **Settings → Objects → Attributes**.
</Tip>

## Using a formula

Formulas enable automatic calculations. Practical example on `Deal`:

```
weighted_value = value * (probability / 100)
```

<Frame>
  <img src="https://mintcdn.com/agevole/BUuJGD62nuns4mJL/images/arya-101/lesson-03/en/formula-editor.svg?fit=max&auto=format&n=BUuJGD62nuns4mJL&q=85&s=503756dca12b7e7302b295c926051b0a" alt="Formula editor with expression and result preview" width="1200" height="720" data-path="images/arya-101/lesson-03/en/formula-editor.svg" />
</Frame>

Supported operators: arithmetic (`+ - * /`), comparison (`> < == !=`), logical (`AND OR NOT`), text (`CONCAT LOWER UPPER`), date (`DAYS_BETWEEN TODAY`).

<Warning>
  If a referenced field is deleted, the formula errors until you fix it. Arya warns you.
</Warning>

## Best practices

* **Don't create a thousand fields**: add them only when truly needed. Too many fields slow the team down.
* **Use sections**: group related fields (Commercial data, Legal data, Internal notes).
* **Standardise values**: prefer `Select` over free text when possible (avoid `Rome`, `ROME`, `rome`).

## Verify

<Check>You know the main attribute types</Check>
<Check>You added at least one custom field to an object</Check>
<Check>You can write a simple formula</Check>

## Next lesson

<Card title="Lesson 4 — Lists, views and filters" icon="arrow-right" href="/en/arya-101/lesson-4-lists-and-views">
  Create your first dynamic list and share it with the team.
</Card>
