> ## 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.

# Module builder

> Create your own record types with custom sections, fields, and records.

## Overview

Most teams never need this page. Use it if you want to store extra information
the app does not have a field for.

The module builder lets you extend the information the app stores. You can add
[custom fields](/getting-started/glossary#custom-field) to built-in modules like
Contacts, or create entirely **new modules** (record types) such as "Deals" or
"Properties". Each has your own sections and fields. Manage everything at
**Settings → Module Setup** (`/settings/module-setup`).

<Info>
  **Time to complete:** \~15 minutes  ·  **Difficulty:** Advanced
</Info>

## How modules are organized

<Steps>
  <Step title="Module" icon="cube">
    A record type — for example, **Contacts** (built-in) or a custom **Deals**
    module. Each has a name, singular/plural labels, icon, and color.
  </Step>

  <Step title="Section" icon="table-cells">
    A titled group of fields within a module, with a chosen column count.
  </Step>

  <Step title="Field" icon="input-text">
    A single piece of information — text, number, date, dropdown, and more.
  </Step>
</Steps>

## Create a custom field or module

<Steps>
  <Step title="Open Module Setup">
    Go to **Settings → Module Setup**. The left rail lists your modules.
  </Step>

  <Step title="Add a field to a module">
    Select a module, open the **Fields** tab, choose a section, and add a field.
    Pick its **type**, set validation (rules about what can be entered), options
    (for dropdowns), default value, and help text.
  </Step>

  <Step title="Or create a new module">
    Click **New module**, name it, and add sections and fields.
  </Step>

  <Step title="Arrange the layout">
    Use the **Layout** tab to choose a record layout (single, two/three column, or
    tabbed) and pick header and list columns. Optionally turn on a **kanban** view
    (cards in columns) grouped by a dropdown field.
  </Step>
</Steps>

## Field types

| Group          | Types                                                      |
| -------------- | ---------------------------------------------------------- |
| **Text**       | Text, Long text, URL, Email, Phone                         |
| **Number**     | Number, Currency, Percentage, Rating, Auto number          |
| **Date**       | Date, Date & time, Timezone                                |
| **Choice**     | Dropdown, Multi-select, Checkbox                           |
| **Relational** | Lookup (link to another record), User (link to a teammate) |

Each field can be **required**, **unique**, **filterable**, **searchable**, or
read-only. It can also carry validation rules and conditional visibility (show or
require a field based on another field's value).

## Records

Custom modules get their own records screens:

* **List** — `/modules/<module>/records`, with your configured columns, filters,
  and optional kanban view.
* **Detail** — a single record laid out by your section/field design.

## Modules and contacts

**Contacts** (and **Tickets**) are built-in **system modules** (ones Autocampaign AI
provides). Their core fields are fixed, but you can add your own custom fields
alongside them. Those fields then appear on contacts as columns, form fields, and
filters, and can be filled by [CSV import](/contacts/import-csv). See
[Custom fields](/contacts/custom-fields).

## FAQ

<AccordionGroup>
  <Accordion title="What's the difference between a custom field and a custom module?">
    A **custom field** adds one piece of information to an existing module (like
    Contacts). A **custom module** is a whole new record type with its own fields
    and records.
  </Accordion>

  <Accordion title="Can I link records to each other?">
    Yes — use a **Lookup** field to link a record to another module's record, or a
    **User** field to link to a team member.
  </Accordion>

  <Accordion title="Can I use custom fields as merge tags in messages?">
    No — [merge tags](/getting-started/glossary#merge-tag) (placeholders that fill
    in each contact's details) only work with standard contact fields. See
    [Custom fields](/contacts/custom-fields).
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="I can't edit a field on Contacts">
    Built-in system fields are locked. You can add and edit your own custom fields
    alongside them, but not change the core ones.
  </Accordion>
</AccordionGroup>

<Card title="Add custom fields to contacts" icon="table-columns" href="/contacts/custom-fields">
  Extend contacts with your own data.
</Card>
