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

# Custom fields

> Store extra details on contacts with fields you define yourself in Module Setup.

## Overview

[Custom fields](/getting-started/glossary#custom-field) let you store details beyond
the standard contact information. Think "Account tier", "Renewal date", or "Lead
score". You define them once in **Module Setup**. They then appear on contacts as
columns, form fields, filters, and import targets.

<Info>
  **Time to complete:** \~5 minutes  ·  **Difficulty:** Intermediate
   ·  **Where to manage them:** Settings → Module Setup (`/settings/module-setup`)
</Info>

## Types of field you can create

Autocampaign AI's module builder supports a wide range of field types:

| Group          | Types                                             |
| -------------- | ------------------------------------------------- |
| **Text**       | Text, Textarea, URL, Email, Phone                 |
| **Number**     | Number, Currency, Percentage, Rating, Auto-number |
| **Date**       | Date, Date & time, Timezone                       |
| **Choice**     | Select (dropdown), Multi-select, Boolean (yes/no) |
| **Relational** | Lookup, User                                      |

Each field can be marked **required**, **unique**, **filterable**, or
**searchable**. It can also have a default value, placeholder, help text, and
validation rules.

## Create a custom field

<Steps>
  <Step title="Open Module Setup">
    Go to **Settings → Module Setup**. Custom fields live in sections within the
    **Contacts** module.
  </Step>

  <Step title="Add a field">
    Choose a section, add a field, pick its **type**, and set its display name and
    options (for Select/Multi-select, add the choices).
  </Step>

  <Step title="Set behavior">
    Mark it **filterable** if you want to filter contacts by it, and **required** if
    every contact must have a value.
  </Step>
</Steps>

For everything the module builder can do, see [Module builder](/automation/module-builder).

## Where custom fields appear

Once created, a custom field shows up in several places:

* **Contact list** — as a column you can show or hide (use the **Columns** menu).
* **Add / Edit contact** — as a form field below the standard details.
* **Filters** — filterable fields appear in the Contacts **Filters** panel with
  choices such as equals, contains, greater/less than, is empty, and so on.
* **CSV import** — importable fields become mapping targets (marked "Custom") when
  you import a spreadsheet.

<Warning>
  **Custom fields are not available as message merge tags.** A
  [merge tag](/getting-started/glossary#merge-tag) is a placeholder like `first_name`
  that fills in each contact's details when a message is sent. The merge tags you can
  insert into SMS and email are the standard contact fields only:
  `first_name`, `last_name`, `full_name`, `phone`, `email`, and the address fields.
  See [Templates](/campaigns/templates).
</Warning>

## FAQ

<AccordionGroup>
  <Accordion title="Can I use a custom field like {{account_tier}} in a message?">
    No. Merge tags are limited to standard contact fields. Custom fields are for
    storing, filtering, and grouping data, not for personalizing messages today.
  </Accordion>

  <Accordion title="Can I filter or segment on a custom field?">
    Yes, if the field is marked **filterable**. It then appears in the Contacts
    filter panel. (Building [segment](/getting-started/glossary#segment) rules on
    custom fields is available through the API, for developers.)
  </Accordion>

  <Accordion title="Which field types can't be imported?">
    Lookup, User, and Auto-number fields are left out of CSV import. Everything
    else can be mapped.
  </Accordion>

  <Accordion title="What's the difference between a custom field and a tag?">
    A **tag** is a simple label (present or not). A **custom field** stores a value
    of a set type (text, number, date, choice). Use tags for grouping,
    [custom fields](/contacts/custom-fields) for data.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Why isn't my custom field showing as a contact column?">
    Confirm it's active in Module Setup, then turn it on in the **Columns** menu on
    the Contacts list.
  </Accordion>

  <Accordion title="Why can't I map a spreadsheet column to my custom field?">
    Create the field in Module Setup first, and check its type isn't Lookup, User,
    or Auto-number (those can't be imported).
  </Accordion>
</AccordionGroup>

<Card title="Module builder" icon="cubes" href="/automation/module-builder">
  Build custom modules, sections, and fields.
</Card>
